Georg's add an editor to Formats / safe external_templates patch.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8645 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Angus Leeming 2004-04-13 10:36:09 +00:00
parent b447408de2
commit da61af2b8e
32 changed files with 1600 additions and 1331 deletions

View File

@ -1,3 +1,9 @@
2004-04-12 Georg Baum <Georg.Baum@post.rwth-aachen.de>
* configure.m4: merge \viewer and \format. Add editor to \format
* configure.m4: check for more viewers and editors
* external_templates: remove EditCommand
2004-04-06 Georg Baum <Georg.Baum@post.rwth-aachen.de> 2004-04-06 Georg Baum <Georg.Baum@post.rwth-aachen.de>
* external_templates: use some new variables instead of $$Basename * external_templates: use some new variables instead of $$Basename

View File

@ -237,6 +237,20 @@ fi
test $latex_to_dvi != "none" && latex_to_dvi="$latex_to_dvi \$\$i" test $latex_to_dvi != "none" && latex_to_dvi="$latex_to_dvi \$\$i"
test $latex_to_pdf != "none" && latex_to_pdf="$latex_to_pdf \$\$i" test $latex_to_pdf != "none" && latex_to_pdf="$latex_to_pdf \$\$i"
SEARCH_PROG([for a TGIF viewer and editor], TGIF_EDITOR, tgif)
TGIF_VIEWER="$TGIF_EDITOR"
SEARCH_PROG([for a FIG viewer and editor], FIG_EDITOR, xfig)
FIG_VIEWER="$FIG_EDITOR"
SEARCH_PROG([for a FEN viewer and editor], FEN_EDITOR, xboard)
test "$FEN" = "xboard" && FEN_EDITOR="xboard -lpf \$\$i -mode EditPosition"
FEN_VIEWER="$FEN_EDITOR"
SEARCH_PROG([for a raster image viewer], RASTERIMAGE_VIEWER, xv kview gimp)
SEARCH_PROG([for a raster image editor], RASTERIMAGE_EDITOR, gimp)
# Search for an installed reLyX or a ready-to-install one # Search for an installed reLyX or a ready-to-install one
save_PATH=${PATH} save_PATH=${PATH}
PATH=${PATH}:./reLyX/ PATH=${PATH}:./reLyX/
@ -492,45 +506,45 @@ cat >$outfile <<EOF
# want to customize LyX, make a copy of the file LYXDIR/lyxrc as # want to customize LyX, make a copy of the file LYXDIR/lyxrc as
# ~/.lyx/lyxrc and edit this file instead. Any setting in lyxrc will # ~/.lyx/lyxrc and edit this file instead. Any setting in lyxrc will
# override the values given here. # override the values given here.
\\Format asciichess asc "ASCII (chess output)" "" \\Format asciichess asc "ASCII (chess output)" "" "" ""
\\Format asciiimage asc "ASCII (image)" "" \\Format asciiimage asc "ASCII (image)" "" "" ""
\\Format asciixfig asc "ASCII (xfig output)" "" \\Format asciixfig asc "ASCII (xfig output)" "" "" ""
\\Format agr agr GRACE "" \\Format agr agr GRACE "" "" ""
\\Format bmp bmp BMP "" \\Format bmp bmp BMP "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
\\Format date "" "date command" "" \\Format date "" "date command" "" "" ""
\\Format dateout "tmp" "date (output)" "" \\Format dateout tmp "date (output)" "" "" ""
\\Format docbook sgml DocBook B \\Format docbook sgml DocBook B "" ""
\\Format dvi dvi DVI D \\Format dvi dvi DVI D "$DVI_VIEWER" ""
\\Format eps eps EPS "" \\Format eps eps EPS "" "$EPS_VIEWER" ""
\\Format fax "" Fax "" \\Format fax "" Fax "" "" ""
\\Format fen fen FEN "" \\Format fen fen FEN "" "$FEN_VIEWER" "$FEN_EDITOR"
\\Format fig fig XFig "" \\Format fig fig XFig "" "$FIG_VIEWER" "$FIG_EDITOR"
\\Format gif gif GIF "" \\Format gif gif GIF "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
\\Format html html HTML H \\Format html html HTML H "$HTML_VIEWER" ""
\\Format jpg jpg JPG "" \\Format jpg jpg JPG "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
\\Format latex tex LaTeX L \\Format latex tex LaTeX L "" ""
\\Format linuxdoc sgml LinuxDoc x \\Format linuxdoc sgml LinuxDoc x "" ""
\\Format lyx lyx LyX "" \\Format lyx lyx LyX "" "" ""
\\Format lyxpreview lyxpreview "LyX Preview" "" \\Format lyxpreview lyxpreview "LyX Preview" "" "" ""
\\Format literate nw NoWeb N \\Format literate nw NoWeb N "" ""
\\Format pbm pbm PBM "" \\Format pbm pbm PBM "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
\\Format pdf pdf "PDF (ps2pdf)" P \\Format pdf pdf "PDF (ps2pdf)" P "$PDF_VIEWER" ""
\\Format pdf2 pdf "PDF (pdflatex)" F \\Format pdf2 pdf "PDF (pdflatex)" F "$PDF_VIEWER" ""
\\Format pdf3 pdf "PDF (dvipdfm)" m \\Format pdf3 pdf "PDF (dvipdfm)" m "$PDF_VIEWER" ""
\\Format pdftex pdftex_t PDFTEX "" \\Format pdftex pdftex_t PDFTEX "" "" ""
\\Format pgm pgm PGM "" \\Format pgm pgm PGM "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
\\Format png png PNG "" \\Format png png PNG "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
\\Format ppm ppm PPM "" \\Format ppm ppm PPM "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
\\Format program "" Program "" \\Format program "" Program "" "" ""
\\Format ps ps Postscript t \\Format ps ps Postscript t "$PS_VIEWER" ""
\\Format pstex pstex_t PSTEX "" \\Format pstex pstex_t PSTEX "" "" ""
\\Format text txt ASCII A \\Format text txt ASCII A "" ""
\\Format textparagraph txt ASCII(paragraphs) "" \\Format textparagraph txt "ASCII (paragraphs)" "" "" ""
\\Format tgif obj TGIF "" \\Format tgif obj TGIF "" "$TGIF_VIEWER" "$TGIF_EDITOR"
\\Format tiff tif TIFF "" \\Format tiff tif TIFF "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
\\Format word doc Word W \\Format word doc Word W "" ""
\\Format xbm xbm XBM "" \\Format xbm xbm XBM "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
\\Format xpm xpm XPM "" \\Format xpm xpm XPM "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
\\converter date dateout "date +%d-%m-%Y > \$\$o" "" \\converter date dateout "date +%d-%m-%Y > \$\$o" ""
\\converter docbook dvi "$docbook_to_dvi_command" "" \\converter docbook dvi "$docbook_to_dvi_command" ""
@ -555,21 +569,10 @@ cat >$outfile <<EOF
\\converter ps fax "$fax_command" "" \\converter ps fax "$fax_command" ""
\\converter ps pdf "$ps_to_pdf_command" "" \\converter ps pdf "$ps_to_pdf_command" ""
\\converter word latex "$word_to_latex_command" "" \\converter word latex "$word_to_latex_command" ""
\\viewer dvi "$DVI_VIEWER"
\\viewer html "$HTML_VIEWER"
\\viewer pdf "$PDF_VIEWER"
\\viewer pdf2 "$PDF_VIEWER"
\\viewer pdf3 "$PDF_VIEWER"
\\viewer ps "$PS_VIEWER"
\\viewer eps "$EPS_VIEWER"
$rc_entries
\\font_encoding "$chk_fontenc"
EOF EOF
### the graphic converter part with the predefined ones ### the graphic converter part with the predefined ones
#### Search for tne nonstandard converting progs #### Search for the nonstandard converting progs
# #
SEARCH_PROG([for an FIG -> EPS/PPM converter], FIG2DEV, fig2dev) SEARCH_PROG([for an FIG -> EPS/PPM converter], FIG2DEV, fig2dev)
if test "$FIG2DEV" = "fig2dev"; then if test "$FIG2DEV" = "fig2dev"; then
@ -591,7 +594,7 @@ SEARCH_PROG([for an TGIF -> EPS/PPM converter], TGIF, tgif)
if test "$TGIF" = "tgif"; then if test "$TGIF" = "tgif"; then
cat >>$outfile <<EOF cat >>$outfile <<EOF
\\converter tgif eps "tgif -stdout -print -color -eps \$\$i > \$\$o" "" \\converter tgif eps "tgif -stdout -print -color -eps \$\$i > \$\$o" ""
\\converter tgif png "tgif -stdout -print -color -xpm \$\$i | xpmtoppm | pnmtopng > \$\$o" "" \\converter tgif pdf "tgif -stdout -print -color -pdf \$\$i > \$\$o" ""
EOF EOF
fi fi
@ -613,6 +616,12 @@ cat >>$outfile <<EOF
EOF EOF
fi fi
cat >>$outfile <<EOF
$rc_entries
\\font_encoding "$chk_fontenc"
EOF
######## X FONTS ######## X FONTS
# create a fonts.dir file to make X fonts available to LyX # create a fonts.dir file to make X fonts available to LyX
echo "checking for TeX fonts" echo "checking for TeX fonts"

