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
This commit is contained in:
Abdelrazak Younes 2007-11-13 14:49:50 +00:00
parent fcdc4f8a6b
commit f8490161bd
4 changed files with 52 additions and 85 deletions

View File

@ -920,6 +920,14 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
setErrorMessage(flag.message()); setErrorMessage(flag.message());
} else { } else {
switch (action) { 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_FORWARD:
case LFUN_WORD_FIND_BACKWARD: { case LFUN_WORD_FIND_BACKWARD: {
@ -949,11 +957,6 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
lyx_view_->message(keyseq.printOptions(true)); lyx_view_->message(keyseq.printOptions(true));
break; break;
case LFUN_COMMAND_EXECUTE:
BOOST_ASSERT(lyx_view_);
lyx_view_->dispatch(cmd);
break;
case LFUN_CANCEL: case LFUN_CANCEL:
BOOST_ASSERT(lyx_view_ && lyx_view_->view()); BOOST_ASSERT(lyx_view_ && lyx_view_->view());
keyseq.reset(); keyseq.reset();
@ -1368,16 +1371,6 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
updateFlags = Update::None; updateFlags = Update::None;
break; 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 ---------------------------- // --- lyxserver commands ----------------------------
case LFUN_SERVER_GET_NAME: case LFUN_SERVER_GET_NAME:
BOOST_ASSERT(lyx_view_ && lyx_view_->buffer()); BOOST_ASSERT(lyx_view_ && lyx_view_->buffer());
@ -2037,30 +2030,6 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
LyX::ref().session().bookmarks().clear(); LyX::ref().session().bookmarks().clear();
break; 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: { default: {
BOOST_ASSERT(lyx_view_); BOOST_ASSERT(lyx_view_);
view()->cursor().dispatch(cmd); view()->cursor().dispatch(cmd);

View File

@ -24,7 +24,6 @@ class Buffer;
class BufferView; class BufferView;
class FuncRequest; class FuncRequest;
class Inset; class Inset;
class ToolbarInfo;
namespace frontend { namespace frontend {
@ -95,12 +94,8 @@ public:
/// set a buffer to the current workarea. /// set a buffer to the current workarea.
virtual void setBuffer(Buffer * b) = 0; ///< \c Buffer to set. virtual void setBuffer(Buffer * b) = 0; ///< \c Buffer to set.
///
virtual void openLayoutList() = 0;
/// ///
virtual bool isToolbarVisible(std::string const & id) = 0; virtual bool isToolbarVisible(std::string const & id) = 0;
///
virtual void openMenu(docstring const & name) = 0;
/// get access to the dialogs /// get access to the dialogs
virtual Dialogs & getDialogs() = 0; virtual Dialogs & getDialogs() = 0;
@ -117,10 +112,6 @@ public:
virtual void updateLayoutChoice(bool force) = 0; virtual void updateLayoutChoice(bool force) = 0;
/// update the toolbar /// update the toolbar
virtual void updateToolbars() = 0; 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 /// update the status bar
virtual void updateStatusBar() = 0; virtual void updateStatusBar() = 0;
/// display a message in the view /// display a message in the view

View File

@ -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) void GuiView::updateLayoutChoice(bool force)
{ {
// Don't show any layouts without a buffer // 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() Buffer * GuiView::buffer()
{ {
if (d.current_work_area_) if (d.current_work_area_)
@ -1211,9 +1179,48 @@ void GuiView::dispatch(FuncRequest const & cmd)
break; break;
case LFUN_COMMAND_EXECUTE: case LFUN_COMMAND_EXECUTE:
showMiniBuffer(true); d.toolbars_->showCommandBuffer(true);
break; 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: default:
theLyXFunc().setLyXView(this); theLyXFunc().setLyXView(this);
lyx::dispatch(cmd); lyx::dispatch(cmd);

View File

@ -29,6 +29,7 @@ class QMenu;
namespace lyx { namespace lyx {
class Timeout; class Timeout;
class ToolbarInfo;
namespace frontend { namespace frontend {
@ -74,13 +75,9 @@ public:
virtual void message(docstring const & str); virtual void message(docstring const & str);
virtual bool hasFocus() const; virtual bool hasFocus() const;
void showMiniBuffer(bool); void showMiniBuffer(bool);
void openMenu(docstring const &);
void openLayoutList();
void updateLayoutChoice(bool force); void updateLayoutChoice(bool force);
bool isToolbarVisible(std::string const & id); bool isToolbarVisible(std::string const & id);
void updateToolbars(); void updateToolbars();
ToolbarInfo * getToolbarInfo(std::string const & name);
void toggleToolbarState(std::string const & name, bool allowauto);
/// ///
QMenu * createPopupMenu(); QMenu * createPopupMenu();
@ -201,6 +198,9 @@ private:
/// ///
void setIconSize(unsigned int size); void setIconSize(unsigned int size);
/// toggle toolbar state
void toggleToolbarState(std::string const & name, bool allowauto);
/// ///
struct GuiViewPrivate; struct GuiViewPrivate;
GuiViewPrivate & d; GuiViewPrivate & d;