]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/controllers/ControlCitation.C
Add a buffer_path arg to InsetGraphicsMailer's params2string, string2params.
[lyx.git] / src / frontends / controllers / ControlCitation.C
index e138d345379bb4e244d0afaf04a5336cb7ed87f5..1ddddecbf4e101d5c69eb692175e88ee93193d61 100644 (file)
@@ -1,67 +1,43 @@
-// -*- C++ -*-
-/* 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 <a.leeming@ic.ac.uk>
+ * Full author contact details are available in file CREDITS
  */
 
 #include <config.h>
-#include <algorithm>
 
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "ViewBase.h"
-#include "ButtonControllerBase.h"
 #include "ControlCitation.h"
-#include "buffer.h"
-#include "Dialogs.h"
-#include "LyXView.h"
-
-// need to #include this in _one_ of the ControlCommand-derived classses in
-// order to instantiate
-// ControlInset<InsetCommand, InsetCommandParams>::showInset
-// ControlInset<InsetCommand, InsetCommandParams>::createInset
-#include "ControlInset.tmpl"
+#include "Kernel.h"
 
+#include "buffer.h"
 
-using std::pair;
 using std::vector;
-using SigC::slot;
+using std::pair;
 
-vector<biblio::CiteStyle> ControlCitation::citeStyles_;
 
-ControlCitation::ControlCitation(LyXView & lv, Dialogs & d)
-       : ControlCommand(lv, d, LFUN_CITATION_INSERT)
-{
-       // These are permanent connections so we won't bother
-       // storing a copy because we won't be disconnecting.
-       d_.showCitation.connect(slot(this, &ControlCitation::showInset));
-       d_.createCitation.connect(slot(this, &ControlCitation::createInset));
-}
+vector<biblio::CiteStyle> ControlCitation::citeStyles_;
 
 
-void ControlCitation::clearDaughterParams()
-{
-       bibkeysInfo_.clear();
-}
+ControlCitation::ControlCitation(Dialog & d)
+       : ControlCommand(d, "citation")
+{}
 
 
-void ControlCitation::setDaughterParams()
+bool ControlCitation::initialiseParams(string const & data)
 {
-       vector<pair<string,string> > blist = lv_.buffer()->getBibkeyList();
+       ControlCommand::initialiseParams(data);
+
+       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));
        }
@@ -73,6 +49,16 @@ void ControlCitation::setDaughterParams()
                    (!usingNatbib() && citeStyles_.size() != 1))
                        citeStyles_ = biblio::getCiteStyles(usingNatbib());
        }
+
+       return true;
+}
+
+
+
+void ControlCitation::clearParams()
+{
+       ControlCommand::clearParams();
+       bibkeysInfo_.clear();
 }
 
 
@@ -84,7 +70,7 @@ biblio::InfoMap const & ControlCitation::bibkeysInfo() const
 
 bool ControlCitation::usingNatbib() const
 {
-    return lv_.buffer()->params.use_natbib;
+    return kernel().buffer()->params.use_natbib;
 }
 
 
@@ -95,7 +81,7 @@ vector<string> const ControlCitation::getCiteStrings(string const & key) const
        vector<biblio::CiteStyle> const cs =
                biblio::getCiteStyles(usingNatbib());
 
-       if (lv_.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);