mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-14 17:39:58 +00:00
Fix bug 2868
* src/insets/insetgraphics.C (findTargetFormat): return pdf for vector graphics * src/format.h (Flags): new enum describing format flags (flags_): new member variable for format flags (vectorFormat): new, tell whether a format can contain vector graphics * src/format.C: adjust to flags changes * src/frontends/qt2QPrefsDialog.C (QPrefsDialog::QPrefsDialog): handle new vector flag (QPrefsDialog::switch_format): ditto (QPrefsDialog::updateFormatsButtons): ditto (QPrefsDialog::new_format): ditto (QPrefsDialog::modify_format): ditto * src/frontends/qt2/ui/QPrefFileformatsModule.ui (vectorCB): new checkbox for vector flag * src/lyxrc.C (LyXRC::read): read vector flag (LyXRC::write): write vector flag * lib/doc/Customization.lyx: document format flags * lib/configure.py (checkFormatEntries): Add vector flag to some formats git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_1_4_X@16432 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
382e7201b0
commit
125e638bdb
@ -240,13 +240,13 @@ def checkLatex(dtl_tools):
|
|||||||
def checkFormatEntries(dtl_tools):
|
def checkFormatEntries(dtl_tools):
|
||||||
''' Check all formats (\Format entries) '''
|
''' Check all formats (\Format entries) '''
|
||||||
checkViewer('a Tgif viewer and editor', ['tgif'],
|
checkViewer('a Tgif viewer and editor', ['tgif'],
|
||||||
rc_entry = [r'\Format tgif obj Tgif "" "%%" "%%"'])
|
rc_entry = [r'\Format tgif obj Tgif "" "%%" "%%" "vector"'])
|
||||||
#
|
#
|
||||||
checkViewer('a FIG viewer and editor', ['xfig'],
|
checkViewer('a FIG viewer and editor', ['xfig'],
|
||||||
rc_entry = [r'\Format fig fig FIG "" "%%" "%%"'])
|
rc_entry = [r'\Format fig fig FIG "" "%%" "%%" "vector"'])
|
||||||
#
|
#
|
||||||
checkViewer('a Grace viewer and editor', ['xmgrace'],
|
checkViewer('a Grace viewer and editor', ['xmgrace'],
|
||||||
rc_entry = [r'\Format agr agr Grace "" "%%" "%%"'])
|
rc_entry = [r'\Format agr agr Grace "" "%%" "%%" "vector"'])
|
||||||
#
|
#
|
||||||
checkViewer('a FEN viewer and editor', ['xboard -lpf $$i -mode EditPosition'],
|
checkViewer('a FEN viewer and editor', ['xboard -lpf $$i -mode EditPosition'],
|
||||||
rc_entry = [r'\Format fen fen FEN "" "%%" "%%"'])
|
rc_entry = [r'\Format fen fen FEN "" "%%" "%%"'])
|
||||||
@ -284,38 +284,38 @@ def checkFormatEntries(dtl_tools):
|
|||||||
#checkProg('a Postscript interpreter', ['gs'],
|
#checkProg('a Postscript interpreter', ['gs'],
|
||||||
# rc_entry = [ r'\ps_command "%%"' ])
|
# rc_entry = [ r'\ps_command "%%"' ])
|
||||||
checkViewer('a Postscript previewer', ['gv', 'ghostview -swap', 'kghostview'],
|
checkViewer('a Postscript previewer', ['gv', 'ghostview -swap', 'kghostview'],
|
||||||
rc_entry = [r'''\Format eps eps EPS "" "%%" ""
|
rc_entry = [r'''\Format eps eps EPS "" "%%" "" "vector"
|
||||||
\Format ps ps Postscript t "%%" ""'''])
|
\Format ps ps Postscript t "%%" "" "vector"'''])
|
||||||
#
|
#
|
||||||
checkViewer('a PDF previewer', ['acrobat', 'acroread', 'gv', 'ghostview', \
|
checkViewer('a PDF previewer', ['acrobat', 'acroread', 'gv', 'ghostview', \
|
||||||
'xpdf', 'kpdf', 'kghostview'],
|
'xpdf', 'kpdf', 'kghostview'],
|
||||||
rc_entry = [r'''\Format pdf pdf "PDF (ps2pdf)" P "%%" ""
|
rc_entry = [r'''\Format pdf pdf "PDF (ps2pdf)" P "%%" "" "vector"
|
||||||
\Format pdf2 pdf "PDF (pdflatex)" F "%%" ""
|
\Format pdf2 pdf "PDF (pdflatex)" F "%%" "" "vector"
|
||||||
\Format pdf3 pdf "PDF (dvipdfm)" m "%%" ""'''])
|
\Format pdf3 pdf "PDF (dvipdfm)" m "%%" "" "vector"'''])
|
||||||
#
|
#
|
||||||
checkViewer('a DVI previewer', ['xdvi', 'kdvi'],
|
checkViewer('a DVI previewer', ['xdvi', 'kdvi'],
|
||||||
rc_entry = [r'\Format dvi dvi DVI D "%%" ""'])
|
rc_entry = [r'\Format dvi dvi DVI D "%%" "" "vector"'])
|
||||||
if dtl_tools:
|
if dtl_tools:
|
||||||
# Windows only: DraftDVI
|
# Windows only: DraftDVI
|
||||||
addToRC(r'\Format dvi2 dvi DraftDVI "" "" ""')
|
addToRC(r'\Format dvi2 dvi DraftDVI "" "" "vector"')
|
||||||
#
|
#
|
||||||
checkViewer('a HTML previewer', ['mozilla file://$$p$$i', 'netscape'],
|
checkViewer('a HTML previewer', ['mozilla file://$$p$$i', 'netscape'],
|
||||||
rc_entry = [r'\Format html html HTML H "%%" ""'])
|
rc_entry = [r'\Format html html HTML H "%%" ""'])
|
||||||
#
|
#
|
||||||
# entried that do not need checkProg
|
# entried that do not need checkProg
|
||||||
addToRC(r'''\Format date "" "date command" "" "" ""
|
addToRC(r'''\Format date "" "date command" "" "" "" ""
|
||||||
\Format fax "" Fax "" "" ""
|
\Format fax "" Fax "" "" "" ""
|
||||||
\Format lyx lyx LyX "" "" ""
|
\Format lyx lyx LyX "" "" "" ""
|
||||||
\Format lyx13x lyx13 "LyX 1.3.x" "" "" ""
|
\Format lyx13x lyx13 "LyX 1.3.x" "" "" "" ""
|
||||||
\Format lyxpreview lyxpreview "LyX Preview" "" "" ""
|
\Format lyxpreview lyxpreview "LyX Preview" "" "" "" ""
|
||||||
\Format pdftex pdftex_t PDFTEX "" "" ""
|
\Format pdftex pdftex_t PDFTEX "" "" "" ""
|
||||||
\Format program "" Program "" "" ""
|
\Format program "" Program "" "" "" ""
|
||||||
\Format pstex pstex_t PSTEX "" "" ""
|
\Format pstex pstex_t PSTEX "" "" "" ""
|
||||||
\Format rtf rtf "Rich Text Format" "" "" ""
|
\Format rtf rtf "Rich Text Format" "" "" "" "vector"
|
||||||
\Format sxw sxw "OpenOffice.Org Writer" O "" ""
|
\Format sxw sxw "OpenOffice.Org Writer" O "" "" "vector"
|
||||||
\Format wmf wmf "Windows Meta File" "" "" ""
|
\Format wmf wmf "Windows Meta File" "" "" "" "vector"
|
||||||
\Format word doc "MS Word" W "" ""
|
\Format word doc "MS Word" W "" "" "vector"
|
||||||
\Format wordhtml html "MS Word (HTML)" "" "" ""
|
\Format wordhtml html "MS Word (HTML)" "" "" "" ""
|
||||||
''')
|
''')
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#LyX 1.4.3svn created this file. For more info see http://www.lyx.org/
|
#LyX 1.4.3 created this file. For more info see http://www.lyx.org/
|
||||||
\lyxformat 245
|
\lyxformat 245
|
||||||
\begin_document
|
\begin_document
|
||||||
\begin_header
|
\begin_header
|
||||||
@ -1791,8 +1791,9 @@ P
|
|||||||
references:Conversion
|
references:Conversion
|
||||||
\family default
|
\family default
|
||||||
dialog.
|
dialog.
|
||||||
This does currently only work in the Windows® port of LyX, but it is planned
|
This does currently only work in the Windows® and Mac OS X ports of LyX,
|
||||||
to implement this feature on all other ports that can support it, too.
|
but it is planned to implement this feature on all other ports that can
|
||||||
|
support it, too.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
@ -1848,6 +1849,68 @@ For example, the file may reference other files with relative filenames,
|
|||||||
directory and may modify it in the process.
|
directory and may modify it in the process.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
Sometimes LyX needs to know a bit more about the properties of a format.
|
||||||
|
These bits can be specified with flags.
|
||||||
|
Currently there is only one flag, but more will be added in the future:
|
||||||
|
\end_layout
|
||||||
|
|
||||||
|
\begin_layout Standard
|
||||||
|
The
|
||||||
|
\family typewriter
|
||||||
|
vector
|
||||||
|
\family default
|
||||||
|
flag tells LyX whether a format can contain vector graphics.
|
||||||
|
This information is used to determine the target format of included graphics
|
||||||
|
for
|
||||||
|
\family typewriter
|
||||||
|
pdflatex
|
||||||
|
\family default
|
||||||
|
export.
|
||||||
|
Included graphics may need to be converted to either
|
||||||
|
\family typewriter
|
||||||
|
pdf
|
||||||
|
\family default
|
||||||
|
,
|
||||||
|
\family typewriter
|
||||||
|
png
|
||||||
|
\family default
|
||||||
|
or
|
||||||
|
\family typewriter
|
||||||
|
jpg
|
||||||
|
\family default
|
||||||
|
, since
|
||||||
|
\family typewriter
|
||||||
|
pdflatex
|
||||||
|
\family default
|
||||||
|
can not handle other image formats.
|
||||||
|
If an included graphic is not already in
|
||||||
|
\family typewriter
|
||||||
|
pdf
|
||||||
|
\family default
|
||||||
|
,
|
||||||
|
\family typewriter
|
||||||
|
png
|
||||||
|
\family default
|
||||||
|
or
|
||||||
|
\family typewriter
|
||||||
|
jpg
|
||||||
|
\family default
|
||||||
|
format it is converted to
|
||||||
|
\family typewriter
|
||||||
|
pdf
|
||||||
|
\family default
|
||||||
|
if the
|
||||||
|
\family typewriter
|
||||||
|
vector
|
||||||
|
\family default
|
||||||
|
flag of the format is set, and otherwise to
|
||||||
|
\family typewriter
|
||||||
|
png
|
||||||
|
\family default
|
||||||
|
.
|
||||||
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Section
|
\begin_layout Section
|
||||||
BibTeX and makeindex
|
BibTeX and makeindex
|
||||||
\end_layout
|
\end_layout
|
||||||
|
17
src/format.C
17
src/format.C
@ -93,8 +93,10 @@ bool operator<(Format const & a, Format const & b)
|
|||||||
}
|
}
|
||||||
|
|
||||||
Format::Format(string const & n, string const & e, string const & p,
|
Format::Format(string const & n, string const & e, string const & p,
|
||||||
string const & s, string const & v, string const & ed)
|
string const & s, string const & v, string const & ed,
|
||||||
: name_(n), extension_(e), prettyname_(p), shortcut_(s), viewer_(v), editor_(ed)
|
int flags)
|
||||||
|
: name_(n), extension_(e), prettyname_(p), shortcut_(s), viewer_(v),
|
||||||
|
editor_(ed), flags_(flags)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -208,22 +210,25 @@ int Formats::getNumber(string const & name) const
|
|||||||
void Formats::add(string const & name)
|
void Formats::add(string const & name)
|
||||||
{
|
{
|
||||||
if (!getFormat(name))
|
if (!getFormat(name))
|
||||||
add(name, name, name, string(), string(), string());
|
add(name, name, name, string(), string(), string(),
|
||||||
|
Format::none);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Formats::add(string const & name, string const & extension,
|
void Formats::add(string const & name, string const & extension,
|
||||||
string const & prettyname, string const & shortcut,
|
string const & prettyname, string const & shortcut,
|
||||||
string const & viewer, string const & editor)
|
string const & viewer, string const & editor,
|
||||||
|
int flags)
|
||||||
{
|
{
|
||||||
FormatList::iterator it =
|
FormatList::iterator it =
|
||||||
find_if(formatlist.begin(), formatlist.end(),
|
find_if(formatlist.begin(), formatlist.end(),
|
||||||
FormatNamesEqual(name));
|
FormatNamesEqual(name));
|
||||||
if (it == formatlist.end())
|
if (it == formatlist.end())
|
||||||
formatlist.push_back(Format(name, extension, prettyname,
|
formatlist.push_back(Format(name, extension, prettyname,
|
||||||
shortcut, viewer, editor));
|
shortcut, viewer, editor, flags));
|
||||||
else
|
else
|
||||||
*it = Format(name, extension, prettyname, shortcut, viewer, editor);
|
*it = Format(name, extension, prettyname, shortcut, viewer,
|
||||||
|
editor, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
19
src/format.h
19
src/format.h
@ -19,9 +19,16 @@ class Buffer;
|
|||||||
|
|
||||||
class Format {
|
class Format {
|
||||||
public:
|
public:
|
||||||
|
/// Flags for some format properties
|
||||||
|
enum Flags {
|
||||||
|
none = 0,
|
||||||
|
/// Set if this format can contain vector graphics.
|
||||||
|
vector = 1,
|
||||||
|
};
|
||||||
///
|
///
|
||||||
Format(std::string const & n, std::string const & e, std::string const & p,
|
Format(std::string const & n, std::string const & e, std::string const & p,
|
||||||
std::string const & s, std::string const & v, std::string const & ed);
|
std::string const & s, std::string const & v, std::string const & ed,
|
||||||
|
int);
|
||||||
///
|
///
|
||||||
bool dummy() const;
|
bool dummy() const;
|
||||||
///
|
///
|
||||||
@ -60,6 +67,10 @@ public:
|
|||||||
void setEditor(std::string const & v) {
|
void setEditor(std::string const & v) {
|
||||||
editor_ = v;
|
editor_ = v;
|
||||||
}
|
}
|
||||||
|
///
|
||||||
|
bool vectorFormat() const {
|
||||||
|
return flags_ & vector;
|
||||||
|
}
|
||||||
private:
|
private:
|
||||||
std::string name_;
|
std::string name_;
|
||||||
///
|
///
|
||||||
@ -72,11 +83,14 @@ private:
|
|||||||
std::string viewer_;
|
std::string viewer_;
|
||||||
///
|
///
|
||||||
std::string editor_;
|
std::string editor_;
|
||||||
|
///
|
||||||
|
int flags_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
bool operator<(Format const & a, Format const & b);
|
bool operator<(Format const & a, Format const & b);
|
||||||
|
|
||||||
|
|
||||||
///
|
///
|
||||||
class Formats {
|
class Formats {
|
||||||
public:
|
public:
|
||||||
@ -107,7 +121,8 @@ public:
|
|||||||
///
|
///
|
||||||
void add(std::string const & name, std::string const & extension,
|
void add(std::string const & name, std::string const & extension,
|
||||||
std::string const & prettyname, std::string const & shortcut,
|
std::string const & prettyname, std::string const & shortcut,
|
||||||
std::string const & viewer, std::string const & editor);
|
std::string const & viewer, std::string const & editor,
|
||||||
|
int flags);
|
||||||
///
|
///
|
||||||
void erase(std::string const & name);
|
void erase(std::string const & name);
|
||||||
///
|
///
|
||||||
|
@ -187,6 +187,7 @@ QPrefsDialog::QPrefsDialog(QPrefs * form)
|
|||||||
connect(fileformatsModule->extensionED, SIGNAL(textChanged(const QString&)), this, SLOT(fileformat_changed()));
|
connect(fileformatsModule->extensionED, SIGNAL(textChanged(const QString&)), this, SLOT(fileformat_changed()));
|
||||||
connect(fileformatsModule->viewerED, SIGNAL(textChanged(const QString&)), this, SLOT(fileformat_changed()));
|
connect(fileformatsModule->viewerED, SIGNAL(textChanged(const QString&)), this, SLOT(fileformat_changed()));
|
||||||
connect(fileformatsModule->editorED, SIGNAL(textChanged(const QString&)), this, SLOT(fileformat_changed()));
|
connect(fileformatsModule->editorED, SIGNAL(textChanged(const QString&)), this, SLOT(fileformat_changed()));
|
||||||
|
connect(fileformatsModule->vectorCB, SIGNAL(toggled(bool)), this, SLOT(fileformat_changed()));
|
||||||
|
|
||||||
connect(convertersModule->converterNewPB, SIGNAL(clicked()), this, SLOT(new_converter()));
|
connect(convertersModule->converterNewPB, SIGNAL(clicked()), this, SLOT(new_converter()));
|
||||||
connect(convertersModule->converterRemovePB, SIGNAL(clicked()), this, SLOT(remove_converter()));
|
connect(convertersModule->converterRemovePB, SIGNAL(clicked()), this, SLOT(remove_converter()));
|
||||||
@ -727,6 +728,7 @@ void QPrefsDialog::switch_format(int nr)
|
|||||||
fileformatsModule->shortcutED->setText(toqstr(f.shortcut()));
|
fileformatsModule->shortcutED->setText(toqstr(f.shortcut()));
|
||||||
fileformatsModule->viewerED->setText(toqstr(f.viewer()));
|
fileformatsModule->viewerED->setText(toqstr(f.viewer()));
|
||||||
fileformatsModule->editorED->setText(toqstr(f.editor()));
|
fileformatsModule->editorED->setText(toqstr(f.editor()));
|
||||||
|
fileformatsModule->vectorCB->setChecked(f.vectorFormat());
|
||||||
fileformatsModule->formatRemovePB->setEnabled(
|
fileformatsModule->formatRemovePB->setEnabled(
|
||||||
!form_->converters().formatIsUsed(f.name()));
|
!form_->converters().formatIsUsed(f.name()));
|
||||||
|
|
||||||
@ -768,16 +770,18 @@ void QPrefsDialog::updateFormatsButtons()
|
|||||||
string const old_extension(f.extension());
|
string const old_extension(f.extension());
|
||||||
string const old_viewer(f.viewer());
|
string const old_viewer(f.viewer());
|
||||||
string const old_editor(f.editor());
|
string const old_editor(f.editor());
|
||||||
|
bool const old_vector(f.vectorFormat());
|
||||||
|
|
||||||
string const new_pretty(fromqstr(gui_name));
|
string const new_pretty(fromqstr(gui_name));
|
||||||
string const new_shortcut(fromqstr(fileformatsModule->shortcutED->text()));
|
string const new_shortcut(fromqstr(fileformatsModule->shortcutED->text()));
|
||||||
string const new_extension(fromqstr(fileformatsModule->extensionED->text()));
|
string const new_extension(fromqstr(fileformatsModule->extensionED->text()));
|
||||||
string const new_viewer(fromqstr(fileformatsModule->viewerED->text()));
|
string const new_viewer(fromqstr(fileformatsModule->viewerED->text()));
|
||||||
string const new_editor(fromqstr(fileformatsModule->editorED->text()));
|
string const new_editor(fromqstr(fileformatsModule->editorED->text()));
|
||||||
|
bool const new_vector(fileformatsModule->vectorCB->isChecked());
|
||||||
|
|
||||||
bool modified = ((old_pretty != new_pretty) || (old_shortcut != new_shortcut)
|
bool modified = ((old_pretty != new_pretty) || (old_shortcut != new_shortcut)
|
||||||
|| (old_extension != new_extension) || (old_viewer != new_viewer)
|
|| (old_extension != new_extension) || (old_viewer != new_viewer)
|
||||||
|| (old_editor != new_editor));
|
|| old_editor != new_editor || old_vector != new_vector);
|
||||||
|
|
||||||
fileformatsModule->formatModifyPB->setEnabled(
|
fileformatsModule->formatModifyPB->setEnabled(
|
||||||
valid && known && modified && !known_otherwise);
|
valid && known && modified && !known_otherwise);
|
||||||
@ -794,8 +798,12 @@ void QPrefsDialog::new_format()
|
|||||||
string const shortcut = fromqstr(fileformatsModule->shortcutED->text());
|
string const shortcut = fromqstr(fileformatsModule->shortcutED->text());
|
||||||
string const viewer = fromqstr(fileformatsModule->viewerED->text());
|
string const viewer = fromqstr(fileformatsModule->viewerED->text());
|
||||||
string const editor = fromqstr(fileformatsModule->editorED->text());
|
string const editor = fromqstr(fileformatsModule->editorED->text());
|
||||||
|
int flags = Format::none;
|
||||||
|
if (fileformatsModule->vectorCB->isChecked())
|
||||||
|
flags |= Format::vector;
|
||||||
|
|
||||||
form_->formats().add(name, extension, prettyname, shortcut, viewer, editor);
|
form_->formats().add(name, extension, prettyname, shortcut, viewer,
|
||||||
|
editor, flags);
|
||||||
form_->formats().sort();
|
form_->formats().sort();
|
||||||
updateFormats();
|
updateFormats();
|
||||||
fileformatsModule->formatsLB->setCurrentItem(form_->formats().getNumber(name));
|
fileformatsModule->formatsLB->setCurrentItem(form_->formats().getNumber(name));
|
||||||
@ -823,8 +831,12 @@ void QPrefsDialog::modify_format()
|
|||||||
string const shortcut = fromqstr(fileformatsModule->shortcutED->text());
|
string const shortcut = fromqstr(fileformatsModule->shortcutED->text());
|
||||||
string const viewer = fromqstr(fileformatsModule->viewerED->text());
|
string const viewer = fromqstr(fileformatsModule->viewerED->text());
|
||||||
string const editor = fromqstr(fileformatsModule->editorED->text());
|
string const editor = fromqstr(fileformatsModule->editorED->text());
|
||||||
|
int flags = Format::none;
|
||||||
|
if (fileformatsModule->vectorCB->isChecked())
|
||||||
|
flags |= Format::vector;
|
||||||
|
|
||||||
form_->formats().add(name, extension, prettyname, shortcut, viewer, editor);
|
form_->formats().add(name, extension, prettyname, shortcut, viewer,
|
||||||
|
editor, flags);
|
||||||
form_->formats().sort();
|
form_->formats().sort();
|
||||||
|
|
||||||
fileformatsModule->formatsLB->setUpdatesEnabled(false);
|
fileformatsModule->formatsLB->setUpdatesEnabled(false);
|
||||||
|
@ -59,6 +59,21 @@
|
|||||||
<cstring>editorED</cstring>
|
<cstring>editorED</cstring>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
|
<widget row="7" column="1" >
|
||||||
|
<class>QCheckBox</class>
|
||||||
|
<property stdset="1">
|
||||||
|
<name>name</name>
|
||||||
|
<cstring>vectorCB</cstring>
|
||||||
|
</property>
|
||||||
|
<property stdset="1">
|
||||||
|
<name>text</name>
|
||||||
|
<string>Vector graphi&cs format</string>
|
||||||
|
</property>
|
||||||
|
<property>
|
||||||
|
<name>toolTip</name>
|
||||||
|
<string>Tell whether this format can contain vector graphics.</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
<widget row="2" column="1" >
|
<widget row="2" column="1" >
|
||||||
<class>QLineEdit</class>
|
<class>QLineEdit</class>
|
||||||
<property stdset="1">
|
<property stdset="1">
|
||||||
@ -402,5 +417,6 @@
|
|||||||
<tabstop>extensionED</tabstop>
|
<tabstop>extensionED</tabstop>
|
||||||
<tabstop>viewerED</tabstop>
|
<tabstop>viewerED</tabstop>
|
||||||
<tabstop>editorED</tabstop>
|
<tabstop>editorED</tabstop>
|
||||||
|
<tabstop>vectorCB</tabstop>
|
||||||
</tabstops>
|
</tabstops>
|
||||||
</UI>
|
</UI>
|
||||||
|
@ -1309,6 +1309,7 @@ void FormPreferences::Formats::build()
|
|||||||
setPrehandler(dialog_->input_extension);
|
setPrehandler(dialog_->input_extension);
|
||||||
setPrehandler(dialog_->input_viewer);
|
setPrehandler(dialog_->input_viewer);
|
||||||
setPrehandler(dialog_->input_editor);
|
setPrehandler(dialog_->input_editor);
|
||||||
|
setPrehandler(dialog_->check_vector);
|
||||||
setPrehandler(dialog_->input_shrtcut);
|
setPrehandler(dialog_->input_shrtcut);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1338,6 +1339,9 @@ FormPreferences::Formats::feedback(FL_OBJECT const * const ob) const
|
|||||||
if (ob == dialog_->input_editor)
|
if (ob == dialog_->input_editor)
|
||||||
return _("The command used to launch the editor application.");
|
return _("The command used to launch the editor application.");
|
||||||
|
|
||||||
|
if (ob == dialog_->check_vector)
|
||||||
|
return _("Tell whether this format can contain vector graphics.");
|
||||||
|
|
||||||
if (ob == dialog_->button_delete)
|
if (ob == dialog_->button_delete)
|
||||||
return _("Remove the current format from the list of available "
|
return _("Remove the current format from the list of available "
|
||||||
"formats. Note: you must then \"Apply\" the change.");
|
"formats. Note: you must then \"Apply\" the change.");
|
||||||
@ -1365,7 +1369,8 @@ bool FormPreferences::Formats::input(FL_OBJECT const * const ob)
|
|||||||
|| ob == dialog_->input_shrtcut
|
|| ob == dialog_->input_shrtcut
|
||||||
|| ob == dialog_->input_extension
|
|| ob == dialog_->input_extension
|
||||||
|| ob == dialog_->input_viewer
|
|| ob == dialog_->input_viewer
|
||||||
|| ob == dialog_->input_editor)
|
|| ob == dialog_->input_editor
|
||||||
|
|| ob == dialog_->check_vector)
|
||||||
return Input();
|
return Input();
|
||||||
|
|
||||||
if (ob == dialog_->button_add)
|
if (ob == dialog_->button_add)
|
||||||
@ -1413,10 +1418,15 @@ bool FormPreferences::Formats::Add()
|
|||||||
string const shortcut = getString(dialog_->input_shrtcut);
|
string const shortcut = getString(dialog_->input_shrtcut);
|
||||||
string const viewer = getString(dialog_->input_viewer);
|
string const viewer = getString(dialog_->input_viewer);
|
||||||
string const editor = getString(dialog_->input_editor);
|
string const editor = getString(dialog_->input_editor);
|
||||||
|
bool const vector = fl_get_button(dialog_->check_vector);
|
||||||
|
|
||||||
Format const * old = formats().getFormat(name);
|
Format const * old = formats().getFormat(name);
|
||||||
string const old_prettyname = old ? old->prettyname() : string();
|
string const old_prettyname = old ? old->prettyname() : string();
|
||||||
formats().add(name, extension, prettyname, shortcut, viewer, editor);
|
int flags = Format::none;
|
||||||
|
if (vector)
|
||||||
|
flags |= Format::vector;
|
||||||
|
formats().add(name, extension, prettyname, shortcut, viewer, editor,
|
||||||
|
flags);
|
||||||
if (!old || prettyname != old_prettyname) {
|
if (!old || prettyname != old_prettyname) {
|
||||||
UpdateBrowser();
|
UpdateBrowser();
|
||||||
if (old)
|
if (old)
|
||||||
@ -1444,6 +1454,7 @@ bool FormPreferences::Formats::Browser()
|
|||||||
fl_set_input(dialog_->input_extension, f.extension().c_str());
|
fl_set_input(dialog_->input_extension, f.extension().c_str());
|
||||||
fl_set_input(dialog_->input_viewer, f.viewer().c_str());
|
fl_set_input(dialog_->input_viewer, f.viewer().c_str());
|
||||||
fl_set_input(dialog_->input_editor, f.editor().c_str());
|
fl_set_input(dialog_->input_editor, f.editor().c_str());
|
||||||
|
fl_set_button(dialog_->check_vector, f.vectorFormat());
|
||||||
|
|
||||||
fl_set_object_label(dialog_->button_add,
|
fl_set_object_label(dialog_->button_add,
|
||||||
idex(_("Modify|#M")).c_str());
|
idex(_("Modify|#M")).c_str());
|
||||||
|
@ -1705,7 +1705,7 @@ argument:
|
|||||||
Name: form_preferences_formats
|
Name: form_preferences_formats
|
||||||
Width: 450
|
Width: 450
|
||||||
Height: 400
|
Height: 400
|
||||||
Number of Objects: 10
|
Number of Objects: 11
|
||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
class: FL_BOX
|
class: FL_BOX
|
||||||
@ -1851,6 +1851,24 @@ name: input_editor
|
|||||||
callback: C_FormDialogView_InputCB
|
callback: C_FormDialogView_InputCB
|
||||||
argument: 0
|
argument: 0
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
class: FL_CHECKBUTTON
|
||||||
|
type: PUSH_BUTTON
|
||||||
|
box: 280 270 25 25
|
||||||
|
boxtype: FL_NO_BOX
|
||||||
|
colors: FL_COL1 FL_YELLOW
|
||||||
|
alignment: FL_ALIGN_LEFT
|
||||||
|
style: FL_NORMAL_STYLE
|
||||||
|
size: FL_NORMAL_SIZE
|
||||||
|
lcol: FL_BLACK
|
||||||
|
label: Vector graphics format:|#c
|
||||||
|
shortcut:
|
||||||
|
resize: FL_RESIZE_ALL
|
||||||
|
gravity: FL_NoGravity FL_NoGravity
|
||||||
|
name: check_vector
|
||||||
|
callback: C_FormDialogView_InputCB
|
||||||
|
argument: 0
|
||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
class: FL_BUTTON
|
class: FL_BUTTON
|
||||||
type: NORMAL_BUTTON
|
type: NORMAL_BUTTON
|
||||||
|
@ -135,11 +135,12 @@ string findTargetFormat(string const & format, OutputParams const & runparams)
|
|||||||
// Are we using latex or pdflatex?
|
// Are we using latex or pdflatex?
|
||||||
if (runparams.flavor == OutputParams::PDFLATEX) {
|
if (runparams.flavor == OutputParams::PDFLATEX) {
|
||||||
lyxerr[Debug::GRAPHICS] << "findTargetFormat: PDF mode" << endl;
|
lyxerr[Debug::GRAPHICS] << "findTargetFormat: PDF mode" << endl;
|
||||||
// Convert postscript to pdf
|
Format const * const f = formats.getFormat(format);
|
||||||
if (format == "eps" || format == "ps")
|
// Convert vector graphics to pdf
|
||||||
|
if (f && f->vectorFormat())
|
||||||
return "pdf";
|
return "pdf";
|
||||||
// pdflatex can use jpeg, png and pdf directly
|
// pdflatex can use jpeg, png and pdf directly
|
||||||
if (format == "jpg" || format == "pdf")
|
if (format == "jpg")
|
||||||
return format;
|
return format;
|
||||||
// Convert everything else to png
|
// Convert everything else to png
|
||||||
return "png";
|
return "png";
|
||||||
|
34
src/lyxrc.C
34
src/lyxrc.C
@ -1053,6 +1053,7 @@ int LyXRC::read(LyXLex & lexrc)
|
|||||||
shortcut = lexrc.getString();
|
shortcut = lexrc.getString();
|
||||||
}
|
}
|
||||||
string viewer, editor;
|
string viewer, editor;
|
||||||
|
string flags;
|
||||||
// Hack to ensure compatibility with versions older
|
// Hack to ensure compatibility with versions older
|
||||||
// than 1.4.0
|
// than 1.4.0
|
||||||
int le = lexrc.lex();
|
int le = lexrc.lex();
|
||||||
@ -1061,6 +1062,15 @@ int LyXRC::read(LyXLex & lexrc)
|
|||||||
if (le == LyXLex::LEX_DATA) {
|
if (le == LyXLex::LEX_DATA) {
|
||||||
if (lexrc.next()) {
|
if (lexrc.next()) {
|
||||||
editor = lexrc.getString();
|
editor = lexrc.getString();
|
||||||
|
le = lexrc.lex();
|
||||||
|
if (le != LyXLex::LEX_FEOF &&
|
||||||
|
le != LyXLex::LEX_UNDEF) {
|
||||||
|
flags = lexrc.getString();
|
||||||
|
if (le != LyXLex::LEX_DATA) {
|
||||||
|
lexrc.pushToken(flags);
|
||||||
|
flags.erase();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// We have got a known token.
|
// We have got a known token.
|
||||||
@ -1071,6 +1081,17 @@ int LyXRC::read(LyXLex & lexrc)
|
|||||||
viewer.erase();
|
viewer.erase();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
int flgs = Format::none;
|
||||||
|
while (!flags.empty()) {
|
||||||
|
string flag;
|
||||||
|
flags = lyx::support::split(flags, flag, ',');
|
||||||
|
if (flag == "vector")
|
||||||
|
flgs |= Format::vector;
|
||||||
|
else
|
||||||
|
lyxerr << "Ignoring unknown flag `"
|
||||||
|
<< flag << "' for format `"
|
||||||
|
<< format << "'." << endl;
|
||||||
|
}
|
||||||
if (prettyname.empty()) {
|
if (prettyname.empty()) {
|
||||||
if (converters.formatIsUsed(format)) {
|
if (converters.formatIsUsed(format)) {
|
||||||
lyxerr << "Can't delete format "
|
lyxerr << "Can't delete format "
|
||||||
@ -1080,7 +1101,7 @@ int LyXRC::read(LyXLex & lexrc)
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
formats.add(format, extension, prettyname,
|
formats.add(format, extension, prettyname,
|
||||||
shortcut, viewer, editor);
|
shortcut, viewer, editor, flgs);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1960,13 +1981,20 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
|
|||||||
format->prettyname() != cit->prettyname() ||
|
format->prettyname() != cit->prettyname() ||
|
||||||
format->shortcut() != cit->shortcut() ||
|
format->shortcut() != cit->shortcut() ||
|
||||||
format->viewer() != cit->viewer() ||
|
format->viewer() != cit->viewer() ||
|
||||||
format->editor() != cit->editor())
|
format->editor() != cit->editor() ||
|
||||||
|
format->vectorFormat() != cit->vectorFormat()) {
|
||||||
os << "\\format \"" << cit->name() << "\" \""
|
os << "\\format \"" << cit->name() << "\" \""
|
||||||
<< cit->extension() << "\" \""
|
<< cit->extension() << "\" \""
|
||||||
<< cit->prettyname() << "\" \""
|
<< cit->prettyname() << "\" \""
|
||||||
<< cit->shortcut() << "\" \""
|
<< cit->shortcut() << "\" \""
|
||||||
<< cit->viewer() << "\" \""
|
<< cit->viewer() << "\" \""
|
||||||
<< cit->editor() << "\"\n";
|
<< cit->editor() << "\" \"";
|
||||||
|
std::vector<string> flags;
|
||||||
|
if (cit->vectorFormat())
|
||||||
|
flags.push_back("vector");
|
||||||
|
os << lyx::support::getStringFromVector(flags);
|
||||||
|
os << "\"\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Look for deleted formats
|
// Look for deleted formats
|
||||||
|
@ -51,6 +51,11 @@ What's new
|
|||||||
Tutorial); Update German (all), Hebrew (Intro) and Italian
|
Tutorial); Update German (all), Hebrew (Intro) and Italian
|
||||||
(Tutorial, UserGuide) documentation.
|
(Tutorial, UserGuide) documentation.
|
||||||
|
|
||||||
|
- Convert included vector graphics to pdf instead of png for pdflatex export
|
||||||
|
(bug 2868). This is implemented with the help of a new format flag "vector"
|
||||||
|
that you have to set manually for your self defined vector graphics formats
|
||||||
|
if you want to use this feature.
|
||||||
|
|
||||||
** Bug fixes:
|
** Bug fixes:
|
||||||
|
|
||||||
* Document Input/Output
|
* Document Input/Output
|
||||||
|
Loading…
Reference in New Issue
Block a user