From: Abdelrazak Younes Date: Tue, 13 Nov 2007 14:49:50 +0000 (+0000) Subject: Transfer some LFUNs from LyXFunc to GuiView and get rid of GuiView methods. X-Git-Tag: 1.6.10~7372 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=f8490161bdc1f3416b98cf71186cffcb738c4ab5;p=features.git Transfer some LFUNs from LyXFunc to GuiView and get rid of GuiView methods. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21583 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/LyXFunc.cpp b/src/LyXFunc.cpp index 0c6aa466f2..356e06e147 100644 --- a/src/LyXFunc.cpp +++ b/src/LyXFunc.cpp @@ -920,6 +920,14 @@ void LyXFunc::dispatch(FuncRequest const & cmd) setErrorMessage(flag.message()); } else { switch (action) { + // Let lyx_view_ dispatch its own actions. + case LFUN_COMMAND_EXECUTE: + case LFUN_DROP_LAYOUTS_CHOICE: + case LFUN_MENU_OPEN: + case LFUN_TOOLBAR_TOGGLE: + BOOST_ASSERT(lyx_view_); + lyx_view_->dispatch(cmd); + break; case LFUN_WORD_FIND_FORWARD: case LFUN_WORD_FIND_BACKWARD: { @@ -949,11 +957,6 @@ void LyXFunc::dispatch(FuncRequest const & cmd) lyx_view_->message(keyseq.printOptions(true)); break; - case LFUN_COMMAND_EXECUTE: - BOOST_ASSERT(lyx_view_); - lyx_view_->dispatch(cmd); - break; - case LFUN_CANCEL: BOOST_ASSERT(lyx_view_ && lyx_view_->view()); keyseq.reset(); @@ -1368,16 +1371,6 @@ void LyXFunc::dispatch(FuncRequest const & cmd) updateFlags = Update::None; break; - case LFUN_DROP_LAYOUTS_CHOICE: - BOOST_ASSERT(lyx_view_); - lyx_view_->openLayoutList(); - break; - - case LFUN_MENU_OPEN: - BOOST_ASSERT(lyx_view_); - lyx_view_->openMenu(from_utf8(argument)); - break; - // --- lyxserver commands ---------------------------- case LFUN_SERVER_GET_NAME: BOOST_ASSERT(lyx_view_ && lyx_view_->buffer()); @@ -2037,30 +2030,6 @@ void LyXFunc::dispatch(FuncRequest const & cmd) LyX::ref().session().bookmarks().clear(); break; - case LFUN_TOOLBAR_TOGGLE: { - BOOST_ASSERT(lyx_view_); - string const name = cmd.getArg(0); - bool const allowauto = cmd.getArg(1) == "allowauto"; - lyx_view_->toggleToolbarState(name, allowauto); - ToolbarInfo * tbi = lyx_view_->getToolbarInfo(name); - if (!tbi) { - setMessage(bformat(_("Unknown toolbar \"%1$s\""), - from_utf8(name))); - break; - } - docstring state; - if (tbi->flags & ToolbarInfo::ON) - state = _("on"); - else if (tbi->flags & ToolbarInfo::OFF) - state = _("off"); - else if (tbi->flags & ToolbarInfo::AUTO) - state = _("auto"); - - setMessage(bformat(_("Toolbar \"%1$s\" state set to %2$s"), - _(tbi->gui_name), state)); - break; - } - default: { BOOST_ASSERT(lyx_view_); view()->cursor().dispatch(cmd); diff --git a/src/frontends/LyXView.h b/src/frontends/LyXView.h index 77aa49ed8c..f29529fd95 100644 --- a/src/frontends/LyXView.h +++ b/src/frontends/LyXView.h @@ -24,7 +24,6 @@ class Buffer; class BufferView; class FuncRequest; class Inset; -class ToolbarInfo; namespace frontend { @@ -95,12 +94,8 @@ public: /// set a buffer to the current workarea. virtual void setBuffer(Buffer * b) = 0; ///< \c Buffer to set. - /// - virtual void openLayoutList() = 0; /// virtual bool isToolbarVisible(std::string const & id) = 0; - /// - virtual void openMenu(docstring const & name) = 0; /// get access to the dialogs virtual Dialogs & getDialogs() = 0; @@ -117,10 +112,6 @@ public: virtual void updateLayoutChoice(bool force) = 0; /// update the toolbar virtual void updateToolbars() = 0; - /// get toolbar info - virtual ToolbarInfo * getToolbarInfo(std::string const & name) = 0; - /// toggle toolbar state - virtual void toggleToolbarState(std::string const & name, bool allowauto) = 0; /// update the status bar virtual void updateStatusBar() = 0; /// display a message in the view diff --git a/src/frontends/qt4/GuiView.cpp b/src/frontends/qt4/GuiView.cpp index 406c045f7c..17b46f85eb 100644 --- a/src/frontends/qt4/GuiView.cpp +++ b/src/frontends/qt4/GuiView.cpp @@ -958,18 +958,6 @@ void GuiView::showMiniBuffer(bool visible) } -void GuiView::openMenu(docstring const & name) -{ - d.menubar_->openByName(toqstr(name)); -} - - -void GuiView::openLayoutList() -{ - d.toolbars_->openLayoutList(); -} - - void GuiView::updateLayoutChoice(bool force) { // Don't show any layouts without a buffer @@ -1018,26 +1006,6 @@ void GuiView::updateToolbars() } -ToolbarInfo * GuiView::getToolbarInfo(string const & name) -{ - return d.toolbars_->getToolbarInfo(name); -} - - -void GuiView::toggleToolbarState(string const & name, bool allowauto) -{ - // it is possible to get current toolbar status like this,... - // but I decide to obey the order of ToolbarBackend::flags - // and disregard real toolbar status. - // toolbars_->saveToolbarInfo(); - // - // toggle state on/off/auto - d.toolbars_->toggleToolbarState(name, allowauto); - // update toolbar - updateToolbars(); -} - - Buffer * GuiView::buffer() { if (d.current_work_area_) @@ -1211,9 +1179,48 @@ void GuiView::dispatch(FuncRequest const & cmd) break; case LFUN_COMMAND_EXECUTE: - showMiniBuffer(true); + d.toolbars_->showCommandBuffer(true); break; + case LFUN_DROP_LAYOUTS_CHOICE: + d.toolbars_->openLayoutList(); + break; + + case LFUN_MENU_OPEN: + d.menubar_->openByName(toqstr(cmd.argument())); + break; + + case LFUN_TOOLBAR_TOGGLE: { + string const name = cmd.getArg(0); + bool const allowauto = cmd.getArg(1) == "allowauto"; + // it is possible to get current toolbar status like this,... + // but I decide to obey the order of ToolbarBackend::flags + // and disregard real toolbar status. + // toolbars_->saveToolbarInfo(); + // + // toggle state on/off/auto + d.toolbars_->toggleToolbarState(name, allowauto); + // update toolbar + updateToolbars(); + + ToolbarInfo * tbi = d.toolbars_->getToolbarInfo(name); + if (!tbi) { + message(bformat(_("Unknown toolbar \"%1$s\""), from_utf8(name))); + break; + } + docstring state; + if (tbi->flags & ToolbarInfo::ON) + state = _("on"); + else if (tbi->flags & ToolbarInfo::OFF) + state = _("off"); + else if (tbi->flags & ToolbarInfo::AUTO) + state = _("auto"); + + message(bformat(_("Toolbar \"%1$s\" state set to %2$s"), + _(tbi->gui_name), state)); + break; + } + default: theLyXFunc().setLyXView(this); lyx::dispatch(cmd); diff --git a/src/frontends/qt4/GuiView.h b/src/frontends/qt4/GuiView.h index 9b29d12607..943dc11540 100644 --- a/src/frontends/qt4/GuiView.h +++ b/src/frontends/qt4/GuiView.h @@ -29,6 +29,7 @@ class QMenu; namespace lyx { class Timeout; +class ToolbarInfo; namespace frontend { @@ -74,13 +75,9 @@ public: virtual void message(docstring const & str); virtual bool hasFocus() const; void showMiniBuffer(bool); - void openMenu(docstring const &); - void openLayoutList(); void updateLayoutChoice(bool force); bool isToolbarVisible(std::string const & id); void updateToolbars(); - ToolbarInfo * getToolbarInfo(std::string const & name); - void toggleToolbarState(std::string const & name, bool allowauto); /// QMenu * createPopupMenu(); @@ -201,6 +198,9 @@ private: /// void setIconSize(unsigned int size); + /// toggle toolbar state + void toggleToolbarState(std::string const & name, bool allowauto); + /// struct GuiViewPrivate; GuiViewPrivate & d;