another fix related to bug 605; fix toggling of optarg inset

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8685 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Jean-Marc Lasgouttes 2004-04-20 12:46:15 +00:00
parent d6ce49384f
commit 0aea071705
3 changed files with 35 additions and 13 deletions

View File

@ -1,3 +1,13 @@
2004-04-19 Jean-Marc Lasgouttes <lasgouttes@lyx.org>
* insetoptarg.h: remove the editable() method (InsetCollapsable
does it better already)
* insetbibtex.C (normalize_name): new helper function. Changes the
name to be suitable to use in a latex file (relative to master
buffer if necessary).
(latex): use normalize_name.
2004-04-20 Angus Leeming <leeming@lyx.org>
* render_preview.C (startLoading): remove lyxerr statement.

View File

@ -29,6 +29,7 @@
#include <fstream>
using lyx::support::AbsolutePath;
using lyx::support::ascii_lowercase;
using lyx::support::ChangeExtension;
using lyx::support::contains;
@ -36,6 +37,7 @@ using lyx::support::findtexfile;
using lyx::support::IsFileReadable;
using lyx::support::ltrim;
using lyx::support::MakeAbsPath;
using lyx::support::MakeRelPath;
using lyx::support::Path;
using lyx::support::prefixIs;
using lyx::support::rtrim;
@ -91,6 +93,23 @@ string const InsetBibtex::getScreenLabel(Buffer const &) const
}
namespace {
string normalize_name(Buffer const & buffer, OutputParams const & runparams,
string const & name, string const & ext)
{
string const fname = MakeAbsPath(name, buffer.filePath());
if (AbsolutePath(name) || !IsFileReadable(fname + ext))
return name;
else if (!runparams.nice)
return fname;
else
return MakeRelPath(fname, buffer.getMasterBuffer()->filePath());
}
}
int InsetBibtex::latex(Buffer const & buffer, ostream & os,
OutputParams const & runparams) const
{
@ -113,11 +132,8 @@ int InsetBibtex::latex(Buffer const & buffer, ostream & os,
// have a comma-separated list of bibliographies
string db_out;
while (!adb.empty()) {
if (!runparams.nice &&
IsFileReadable(MakeAbsPath(adb, buffer.filePath())+".bib"))
adb = os::external_path(MakeAbsPath(adb,
buffer.filePath()));
db_out += adb;
db_out += os::external_path(normalize_name(buffer, runparams,
adb, ".bib"));
db_out += ',';
db_in = split(db_in, adb,',');
}
@ -136,13 +152,11 @@ int InsetBibtex::latex(Buffer const & buffer, ostream & os,
// line count
int i = 0;
if (!runparams.nice
&& IsFileReadable(MakeAbsPath(style, buffer.filePath()) + ".bst")) {
style = MakeAbsPath(style, buffer.filePath());
}
if (!style.empty()) {
os << "\\bibliographystyle{" << style << "}\n";
os << "\\bibliographystyle{"
<< os::external_path(normalize_name(buffer, runparams,
style, ".bst"))
<< "}\n";
i += 1;
}

View File

@ -27,8 +27,6 @@ public:
InsetOptArg(InsetOptArg const &);
/// make a duplicate of this inset
virtual std::auto_ptr<InsetBase> clone() const;
/// this inset is editable
EDITABLE editable() const { return IS_EDITABLE; }
/// code of the inset
InsetOld::Code lyxCode() const { return InsetOld::OPTARG_CODE; }
/// return an message upon editing