Jürgen Spitzmüller wrote:
I found a small glitch in the backport that resulted in LyX not exporting the
correct natbib cite commands, but always \cite instead. Trunk is correct in
this regard.
I think Martin's backport was not at fault here. Trunk is correct
because I extended Martin's cite_engine patch. Look at rev 17537 below.
Maybe you should backport the rest of it?
Abdel.
Author: younes
Date: Sun Mar 25 03:12:38 2007
New Revision: 17537
URL: http://www.lyx.org/trac/changeset/17537
Log:
* BufferParams:
* transfer CiteEngine enum declaration to biblio.h
* delete unneeded CiteEngine_enum
* cite_engine is now cite_engine_ and is private.
Modified:
lyx-devel/trunk/src/LaTeXFeatures.C
lyx-devel/trunk/src/bufferparams.C
lyx-devel/trunk/src/bufferparams.h
lyx-devel/trunk/src/frontends/controllers/ControlBibtex.C
lyx-devel/trunk/src/frontends/controllers/biblio.C
lyx-devel/trunk/src/frontends/controllers/biblio.h
lyx-devel/trunk/src/frontends/qt4/QDocumentDialog.C
lyx-devel/trunk/src/insets/insetcite.C
lyx-devel/trunk/src/insets/insetcite.h
lyx-devel/trunk/src/lyxfunc.C
Modified: lyx-devel/trunk/src/LaTeXFeatures.C
URL:
http://www.lyx.org/trac/file/lyx-devel/trunk/src/LaTeXFeatures.C?rev=17537
==============================================================================
--- lyx-devel/trunk/src/LaTeXFeatures.C (original)
+++ lyx-devel/trunk/src/LaTeXFeatures.C Sun Mar 25 03:12:38 2007
@@ -31,6 +31,7 @@
#include "support/docstream.h"
#include "support/filetools.h"
+#include "frontends/controllers/biblio.h"
namespace lyx {
@@ -378,7 +379,7 @@
// 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";
Modified: lyx-devel/trunk/src/bufferparams.C
URL:
http://www.lyx.org/trac/file/lyx-devel/trunk/src/bufferparams.C?rev=17537
==============================================================================
--- lyx-devel/trunk/src/bufferparams.C (original)
+++ lyx-devel/trunk/src/bufferparams.C Sun Mar 25 03:12:38 2007
@@ -37,6 +37,7 @@
#include "vspace.h"
#include "frontends/Alert.h"
+#include "frontends/controllers/biblio.h"
#include "support/lyxalgo.h" // for lyx::count
#include "support/convert.h"
@@ -303,7 +304,7 @@
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;
@@ -495,7 +496,7 @@
} 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") {
@@ -642,7 +643,7 @@
<< "\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';
@@ -1483,14 +1484,20 @@
}
-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
Modified: lyx-devel/trunk/src/bufferparams.h
URL:
http://www.lyx.org/trac/file/lyx-devel/trunk/src/bufferparams.h?rev=17537
==============================================================================
--- lyx-devel/trunk/src/bufferparams.h (original)
+++ lyx-devel/trunk/src/bufferparams.h Sun Mar 25 03:12:38 2007
@@ -39,23 +39,8 @@
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
@@ -240,8 +225,6 @@
/// Whether and how to load esint
Package use_esint;
///
- biblio::CiteEngine cite_engine;
- ///
bool use_bibtopic;
/// revision tracking for this buffer ?
bool trackChanges;
@@ -278,7 +261,10 @@
/// 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
@@ -291,6 +277,9 @@
static void destroy(Impl *);
};
support::copied_ptr<Impl, MemoryTraits> pimpl_;
+
+ ///
+ biblio::CiteEngine cite_engine_;
};
} // namespace lyx
Modified: lyx-devel/trunk/src/frontends/controllers/ControlBibtex.C
URL:
http://www.lyx.org/trac/file/lyx-devel/trunk/src/frontends/controllers/ControlBibtex.C?rev=17537
==============================================================================
--- lyx-devel/trunk/src/frontends/controllers/ControlBibtex.C (original)
+++ lyx-devel/trunk/src/frontends/controllers/ControlBibtex.C Sun Mar 25
03:12:38 2007
@@ -133,7 +133,7 @@
{
// 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) {
Modified: lyx-devel/trunk/src/frontends/controllers/biblio.C
URL:
http://www.lyx.org/trac/file/lyx-devel/trunk/src/frontends/controllers/biblio.C?rev=17537
==============================================================================
--- lyx-devel/trunk/src/frontends/controllers/biblio.C (original)
+++ lyx-devel/trunk/src/frontends/controllers/biblio.C Sun Mar 25
03:12:38 2007
@@ -111,7 +111,7 @@
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))
@@ -688,7 +688,7 @@
}
-vector<CiteStyle> const getCiteStyles(CiteEngine_enum const & engine)
+vector<CiteStyle> const getCiteStyles(CiteEngine const engine)
{
unsigned int nStyles = 0;
unsigned int start = 0;
Modified: lyx-devel/trunk/src/frontends/controllers/biblio.h
URL:
http://www.lyx.org/trac/file/lyx-devel/trunk/src/frontends/controllers/biblio.h?rev=17537
==============================================================================
--- lyx-devel/trunk/src/frontends/controllers/biblio.h (original)
+++ lyx-devel/trunk/src/frontends/controllers/biblio.h Sun Mar 25
03:12:38 2007
@@ -23,7 +23,12 @@
namespace lyx {
namespace biblio {
-class CiteEngine_enum;
+enum CiteEngine {
+ ENGINE_BASIC,
+ ENGINE_NATBIB_AUTHORYEAR,
+ ENGINE_NATBIB_NUMERICAL,
+ ENGINE_JURABIB
+};
enum CiteStyle {
@@ -55,7 +60,7 @@
* 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;
@@ -121,7 +126,7 @@
/// 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.
Modified: lyx-devel/trunk/src/frontends/qt4/QDocumentDialog.C
URL:
http://www.lyx.org/trac/file/lyx-devel/trunk/src/frontends/qt4/QDocumentDialog.C?rev=17537
==============================================================================
--- lyx-devel/trunk/src/frontends/qt4/QDocumentDialog.C (original)
+++ lyx-devel/trunk/src/frontends/qt4/QDocumentDialog.C Sun Mar 25
03:12:38 2007
@@ -35,6 +35,7 @@
#include "tex-strings.h" // tex_graphics
#include "Spacing.h"
+#include "frontends/controllers/biblio.h"
#include "controllers/ControlDocument.h"
#include "controllers/frnt_lang.h"
@@ -642,18 +643,18 @@
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();
@@ -920,17 +921,17 @@
// 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);
Modified: lyx-devel/trunk/src/insets/insetcite.C
URL:
http://www.lyx.org/trac/file/lyx-devel/trunk/src/insets/insetcite.C?rev=17537
==============================================================================
--- lyx-devel/trunk/src/insets/insetcite.C (original)
+++ lyx-devel/trunk/src/insets/insetcite.C Sun Mar 25 03:12:38 2007
@@ -317,7 +317,7 @@
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")),
@@ -446,7 +446,7 @@
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:
Modified: lyx-devel/trunk/src/insets/insetcite.h
URL:
http://www.lyx.org/trac/file/lyx-devel/trunk/src/insets/insetcite.h?rev=17537
==============================================================================
--- lyx-devel/trunk/src/insets/insetcite.h (original)
+++ lyx-devel/trunk/src/insets/insetcite.h Sun Mar 25 03:12:38 2007
@@ -15,7 +15,8 @@
#include "insetcommand.h"
-#include "bufferparams.h"
+
+#include "frontends/controllers/biblio.h"
namespace lyx {
Modified: lyx-devel/trunk/src/lyxfunc.C
URL: http://www.lyx.org/trac/file/lyx-devel/trunk/src/lyxfunc.C?rev=17537
==============================================================================
--- lyx-devel/trunk/src/lyxfunc.C (original)
+++ lyx-devel/trunk/src/lyxfunc.C Sun Mar 25 03:12:38 2007
@@ -1623,7 +1623,7 @@
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);
@@ -1637,7 +1637,7 @@
<< (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();
Patch against 1.4svn attached. OK?
Jürgen
------------------------------------------------------------------------
Index: src/insets/insetcite.C
===================================================================
--- src/insets/insetcite.C (Revision 17544)
+++ src/insets/insetcite.C (Arbeitskopie)
@@ -402,7 +402,7 @@
int InsetCitation::latex(Buffer const & buffer, ostream & os,
OutputParams const &) const
{
- biblio::CiteEngine const cite_engine = buffer.params().cite_engine;
+ biblio::CiteEngine const cite_engine = buffer.params().getEngine();
string const cite_str =
biblio::asValidLatexCommand(getCmdName(), cite_engine);