-/* This file is part of
- * ======================================================
- *
- * LyX, The Document Processor
- *
- * Copyright 2001 The LyX Team.
+/**
+ * \file ControlCitation.C
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
*
- * ======================================================
+ * \author Angus Leeming
*
- * \file ControlCitation.C
- * \author Angus Leeming <leeming@lyx.org>
+ * Full author contact details are available in file CREDITS
*/
#include <config.h>
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
#include "ControlCitation.h"
+#include "Kernel.h"
+
#include "buffer.h"
using std::vector;
using std::pair;
+
vector<biblio::CiteStyle> ControlCitation::citeStyles_;
-ControlCitation::ControlCitation(LyXView & lv, Dialogs & d)
- : ControlCommand(lv, d, LFUN_CITATION_INSERT)
+ControlCitation::ControlCitation(Dialog & d)
+ : ControlCommand(d, "citation")
{}
-void ControlCitation::clearDaughterParams()
+bool ControlCitation::initialiseParams(string const & data)
{
- bibkeysInfo_.clear();
-}
+ ControlCommand::initialiseParams(data);
-
-void ControlCitation::setDaughterParams()
-{
- vector<pair<string,string> > blist = buffer()->getBibkeyList();
+ vector<pair<string,string> > blist;
+ kernel().buffer()->fillWithBibKeys(blist);
typedef std::map<string, string>::value_type InfoMapValue;
- for (vector<pair<string,string> >::size_type i=0; i<blist.size(); ++i) {
+ for (vector<pair<string,string> >::size_type i = 0;
+ i < blist.size(); ++i) {
bibkeysInfo_.insert(InfoMapValue(blist[i].first,
blist[i].second));
}
(!usingNatbib() && citeStyles_.size() != 1))
citeStyles_ = biblio::getCiteStyles(usingNatbib());
}
+
+ return true;
+}
+
+
+
+void ControlCitation::clearParams()
+{
+ ControlCommand::clearParams();
+ bibkeysInfo_.clear();
}
bool ControlCitation::usingNatbib() const
{
- return buffer()->params.use_natbib;
+ return kernel().buffer()->params.use_natbib;
}
vector<biblio::CiteStyle> const cs =
biblio::getCiteStyles(usingNatbib());
- if (buffer()->params.use_numerical_citations)
+ if (kernel().buffer()->params.use_numerical_citations)
styles = biblio::getNumericalStrings(key, bibkeysInfo_, cs);
else
styles = biblio::getAuthorYearStrings(key, bibkeysInfo_, cs);