View File

@ -38,11 +38,9 @@ Template RasterImage
GuiName "Bitmap: $$AbsOrRelPathParent$$Basename" GuiName "Bitmap: $$AbsOrRelPathParent$$Basename"
HelpText HelpText
A bitmap file. A bitmap file.
This template uses Gimp for editing.
HelpTextEnd HelpTextEnd
InputFormat "*" InputFormat "*"
FileFilter "*.{gif,png,jpg,bmp,pbm,ppm,tga,tif,xpm,xbm}" FileFilter "*.{gif,png,jpg,bmp,pbm,ppm,tga,tif,xpm,xbm}"
EditCommand "gimp $$Absname"
AutomaticProduction true AutomaticProduction true
Transform Rotate Transform Rotate
Transform Resize Transform Resize
@ -90,11 +88,9 @@ Template XFig
GuiName "XFig: $$AbsOrRelPathParent$$Basename" GuiName "XFig: $$AbsOrRelPathParent$$Basename"
HelpText HelpText
An XFig figure. An XFig figure.
This template uses XFig for editing.
HelpTextEnd HelpTextEnd
InputFormat fig InputFormat fig
FileFilter "*.fig" FileFilter "*.fig"
EditCommand "xfig $$Absname"
AutomaticProduction true AutomaticProduction true
Transform Rotate Transform Rotate
Transform Resize Transform Resize
@ -157,7 +153,6 @@ Template ChessDiagram
HelpTextEnd HelpTextEnd
InputFormat fen InputFormat fen
FileFilter "*.fen" FileFilter "*.fen"
EditCommand "xboard -lpf $$Absname -mode EditPosition"
AutomaticProduction true AutomaticProduction true
Format LaTeX Format LaTeX
Product "\\loadgame{$$AbsOrRelPathMaster$$Basename}\\showboard" Product "\\loadgame{$$AbsOrRelPathMaster$$Basename}\\showboard"

View File

@ -1,3 +1,8 @@
2004-04-12 Georg Baum <Georg.Baum@post.rwth-aachen.de>
* format.[Ch]: add editor to Format
* lyxrc.[Ch]: merge RC_FORMAT and RC_VIEWER. Add editor to Format
* LyXAction.C, lfuns.h, lyxfunc.C: add lfun LFUN_GRAPHICS_EDIT
2004-04-08 André Pönitz <poenitz@gmx.net> 2004-04-08 André Pönitz <poenitz@gmx.net>

View File

@ -325,6 +325,7 @@ void LyXAction::init()
{ LFUN_PARAGRAPH_APPLY, "paragraph-params-apply", Noop }, { LFUN_PARAGRAPH_APPLY, "paragraph-params-apply", Noop },
{ LFUN_PARAGRAPH_UPDATE, "", Noop }, { LFUN_PARAGRAPH_UPDATE, "", Noop },
{ LFUN_EXTERNAL_EDIT, "external-edit", Noop }, { LFUN_EXTERNAL_EDIT, "external-edit", Noop },
{ LFUN_GRAPHICS_EDIT, "graphics-edit", Noop },
{ LFUN_REPEAT, "repeat", NoBuffer }, { LFUN_REPEAT, "repeat", NoBuffer },
{ LFUN_WORD_FIND, "word-find", Noop }, { LFUN_WORD_FIND, "word-find", Noop },
{ LFUN_WORD_REPLACE, "word-replace", Noop }, { LFUN_WORD_REPLACE, "word-replace", Noop },

View File

@ -27,6 +27,7 @@
using lyx::support::bformat; using lyx::support::bformat;
using lyx::support::compare_ascii_no_case; using lyx::support::compare_ascii_no_case;
using lyx::support::contains; using lyx::support::contains;
using lyx::support::MakeDisplayPath;
using lyx::support::OnlyFilename; using lyx::support::OnlyFilename;
using lyx::support::OnlyPath; using lyx::support::OnlyPath;
using lyx::support::Path; using lyx::support::Path;
@ -70,8 +71,8 @@ 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 & s, string const & v, string const & ed)
: name_(n), extension_(e), prettyname_(p),shortcut_(s), viewer_(v) : name_(n), extension_(e), prettyname_(p), shortcut_(s), viewer_(v), editor_(ed)
{} {}
@ -124,23 +125,22 @@ 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()); add(name, name, name, string(), string(), string());
} }
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)
{ {
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, "")); shortcut, viewer, editor));
else { else
string viewer = it->viewer(); *it = Format(name, extension, prettyname, shortcut, viewer, editor);
*it = Format(name, extension, prettyname, shortcut, viewer);
}
} }
@ -183,7 +183,7 @@ bool Formats::view(Buffer const & buffer, string const & filename,
format = getFormat(format->parentFormat()); format = getFormat(format->parentFormat());
if (!format || format->viewer().empty()) { if (!format || format->viewer().empty()) {
// I believe this is the wrong place to show alerts, it should be done by // I believe this is the wrong place to show alerts, it should be done by
// the caller (this should be "utility" code // the caller (this should be "utility" code)
Alert::error(_("Cannot view file"), Alert::error(_("Cannot view file"),
bformat(_("No information for viewing %1$s"), bformat(_("No information for viewing %1$s"),
prettyName(format_name))); prettyName(format_name)));
@ -220,7 +220,52 @@ bool Formats::view(Buffer const & buffer, string const & filename,
if (res) { if (res) {
Alert::error(_("Cannot view file"), Alert::error(_("Cannot view file"),
bformat(_("An error occurred whilst running %1$s"), bformat(_("An error occurred whilst running %1$s"),
command.substr(0, 50))); MakeDisplayPath(command, 50)));
return false;
}
return true;
}
bool Formats::edit(Buffer const & buffer, string const & filename,
string const & format_name) const
{
if (filename.empty())
return false;
Format const * format = getFormat(format_name);
if (format && format->editor().empty() &&
format->isChildFormat())
format = getFormat(format->parentFormat());
if (!format || format->editor().empty()) {
// I believe this is the wrong place to show alerts, it should be done by
// the caller (this should be "utility" code)
Alert::error(_("Cannot edit file"),
bformat(_("No information for editing %1$s"),
prettyName(format_name)));
return false;
}
string command = format->editor();
if (!contains(command, token_from))
command += ' ' + token_from;
command = subst(command, token_from,
QuoteName(OnlyFilename(filename)));
command = subst(command, token_path, QuoteName(OnlyPath(filename)));
command = subst(command, token_socket, QuoteName(lyxsocket->address()));
lyxerr[Debug::FILES] << "Executing command: " << command << std::endl;
buffer.message(_("Executing command: ") + command);
Path p(OnlyPath(filename));
Systemcall one;
int const res = one.startscript(Systemcall::DontWait, command);
if (res) {
Alert::error(_("Cannot edit file"),
bformat(_("An error occurred whilst running %1$s"),
MakeDisplayPath(command, 50)));
return false; return false;
} }
return true; return true;

View File

@ -21,7 +21,7 @@ class Format {
public: public:
/// ///
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 & s, std::string const & v, std::string const & ed);
/// ///
bool dummy() const; bool dummy() const;
/// ///
@ -52,6 +52,10 @@ public:
void setViewer(std::string const & v) { void setViewer(std::string const & v) {
viewer_ = v; viewer_ = v;
} }
///
std::string const & editor() const {
return editor_;
}
private: private:
std::string name_; std::string name_;
/// ///
@ -62,6 +66,8 @@ private:
std::string shortcut_; std::string shortcut_;
/// ///
std::string viewer_; std::string viewer_;
///
std::string editor_;
}; };
@ -86,7 +92,8 @@ public:
void add(std::string const & name); void add(std::string const & name);
/// ///
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);
/// ///
void erase(std::string const & name); void erase(std::string const & name);
/// ///
@ -97,6 +104,9 @@ public:
bool view(Buffer const & buffer, std::string const & filename, bool view(Buffer const & buffer, std::string const & filename,
std::string const & format_name) const; std::string const & format_name) const;
/// ///
bool edit(Buffer const & buffer, std::string const & filename,
std::string const & format_name) const;
///
std::string const prettyName(std::string const & name) const; std::string const prettyName(std::string const & name) const;
/// ///
std::string const extension(std::string const & name) const; std::string const extension(std::string const & name) const;

View File

@ -1,3 +1,7 @@
2004-04-12 Georg Baum <Georg.Baum@post.rwth-aachen.de>
* ControlGraphics.[Ch] (editGraphics): new method
2004-04-07 Martin Vermeer <martin.vermeer@hut.fi> 2004-04-07 Martin Vermeer <martin.vermeer@hut.fi>
* ControlDocument.C: 'assign' for opening/closing branch insets * ControlDocument.C: 'assign' for opening/closing branch insets

View File

@ -133,6 +133,16 @@ bool ControlGraphics::isFilenameValid(string const & fname) const
} }
void ControlGraphics::editGraphics()
{
BOOST_ASSERT(params_.get());
dialog().view().apply();
string const lfun =
InsetGraphicsMailer::params2string(params(), kernel().buffer());
kernel().dispatch(FuncRequest(LFUN_GRAPHICS_EDIT, lfun));
}
namespace frnt { namespace frnt {
namespace { namespace {

View File

@ -51,6 +51,8 @@ public:
bool bbChanged; bool bbChanged;
/// test if file exist /// test if file exist
bool isFilenameValid(std::string const & fname) const; bool isFilenameValid(std::string const & fname) const;
/// edit file
void editGraphics();
private: private:
/// ///

View File

@ -1,3 +1,10 @@
2004-04-12 Georg Baum <Georg.Baum@post.rwth-aachen.de>
* QPrefsDialog.C, ui/QPrefFileformatsModule.ui: add editor to format
* QGraphics.[Ch]: add slotEdit()
* QGraphicsDialog.[Ch]: add edit_clicked()
* ui/QGraphicsDialogBase.ui: add Edit button
2004-04-07 Alfredo Braunstein <abraunst@lyx.org> 2004-04-07 Alfredo Braunstein <abraunst@lyx.org>
* QLPainter.[Ch]: adjust to changes in Painter.h * QLPainter.[Ch]: adjust to changes in Painter.h

View File

@ -415,3 +415,9 @@ bool QGraphics::isValid()
{ {
return !dialog_->filename->text().isEmpty(); return !dialog_->filename->text().isEmpty();
} }
void QGraphics::slotEdit()
{
controller().editGraphics();
}

View File

@ -30,6 +30,8 @@ public:
friend class QGraphicsDialog; friend class QGraphicsDialog;
/// ///
QGraphics(Dialog &); QGraphics(Dialog &);
public slots:
void slotEdit();
protected: protected:
virtual bool isValid(); virtual bool isValid();
private: private:

View File

@ -39,6 +39,8 @@ QGraphicsDialog::QGraphicsDialog(QGraphics * form)
form, SLOT(slotClose())); form, SLOT(slotClose()));
connect(restorePB, SIGNAL(clicked()), connect(restorePB, SIGNAL(clicked()),
form, SLOT(slotRestore())); form, SLOT(slotRestore()));
connect(editPB, SIGNAL(clicked()),
this, SLOT(edit_clicked()));
} }
@ -93,3 +95,9 @@ void QGraphicsDialog::getBB_clicked()
{ {
form_->getBB(); form_->getBB();
} }
void QGraphicsDialog::edit_clicked()
{
form_->controller().editGraphics();
}

