Angus Leeming wrote: > Question 2 > ========== > Is this safe? What happens if command.size() < 50? > > + bformat(_("An error occurred whilst running %1$s"), > + command.substr(0, 50)));
I have replaced it with MakeDisplayPath, which works well. > Question 4 > ========== > Why is LyXRC::RC_EDITOR needed? Isn't this just part of the format > definition? Ie, why not extend RC_FORMAT? (And ditch RC_VIEWER also.) I did that. I also removed EditCommand from the external templates, it turned out to be rather easy. Updated patch attached. Georg
Index: lib/ChangeLog =================================================================== RCS file: /cvs/lyx/lyx-devel/lib/ChangeLog,v retrieving revision 1.579 diff -u -p -r1.579 ChangeLog --- lib/ChangeLog 2004/04/06 21:07:26 1.579 +++ lib/ChangeLog 2004/04/12 19:38:50 @@ -1,3 +1,9 @@ +2004-04-12 Georg Baum <[EMAIL PROTECTED]> + + * 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 <[EMAIL PROTECTED]> * external_templates: use some new variables instead of $$Basename Index: lib/configure.m4 =================================================================== RCS file: /cvs/lyx/lyx-devel/lib/configure.m4,v retrieving revision 1.75 diff -u -p -r1.75 configure.m4 --- lib/configure.m4 2004/03/22 16:22:52 1.75 +++ lib/configure.m4 2004/04/12 19:38:54 @@ -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,113 +560,102 @@ # 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 "" - -\\converter date dateout "date +%d-%m-%Y > \$\$o" "" -\\converter docbook dvi "$docbook_to_dvi_command" "" -\\converter docbook html "$docbook_to_html_command" "" -\\converter dvi pdf3 "$dvi_to_pdf_command" "" -\\converter dvi ps "$dvi_to_ps_command" "" -\\converter fen asciichess "python \$\$s/fen2ascii.py \$\$i \$\$o" "" -\\converter fig pdftex "sh \$\$s/fig2pdftex.sh \$\$i \$\$o" "" -\\converter fig pstex "sh \$\$s/fig2pstex.sh \$\$i \$\$o" "" -\\converter html latex "$html_to_latex_command" "" -\\converter latex html "$latex_to_html_command" "originaldir,needaux" -\\converter latex dvi "$latex_to_dvi" "latex" -\\converter latex lyx "$tex_to_lyx_command" "" -\\converter latex pdf2 "$latex_to_pdf" "latex" -\\converter linuxdoc dvi "$linuxdoc_to_dvi_command" "" -\\converter linuxdoc html "$linuxdoc_to_html_command" "" -\\converter linuxdoc latex "$linuxdoc_to_latex_command" "" -\\converter linuxdoc lyx "$linuxdoc_to_lyx_command" "" -\\converter literate latex "$literate_to_tex_command" "" -\\converter literate lyx "$literate_to_lyx_command" "" -\\converter lyxpreview ppm "$lyxpreview_to_bitmap_command" "" -\\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" +\\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" "" +\\converter docbook html "$docbook_to_html_command" "" +\\converter dvi pdf3 "$dvi_to_pdf_command" "" +\\converter dvi ps "$dvi_to_ps_command" "" +\\converter fen asciichess "python \$\$s/fen2ascii.py \$\$i \$\$o" "" +\\converter fig pdftex "sh \$\$s/fig2pdftex.sh \$\$i \$\$o" "" +\\converter fig pstex "sh \$\$s/fig2pstex.sh \$\$i \$\$o" "" +\\converter html latex "$html_to_latex_command" "" +\\converter latex html "$latex_to_html_command" "originaldir,needaux" +\\converter latex dvi "$latex_to_dvi" "latex" +\\converter latex lyx "$tex_to_lyx_command" "" +\\converter latex pdf2 "$latex_to_pdf" "latex" +\\converter linuxdoc dvi "$linuxdoc_to_dvi_command" "" +\\converter linuxdoc html "$linuxdoc_to_html_command" "" +\\converter linuxdoc latex "$linuxdoc_to_latex_command" "" +\\converter linuxdoc lyx "$linuxdoc_to_lyx_command" "" +\\converter literate latex "$literate_to_tex_command" "" +\\converter literate lyx "$literate_to_lyx_command" "" +\\converter lyxpreview ppm "$lyxpreview_to_bitmap_command" "" +\\converter ps fax "$fax_command" "" +\\converter ps pdf "$ps_to_pdf_command" "" +\\converter word latex "$word_to_latex_command" "" 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 cat >>$outfile <<EOF -\\converter fig eps "fig2dev -L eps \$\$i \$\$o" "" -\\converter fig ppm "fig2dev -L ppm \$\$i \$\$o" "" -\\converter fig png "fig2dev -L png \$\$i \$\$o" "" +\\converter fig eps "fig2dev -L eps \$\$i \$\$o" "" +\\converter fig ppm "fig2dev -L ppm \$\$i \$\$o" "" +\\converter fig png "fig2dev -L png \$\$i \$\$o" "" EOF fi SEARCH_PROG([for an TIFF -> PS converter], TIFF2PS, tiff2ps) if test "$TIFF2PS" = "tiff2ps"; then cat >>$outfile <<EOF -\\converter tiff eps "tiff2ps \$\$i > \$\$o" "" +\\converter tiff eps "tiff2ps \$\$i > \$\$o" "" EOF fi 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 eps "tgif -stdout -print -color -eps \$\$i > \$\$o" "" +\\converter tgif pdf "tgif -stdout -print -color -pdf \$\$i > \$\$o" "" EOF fi SEARCH_PROG([for an EPS -> PDF converter], EPSTOPDF, epstopdf) if test "$EPSTOPDF" = "epstopdf"; then cat >>$outfile <<EOF -\\converter eps pdf "epstopdf --outfile=\$\$o \$\$i" "" +\\converter eps pdf "epstopdf --outfile=\$\$o \$\$i" "" EOF fi @@ -606,13 +641,19 @@ SEARCH_PROG([for a Grace -> Image converter], GRACE, gracebat) if test "$GRACE" = "gracebat"; then cat >>$outfile <<EOF -\\converter agr eps "gracebat -hardcopy -printfile \$\$o -hdevice EPS \$\$i 2>/dev/null" "" -\\converter agr png "gracebat -hardcopy -printfile \$\$o -hdevice PNG \$\$i 2>/dev/null" "" -\\converter agr jpg "gracebat -hardcopy -printfile \$\$o -hdevice JPEG \$\$i 2>/dev/null" "" -\\converter agr ppm "gracebat -hardcopy -printfile \$\$o -hdevice PNM \$\$i 2>/dev/null" "" +\\converter agr eps "gracebat -hardcopy -printfile \$\$o -hdevice EPS \$\$i 2>/dev/null" "" +\\converter agr png "gracebat -hardcopy -printfile \$\$o -hdevice PNG \$\$i 2>/dev/null" "" +\\converter agr jpg "gracebat -hardcopy -printfile \$\$o -hdevice JPEG \$\$i 2>/dev/null" "" +\\converter agr ppm "gracebat -hardcopy -printfile \$\$o -hdevice PNM \$\$i 2>/dev/null" "" 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" Index: lib/external_templates =================================================================== RCS file: /cvs/lyx/lyx-devel/lib/external_templates,v retrieving revision 1.23 diff -u -p -r1.23 external_templates --- lib/external_templates 2004/04/06 21:07:27 1.23 +++ lib/external_templates 2004/04/12 19:38:54 @@ -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" Index: src/ChangeLog =================================================================== RCS file: /cvs/lyx/lyx-devel/src/ChangeLog,v retrieving revision 1.1891 diff -u -p -r1.1891 ChangeLog --- src/ChangeLog 2004/04/08 16:08:13 1.1891 +++ src/ChangeLog 2004/04/12 19:39:59 @@ -1,3 +1,8 @@ +2004-04-12 Georg Baum <[EMAIL PROTECTED]> + + * 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 <[EMAIL PROTECTED]> Index: src/LyXAction.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/LyXAction.C,v retrieving revision 1.198 diff -u -p -r1.198 LyXAction.C --- src/LyXAction.C 2004/04/05 18:34:33 1.198 +++ src/LyXAction.C 2004/04/12 19:40:04 @@ -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 }, Index: src/format.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/format.C,v retrieving revision 1.22 diff -u -p -r1.22 format.C --- src/format.C 2004/02/06 08:23:39 1.22 +++ src/format.C 2004/04/12 19:40:12 @@ -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 } 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 & na 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); } @@ -172,7 +172,7 @@ void Formats::setViewer(string const & n bool Formats::view(Buffer const & buffer, string const & filename, - string const & format_name) const + string const & format_name) const { if (filename.empty()) return false; @@ -183,7 +183,7 @@ bool Formats::view(Buffer const & buffer 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))); @@ -219,8 +219,53 @@ bool Formats::view(Buffer const & buffer if (res) { Alert::error(_("Cannot view file"), + bformat(_("An error occurred whilst running %1$s"), + 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"), - command.substr(0, 50))); + MakeDisplayPath(command, 50))); return false; } return true; Index: src/format.h =================================================================== RCS file: /cvs/lyx/lyx-devel/src/format.h,v retrieving revision 1.7 diff -u -p -r1.7 format.h --- src/format.h 2003/10/06 15:42:15 1.7 +++ src/format.h 2004/04/12 19:40:12 @@ -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); /// @@ -95,6 +102,9 @@ public: void setViewer(std::string const & name, std::string const & command); /// 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; Index: src/lfuns.h =================================================================== RCS file: /cvs/lyx/lyx-devel/src/lfuns.h,v retrieving revision 1.34 diff -u -p -r1.34 lfuns.h --- src/lfuns.h 2004/03/31 16:50:57 1.34 +++ src/lfuns.h 2004/04/12 19:40:14 @@ -348,6 +348,7 @@ enum kb_action { LFUN_BUFFERPARAMS_APPLY, // 265 LFUN_LYXRC_APPLY, + LFUN_GRAPHICS_EDIT, LFUN_LASTACTION // end of the table }; Index: src/lyxfunc.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/lyxfunc.C,v retrieving revision 1.612 diff -u -p -r1.612 lyxfunc.C --- src/lyxfunc.C 2004/04/07 20:20:11 1.612 +++ src/lyxfunc.C 2004/04/12 19:40:18 @@ -483,6 +483,7 @@ FuncStatus LyXFunc::getStatus(FuncReques 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: @@ -1257,6 +1258,12 @@ void LyXFunc::dispatch(FuncRequest const case LFUN_EXTERNAL_EDIT: { FuncRequest fr(action, argument); InsetExternal().dispatch(view()->cursor(), fr); + break; + } + + case LFUN_GRAPHICS_EDIT: { + FuncRequest fr(action, argument); + InsetGraphics().dispatch(view()->cursor(), fr); break; } Index: src/lyxrc.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/lyxrc.C,v retrieving revision 1.170 diff -u -p -r1.170 lyxrc.C --- src/lyxrc.C 2004/04/08 12:55:44 1.170 +++ src/lyxrc.C 2004/04/12 19:40:24 @@ -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 ign << "#\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 ign 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" Index: src/frontends/controllers/ChangeLog =================================================================== RCS file: /cvs/lyx/lyx-devel/src/frontends/controllers/ChangeLog,v retrieving revision 1.437 diff -u -p -r1.437 ChangeLog --- src/frontends/controllers/ChangeLog 2004/04/07 05:28:51 1.437 +++ src/frontends/controllers/ChangeLog 2004/04/12 19:40:54 @@ -1,3 +1,7 @@ +2004-04-12 Georg Baum <[EMAIL PROTECTED]> + + * ControlGraphics.[Ch] (editGraphics): new method + 2004-04-07 Martin Vermeer <[EMAIL PROTECTED]> * ControlDocument.C: 'assign' for opening/closing branch insets Index: src/frontends/controllers/ControlGraphics.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/frontends/controllers/ControlGraphics.C,v retrieving revision 1.82 diff -u -p -r1.82 ControlGraphics.C --- src/frontends/controllers/ControlGraphics.C 2004/01/08 10:59:49 1.82 +++ src/frontends/controllers/ControlGraphics.C 2004/04/12 19:40:55 @@ -133,6 +133,16 @@ bool ControlGraphics::isFilenameValid(st } +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 { Index: src/frontends/controllers/ControlGraphics.h =================================================================== RCS file: /cvs/lyx/lyx-devel/src/frontends/controllers/ControlGraphics.h,v retrieving revision 1.24 diff -u -p -r1.24 ControlGraphics.h --- src/frontends/controllers/ControlGraphics.h 2004/01/08 10:59:49 1.24 +++ src/frontends/controllers/ControlGraphics.h 2004/04/12 19:40:55 @@ -51,6 +51,8 @@ public: bool bbChanged; /// test if file exist bool isFilenameValid(std::string const & fname) const; + /// edit file + void editGraphics(); private: /// Index: src/frontends/qt2/ChangeLog =================================================================== RCS file: /cvs/lyx/lyx-devel/src/frontends/qt2/ChangeLog,v retrieving revision 1.667 diff -u -p -r1.667 ChangeLog --- src/frontends/qt2/ChangeLog 2004/04/07 20:20:14 1.667 +++ src/frontends/qt2/ChangeLog 2004/04/12 19:41:07 @@ -1,3 +1,10 @@ +2004-04-12 Georg Baum <[EMAIL PROTECTED]> + + * 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 <[EMAIL PROTECTED]> * QLPainter.[Ch]: adjust to changes in Painter.h Index: src/frontends/qt2/QGraphics.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/frontends/qt2/QGraphics.C,v retrieving revision 1.44 diff -u -p -r1.44 QGraphics.C --- src/frontends/qt2/QGraphics.C 2004/04/08 15:03:30 1.44 +++ src/frontends/qt2/QGraphics.C 2004/04/12 19:41:09 @@ -415,3 +415,9 @@ bool QGraphics::isValid() { return !dialog_->filename->text().isEmpty(); } + + +void QGraphics::slotEdit() +{ + controller().editGraphics(); +} Index: src/frontends/qt2/QGraphics.h =================================================================== RCS file: /cvs/lyx/lyx-devel/src/frontends/qt2/QGraphics.h,v retrieving revision 1.15 diff -u -p -r1.15 QGraphics.h --- src/frontends/qt2/QGraphics.h 2003/10/06 15:42:50 1.15 +++ src/frontends/qt2/QGraphics.h 2004/04/12 19:41:09 @@ -30,6 +30,8 @@ public: friend class QGraphicsDialog; /// QGraphics(Dialog &); +public slots: + void slotEdit(); protected: virtual bool isValid(); private: Index: src/frontends/qt2/QGraphicsDialog.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/frontends/qt2/QGraphicsDialog.C,v retrieving revision 1.23 diff -u -p -r1.23 QGraphicsDialog.C --- src/frontends/qt2/QGraphicsDialog.C 2004/01/08 10:59:49 1.23 +++ src/frontends/qt2/QGraphicsDialog.C 2004/04/12 19:41:09 @@ -39,6 +39,8 @@ QGraphicsDialog::QGraphicsDialog(QGraphi form, SLOT(slotClose())); connect(restorePB, SIGNAL(clicked()), form, SLOT(slotRestore())); + connect(editPB, SIGNAL(clicked()), + this, SLOT(edit_clicked())); } @@ -92,4 +94,11 @@ void QGraphicsDialog::browse_clicked() void QGraphicsDialog::getBB_clicked() { form_->getBB(); +} + + +void QGraphicsDialog::edit_clicked() +{ + form_->changed(); + form_->controller().editGraphics(); } Index: src/frontends/qt2/QGraphicsDialog.h =================================================================== RCS file: /cvs/lyx/lyx-devel/src/frontends/qt2/QGraphicsDialog.h,v retrieving revision 1.11 diff -u -p -r1.11 QGraphicsDialog.h --- src/frontends/qt2/QGraphicsDialog.h 2003/09/07 01:45:38 1.11 +++ src/frontends/qt2/QGraphicsDialog.h 2004/04/12 19:41:09 @@ -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: Index: src/frontends/qt2/QPrefsDialog.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/frontends/qt2/QPrefsDialog.C,v retrieving revision 1.32 diff -u -p -r1.32 QPrefsDialog.C --- src/frontends/qt2/QPrefsDialog.C 2004/03/31 16:50:58 1.32 +++ src/frontends/qt2/QPrefsDialog.C 2004/04/12 19:41:10 @@ -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(); Index: src/frontends/qt2/ui/QGraphicsDialogBase.ui =================================================================== RCS file: /cvs/lyx/lyx-devel/src/frontends/qt2/ui/QGraphicsDialogBase.ui,v retrieving revision 1.5 diff -u -p -r1.5 QGraphicsDialogBase.ui --- src/frontends/qt2/ui/QGraphicsDialogBase.ui 2003/12/30 19:05:42 1.5 +++ src/frontends/qt2/ui/QGraphicsDialogBase.ui 2004/04/12 19:41:13 @@ -1117,6 +1117,25 @@ <bool>false</bool> </property> </widget> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>editPB</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>&Edit</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> @@ -1455,6 +1474,7 @@ <tabstop>draftCB</tabstop> <tabstop>unzipCB</tabstop> <tabstop>restorePB</tabstop> + <tabstop>editPB</tabstop> <tabstop>okPB</tabstop> <tabstop>applyPB</tabstop> <tabstop>closePB</tabstop> Index: src/frontends/qt2/ui/QPrefFileformatsModule.ui =================================================================== RCS file: /cvs/lyx/lyx-devel/src/frontends/qt2/ui/QPrefFileformatsModule.ui,v retrieving revision 1.6 diff -u -p -r1.6 QPrefFileformatsModule.ui --- src/frontends/qt2/ui/QPrefFileformatsModule.ui 2003/03/28 01:21:42 1.6 +++ src/frontends/qt2/ui/QPrefFileformatsModule.ui 2004/04/12 19:41:13 @@ -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&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> Index: src/frontends/xforms/ChangeLog =================================================================== RCS file: /cvs/lyx/lyx-devel/src/frontends/xforms/ChangeLog,v retrieving revision 1.899 diff -u -p -r1.899 ChangeLog --- src/frontends/xforms/ChangeLog 2004/04/07 20:20:14 1.899 +++ src/frontends/xforms/ChangeLog 2004/04/12 19:41:34 @@ -1,3 +1,7 @@ +2004-04-12 Georg Baum <[EMAIL PROTECTED]> + + * FormPreferences.C, forms/form_preferences.fd: add editor to format + * FormGraphics.C, forms/form_graphics.fd: add Edit button 2004-04-07 Alfredo Braunstein <[EMAIL PROTECTED]> Index: src/frontends/xforms/FormGraphics.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/frontends/xforms/FormGraphics.C,v retrieving revision 1.122 diff -u -p -r1.122 FormGraphics.C --- src/frontends/xforms/FormGraphics.C 2004/04/05 14:05:03 1.122 +++ src/frontends/xforms/FormGraphics.C 2004/04/12 19:41:36 @@ -642,7 +642,10 @@ ButtonPolicy::SMInput FormGraphics::inpu setEnabled(extra_->input_subcaption, fl_get_button(extra_->check_subcaption)); + } else if (ob == dialog_->button_edit) { + controller().editGraphics(); } + return ButtonPolicy::SMI_VALID; } Index: src/frontends/xforms/FormPreferences.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/frontends/xforms/FormPreferences.C,v retrieving revision 1.185 diff -u -p -r1.185 FormPreferences.C --- src/frontends/xforms/FormPreferences.C 2004/03/31 18:51:10 1.185 +++ src/frontends/xforms/FormPreferences.C 2004/04/12 19:41:41 @@ -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_OB 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_ || 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()); Index: src/frontends/xforms/forms/form_graphics.fd =================================================================== RCS file: /cvs/lyx/lyx-devel/src/frontends/xforms/forms/form_graphics.fd,v retrieving revision 1.44 diff -u -p -r1.44 form_graphics.fd --- src/frontends/xforms/forms/form_graphics.fd 2003/09/29 21:40:13 1.44 +++ src/frontends/xforms/forms/form_graphics.fd 2004/04/12 19:41:43 @@ -9,14 +9,14 @@ SnapGrid: 5 =============== FORM =============== Name: form_graphics -Width: 395 +Width: 490 Height: 300 -Number of Objects: 6 +Number of Objects: 7 -------------------- class: FL_BOX type: FLAT_BOX -box: 0 0 395 300 +box: 0 0 490 300 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 260 boxtype: FL_FLAT_BOX colors: FL_COL1 FL_COL1 alignment: FL_ALIGN_TOP_LEFT @@ -69,8 +69,26 @@ argument: 0 -------------------- class: FL_BUTTON +type: NORMAL_BUTTON +box: 100 270 90 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_BUTTON type: RETURN_BUTTON -box: 110 270 90 25 +box: 205 270 90 25 boxtype: FL_UP_BOX colors: FL_COL1 FL_COL1 alignment: FL_ALIGN_CENTER @@ -88,7 +106,7 @@ argument: 0 -------------------- class: FL_BUTTON type: NORMAL_BUTTON -box: 300 270 90 25 +box: 395 270 90 25 boxtype: FL_UP_BOX colors: FL_COL1 FL_COL1 alignment: FL_ALIGN_CENTER @@ -106,7 +124,7 @@ argument: 0 -------------------- class: FL_BUTTON type: NORMAL_BUTTON -box: 205 270 90 25 +box: 300 270 90 25 boxtype: FL_UP_BOX colors: FL_COL1 FL_COL1 alignment: FL_ALIGN_CENTER @@ -123,14 +141,14 @@ argument: 0 =============== FORM =============== Name: form_graphics_file -Width: 395 +Width: 490 Height: 235 Number of Objects: 15 -------------------- 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 @@ -148,7 +166,7 @@ argument: -------------------- class: FL_LABELFRAME type: ENGRAVED_FRAME -box: 5 125 385 105 +box: 5 125 480 105 boxtype: FL_NO_BOX colors: FL_BLACK FL_COL1 alignment: FL_ALIGN_TOP_LEFT @@ -166,7 +184,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 +202,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 @@ -202,7 +220,7 @@ argument: 0 -------------------- class: FL_LABELFRAME type: ENGRAVED_FRAME -box: 5 55 385 55 +box: 5 55 480 55 boxtype: FL_NO_BOX colors: FL_BLACK FL_COL1 alignment: FL_ALIGN_TOP_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 Index: src/frontends/xforms/forms/form_preferences.fd =================================================================== RCS file: /cvs/lyx/lyx-devel/src/frontends/xforms/forms/form_preferences.fd,v retrieving revision 1.65 diff -u -p -r1.65 form_preferences.fd --- src/frontends/xforms/forms/form_preferences.fd 2004/03/31 18:51:11 1.65 +++ src/frontends/xforms/forms/form_preferences.fd 2004/04/12 19:41:44 @@ -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 @@ -1835,9 +1835,27 @@ 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 Index: src/insets/ChangeLog =================================================================== RCS file: /cvs/lyx/lyx-devel/src/insets/ChangeLog,v retrieving revision 1.999 diff -u -p -r1.999 ChangeLog --- src/insets/ChangeLog 2004/04/08 10:09:08 1.999 +++ src/insets/ChangeLog 2004/04/12 19:42:05 @@ -1,3 +1,11 @@ +2004-04-12 Georg Baum <[EMAIL PROTECTED]> + + * 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 <[EMAIL PROTECTED]> * insetinclude.C (validate): set/reset features.buffer_ when Index: src/insets/ExternalSupport.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/insets/ExternalSupport.C,v retrieving revision 1.6 diff -u -p -r1.6 ExternalSupport.C --- src/insets/ExternalSupport.C 2004/04/06 21:07:27 1.6 +++ src/insets/ExternalSupport.C 2004/04/12 19:42:07 @@ -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(InsetExt 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)); } Index: src/insets/ExternalTemplate.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/insets/ExternalTemplate.C,v retrieving revision 1.33 diff -u -p -r1.33 ExternalTemplate.C --- src/insets/ExternalTemplate.C 2003/10/07 22:59:58 1.33 +++ src/insets/ExternalTemplate.C 2004/04/12 19:42:08 @@ -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 }, @@ -338,11 +335,6 @@ void Template::readTemplate(LyXLex & lex case TO_FILTER: lex.next(true); fileRegExp = lex.getString(); - break; - - case TO_EDITCMD: - lex.next(true); - editCommand = lex.getString(); break; case TO_AUTOMATIC: Index: src/insets/ExternalTemplate.h =================================================================== RCS file: /cvs/lyx/lyx-devel/src/insets/ExternalTemplate.h,v retrieving revision 1.25 diff -u -p -r1.25 ExternalTemplate.h --- src/insets/ExternalTemplate.h 2003/10/07 22:59:58 1.25 +++ src/insets/ExternalTemplate.h 2004/04/12 19:42:08 @@ -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. Index: src/insets/insetgraphics.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/insets/insetgraphics.C,v retrieving revision 1.242 diff -u -p -r1.242 insetgraphics.C --- src/insets/insetgraphics.C 2004/04/08 15:03:31 1.242 +++ src/insets/insetgraphics.C 2004/04/12 19:42:12 @@ -190,6 +186,14 @@ void InsetGraphics::statusChanged() cons 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; @@ -689,6 +701,13 @@ bool InsetGraphics::setParams(InsetGraph InsetGraphicsParams const & InsetGraphics::params() const { return params_; +} + + +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)); } Index: src/insets/insetgraphics.h =================================================================== RCS file: /cvs/lyx/lyx-devel/src/insets/insetgraphics.h,v retrieving revision 1.96 diff -u -p -r1.96 insetgraphics.h --- src/insets/insetgraphics.h 2004/03/18 12:53:39 1.96 +++ src/insets/insetgraphics.h 2004/04/12 19:42:13 @@ -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);