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>
* 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_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
save_PATH=${PATH}
PATH=${PATH}:./reLyX/
@ -492,45 +506,45 @@ cat >$outfile <<EOF
# 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
# override the values given here.
\\Format asciichess asc "ASCII (chess output)" ""
\\Format asciiimage asc "ASCII (image)" ""
\\Format asciixfig asc "ASCII (xfig output)" ""
\\Format agr agr GRACE ""
\\Format bmp bmp BMP ""
\\Format date "" "date command" ""
\\Format dateout "tmp" "date (output)" ""
\\Format docbook sgml DocBook B
\\Format dvi dvi DVI D
\\Format eps eps EPS ""
\\Format fax "" Fax ""
\\Format fen fen FEN ""
\\Format fig fig XFig ""
\\Format gif gif GIF ""
\\Format html html HTML H
\\Format jpg jpg JPG ""
\\Format latex tex LaTeX L
\\Format linuxdoc sgml LinuxDoc x
\\Format lyx lyx LyX ""
\\Format lyxpreview lyxpreview "LyX Preview" ""
\\Format literate nw NoWeb N
\\Format pbm pbm PBM ""
\\Format pdf pdf "PDF (ps2pdf)" P
\\Format pdf2 pdf "PDF (pdflatex)" F
\\Format pdf3 pdf "PDF (dvipdfm)" m
\\Format pdftex pdftex_t PDFTEX ""
\\Format pgm pgm PGM ""
\\Format png png PNG ""
\\Format ppm ppm PPM ""
\\Format program "" Program ""
\\Format ps ps Postscript t
\\Format pstex pstex_t PSTEX ""
\\Format text txt ASCII A
\\Format textparagraph txt ASCII(paragraphs) ""
\\Format tgif obj TGIF ""
\\Format tiff tif TIFF ""
\\Format word doc Word W
\\Format xbm xbm XBM ""
\\Format xpm xpm XPM ""
\\Format asciichess asc "ASCII (chess output)" "" "" ""
\\Format asciiimage asc "ASCII (image)" "" "" ""
\\Format asciixfig asc "ASCII (xfig output)" "" "" ""
\\Format agr agr GRACE "" "" ""
\\Format bmp bmp BMP "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
\\Format date "" "date command" "" "" ""
\\Format dateout tmp "date (output)" "" "" ""
\\Format docbook sgml DocBook B "" ""
\\Format dvi dvi DVI D "$DVI_VIEWER" ""
\\Format eps eps EPS "" "$EPS_VIEWER" ""
\\Format fax "" Fax "" "" ""
\\Format fen fen FEN "" "$FEN_VIEWER" "$FEN_EDITOR"
\\Format fig fig XFig "" "$FIG_VIEWER" "$FIG_EDITOR"
\\Format gif gif GIF "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
\\Format html html HTML H "$HTML_VIEWER" ""
\\Format jpg jpg JPG "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
\\Format latex tex LaTeX L "" ""
\\Format linuxdoc sgml LinuxDoc x "" ""
\\Format lyx lyx LyX "" "" ""
\\Format lyxpreview lyxpreview "LyX Preview" "" "" ""
\\Format literate nw NoWeb N "" ""
\\Format pbm pbm PBM "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
\\Format pdf pdf "PDF (ps2pdf)" P "$PDF_VIEWER" ""
\\Format pdf2 pdf "PDF (pdflatex)" F "$PDF_VIEWER" ""
\\Format pdf3 pdf "PDF (dvipdfm)" m "$PDF_VIEWER" ""
\\Format pdftex pdftex_t PDFTEX "" "" ""
\\Format pgm pgm PGM "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
\\Format png png PNG "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
\\Format ppm ppm PPM "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
\\Format program "" Program "" "" ""
\\Format ps ps Postscript t "$PS_VIEWER" ""
\\Format pstex pstex_t PSTEX "" "" ""
\\Format text txt ASCII A "" ""
\\Format textparagraph txt "ASCII (paragraphs)" "" "" ""
\\Format tgif obj TGIF "" "$TGIF_VIEWER" "$TGIF_EDITOR"
\\Format tiff tif TIFF "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
\\Format word doc Word W "" ""
\\Format xbm xbm XBM "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
\\Format xpm xpm XPM "" "$RASTERIMAGE_VIEWER" "$RASTERIMAGE_EDITOR"
\\converter date dateout "date +%d-%m-%Y > \$\$o" ""
\\converter docbook dvi "$docbook_to_dvi_command" ""
@ -555,21 +569,10 @@ cat >$outfile <<EOF
\\converter ps fax "$fax_command" ""
\\converter ps pdf "$ps_to_pdf_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
### 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)
if test "$FIG2DEV" = "fig2dev"; then
@ -591,7 +594,7 @@ SEARCH_PROG([for an TGIF -> EPS/PPM converter], TGIF, tgif)
if test "$TGIF" = "tgif"; then
cat >>$outfile <<EOF
\\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
fi
@ -613,6 +616,12 @@ cat >>$outfile <<EOF
EOF
fi
cat >>$outfile <<EOF
$rc_entries
\\font_encoding "$chk_fontenc"
EOF
######## X FONTS
# create a fonts.dir file to make X fonts available to LyX
echo "checking for TeX fonts"