View File

@ -30,6 +30,7 @@ protected slots:
virtual void change_WUnit(); virtual void change_WUnit();
virtual void browse_clicked(); virtual void browse_clicked();
virtual void getBB_clicked(); virtual void getBB_clicked();
virtual void edit_clicked();
protected: protected:
virtual void closeEvent(QCloseEvent * e); virtual void closeEvent(QCloseEvent * e);
private: private:

View File

@ -381,6 +381,7 @@ void QPrefsDialog::switch_format(int nr)
fileformatsModule->extensionED->setText(toqstr(f.extension())); fileformatsModule->extensionED->setText(toqstr(f.extension()));
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->formatRemovePB->setEnabled( fileformatsModule->formatRemovePB->setEnabled(
!form_->converters().formatIsUsed(f.name())); !form_->converters().formatIsUsed(f.name()));
} }
@ -407,10 +408,10 @@ void QPrefsDialog::modify_format()
string const extension = fromqstr(fileformatsModule->extensionED->text()); string const extension = fromqstr(fileformatsModule->extensionED->text());
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());
form_->formats().add(name, extension, prettyname, shortcut); form_->formats().add(name, extension, prettyname, shortcut, viewer, editor);
form_->formats().sort(); form_->formats().sort();
form_->formats().setViewer(name, viewer);
fileformatsModule->formatsLB->setUpdatesEnabled(false); fileformatsModule->formatsLB->setUpdatesEnabled(false);
updateFormats(); updateFormats();

View File

