From a6201e6d6373766ad0af877998f07834477e6e06 Mon Sep 17 00:00:00 2001 From: Abdelrazak Younes Date: Tue, 22 Sep 2009 19:55:15 +0000 Subject: [PATCH] Transfer LFUN_HELP_OPEN to GuiApplication. There's some code factorization to do in there... git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31441 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/LyXFunc.cpp | 30 -------------------------- src/frontends/qt4/GuiApplication.cpp | 32 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 30 deletions(-) diff --git a/src/LyXFunc.cpp b/src/LyXFunc.cpp index 281dc7940b..2fa52b8cab 100644 --- a/src/LyXFunc.cpp +++ b/src/LyXFunc.cpp @@ -558,7 +558,6 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const case LFUN_CANCEL: case LFUN_META_PREFIX: case LFUN_RECONFIGURE: - case LFUN_HELP_OPEN: case LFUN_DROP_LAYOUTS_CHOICE: case LFUN_SERVER_GET_FILENAME: case LFUN_SERVER_NOTIFY: @@ -706,35 +705,6 @@ void LyXFunc::dispatch(FuncRequest const & cmd) reconfigure(lyx_view_, argument); break; - case LFUN_HELP_OPEN: { - if (lyx_view_ == 0) - theApp()->dispatch(FuncRequest(LFUN_WINDOW_NEW)); - string const arg = argument; - if (arg.empty()) { - setErrorMessage(from_utf8(N_("Missing argument"))); - break; - } - FileName fname = i18nLibFileSearch("doc", arg, "lyx"); - if (fname.empty()) - fname = i18nLibFileSearch("examples", arg, "lyx"); - - if (fname.empty()) { - lyxerr << "LyX: unable to find documentation file `" - << arg << "'. Bad installation?" << endl; - break; - } - lyx_view_->message(bformat(_("Opening help file %1$s..."), - makeDisplayPath(fname.absFilename()))); - Buffer * buf = lyx_view_->loadDocument(fname, false); - if (buf) { - buf->updateLabels(); - lyx_view_->setBuffer(buf); - buf->errors("Parse"); - } - updateFlags = Update::None; - break; - } - // --- lyxserver commands ---------------------------- case LFUN_SERVER_GET_FILENAME: LASSERT(lyx_view_ && buffer, /**/); diff --git a/src/frontends/qt4/GuiApplication.cpp b/src/frontends/qt4/GuiApplication.cpp index 8cd88e0999..09c6d4e086 100644 --- a/src/frontends/qt4/GuiApplication.cpp +++ b/src/frontends/qt4/GuiApplication.cpp @@ -50,6 +50,7 @@ #include "support/debug.h" #include "support/ExceptionMessage.h" #include "support/FileName.h" +#include "support/filetools.h" #include "support/foreach.h" #include "support/ForkedCalls.h" #include "support/gettext.h" @@ -813,6 +814,7 @@ bool GuiApplication::getStatus(FuncRequest const & cmd, FuncStatus & flag) const case LFUN_BUFFER_NEW: case LFUN_BUFFER_NEW_TEMPLATE: case LFUN_FILE_OPEN: + case LFUN_HELP_OPEN: case LFUN_SCREEN_FONT_UPDATE: case LFUN_SET_COLOR: case LFUN_WINDOW_NEW: @@ -900,6 +902,7 @@ bool GuiApplication::dispatch(FuncRequest const & cmd) break; case LFUN_FILE_OPEN: + // FIXME: create a new method shared with LFUN_HELP_OPEN. if (d->views_.empty() || (!lyxrc.open_buffers_in_tabs && current_view_->documentBufferView() != 0)) { string const fname = to_utf8(cmd.argument()); @@ -915,6 +918,35 @@ bool GuiApplication::dispatch(FuncRequest const & cmd) current_view_->openDocument(to_utf8(cmd.argument())); break; + case LFUN_HELP_OPEN: { + // FIXME: create a new method shared with LFUN_FILE_OPEN. + if (current_view_ == 0) + createView(); + string const arg = to_utf8(cmd.argument()); + if (arg.empty()) { + current_view_->message(_("Missing argument")); + break; + } + FileName fname = i18nLibFileSearch("doc", arg, "lyx"); + if (fname.empty()) + fname = i18nLibFileSearch("examples", arg, "lyx"); + + if (fname.empty()) { + lyxerr << "LyX: unable to find documentation file `" + << arg << "'. Bad installation?" << endl; + break; + } + current_view_->message(bformat(_("Opening help file %1$s..."), + makeDisplayPath(fname.absFilename()))); + Buffer * buf = current_view_->loadDocument(fname, false); + if (buf) { + current_view_->setBuffer(buf); + buf->updateLabels(); + buf->errors("Parse"); + } + break; + } + case LFUN_SET_COLOR: { string lyx_name; string const x11_name = split(to_utf8(cmd.argument()), lyx_name, ' ');