View File

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

View File

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

View File

@ -27,6 +27,7 @@
using lyx::support::bformat;
using lyx::support::compare_ascii_no_case;
using lyx::support::contains;
using lyx::support::MakeDisplayPath;
using lyx::support::OnlyFilename;
using lyx::support::OnlyPath;
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,
string const & s, string const & v)
: name_(n), extension_(e), prettyname_(p),shortcut_(s), viewer_(v)
string const & s, string const & v, string const & ed)
: 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)
{
if (!getFormat(name))
add(name, name, name, string());
add(name, name, name, string(), string(), string());
}
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 =
find_if(formatlist.begin(), formatlist.end(),
FormatNamesEqual(name));
if (it == formatlist.end())
formatlist.push_back(Format(name, extension, prettyname,
shortcut, ""));
else {
string viewer = it->viewer();
*it = Format(name, extension, prettyname, shortcut, viewer);
}
shortcut, viewer, editor));
else
*it = Format(name, extension, prettyname, shortcut, viewer, editor);
}
@ -183,7 +183,7 @@ bool Formats::view(Buffer const & buffer, string const & filename,
format = getFormat(format->parentFormat());
if (!format || format->viewer().empty()) {
// 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"),
bformat(_("No information for viewing %1$s"),
prettyName(format_name)));
@ -220,7 +220,52 @@ bool Formats::view(Buffer const & buffer, string const & filename,
if (res) {
Alert::error(_("Cannot view file"),
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 true;

View File

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

View File

@ -51,6 +51,8 @@ public:
bool bbChanged;
/// test if file exist
bool isFilenameValid(std::string const & fname) const;
/// edit file
void editGraphics();
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>
* QLPainter.[Ch]: adjust to changes in Painter.h

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -13,8 +13,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>392</width>
<height>494</height>
<width>459</width>
<height>549</height>
</rect>
</property>
<property stdset="1">
@ -32,21 +32,154 @@
<name>sizeGripEnabled</name>
<bool>true</bool>
</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">
<name>margin</name>
<number>11</number>
<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>
<widget>
<class>QTabWidget</class>
<property stdset="1">
<name>name</name>
<cstring>TabWidget</cstring>
</property>
<property stdset="1">
<name>geometry</name>
<rect>
<x>11</x>
<y>11</y>
<width>440</width>
<height>487</height>
</rect>
</property>
<property>
<name>toolTip</name>
<string></string>
@ -70,68 +203,6 @@
<name>spacing</name>
<number>6</number>
</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" >
<property>
<name>name</name>
@ -153,6 +224,261 @@
</size>
</property>
</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" >
<class>QGroupBox</class>
<property stdset="1">
@ -331,120 +657,13 @@
</widget>
</vbox>
</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>
<widget row="0" column="0" rowspan="1" colspan="2" >
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
<cstring>Layout10</cstring>
<cstring>Layout7</cstring>
</property>
<hbox>
<grid>
<property stdset="1">
<name>margin</name>
<number>0</number>
@ -453,138 +672,92 @@
<name>spacing</name>
<number>6</number>
</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>
<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>
<cstring>filename</cstring>
</property>
<property>
<name>toolTip</name>
<string>Percentage to scale by in LyX</string>
<string>File name of image</string>
</property>
</widget>
<widget>
<class>QLabel</class>
<widget row="0" column="2" >
<class>QPushButton</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>
<cstring>browsePB</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>%</string>
<string>&amp;Browse...</string>
</property>
<property>
<name>toolTip</name>
<string>Select an image file</string>
</property>
</widget>
</hbox>
</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>
<widget row="0" column="0" >
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>angleL_2</cstring>
<cstring>filenameL</cstring>
</property>
<property stdset="1">
<name>text</name>
<string>A&amp;ngle:</string>
<string>&amp;File:</string>
</property>
<property>
<name>buddy</name>
<cstring>angle</cstring>
<cstring>filename</cstring>
</property>
<property>
<name>toolTip</name>
<string>Angle to rotate image by</string>
<string>File name of image</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>
</grid>
</widget>
</grid>
</widget>
@ -1083,131 +1256,6 @@
</grid>
</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>
<customwidgets>
<customwidget>

View File

@ -159,6 +159,13 @@
<cstring>viewerED</cstring>
</property>
</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" >
<class>QLineEdit</class>
<property stdset="1">
@ -218,6 +225,21 @@
<cstring>viewerED</cstring>
</property>
</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" >
<class>QLineEdit</class>
<property stdset="1">
@ -347,5 +369,6 @@
<tabstop>shortcutED</tabstop>
<tabstop>extensionED</tabstop>
<tabstop>viewerED</tabstop>
<tabstop>editorED</tabstop>
</tabstops>
</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>

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 activate = ButtonPolicy::SMI_VALID;
// the file section
if (ob == file_->button_browse) {
activate = ButtonPolicy::SMI_NOOP;
// Get the filename from the dialog
string const in_name = getString(file_->input_filename);
string const out_name = controller().browse(in_name);
@ -642,7 +646,11 @@ ButtonPolicy::SMInput FormGraphics::input(FL_OBJECT * ob, long)
setEnabled(extra_->input_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_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_gui_name, 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_->input_extension);
setPrehandler(dialog_->input_viewer);
setPrehandler(dialog_->input_editor);
setPrehandler(dialog_->input_shrtcut);
}
@ -1036,6 +1038,9 @@ FormPreferences::Formats::feedback(FL_OBJECT const * const ob) const
if (ob == dialog_->input_viewer)
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)
return _("Remove the current format from the list of available "
"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_shrtcut
|| ob == dialog_->input_extension
|| ob == dialog_->input_viewer)
|| ob == dialog_->input_viewer
|| ob == dialog_->input_editor)
return Input();
if (ob == dialog_->button_add)
@ -1109,11 +1115,11 @@ bool FormPreferences::Formats::Add()
string const extension = fl_get_input(dialog_->input_extension);
string const shortcut = fl_get_input(dialog_->input_shrtcut);
string const viewer = fl_get_input(dialog_->input_viewer);
string const editor = fl_get_input(dialog_->input_editor);
Format const * old = formats().getFormat(name);
string const old_prettyname = old ? old->prettyname() : string();
formats().add(name, extension, prettyname, shortcut);
formats().setViewer(name, viewer);
formats().add(name, extension, prettyname, shortcut, viewer, editor);
if (!old || prettyname != old_prettyname) {
UpdateBrowser();
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_extension, f.extension().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,
idex(_("Modify|#M")).c_str());

View File

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

View File

@ -1705,13 +1705,13 @@ argument:
=============== FORM ===============
Name: form_preferences_formats
Width: 450
Height: 360
Number of Objects: 9
Height: 400
Number of Objects: 10
--------------------
class: FL_BOX
type: FLAT_BOX
box: 0 0 450 360
box: 0 0 450 400
boxtype: FL_FLAT_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
@ -1834,10 +1834,28 @@ name: input_viewer
callback: C_FormDialogView_InputCB
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
type: NORMAL_BUTTON
box: 240 270 90 30
box: 240 300 90 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
alignment: FL_ALIGN_CENTER
@ -1855,7 +1873,7 @@ argument: 0
--------------------
class: FL_BUTTON
type: NORMAL_BUTTON
box: 340 270 90 30
box: 340 300 90 30
boxtype: FL_UP_BOX
colors: FL_COL1 FL_COL1
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>
* insetinclude.C (validate): set/reset features.buffer_ when

View File

@ -19,6 +19,7 @@
#include "buffer.h"
#include "converter.h"
#include "debug.h"
#include "format.h"
#include "support/filetools.h"
#include "support/forkedcall.h"
@ -51,23 +52,9 @@ Template const * getTemplatePtr(InsetExternalParams const & params)
void editExternal(InsetExternalParams const & params, Buffer const & buffer)
{
Template const * const et_ptr = getTemplatePtr(params);
if (!et_ptr)
return;
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);
string const file_with_path = params.filename.absFilename();
formats.edit(buffer, file_with_path,
support::getExtFromContents(file_with_path));
}

View File

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

View File

@ -54,8 +54,6 @@ struct Template {
std::string inputFormat;
/// A file extension regular expression for the file browser
std::string fileRegExp;
/// What command should be executed to edit the file?
std::string editCommand;
/// Should we do automatic production of the output?
bool automaticProduction;
/// 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)
{
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: {
Buffer const & buffer = cur.buffer();
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");
InsetGraphicsMailer::InsetGraphicsMailer(InsetGraphics & inset)

View File

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

View File

@ -348,6 +348,7 @@ enum kb_action {
LFUN_BUFFERPARAMS_APPLY,
// 265
LFUN_LYXRC_APPLY,
LFUN_GRAPHICS_EDIT,
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_MESSAGE:
case LFUN_EXTERNAL_EDIT:
case LFUN_GRAPHICS_EDIT:
case LFUN_ALL_INSETS_TOGGLE:
case LFUN_LANGUAGE_BUFFER:
case LFUN_TEXTCLASS_APPLY:
@ -1260,6 +1261,12 @@ void LyXFunc::dispatch(FuncRequest const & cmd, bool verbose)
break;
}
case LFUN_GRAPHICS_EDIT: {
FuncRequest fr(action, argument);
InsetGraphics().dispatch(view()->cursor(), fr);
break;
}
case LFUN_ALL_INSETS_TOGGLE: {
string action;
string const name = split(argument, action, ' ');

View File

@ -161,6 +161,7 @@ keyword_item lyxrcTags[] = {
{ "\\user_email", LyXRC::RC_USER_EMAIL },
{ "\\user_name", LyXRC::RC_USER_NAME },
{ "\\view_dvi_paper_option", LyXRC::RC_VIEWDVI_PAPEROPTION },
// compatibility with versions older than 1.4.0 only
{ "\\viewer" ,LyXRC::RC_VIEWER},
{ "\\wheel_jump", LyXRC::RC_WHEEL_JUMP }
};
@ -979,6 +980,7 @@ int LyXRC::read(LyXLex & lexrc)
}
break;
}
// compatibility with versions older than 1.4.0 only
case RC_VIEWER: {
string format, command;
if (lexrc.next()) {
@ -1006,6 +1008,29 @@ int LyXRC::read(LyXLex & lexrc)
if (lexrc.next()) {
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 (converters.formatIsUsed(format)) {
lyxerr << "Can't delete format "
@ -1015,7 +1040,7 @@ int LyXRC::read(LyXLex & lexrc)
}
} else {
formats.add(format, extension, prettyname,
shortcut);
shortcut, viewer, editor);
}
break;
}
@ -1801,7 +1826,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
<< "#\n\n";
case RC_FORMAT:
// Look for deleted formats
// New/modifed formats
for (Formats::const_iterator cit = formats.begin();
cit != formats.end(); ++cit) {
Format const * format =
@ -1809,29 +1834,25 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const
if (!format ||
format->extension() != cit->extension() ||
format->prettyname() != cit->prettyname() ||
format->shortcut() != cit->shortcut())
format->shortcut() != cit->shortcut() ||
format->viewer() != cit->viewer() ||
format->editor() != cit->editor())
os << "\\format \"" << cit->name() << "\" \""
<< cit->extension() << "\" \""
<< 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();
cit != system_formats.end(); ++cit)
if (!formats.getFormat(cit->name()))
os << "\\format \"" << cit->name()
<< "\" \"\" \"\" \"\"\n";
<< "\" \"\" \"\" \"\" \"\" \"\"\n";
case RC_VIEWER:
for (Formats::const_iterator cit = formats.begin();
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";
}
// Ignore it
os << "\n#\n"
<< "# CONVERTERS SECTION ##########################\n"