@ -13,8 +13,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>392</width> <width>459</width>
<height>494</height> <height>549</height>
</rect> </rect>
</property> </property>
<property stdset="1"> <property stdset="1">
@ -32,21 +32,154 @@
<name>sizeGripEnabled</name> <name>sizeGripEnabled</name>
<bool>true</bool> <bool>true</bool>
</property> </property>
<vbox> <widget>
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
<cstring>Layout20</cstring>
</property>
<property stdset="1">
<name>geometry</name>
<rect>
<x>11</x>
<y>500</y>
<width>437</width>
<height>38</height>
</rect>
</property>
<hbox>
<property stdset="1"> <property stdset="1">
<name>margin</name> <name>margin</name>
<number>11</number> <number>0</number>
</property> </property>
<property stdset="1"> <property stdset="1">
<name>spacing</name> <name>spacing</name>
<number>6</number> <number>6</number>
</property> </property>
<widget>
<class>QPushButton</class>
<property stdset="1">
<name>name</name>
<cstring>restorePB</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>&amp;Restore</string>
</property>
<property stdset="1">
<name>autoDefault</name>
<bool>false</bool>
</property>
<property stdset="1">
<name>default</name>
<bool>false</bool>
</property>
</widget>
<spacer>
<property>
<name>name</name>
<cstring>Spacer3</cstring>
</property>
<property stdset="1">
<name>orientation</name>
<enum>Horizontal</enum>
</property>
<property stdset="1">
<name>sizeType</name>
<enum>MinimumExpanding</enum>
</property>
<property>
<name>sizeHint</name>
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
<widget>
<class>QPushButton</class>
<property stdset="1">
<name>name</name>
<cstring>okPB</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>OK</string>
</property>
<property stdset="1">
<name>autoDefault</name>
<bool>true</bool>
</property>
<property stdset="1">
<name>default</name>
<bool>true</bool>
</property>
</widget>
<widget>
<class>QPushButton</class>
<property stdset="1">
<name>name</name>
<cstring>applyPB</cstring>
</property>
<property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>1</hsizetype>
<vsizetype>0</vsizetype>
</sizepolicy>
</property>
<property stdset="1">
<name>text</name>
<string>&amp;Apply</string>
</property>
<property stdset="1">
<name>autoDefault</name>
<bool>false</bool>
</property>
<property stdset="1">
<name>default</name>
<bool>false</bool>
</property>
</widget>
<widget>
<class>QPushButton</class>
<property stdset="1">
<name>name</name>
<cstring>closePB</cstring>
</property>
<property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>1</hsizetype>
<vsizetype>0</vsizetype>
</sizepolicy>
</property>
<property stdset="1">
<name>text</name>
<string>Close</string>
</property>
<property stdset="1">
<name>autoDefault</name>
<bool>false</bool>
</property>
</widget>
</hbox>
</widget>
<widget> <widget>
<class>QTabWidget</class> <class>QTabWidget</class>
<property stdset="1"> <property stdset="1">
<name>name</name> <name>name</name>
<cstring>TabWidget</cstring> <cstring>TabWidget</cstring>
</property> </property>
<property stdset="1">
<name>geometry</name>
<rect>
<x>11</x>
<y>11</y>
<width>440</width>
<height>487</height>
</rect>
</property>
<property> <property>
<name>toolTip</name> <name>toolTip</name>
<string></string> <string></string>
@ -70,68 +203,6 @@
<name>spacing</name> <name>spacing</name>
<number>6</number> <number>6</number>
</property> </property>
<widget row="0" column="0" rowspan="1" colspan="2" >
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
<cstring>Layout2</cstring>
</property>
<hbox>
<property stdset="1">
<name>margin</name>
<number>0</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>6</number>
</property>
<widget>
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>filenameL</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>&amp;File:</string>
</property>
<property>
<name>buddy</name>
<cstring>filename</cstring>
</property>
<property>
<name>toolTip</name>
<string>File name of image</string>
</property>
</widget>
<widget>
<class>QLineEdit</class>
<property stdset="1">
<name>name</name>
<cstring>filename</cstring>
</property>
<property>
<name>toolTip</name>
<string>File name of image</string>
</property>
</widget>
<widget>
<class>QPushButton</class>
<property stdset="1">
<name>name</name>
<cstring>browsePB</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>&amp;Browse...</string>
</property>
<property>
<name>toolTip</name>
<string>Select an image file</string>
</property>
</widget>
</hbox>
</widget>
<spacer row="3" column="1" > <spacer row="3" column="1" >
<property> <property>
<name>name</name> <name>name</name>
@ -153,6 +224,261 @@
</size> </size>
</property> </property>
</spacer> </spacer>
<widget row="2" column="0" rowspan="1" colspan="2" >
<class>QGroupBox</class>
<property stdset="1">
<name>name</name>
<cstring>rotateGB</cstring>
</property>
<property stdset="1">
<name>title</name>
<string>Rotation</string>
</property>
<hbox>
<property stdset="1">
<name>margin</name>
<number>11</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>6</number>
</property>
<widget>
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>angleL_2</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>A&amp;ngle:</string>
</property>
<property>
<name>buddy</name>
<cstring>angle</cstring>
</property>
<property>
<name>toolTip</name>
<string>Angle to rotate image by</string>
</property>
</widget>
<widget>
<class>QLineEdit</class>
<property stdset="1">
<name>name</name>
<cstring>angle</cstring>
</property>
<property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>3</hsizetype>
<vsizetype>0</vsizetype>
</sizepolicy>
</property>
<property>
<name>toolTip</name>
<string>Angle to rotate image by</string>
</property>
</widget>
<widget>
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>originL_2</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>&amp;Origin:</string>
</property>
<property>
<name>buddy</name>
<cstring>origin</cstring>
</property>
<property>
<name>toolTip</name>
<string>The origin of the rotation</string>
</property>
</widget>
<widget>
<class>QComboBox</class>
<property stdset="1">
<name>name</name>
<cstring>origin</cstring>
</property>
<property>
<name>toolTip</name>
<string>The origin of the rotation</string>
</property>
</widget>
</hbox>
</widget>
<widget row="1" column="0" >
<class>QGroupBox</class>
<property stdset="1">
<name>name</name>
<cstring>GroupBox5</cstring>
</property>
<property stdset="1">
<name>title</name>
<string>LyX Display</string>
</property>
<vbox>
<property stdset="1">
<name>margin</name>
<number>11</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>6</number>
</property>
<widget>
<class>QCheckBox</class>
<property stdset="1">
<name>name</name>
<cstring>displayCB</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>&amp;Show in LyX</string>
</property>
<property>
<name>toolTip</name>
<string>Display image in LyX</string>
</property>
</widget>
<widget>
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>TextLabel1</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>Display:</string>
</property>
<property>
<name>buddy</name>
<cstring>showCB</cstring>
</property>
<property>
<name>toolTip</name>
<string>Screen display</string>
</property>
</widget>
<widget>
<class>QComboBox</class>
<item>
<property>
<name>text</name>
<string>Default</string>
</property>
</item>
<item>
<property>
<name>text</name>
<string>Monochrome</string>
</property>
</item>
<item>
<property>
<name>text</name>
<string>Grayscale</string>
</property>
</item>
<item>
<property>
<name>text</name>
<string>Color</string>
</property>
</item>
<property stdset="1">
<name>name</name>
<cstring>showCB</cstring>
</property>
<property>
<name>toolTip</name>
<string>Screen display</string>
</property>
</widget>
<widget>
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>scaleLA</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>Scale:</string>
</property>
<property>
<name>buddy</name>
<cstring>displayscale</cstring>
</property>
<property>
<name>toolTip</name>
<string>Percentage to scale by in LyX</string>
</property>
</widget>
<widget>
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
<cstring>Layout10</cstring>
</property>
<hbox>
<property stdset="1">
<name>margin</name>
<number>0</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>6</number>
</property>
<widget>
<class>QLineEdit</class>
<property stdset="1">
<name>name</name>
<cstring>displayscale</cstring>
</property>
<property stdset="1">
<name>enabled</name>
<bool>true</bool>
</property>
<property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>5</hsizetype>
<vsizetype>0</vsizetype>
</sizepolicy>
</property>
<property>
<name>toolTip</name>
<string>Percentage to scale by in LyX</string>
</property>
</widget>
<widget>
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>displayscaleL</cstring>
</property>
<property stdset="1">
<name>enabled</name>
<bool>true</bool>
</property>
<property stdset="1">
<name>focusPolicy</name>
<enum>NoFocus</enum>
</property>
<property stdset="1">
<name>text</name>
<string>%</string>
</property>
</widget>
</hbox>
</widget>
</vbox>
</widget>
<widget row="1" column="1" > <widget row="1" column="1" >
<class>QGroupBox</class> <class>QGroupBox</class>
<property stdset="1"> <property stdset="1">
@ -331,120 +657,13 @@
</widget> </widget>
</vbox> </vbox>
</widget> </widget>
<widget row="1" column="0" > <widget row="0" column="0" rowspan="1" colspan="2" >
<class>QGroupBox</class>
<property stdset="1">
<name>name</name>
<cstring>GroupBox5</cstring>
</property>
<property stdset="1">
<name>title</name>
<string>LyX Display</string>
</property>
<vbox>
<property stdset="1">
<name>margin</name>
<number>11</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>6</number>
</property>
<widget>
<class>QCheckBox</class>
<property stdset="1">
<name>name</name>
<cstring>displayCB</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>&amp;Show in LyX</string>
</property>
<property>
<name>toolTip</name>
<string>Display image in LyX</string>
</property>
</widget>
<widget>
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>TextLabel1</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>Display:</string>
</property>
<property>
<name>buddy</name>
<cstring>showCB</cstring>
</property>
<property>
<name>toolTip</name>
<string>Screen display</string>
</property>
</widget>
<widget>
<class>QComboBox</class>
<item>
<property>
<name>text</name>
<string>Default</string>
</property>
</item>
<item>
<property>
<name>text</name>
<string>Monochrome</string>
</property>
</item>
<item>
<property>
<name>text</name>
<string>Grayscale</string>
</property>
</item>
<item>
<property>
<name>text</name>
<string>Color</string>
</property>
</item>
<property stdset="1">
<name>name</name>
<cstring>showCB</cstring>
</property>
<property>
<name>toolTip</name>
<string>Screen display</string>
</property>
</widget>
<widget>
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>scaleLA</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>Scale:</string>
</property>
<property>
<name>buddy</name>
<cstring>displayscale</cstring>
</property>
<property>
<name>toolTip</name>
<string>Percentage to scale by in LyX</string>
</property>
</widget>
<widget>
<class>QLayoutWidget</class> <class>QLayoutWidget</class>
<property stdset="1"> <property stdset="1">
<name>name</name> <name>name</name>
<cstring>Layout10</cstring> <cstring>Layout7</cstring>
</property> </property>
<hbox> <grid>
<property stdset="1"> <property stdset="1">
<name>margin</name> <name>margin</name>
<number>0</number> <number>0</number>
@ -453,138 +672,92 @@
<name>spacing</name> <name>spacing</name>
<number>6</number> <number>6</number>
</property> </property>
<widget> <spacer row="1" column="1" >
<property>
<name>name</name>
<cstring>Spacer3_2</cstring>
</property>
<property stdset="1">
<name>orientation</name>
<enum>Horizontal</enum>
</property>
<property stdset="1">
<name>sizeType</name>
<enum>MinimumExpanding</enum>
</property>
<property>
<name>sizeHint</name>
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
<widget row="1" column="2" >
<class>QPushButton</class>
<property stdset="1">
<name>name</name>
<cstring>editPB</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>&amp;Edit</string>
</property>
<property stdset="1">
<name>autoDefault</name>
<bool>false</bool>
</property>
<property stdset="1">
<name>default</name>
<bool>false</bool>
</property>
</widget>
<widget row="0" column="1" >
<class>QLineEdit</class> <class>QLineEdit</class>
<property stdset="1"> <property stdset="1">
<name>name</name> <name>name</name>
<cstring>displayscale</cstring> <cstring>filename</cstring>
</property>
<property stdset="1">
<name>enabled</name>
<bool>true</bool>
</property>
<property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>5</hsizetype>
<vsizetype>0</vsizetype>
</sizepolicy>
</property> </property>
<property> <property>
<name>toolTip</name> <name>toolTip</name>
<string>Percentage to scale by in LyX</string> <string>File name of image</string>
</property> </property>
</widget> </widget>
<widget> <widget row="0" column="2" >
<class>QLabel</class> <class>QPushButton</class>
<property stdset="1"> <property stdset="1">
<name>name</name> <name>name</name>
<cstring>displayscaleL</cstring> <cstring>browsePB</cstring>
</property>
<property stdset="1">
<name>enabled</name>
<bool>true</bool>
</property>
<property stdset="1">
<name>focusPolicy</name>
<enum>NoFocus</enum>
</property> </property>
<property stdset="1"> <property stdset="1">
<name>text</name> <name>text</name>
<string>%</string> <string>&amp;Browse...</string>
</property>
<property>
<name>toolTip</name>
<string>Select an image file</string>
</property> </property>
</widget> </widget>
</hbox> <widget row="0" column="0" >
</widget>
</vbox>
</widget>
<widget row="2" column="0" rowspan="1" colspan="2" >
<class>QGroupBox</class>
<property stdset="1">
<name>name</name>
<cstring>rotateGB</cstring>
</property>
<property stdset="1">
<name>title</name>
<string>Rotation</string>
</property>
<hbox>
<property stdset="1">
<name>margin</name>
<number>11</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>6</number>
</property>
<widget>
<class>QLabel</class> <class>QLabel</class>
<property stdset="1"> <property stdset="1">
<name>name</name> <name>name</name>
<cstring>angleL_2</cstring> <cstring>filenameL</cstring>
</property> </property>
<property stdset="1"> <property stdset="1">
<name>text</name> <name>text</name>
<string>A&amp;ngle:</string> <string>&amp;File:</string>
</property> </property>
<property> <property>
<name>buddy</name> <name>buddy</name>
<cstring>angle</cstring> <cstring>filename</cstring>
</property> </property>
<property> <property>
<name>toolTip</name> <name>toolTip</name>
<string>Angle to rotate image by</string> <string>File name of image</string>
</property> </property>
</widget> </widget>
<widget> </grid>
<class>QLineEdit</class>
<property stdset="1">
<name>name</name>
<cstring>angle</cstring>
</property>
<property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>3</hsizetype>
<vsizetype>0</vsizetype>
</sizepolicy>
</property>
<property>
<name>toolTip</name>
<string>Angle to rotate image by</string>
</property>
</widget>
<widget>
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>originL_2</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>&amp;Origin:</string>
</property>
<property>
<name>buddy</name>
<cstring>origin</cstring>
</property>
<property>
<name>toolTip</name>
<string>The origin of the rotation</string>
</property>
</widget>
<widget>
<class>QComboBox</class>
<property stdset="1">
<name>name</name>
<cstring>origin</cstring>
</property>
<property>
<name>toolTip</name>
<string>The origin of the rotation</string>
</property>
</widget>
</hbox>
</widget> </widget>
</grid> </grid>
</widget> </widget>
@ -1083,131 +1256,6 @@
</grid> </grid>
</widget> </widget>
</widget> </widget>
<widget>
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
<cstring>Layout20</cstring>
</property>
<hbox>
<property stdset="1">
<name>margin</name>
<number>0</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>6</number>
</property>
<widget>
<class>QPushButton</class>
<property stdset="1">
<name>name</name>
<cstring>restorePB</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>&amp;Restore</string>
</property>
<property stdset="1">
<name>autoDefault</name>
<bool>false</bool>
</property>
<property stdset="1">
<name>default</name>
<bool>false</bool>
</property>
</widget>
<spacer>
<property>
<name>name</name>
<cstring>Spacer3</cstring>
</property>
<property stdset="1">
<name>orientation</name>
<enum>Horizontal</enum>
</property>
<property stdset="1">
<name>sizeType</name>
<enum>MinimumExpanding</enum>
</property>
<property>
<name>sizeHint</name>
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
<widget>
<class>QPushButton</class>
<property stdset="1">
<name>name</name>
<cstring>okPB</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>OK</string>
</property>
<property stdset="1">
<name>autoDefault</name>
<bool>true</bool>
</property>
<property stdset="1">
<name>default</name>
<bool>true</bool>
</property>
</widget>
<widget>
<class>QPushButton</class>
<property stdset="1">
<name>name</name>
<cstring>applyPB</cstring>
</property>
<property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>1</hsizetype>
<vsizetype>0</vsizetype>
</sizepolicy>
</property>
<property stdset="1">
<name>text</name>
<string>&amp;Apply</string>
</property>
<property stdset="1">
<name>autoDefault</name>
<bool>false</bool>
</property>
<property stdset="1">
<name>default</name>
<bool>false</bool>
</property>
</widget>
<widget>
<class>QPushButton</class>
<property stdset="1">
<name>name</name>
<cstring>closePB</cstring>
</property>
<property stdset="1">
<name>sizePolicy</name>
<sizepolicy>
<hsizetype>1</hsizetype>
<vsizetype>0</vsizetype>
</sizepolicy>
</property>
<property stdset="1">
<name>text</name>
<string>Close</string>
</property>
<property stdset="1">
<name>autoDefault</name>
<bool>false</bool>
</property>
</widget>
</hbox>
</widget>
</vbox>
</widget> </widget>
<customwidgets> <customwidgets>
<customwidget> <customwidget>

