#include "buffer.h"
#include "bufferparams.h"
+#include "debug.h" // temporary
using std::string;
using std::vector;
using std::pair;
+namespace lyx {
+namespace frontend {
vector<biblio::CiteStyle> ControlCitation::citeStyles_;
bool ControlCitation::initialiseParams(string const & data)
{
+ lyxerr << "ControlCitation::initialiseParams\n\t" << data << std::endl;
ControlCommand::initialiseParams(data);
vector<pair<string, string> > blist;
kernel().buffer().fillWithBibKeys(blist);
- bool use_styles = (usingNatbib() || usingJurabib());
-
+ biblio::CiteEngine const engine = biblio::getEngine(kernel().buffer());
+
+ bool use_styles = engine != biblio::ENGINE_BASIC;
+
typedef std::map<string, string>::value_type InfoMapValue;
-
+
for (vector<pair<string,string> >::size_type i = 0;
i < blist.size(); ++i) {
bibkeysInfo_.insert(InfoMapValue(blist[i].first,
}
if (citeStyles_.empty())
- citeStyles_ = biblio::getCiteStyles(usingNatbib(), usingJurabib());
+ citeStyles_ = biblio::getCiteStyles(engine);
else {
if ((use_styles && citeStyles_.size() == 1) ||
(!use_styles && citeStyles_.size() != 1))
- citeStyles_ = biblio::getCiteStyles(usingNatbib(),
- usingJurabib());
+ citeStyles_ = biblio::getCiteStyles(engine);
}
return true;
}
-bool ControlCitation::usingNatbib() const
-{
- return kernel().buffer().params().use_natbib;
-}
-
-
-bool ControlCitation::usingJurabib() const
+biblio::CiteEngine_enum ControlCitation::getEngine() const
{
- return kernel().buffer().params().use_jurabib;
+ return biblio::getEngine(kernel().buffer());
}
{
vector<string> styles;
- vector<biblio::CiteStyle> const cs =
- biblio::getCiteStyles(usingNatbib(), usingJurabib());
+ biblio::CiteEngine const engine = biblio::getEngine(kernel().buffer());
+ vector<biblio::CiteStyle> const cs = biblio::getCiteStyles(engine);
- if (kernel().buffer().params().use_numerical_citations)
+ if (engine == biblio::ENGINE_NATBIB_NUMERICAL)
styles = biblio::getNumericalStrings(key, bibkeysInfo_, cs);
else
styles = biblio::getAuthorYearStrings(key, bibkeysInfo_, cs);
return styles;
}
+
+} // namespace frontend
+} // namespace lyx