mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-23 13:31:49 +00:00
Move the biblio::CiteEngine enum into bufferparams.h to minimize
dependencies on frontends/controllers/biblio.h. Small clean up of the existing biblio.h interfaces. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8753 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
8424214209
commit
ea6a5fe92d
@ -1,3 +1,10 @@
|
||||
2004-05-14 Angus Leeming <leeming@lyx.org>
|
||||
|
||||
* bufferparams.h: move biblio::CiteEngine enum here to minimize
|
||||
dependencies on src/frontends/controllers/biblio.h. Define a
|
||||
CiteEngine_enum wrapper class to enable the enum to be forward
|
||||
declared.
|
||||
|
||||
2004-05-12 Angus Leeming <leeming@lyx.org>
|
||||
|
||||
* buffer.C: up LYX_FORMAT to 234.
|
||||
|
@ -20,8 +20,6 @@
|
||||
|
||||
#include "insets/insetquotes.h"
|
||||
|
||||
#include "frontends/controllers/biblio.h"
|
||||
|
||||
#include "support/copied_ptr.h"
|
||||
#include "support/types.h"
|
||||
|
||||
@ -39,6 +37,25 @@ class VSpace;
|
||||
struct 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_; }
|
||||
};
|
||||
|
||||
} // namespace biblio
|
||||
|
||||
|
||||
/** Buffer parameters.
|
||||
* This class contains all the parameters for this a buffer uses. Some
|
||||
* work needs to be done on this class to make it nice. Now everything
|
||||
|
@ -1,3 +1,13 @@
|
||||
2004-05-14 Angus Leeming <leeming@lyx.org>
|
||||
|
||||
* ControlCitation.[Ch]: small changes to use the CiteEngine_enum
|
||||
wrapper class.
|
||||
|
||||
* biblio.[Ch]: move the CiteEngine enum into bufferparams.h to
|
||||
minimize dependencies on this file.
|
||||
(getCitationStyle, getCiteCommand): removed. Functionality moved
|
||||
into the CitationStyle struct.
|
||||
|
||||
2004-05-12 Angus Leeming <leeming@lyx.org>
|
||||
|
||||
* biblio.C (getEngine): reduced to the trivial.
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include "ControlCitation.h"
|
||||
|
||||
#include "buffer.h"
|
||||
#include "bufferparams.h"
|
||||
|
||||
|
||||
using std::string;
|
||||
@ -73,7 +74,7 @@ biblio::InfoMap const & ControlCitation::bibkeysInfo() const
|
||||
}
|
||||
|
||||
|
||||
biblio::CiteEngine ControlCitation::getEngine() const
|
||||
biblio::CiteEngine_enum ControlCitation::getEngine() const
|
||||
{
|
||||
return biblio::getEngine(kernel().buffer());
|
||||
}
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
|
||||
#include "ControlCommand.h"
|
||||
#include "biblio.h" // biblio::InfoMap
|
||||
#include "biblio.h"
|
||||
|
||||
/** A controller for Citation dialogs.
|
||||
*/
|
||||
@ -37,7 +37,7 @@ public:
|
||||
biblio::InfoMap const & bibkeysInfo() const;
|
||||
|
||||
///
|
||||
biblio::CiteEngine getEngine() const;
|
||||
biblio::CiteEngine_enum getEngine() const;
|
||||
|
||||
/// Possible citations based on this key
|
||||
std::vector<std::string> const getCiteStrings(std::string const & key) const;
|
||||
|
@ -513,21 +513,21 @@ unsigned int const nCiteStylesUCase =
|
||||
} // namespace anon
|
||||
|
||||
|
||||
CitationStyle const getCitationStyle(string const & command)
|
||||
CitationStyle::CitationStyle(string const & command)
|
||||
: style(CITE), full(false), forceUCase(false)
|
||||
{
|
||||
if (command.empty()) return CitationStyle();
|
||||
if (command.empty())
|
||||
return;
|
||||
|
||||
CitationStyle cs;
|
||||
string cmd = command;
|
||||
|
||||
if (cmd[0] == 'C') {
|
||||
cs.forceUCase = true;
|
||||
forceUCase = true;
|
||||
cmd[0] = 'c';
|
||||
}
|
||||
|
||||
size_t n = cmd.size() - 1;
|
||||
if (cmd[n] == '*') {
|
||||
cs.full = true;
|
||||
string::size_type const n = cmd.size() - 1;
|
||||
if (cmd != "cite" && cmd[n] == '*') {
|
||||
full = true;
|
||||
cmd = cmd.substr(0,n);
|
||||
}
|
||||
|
||||
@ -536,25 +536,23 @@ CitationStyle const getCitationStyle(string const & command)
|
||||
|
||||
if (ptr != last) {
|
||||
size_t idx = ptr - citeCommands;
|
||||
cs.style = citeStyles[idx];
|
||||
style = citeStyles[idx];
|
||||
}
|
||||
|
||||
return cs;
|
||||
}
|
||||
|
||||
|
||||
string const getCiteCommand(CiteStyle command, bool full, bool forceUCase)
|
||||
string const CitationStyle::asLatexStr() const
|
||||
{
|
||||
string cite = citeCommands[command];
|
||||
string cite = citeCommands[style];
|
||||
if (full) {
|
||||
CiteStyle const * last = citeStylesFull + nCiteStylesFull;
|
||||
if (std::find(citeStylesFull, last, command) != last)
|
||||
if (std::find(citeStylesFull, last, style) != last)
|
||||
cite += '*';
|
||||
}
|
||||
|
||||
if (forceUCase) {
|
||||
CiteStyle const * last = citeStylesUCase + nCiteStylesUCase;
|
||||
if (std::find(citeStylesUCase, last, command) != last)
|
||||
if (std::find(citeStylesUCase, last, style) != last)
|
||||
cite[0] = 'C';
|
||||
}
|
||||
|
||||
@ -562,13 +560,13 @@ string const getCiteCommand(CiteStyle command, bool full, bool forceUCase)
|
||||
}
|
||||
|
||||
|
||||
CiteEngine getEngine(Buffer const & buffer)
|
||||
CiteEngine_enum getEngine(Buffer const & buffer)
|
||||
{
|
||||
return buffer.params().cite_engine;
|
||||
}
|
||||
|
||||
|
||||
vector<CiteStyle> const getCiteStyles(CiteEngine engine)
|
||||
vector<CiteStyle> const getCiteStyles(CiteEngine_enum const & engine)
|
||||
{
|
||||
unsigned int nStyles = 0;
|
||||
unsigned int start = 0;
|
||||
|
@ -21,14 +21,9 @@ class Buffer;
|
||||
/** Functions of use to citation and bibtex GUI controllers and views */
|
||||
namespace biblio {
|
||||
|
||||
enum CiteEngine {
|
||||
ENGINE_BASIC,
|
||||
ENGINE_NATBIB_AUTHORYEAR,
|
||||
ENGINE_NATBIB_NUMERICAL,
|
||||
ENGINE_JURABIB
|
||||
};
|
||||
class CiteEngine_enum;
|
||||
|
||||
CiteEngine getEngine(Buffer const &);
|
||||
CiteEngine_enum getEngine(Buffer const &);
|
||||
|
||||
|
||||
enum CiteStyle {
|
||||
@ -98,10 +93,15 @@ searchKeys(InfoMap const & map,
|
||||
Direction,
|
||||
bool caseSensitive=false);
|
||||
|
||||
/// Type returned by getCitationStyle, below
|
||||
|
||||
struct CitationStyle {
|
||||
///
|
||||
CitationStyle() : style(CITE), full(false), forceUCase(false) {}
|
||||
CitationStyle(CiteStyle s = CITE, bool f = false, bool force = false)
|
||||
: style(s), full(f), forceUCase(force) {}
|
||||
/// \param latex_str a LaTeX command, "cite", "Citep*", etc
|
||||
CitationStyle(std::string const & latex_str);
|
||||
///
|
||||
std::string const asLatexStr() const;
|
||||
///
|
||||
CiteStyle style;
|
||||
///
|
||||
@ -110,20 +110,9 @@ struct CitationStyle {
|
||||
bool forceUCase;
|
||||
};
|
||||
|
||||
/// Given the LaTeX command, return the appropriate CitationStyle
|
||||
CitationStyle const getCitationStyle(std::string const & command);
|
||||
|
||||
/** Returns the LaTeX citation command
|
||||
|
||||
User supplies :
|
||||
The CiteStyle enum,
|
||||
a flag forcing the full author list,
|
||||
a flag forcing upper case, e.g. "della Casa" becomes "Della Case"
|
||||
*/
|
||||
std::string const getCiteCommand(CiteStyle, bool full, bool forceUCase);
|
||||
|
||||
/// Returns a vector of available Citation styles.
|
||||
std::vector<CiteStyle> const getCiteStyles(CiteEngine);
|
||||
std::vector<CiteStyle> const getCiteStyles(CiteEngine_enum const &);
|
||||
|
||||
/**
|
||||
"Translates" the available Citation Styles into strings for this key.
|
||||
|
@ -1,3 +1,7 @@
|
||||
2004-05-14 Angus Leeming <leeming@lyx.org>
|
||||
|
||||
* QCitation.C: small changes due to the changes in biblio.h.
|
||||
|
||||
2004-05-12 Angus Leeming <leeming@lyx.org>
|
||||
|
||||
* QDocument.C (apply, update): get, set data with
|
||||
|
@ -11,6 +11,7 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include "bufferparams.h"
|
||||
#include "debug.h"
|
||||
#include "ui/QCitationFindDialogBase.h"
|
||||
#include "QCitationDialog.h"
|
||||
@ -55,7 +56,8 @@ void QCitation::apply()
|
||||
bool const force = dialog_->forceuppercaseCB->isChecked();
|
||||
|
||||
string const command =
|
||||
biblio::getCiteCommand(styles[choice], full, force);
|
||||
biblio::CitationStyle(styles[choice], full, force)
|
||||
.asLatexStr();
|
||||
|
||||
controller().params().setCmdName(command);
|
||||
controller().params().setContents(getStringFromVector(citekeys));
|
||||
@ -158,7 +160,7 @@ void QCitation::updateStyle()
|
||||
// Find the style of the citekeys
|
||||
vector<biblio::CiteStyle> const & styles =
|
||||
ControlCitation::getCiteStyles();
|
||||
biblio::CitationStyle cs = biblio::getCitationStyle(command);
|
||||
biblio::CitationStyle const cs(command);
|
||||
|
||||
vector<biblio::CiteStyle>::const_iterator cit =
|
||||
find(styles.begin(), styles.end(), cs.style);
|
||||
|
@ -1,3 +1,7 @@
|
||||
2004-05-14 Angus Leeming <leeming@lyx.org>
|
||||
|
||||
* FormCitation.C: small changes due to the changes in biblio.h.
|
||||
|
||||
2004-05-12 Angus Leeming <leeming@lyx.org>
|
||||
|
||||
* FormDocument.[Ch], forms/form_document.fd: get, set data with
|
||||
|
@ -19,6 +19,8 @@
|
||||
#include "xforms_helpers.h"
|
||||
#include "xformsBC.h"
|
||||
|
||||
#include "bufferparams.h"
|
||||
|
||||
#include "support/lstrings.h"
|
||||
|
||||
#include "lyx_forms.h"
|
||||
@ -69,7 +71,7 @@ void updateStyle(FD_citation * dialog, string command)
|
||||
// Find the style of the citekeys
|
||||
vector<biblio::CiteStyle> const & styles =
|
||||
ControlCitation::getCiteStyles();
|
||||
biblio::CitationStyle cs = biblio::getCitationStyle(command);
|
||||
biblio::CitationStyle const cs(command);
|
||||
|
||||
vector<biblio::CiteStyle>::const_iterator cit =
|
||||
find(styles.begin(), styles.end(), cs.style);
|
||||
@ -109,7 +111,10 @@ void FormCitation::apply()
|
||||
bool const force =
|
||||
fl_get_button(dialog_->check_force_uppercase);
|
||||
|
||||
command = biblio::getCiteCommand(styles[choice], full, force);
|
||||
command =
|
||||
biblio::CitationStyle(styles[choice], full, force)
|
||||
.asLatexStr();
|
||||
|
||||
}
|
||||
|
||||
controller().params().setCmdName(command);
|
||||
|
@ -20,6 +20,8 @@
|
||||
#include "funcrequest.h"
|
||||
#include "LaTeXFeatures.h"
|
||||
|
||||
#include "frontends/controllers/biblio.h"
|
||||
|
||||
#include "support/lstrings.h"
|
||||
|
||||
using lyx::support::ascii_lowercase;
|
||||
|
@ -15,7 +15,8 @@
|
||||
|
||||
|
||||
#include "insetcommand.h"
|
||||
#include "frontends/controllers/biblio.h"
|
||||
#include "bufferparams.h"
|
||||
|
||||
|
||||
/** Used to insert citations
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user