View File

@ -159,6 +159,13 @@
<cstring>viewerED</cstring> <cstring>viewerED</cstring>
</property> </property>
</widget> </widget>
<widget row="5" column="1" >
<class>QLineEdit</class>
<property stdset="1">
<name>name</name>
<cstring>editorED</cstring>
</property>
</widget>
<widget row="2" column="1" > <widget row="2" column="1" >
<class>QLineEdit</class> <class>QLineEdit</class>
<property stdset="1"> <property stdset="1">
@ -218,6 +225,21 @@
<cstring>viewerED</cstring> <cstring>viewerED</cstring>
</property> </property>
</widget> </widget>
<widget row="5" column="0" >
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>editorLA</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>Ed&amp;itor:</string>
</property>
<property>
<name>buddy</name>
<cstring>editorED</cstring>
</property>
</widget>
<widget row="0" column="1" > <widget row="0" column="1" >
<class>QLineEdit</class> <class>QLineEdit</class>
<property stdset="1"> <property stdset="1">
@ -347,5 +369,6 @@
<tabstop>shortcutED</tabstop> <tabstop>shortcutED</tabstop>
<tabstop>extensionED</tabstop> <tabstop>extensionED</tabstop>
<tabstop>viewerED</tabstop> <tabstop>viewerED</tabstop>
<tabstop>editorED</tabstop>
</tabstops> </tabstops>
</UI> </UI>

View File

@ -1,3 +1,7 @@
2004-04-12 Georg Baum <Georg.Baum@post.rwth-aachen.de>
* FormPreferences.C, forms/form_preferences.fd: add editor to format
* FormGraphics.C, forms/form_graphics.fd: add Edit button
2004-04-07 Alfredo Braunstein <abraunst@lyx.org> 2004-04-07 Alfredo Braunstein <abraunst@lyx.org>

View File

@ -571,8 +571,12 @@ void FormGraphics::updateBB(string const & filename, string const & bb_inset)
ButtonPolicy::SMInput FormGraphics::input(FL_OBJECT * ob, long) ButtonPolicy::SMInput FormGraphics::input(FL_OBJECT * ob, long)
{ {
ButtonPolicy::SMInput activate = ButtonPolicy::SMI_VALID;
// the file section // the file section
if (ob == file_->button_browse) { if (ob == file_->button_browse) {
activate = ButtonPolicy::SMI_NOOP;
// Get the filename from the dialog // Get the filename from the dialog
string const in_name = getString(file_->input_filename); string const in_name = getString(file_->input_filename);
string const out_name = controller().browse(in_name); string const out_name = controller().browse(in_name);
@ -642,7 +646,11 @@ ButtonPolicy::SMInput FormGraphics::input(FL_OBJECT * ob, long)
setEnabled(extra_->input_subcaption, setEnabled(extra_->input_subcaption,
fl_get_button(extra_->check_subcaption)); fl_get_button(extra_->check_subcaption));
} else if (ob == file_->button_edit) {
activate = ButtonPolicy::SMI_NOOP;
controller().editGraphics();
} }
return ButtonPolicy::SMI_VALID;
return activate;
} }

View File

