#include "support/docstream.h"
#include "support/filetools.h"
+#include "frontends/controllers/biblio.h"
namespace lyx {
// natbib.sty
if (isRequired("natbib") && ! tclass.provides(LyXTextClass::natbib)) {
packages << "\\usepackage[";
- if (params_.cite_engine == biblio::ENGINE_NATBIB_NUMERICAL) {
+ if (params_.getEngine() == biblio::ENGINE_NATBIB_NUMERICAL) {
packages << "numbers";
} else {
packages << "authoryear";
#include "vspace.h"
#include "frontends/Alert.h"
+#include "frontends/controllers/biblio.h"
#include "support/lyxalgo.h" // for lyx::count
#include "support/convert.h"
use_geometry = false;
use_amsmath = package_auto;
use_esint = package_auto;
- cite_engine = biblio::ENGINE_BASIC;
+ cite_engine_ = biblio::ENGINE_BASIC;
use_bibtopic = false;
trackChanges = false;
outputChanges = false;
} else if (token == "\\cite_engine") {
string engine;
lex >> engine;
- cite_engine = citeenginetranslator().find(engine);
+ cite_engine_ = citeenginetranslator().find(engine);
} else if (token == "\\use_bibtopic") {
lex >> use_bibtopic;
} else if (token == "\\tracking_changes") {
<< "\n\\use_geometry " << convert<string>(use_geometry)
<< "\n\\use_amsmath " << use_amsmath
<< "\n\\use_esint " << use_esint
- << "\n\\cite_engine " << citeenginetranslator().find(cite_engine)
+ << "\n\\cite_engine " << citeenginetranslator().find(cite_engine_)
<< "\n\\use_bibtopic " << convert<string>(use_bibtopic)
<< "\n\\paperorientation " << string_orientation[orientation]
<< '\n';
}
-biblio::CiteEngine_enum BufferParams::getEngine() const
+biblio::CiteEngine BufferParams::getEngine() const
{
// FIXME the class should provide the numerical/
// authoryear choice
if (getLyXTextClass().provides(LyXTextClass::natbib)
- && cite_engine != biblio::ENGINE_NATBIB_NUMERICAL)
+ && cite_engine_ != biblio::ENGINE_NATBIB_NUMERICAL)
return biblio::ENGINE_NATBIB_AUTHORYEAR;
- return cite_engine;
+ return cite_engine_;
+}
+
+
+void BufferParams::setCiteEngine(biblio::CiteEngine const cite_engine)
+{
+ cite_engine_ = cite_engine;
}
} // namespace lyx
class VSpace;
class Language;
-
namespace biblio {
-
-enum CiteEngine {
- ENGINE_BASIC,
- ENGINE_NATBIB_AUTHORYEAR,
- ENGINE_NATBIB_NUMERICAL,
- ENGINE_JURABIB
-};
-
-class CiteEngine_enum {
- CiteEngine val_;
-public:
- CiteEngine_enum(CiteEngine val) : val_(val) {}
- operator CiteEngine() const{ return val_; }
-};
-
+enum CiteEngine;
} // namespace biblio
/// Whether and how to load esint
Package use_esint;
///
- biblio::CiteEngine cite_engine;
- ///
bool use_bibtopic;
/// revision tracking for this buffer ?
bool trackChanges;
/// path of the current buffer
std::string filepath;
/// get the appropriate cite engine (natbib handling)
- biblio::CiteEngine_enum getEngine() const;
+ biblio::CiteEngine getEngine() const;
+
+ ///
+ void setCiteEngine(biblio::CiteEngine const);
private:
/** Use the Pimpl idiom to hide those member variables that would otherwise
static void destroy(Impl *);
};
support::copied_ptr<Impl, MemoryTraits> pimpl_;
+
+ ///
+ biblio::CiteEngine cite_engine_;
};
} // namespace lyx
{
// the different bibtex packages have (and need) their
// own "plain" stylefiles
- biblio::CiteEngine_enum const & engine =
+ biblio::CiteEngine const engine =
kernel().buffer().params().getEngine();
docstring defaultstyle;
switch (engine) {
string const asValidLatexCommand(string const & input,
- CiteEngine_enum const & engine)
+ CiteEngine const engine)
{
string const default_str = default_cite_command(engine);
if (!is_possible_cite_command(input))
}
-vector<CiteStyle> const getCiteStyles(CiteEngine_enum const & engine)
+vector<CiteStyle> const getCiteStyles(CiteEngine const engine)
{
unsigned int nStyles = 0;
unsigned int start = 0;
namespace lyx {
namespace biblio {
-class CiteEngine_enum;
+enum CiteEngine {
+ ENGINE_BASIC,
+ ENGINE_NATBIB_AUTHORYEAR,
+ ENGINE_NATBIB_NUMERICAL,
+ ENGINE_JURABIB
+};
enum CiteStyle {
* returns an appropriate command, valid for \c engine.
*/
std::string const asValidLatexCommand(std::string const & input,
- CiteEngine_enum const & engine);
+ CiteEngine const engine);
/// First entry is the bibliography key, second the data
typedef std::map<std::string, docstring> InfoMap;
/// Returns a vector of available Citation styles.
-std::vector<CiteStyle> const getCiteStyles(CiteEngine_enum const &);
+std::vector<CiteStyle> const getCiteStyles(CiteEngine const );
/**
"Translates" the available Citation Styles into strings for this key.
#include "tex-strings.h" // tex_graphics
#include "Spacing.h"
+#include "frontends/controllers/biblio.h"
#include "controllers/ControlDocument.h"
#include "controllers/frnt_lang.h"
fromqstr(preambleModule->preambleTE->document()->toPlainText());
// biblio
- params.cite_engine = biblio::ENGINE_BASIC;
+ params.setCiteEngine(biblio::ENGINE_BASIC);
if (biblioModule->citeNatbibRB->isChecked()) {
bool const use_numerical_citations =
biblioModule->citeStyleCO->currentIndex();
if (use_numerical_citations)
- params.cite_engine = biblio::ENGINE_NATBIB_NUMERICAL;
+ params.setCiteEngine(biblio::ENGINE_NATBIB_NUMERICAL);
else
- params.cite_engine = biblio::ENGINE_NATBIB_AUTHORYEAR;
+ params.setCiteEngine(biblio::ENGINE_NATBIB_AUTHORYEAR);
} else if (biblioModule->citeJurabibRB->isChecked())
- params.cite_engine = biblio::ENGINE_JURABIB;
+ params.setCiteEngine(biblio::ENGINE_JURABIB);
params.use_bibtopic =
biblioModule->bibtopicCB->isChecked();
// biblio
biblioModule->citeDefaultRB->setChecked(
- params.cite_engine == biblio::ENGINE_BASIC);
+ params.getEngine() == biblio::ENGINE_BASIC);
biblioModule->citeNatbibRB->setChecked(
- params.cite_engine == biblio::ENGINE_NATBIB_NUMERICAL ||
- params.cite_engine == biblio::ENGINE_NATBIB_AUTHORYEAR);
+ params.getEngine() == biblio::ENGINE_NATBIB_NUMERICAL ||
+ params.getEngine() == biblio::ENGINE_NATBIB_AUTHORYEAR);
biblioModule->citeStyleCO->setCurrentIndex(
- params.cite_engine == biblio::ENGINE_NATBIB_NUMERICAL);
+ params.getEngine() == biblio::ENGINE_NATBIB_NUMERICAL);
biblioModule->citeJurabibRB->setChecked(
- params.cite_engine == biblio::ENGINE_JURABIB);
+ params.getEngine() == biblio::ENGINE_JURABIB);
biblioModule->bibtopicCB->setChecked(
params.use_bibtopic);
docstring const after = getParam("after");
docstring label;
- biblio::CiteEngine const engine = buffer.params().cite_engine;
+ biblio::CiteEngine const engine = buffer.params().getEngine();
if (engine != biblio::ENGINE_BASIC) {
// FIXME UNICODE
label = getNatbibLabel(buffer, getCmdName(), to_utf8(getParam("key")),
void InsetCitation::validate(LaTeXFeatures & features) const
{
- switch (features.bufferParams().cite_engine) {
+ switch (features.bufferParams().getEngine()) {
case biblio::ENGINE_BASIC:
break;
case biblio::ENGINE_NATBIB_AUTHORYEAR:
#include "insetcommand.h"
-#include "bufferparams.h"
+
+#include "frontends/controllers/biblio.h"
namespace lyx {
case LFUN_BUFFER_PARAMS_APPLY: {
BOOST_ASSERT(lyx_view_);
biblio::CiteEngine const engine =
- lyx_view_->buffer()->params().cite_engine;
+ lyx_view_->buffer()->params().getEngine();
istringstream ss(argument);
LyXLex lex(0,0);
<< (unknown_tokens == 1 ? "" : "s")
<< endl;
}
- if (engine == lyx_view_->buffer()->params().cite_engine)
+ if (engine == lyx_view_->buffer()->params().getEngine())
break;
LCursor & cur = view()->cursor();