using std::vector;
using SigC::slot;
+vector<biblio::CiteStyle> ControlCitation::citeStyles_;
+
ControlCitation::ControlCitation(LyXView & lv, Dialogs & d)
: ControlCommand(lv, d, LFUN_CITATION_INSERT)
{
bibkeysInfo_.insert(InfoMapValue(blist[i].first,
blist[i].second));
}
+
+ if (citeStyles_.empty())
+ citeStyles_ = biblio::getCiteStyles(usingNatbib());
+ else {
+ if ((usingNatbib() && citeStyles_.size() == 1) ||
+ (!usingNatbib() && citeStyles_.size() != 1))
+ citeStyles_ = biblio::getCiteStyles(usingNatbib());
+ }
}
{
return bibkeysInfo_;
}
+
+
+bool ControlCitation::usingNatbib() const
+{
+ return lv_.buffer()->params.use_natbib;
+}
+
+
+vector<string> const ControlCitation::getCiteStrings(string const & key) const
+{
+ vector<string> styles;
+
+ vector<biblio::CiteStyle> const cs =
+ biblio::getCiteStyles(usingNatbib());
+
+ if (lv_.buffer()->params.use_numerical_citations)
+ styles = biblio::getNumericalStrings(key, bibkeysInfo_, cs);
+ else
+ styles = biblio::getAuthorYearStrings(key, bibkeysInfo_, cs);
+
+ return styles;
+}