@ -996,6 +996,7 @@ void FormPreferences::Formats::build()
fl_set_input_return(dialog_->input_format, FL_RETURN_CHANGED); fl_set_input_return(dialog_->input_format, FL_RETURN_CHANGED);
fl_set_input_return(dialog_->input_viewer, FL_RETURN_CHANGED); fl_set_input_return(dialog_->input_viewer, FL_RETURN_CHANGED);
fl_set_input_return(dialog_->input_editor, FL_RETURN_CHANGED);
fl_set_input_return(dialog_->input_shrtcut, FL_RETURN_CHANGED); fl_set_input_return(dialog_->input_shrtcut, FL_RETURN_CHANGED);
fl_set_input_return(dialog_->input_gui_name, FL_RETURN_CHANGED); fl_set_input_return(dialog_->input_gui_name, FL_RETURN_CHANGED);
fl_set_input_return(dialog_->input_extension, FL_RETURN_CHANGED); fl_set_input_return(dialog_->input_extension, FL_RETURN_CHANGED);
@ -1010,6 +1011,7 @@ void FormPreferences::Formats::build()
setPrehandler(dialog_->button_add); setPrehandler(dialog_->button_add);
setPrehandler(dialog_->input_extension); setPrehandler(dialog_->input_extension);
setPrehandler(dialog_->input_viewer); setPrehandler(dialog_->input_viewer);
setPrehandler(dialog_->input_editor);
setPrehandler(dialog_->input_shrtcut); setPrehandler(dialog_->input_shrtcut);
} }
@ -1036,6 +1038,9 @@ FormPreferences::Formats::feedback(FL_OBJECT const * const ob) const
if (ob == dialog_->input_viewer) if (ob == dialog_->input_viewer)
return _("The command used to launch the viewer application."); return _("The command used to launch the viewer application.");
if (ob == dialog_->input_editor)
return _("The command used to launch the editor application.");
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.");
@ -1062,7 +1067,8 @@ bool FormPreferences::Formats::input(FL_OBJECT const * const ob)
|| ob == dialog_->input_gui_name || ob == dialog_->input_gui_name
|| 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)
return Input(); return Input();
if (ob == dialog_->button_add) if (ob == dialog_->button_add)
@ -1109,11 +1115,11 @@ bool FormPreferences::Formats::Add()
string const extension = fl_get_input(dialog_->input_extension); string const extension = fl_get_input(dialog_->input_extension);
string const shortcut = fl_get_input(dialog_->input_shrtcut); string const shortcut = fl_get_input(dialog_->input_shrtcut);
string const viewer = fl_get_input(dialog_->input_viewer); string const viewer = fl_get_input(dialog_->input_viewer);
string const editor = fl_get_input(dialog_->input_editor);
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); formats().add(name, extension, prettyname, shortcut, viewer, editor);
formats().setViewer(name, viewer);
if (!old || prettyname != old_prettyname) { if (!old || prettyname != old_prettyname) {
UpdateBrowser(); UpdateBrowser();
if (old) if (old)
@ -1140,6 +1146,7 @@ bool FormPreferences::Formats::Browser()
fl_set_input(dialog_->input_shrtcut, f.shortcut().c_str()); fl_set_input(dialog_->input_shrtcut, f.shortcut().c_str());
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_object_label(dialog_->button_add, fl_set_object_label(dialog_->button_add,
idex(_("Modify|#M")).c_str()); idex(_("Modify|#M")).c_str());

View File

@ -9,14 +9,14 @@ SnapGrid: 5
=============== FORM =============== =============== FORM ===============
Name: form_graphics Name: form_graphics
Width: 395 Width: 490
Height: 300 Height: 320
Number of Objects: 6 Number of Objects: 6
-------------------- --------------------
class: FL_BOX class: FL_BOX
type: FLAT_BOX type: FLAT_BOX
box: 0 0 395 300 box: 0 0 490 320
boxtype: FL_FLAT_BOX boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_COL1 colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER alignment: FL_ALIGN_CENTER
@ -34,7 +34,7 @@ argument:
-------------------- --------------------
class: FL_TABFOLDER class: FL_TABFOLDER
type: TOP_TABFOLDER type: TOP_TABFOLDER
box: 0 5 395 260 box: 0 5 490 280
boxtype: FL_FLAT_BOX boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_COL1 colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_TOP_LEFT alignment: FL_ALIGN_TOP_LEFT
@ -52,7 +52,7 @@ argument:
-------------------- --------------------
class: FL_BUTTON class: FL_BUTTON
type: NORMAL_BUTTON type: NORMAL_BUTTON
box: 5 270 90 25 box: 5 290 90 25
boxtype: FL_UP_BOX boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1 colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER alignment: FL_ALIGN_CENTER
@ -70,7 +70,7 @@ argument: 0
-------------------- --------------------
class: FL_BUTTON class: FL_BUTTON
type: RETURN_BUTTON type: RETURN_BUTTON
box: 110 270 90 25 box: 205 290 90 25
boxtype: FL_UP_BOX boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1 colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER alignment: FL_ALIGN_CENTER
@ -88,7 +88,7 @@ argument: 0
-------------------- --------------------
class: FL_BUTTON class: FL_BUTTON
type: NORMAL_BUTTON type: NORMAL_BUTTON
box: 300 270 90 25 box: 395 290 90 25
boxtype: FL_UP_BOX boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1 colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER alignment: FL_ALIGN_CENTER
@ -106,7 +106,7 @@ argument: 0
-------------------- --------------------
class: FL_BUTTON class: FL_BUTTON
type: NORMAL_BUTTON type: NORMAL_BUTTON
box: 205 270 90 25 box: 300 290 90 25
boxtype: FL_UP_BOX boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1 colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER alignment: FL_ALIGN_CENTER
@ -123,14 +123,14 @@ argument: 0
=============== FORM =============== =============== FORM ===============
Name: form_graphics_file Name: form_graphics_file
Width: 395 Width: 490
Height: 235 Height: 255
Number of Objects: 15 Number of Objects: 16
-------------------- --------------------
class: FL_BOX class: FL_BOX
type: FLAT_BOX type: FLAT_BOX
box: 0 0 395 235 box: 0 0 490 255
boxtype: FL_FLAT_BOX boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_COL1 colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER alignment: FL_ALIGN_CENTER
@ -148,7 +148,7 @@ argument:
-------------------- --------------------
class: FL_LABELFRAME class: FL_LABELFRAME
type: ENGRAVED_FRAME type: ENGRAVED_FRAME
box: 5 125 385 105 box: 5 145 480 105
boxtype: FL_NO_BOX boxtype: FL_NO_BOX
colors: FL_BLACK FL_COL1 colors: FL_BLACK FL_COL1
alignment: FL_ALIGN_TOP_LEFT alignment: FL_ALIGN_TOP_LEFT
@ -166,7 +166,7 @@ argument:
-------------------- --------------------
class: FL_INPUT class: FL_INPUT
type: NORMAL_INPUT type: NORMAL_INPUT
box: 60 10 225 25 box: 60 10 320 25
boxtype: FL_DOWN_BOX boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT alignment: FL_ALIGN_LEFT
@ -184,7 +184,7 @@ argument: 0
-------------------- --------------------
class: FL_BUTTON class: FL_BUTTON
type: NORMAL_BUTTON type: NORMAL_BUTTON
box: 290 10 100 25 box: 385 10 100 25
boxtype: FL_UP_BOX boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1 colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER alignment: FL_ALIGN_CENTER
@ -199,10 +199,28 @@ name: button_browse
callback: C_FormDialogView_InputCB callback: C_FormDialogView_InputCB
argument: 0 argument: 0
--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 385 40 100 25
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Edit|#E
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NorthEast FL_NorthEast
name: button_edit
callback: C_FormDialogView_InputCB
argument: 0
-------------------- --------------------
class: FL_LABELFRAME class: FL_LABELFRAME
type: ENGRAVED_FRAME type: ENGRAVED_FRAME
box: 5 55 385 55 box: 5 75 480 55
boxtype: FL_NO_BOX boxtype: FL_NO_BOX
colors: FL_BLACK FL_COL1 colors: FL_BLACK FL_COL1
alignment: FL_ALIGN_TOP_LEFT alignment: FL_ALIGN_TOP_LEFT
@ -220,7 +238,7 @@ argument:
-------------------- --------------------
class: FL_CHECKBUTTON class: FL_CHECKBUTTON
type: PUSH_BUTTON type: PUSH_BUTTON
box: 250 140 125 25 box: 250 160 125 25
boxtype: FL_NO_BOX boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER alignment: FL_ALIGN_CENTER
@ -238,7 +256,7 @@ argument: 0
-------------------- --------------------
class: FL_CHECKBUTTON class: FL_CHECKBUTTON
type: PUSH_BUTTON type: PUSH_BUTTON
box: 250 170 125 25 box: 250 190 125 25
boxtype: FL_NO_BOX boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER alignment: FL_ALIGN_CENTER
@ -256,7 +274,7 @@ argument: 0
-------------------- --------------------
class: FL_INPUT class: FL_INPUT
type: NORMAL_INPUT type: NORMAL_INPUT
box: 85 70 70 25 box: 85 90 70 25
boxtype: FL_DOWN_BOX boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT alignment: FL_ALIGN_LEFT
@ -274,7 +292,7 @@ argument: 0
-------------------- --------------------
class: FL_INPUT class: FL_INPUT
type: NORMAL_INPUT type: NORMAL_INPUT
box: 85 140 70 25 box: 85 160 70 25
boxtype: FL_DOWN_BOX boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT alignment: FL_ALIGN_LEFT
@ -292,7 +310,7 @@ argument: 0
-------------------- --------------------
class: FL_CHOICE class: FL_CHOICE
type: NORMAL_CHOICE type: NORMAL_CHOICE
box: 155 140 60 25 box: 155 160 60 25
boxtype: FL_FRAME_BOX boxtype: FL_FRAME_BOX
colors: FL_COL1 FL_BLACK colors: FL_COL1 FL_BLACK
alignment: FL_ALIGN_LEFT alignment: FL_ALIGN_LEFT
@ -310,7 +328,7 @@ argument: 0
-------------------- --------------------
class: FL_CHOICE class: FL_CHOICE
type: NORMAL_CHOICE type: NORMAL_CHOICE
box: 155 170 60 25 box: 155 190 60 25
boxtype: FL_FRAME_BOX boxtype: FL_FRAME_BOX
colors: FL_COL1 FL_BLACK colors: FL_COL1 FL_BLACK
alignment: FL_ALIGN_LEFT alignment: FL_ALIGN_LEFT
@ -328,7 +346,7 @@ argument: 0
-------------------- --------------------
class: FL_CHECKBUTTON class: FL_CHECKBUTTON
type: PUSH_BUTTON type: PUSH_BUTTON
box: 70 200 190 25 box: 70 220 190 25
boxtype: FL_NO_BOX boxtype: FL_NO_BOX
colors: FL_COL1 FL_YELLOW colors: FL_COL1 FL_YELLOW
alignment: FL_ALIGN_CENTER alignment: FL_ALIGN_CENTER
@ -346,7 +364,7 @@ argument: 0
-------------------- --------------------
class: FL_INPUT class: FL_INPUT
type: NORMAL_INPUT type: NORMAL_INPUT
box: 85 170 70 25 box: 85 190 70 25
boxtype: FL_DOWN_BOX boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT alignment: FL_ALIGN_LEFT
@ -364,7 +382,7 @@ argument: 0
-------------------- --------------------
class: FL_TEXT class: FL_TEXT
type: NORMAL_TEXT type: NORMAL_TEXT
box: 155 70 25 25 box: 155 90 25 25
boxtype: FL_FLAT_BOX boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_MCOL colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE alignment: FL_ALIGN_CENTER|FL_ALIGN_INSIDE
@ -382,7 +400,7 @@ argument:
-------------------- --------------------
class: FL_CHOICE class: FL_CHOICE
type: NORMAL_CHOICE type: NORMAL_CHOICE
box: 265 70 115 25 box: 265 90 115 25
boxtype: FL_FRAME_BOX boxtype: FL_FRAME_BOX
colors: FL_COL1 FL_BLACK colors: FL_COL1 FL_BLACK
alignment: FL_ALIGN_LEFT alignment: FL_ALIGN_LEFT
@ -399,14 +417,14 @@ argument: 0
=============== FORM =============== =============== FORM ===============
Name: form_graphics_bbox Name: form_graphics_bbox
Width: 395 Width: 490
Height: 235 Height: 235
Number of Objects: 10 Number of Objects: 10
-------------------- --------------------
class: FL_BOX class: FL_BOX
type: FLAT_BOX type: FLAT_BOX
box: 0 0 395 235 box: 0 0 490 235
boxtype: FL_FLAT_BOX boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_COL1 colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER alignment: FL_ALIGN_CENTER
@ -585,14 +603,14 @@ argument: 0
=============== FORM =============== =============== FORM ===============
Name: form_graphics_extra Name: form_graphics_extra
Width: 395 Width: 490
Height: 235 Height: 235
Number of Objects: 8 Number of Objects: 8
-------------------- --------------------
class: FL_BOX class: FL_BOX
type: FLAT_BOX type: FLAT_BOX
box: 0 0 395 235 box: 0 0 490 235
boxtype: FL_FLAT_BOX boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_COL1 colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER alignment: FL_ALIGN_CENTER

View File

@ -1705,13 +1705,13 @@ argument:
=============== FORM =============== =============== FORM ===============
Name: form_preferences_formats Name: form_preferences_formats
Width: 450 Width: 450
Height: 360 Height: 400
Number of Objects: 9 Number of Objects: 10
-------------------- --------------------
class: FL_BOX class: FL_BOX
type: FLAT_BOX type: FLAT_BOX
box: 0 0 450 360 box: 0 0 450 400
boxtype: FL_FLAT_BOX boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_COL1 colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER alignment: FL_ALIGN_CENTER
@ -1834,10 +1834,28 @@ name: input_viewer
callback: C_FormDialogView_InputCB callback: C_FormDialogView_InputCB
argument: 0 argument: 0
--------------------
class: FL_INPUT
type: NORMAL_INPUT
box: 280 230 150 30
boxtype: FL_DOWN_BOX
colors: FL_COL1 FL_MCOL
alignment: FL_ALIGN_LEFT
style: FL_NORMAL_STYLE
size: FL_NORMAL_SIZE
lcol: FL_BLACK
label: Editor:|#i
shortcut:
resize: FL_RESIZE_ALL
gravity: FL_NoGravity FL_NoGravity
name: input_editor
callback: C_FormDialogView_InputCB
argument: 0
-------------------- --------------------
class: FL_BUTTON class: FL_BUTTON
type: NORMAL_BUTTON type: NORMAL_BUTTON
box: 240 270 90 30 box: 240 300 90 30
boxtype: FL_UP_BOX boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1 colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER alignment: FL_ALIGN_CENTER
@ -1855,7 +1873,7 @@ argument: 0
-------------------- --------------------
class: FL_BUTTON class: FL_BUTTON
type: NORMAL_BUTTON type: NORMAL_BUTTON
box: 340 270 90 30 box: 340 300 90 30
boxtype: FL_UP_BOX boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1 colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER alignment: FL_ALIGN_CENTER

View File

@ -1,3 +1,11 @@
2004-04-12 Georg Baum <Georg.Baum@post.rwth-aachen.de>
* ExternalTemplate.[Ch]: remove editCommand
* ExternalSupport.C (editExternal): use formats.edit() instead of
the removed editCommand template parameter
* insetgraphics.C (priv_dispatch): handle LFUN_GRAPHICS_EDIT
* insetgraphics.[Ch] (editGraphics): new method
2004-04-01 Georg Baum <Georg.Baum@post.rwth-aachen.de> 2004-04-01 Georg Baum <Georg.Baum@post.rwth-aachen.de>
* insetinclude.C (validate): set/reset features.buffer_ when * insetinclude.C (validate): set/reset features.buffer_ when

View File

@ -19,6 +19,7 @@
#include "buffer.h" #include "buffer.h"
#include "converter.h" #include "converter.h"
#include "debug.h" #include "debug.h"
#include "format.h"
#include "support/filetools.h" #include "support/filetools.h"
#include "support/forkedcall.h" #include "support/forkedcall.h"
@ -51,23 +52,9 @@ Template const * getTemplatePtr(InsetExternalParams const & params)
void editExternal(InsetExternalParams const & params, Buffer const & buffer) void editExternal(InsetExternalParams const & params, Buffer const & buffer)
{ {
Template const * const et_ptr = getTemplatePtr(params); string const file_with_path = params.filename.absFilename();
if (!et_ptr) formats.edit(buffer, file_with_path,
return; support::getExtFromContents(file_with_path));
Template const & et = *et_ptr;
if (et.editCommand.empty())
return;
string const command = doSubstitution(params, buffer, et.editCommand);
support::Path p(buffer.filePath());
support::Forkedcall call;
if (lyxerr.debugging(Debug::EXTERNAL)) {
lyxerr << "Executing '" << command << "' in '"
<< buffer.filePath() << '\'' << endl;
}
call.startscript(support::Forkedcall::DontWait, command);
} }

View File

@ -101,7 +101,6 @@ public:
<< "\tHelpTextEnd\n" << "\tHelpTextEnd\n"
<< "\tInputFormat " << et.inputFormat << '\n' << "\tInputFormat " << et.inputFormat << '\n'
<< "\tFileFilter " << et.fileRegExp << '\n' << "\tFileFilter " << et.fileRegExp << '\n'
<< "\tEditCommand " << et.editCommand << '\n'
<< "\tAutomaticProduction " << et.automaticProduction << '\n'; << "\tAutomaticProduction " << et.automaticProduction << '\n';
typedef vector<TransformID> IDs; typedef vector<TransformID> IDs;
@ -298,7 +297,6 @@ void Template::readTemplate(LyXLex & lex)
TO_HELPTEXT, TO_HELPTEXT,
TO_INPUTFORMAT, TO_INPUTFORMAT,
TO_FILTER, TO_FILTER,
TO_EDITCMD,
TO_AUTOMATIC, TO_AUTOMATIC,
TO_TRANSFORM, TO_TRANSFORM,
TO_FORMAT, TO_FORMAT,
@ -307,7 +305,6 @@ void Template::readTemplate(LyXLex & lex)
keyword_item templateoptiontags[] = { keyword_item templateoptiontags[] = {
{ "automaticproduction", TO_AUTOMATIC }, { "automaticproduction", TO_AUTOMATIC },
{ "editcommand", TO_EDITCMD },
{ "filefilter", TO_FILTER }, { "filefilter", TO_FILTER },
{ "format", TO_FORMAT }, { "format", TO_FORMAT },
{ "guiname", TO_GUINAME }, { "guiname", TO_GUINAME },
@ -340,11 +337,6 @@ void Template::readTemplate(LyXLex & lex)
fileRegExp = lex.getString(); fileRegExp = lex.getString();
break; break;
case TO_EDITCMD:
lex.next(true);
editCommand = lex.getString();
break;
case TO_AUTOMATIC: case TO_AUTOMATIC:
lex.next(); lex.next();
automaticProduction = lex.getBool(); automaticProduction = lex.getBool();

View File

@ -54,8 +54,6 @@ struct Template {
std::string inputFormat; std::string inputFormat;
/// A file extension regular expression for the file browser /// A file extension regular expression for the file browser
std::string fileRegExp; std::string fileRegExp;
/// What command should be executed to edit the file?
std::string editCommand;
/// Should we do automatic production of the output? /// Should we do automatic production of the output?
bool automaticProduction; bool automaticProduction;
/// A collection of transforms that we can use to transform the data. /// A collection of transforms that we can use to transform the data.

View File

@ -190,6 +190,14 @@ void InsetGraphics::statusChanged() const
void InsetGraphics::priv_dispatch(LCursor & cur, FuncRequest & cmd) void InsetGraphics::priv_dispatch(LCursor & cur, FuncRequest & cmd)
{ {
switch (cmd.action) { switch (cmd.action) {
case LFUN_GRAPHICS_EDIT: {
Buffer const & buffer = *cur.bv().buffer();
InsetGraphicsParams p;
InsetGraphicsMailer::string2params(cmd.argument, buffer, p);
editGraphics(p, buffer);
break;
}
case LFUN_INSET_MODIFY: { case LFUN_INSET_MODIFY: {
Buffer const & buffer = cur.buffer(); Buffer const & buffer = cur.buffer();
InsetGraphicsParams p; InsetGraphicsParams p;
@ -692,6 +700,13 @@ InsetGraphicsParams const & InsetGraphics::params() const
} }
void InsetGraphics::editGraphics(InsetGraphicsParams const & p, Buffer const & buffer) const
{
string const file_with_path = p.filename.absFilename();
formats.edit(buffer, file_with_path, getExtFromContents(file_with_path));
}
string const InsetGraphicsMailer::name_("graphics"); string const InsetGraphicsMailer::name_("graphics");
InsetGraphicsMailer::InsetGraphicsMailer(InsetGraphics & inset) InsetGraphicsMailer::InsetGraphicsMailer(InsetGraphics & inset)

View File

@ -79,6 +79,8 @@ public:
void draw(PainterInfo & pi, int x, int y) const; void draw(PainterInfo & pi, int x, int y) const;
/// ///
void edit(LCursor & cur, bool left); void edit(LCursor & cur, bool left);
///
void editGraphics(InsetGraphicsParams const &, Buffer const &) const;
protected: protected:
/// ///
void priv_dispatch(LCursor & cur, FuncRequest & cmd); void priv_dispatch(LCursor & cur, FuncRequest & cmd);

View File

@ -348,6 +348,7 @@ enum kb_action {
LFUN_BUFFERPARAMS_APPLY, LFUN_BUFFERPARAMS_APPLY,
// 265 // 265
LFUN_LYXRC_APPLY, LFUN_LYXRC_APPLY,
LFUN_GRAPHICS_EDIT,
LFUN_LASTACTION // end of the table LFUN_LASTACTION // end of the table
}; };

View File

@ -483,6 +483,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const
case LFUN_SET_COLOR: case LFUN_SET_COLOR:
case LFUN_MESSAGE: case LFUN_MESSAGE:
case LFUN_EXTERNAL_EDIT: case LFUN_EXTERNAL_EDIT:
case LFUN_GRAPHICS_EDIT:
case LFUN_ALL_INSETS_TOGGLE: case LFUN_ALL_INSETS_TOGGLE:
case LFUN_LANGUAGE_BUFFER: case LFUN_LANGUAGE_BUFFER:
case LFUN_TEXTCLASS_APPLY: case LFUN_TEXTCLASS_APPLY:
@ -1260,6 +1261,12 @@ void LyXFunc::dispatch(FuncRequest const & cmd, bool verbose)
break; break;
} }
case LFUN_GRAPHICS_EDIT: {
FuncRequest fr(action, argument);
InsetGraphics().dispatch(view()->cursor(), fr);
break;
}
case LFUN_ALL_INSETS_TOGGLE: { case LFUN_ALL_INSETS_TOGGLE: {
string action; string action;
string const name = split(argument, action, ' '); string const name = split(argument, action, ' ');

View File

@ -161,6 +161,7 @@ keyword_item lyxrcTags[] = {
{ "\\user_email", LyXRC::RC_USER_EMAIL }, { "\\user_email", LyXRC::RC_USER_EMAIL },
{ "\\user_name", LyXRC::RC_USER_NAME }, { "\\user_name", LyXRC::RC_USER_NAME },
{ "\\view_dvi_paper_option", LyXRC::RC_VIEWDVI_PAPEROPTION }, { "\\view_dvi_paper_option", LyXRC::RC_VIEWDVI_PAPEROPTION },
// compatibility with versions older than 1.4.0 only
{ "\\viewer" ,LyXRC::RC_VIEWER}, { "\\viewer" ,LyXRC::RC_VIEWER},
{ "\\wheel_jump", LyXRC::RC_WHEEL_JUMP } { "\\wheel_jump", LyXRC::RC_WHEEL_JUMP }
}; };
@ -979,6 +980,7 @@ int LyXRC::read(LyXLex & lexrc)
} }
break; break;
} }
// compatibility with versions older than 1.4.0 only
case RC_VIEWER: { case RC_VIEWER: {
string format, command; string format, command;
if (lexrc.next()) { if (lexrc.next()) {
@ -1006,6 +1008,29 @@ int LyXRC::read(LyXLex & lexrc)
if (lexrc.next()) { if (lexrc.next()) {
shortcut = lexrc.getString(); shortcut = lexrc.getString();
} }
string viewer, editor;
// Hack to ensure compatibility with versions older
// than 1.4.0
int le = lexrc.lex();
if (le != LyXLex::LEX_FEOF && le != LyXLex::LEX_UNDEF) {
viewer = lexrc.getString();
if (le == LyXLex::LEX_DATA) {
if (token(viewer, ' ', 0) == "none")
viewer.erase();
if (lexrc.next()) {
editor = lexrc.getString();
if (token(editor, ' ', 0) == "none")
editor.erase();
}
} else {
// We have got a known token.
// Therefore this is an old style
// format definition without
// viewer and editor.
lexrc.pushToken(viewer);
viewer.erase();
}
}
if (prettyname.empty()) { if (prettyname.empty()) {
if (converters.formatIsUsed(format)) { if (converters.formatIsUsed(format)) {
lyxerr << "Can't delete format " lyxerr << "Can't delete format "
@ -1015,7 +1040,7 @@ int LyXRC::read(LyXLex & lexrc)
} }
} else { } else {
formats.add(format, extension, prettyname, formats.add(format, extension, prettyname,
shortcut); shortcut, viewer, editor);
} }
break; break;
} }
@ -1801,7 +1826,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
<< "#\n\n"; << "#\n\n";
case RC_FORMAT: case RC_FORMAT:
// Look for deleted formats // New/modifed formats
for (Formats::const_iterator cit = formats.begin(); for (Formats::const_iterator cit = formats.begin();
cit != formats.end(); ++cit) { cit != formats.end(); ++cit) {
Format const * format = Format const * format =
@ -1809,29 +1834,25 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
if (!format || if (!format ||
format->extension() != cit->extension() || format->extension() != cit->extension() ||
format->prettyname() != cit->prettyname() || format->prettyname() != cit->prettyname() ||
format->shortcut() != cit->shortcut()) format->shortcut() != cit->shortcut() ||
format->viewer() != cit->viewer() ||
format->editor() != cit->editor())
os << "\\format \"" << cit->name() << "\" \"" os << "\\format \"" << cit->name() << "\" \""
<< cit->extension() << "\" \"" << cit->extension() << "\" \""
<< cit->prettyname() << "\" \"" << cit->prettyname() << "\" \""
<< cit->shortcut() << "\"\n"; << cit->shortcut() << "\" \""
<< cit->viewer() << "\" \""
<< cit->editor() << "\"\n";
} }
// New/modifed formats // Look for deleted formats
for (Formats::const_iterator cit = system_formats.begin(); for (Formats::const_iterator cit = system_formats.begin();
cit != system_formats.end(); ++cit) cit != system_formats.end(); ++cit)
if (!formats.getFormat(cit->name())) if (!formats.getFormat(cit->name()))
os << "\\format \"" << cit->name() os << "\\format \"" << cit->name()
<< "\" \"\" \"\" \"\"\n"; << "\" \"\" \"\" \"\" \"\" \"\"\n";
case RC_VIEWER: case RC_VIEWER:
for (Formats::const_iterator cit = formats.begin(); // Ignore it
cit != formats.end(); ++cit) {
Format const * format =
system_formats.getFormat(cit->name());
if ((!format || format->viewer() != cit->viewer()) &&
(format || !cit->viewer().empty()))
os << "\\viewer \"" << cit->name() << "\" \""
<< cit->viewer() << "\"\n";
}
os << "\n#\n" os << "\n#\n"
<< "# CONVERTERS SECTION ##########################\n" << "# CONVERTERS SECTION ##########################\n"