From bff0d2affbe3a2f107f07b536c164e410bf63ddd Mon Sep 17 00:00:00 2001 From: Bo Peng Date: Thu, 2 Nov 2006 23:14:31 +0000 Subject: [PATCH] Fix remaining toolbar/session issues git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15696 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/LyXAction.C | 2 +- src/MenuBackend.C | 4 ++-- src/frontends/Toolbars.C | 20 +++++++++++--------- src/lyxfunc.C | 14 ++++++-------- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/LyXAction.C b/src/LyXAction.C index 9a97638cd4..6f503f3818 100644 --- a/src/LyXAction.C +++ b/src/LyXAction.C @@ -366,7 +366,7 @@ void LyXAction::init() { LFUN_WINDOW_NEW, "window-new", NoBuffer }, { LFUN_WINDOW_CLOSE, "window-close", NoBuffer }, { LFUN_UNICODE_INSERT, "unicode-insert", Noop }, - { LFUN_TOOLBAR_TOGGLE_STATE, "", Noop }, + { LFUN_TOOLBAR_TOGGLE_STATE, "", NoBuffer }, { LFUN_NOACTION, "", Noop } }; diff --git a/src/MenuBackend.C b/src/MenuBackend.C index 5d925eafe3..38c77e0f72 100644 --- a/src/MenuBackend.C +++ b/src/MenuBackend.C @@ -54,6 +54,7 @@ using support::compare_ascii_no_case; using support::contains; using support::makeDisplayPath; using support::token; +using support::uppercase; using boost::bind; @@ -767,7 +768,7 @@ void expandToolbars(Menu & tomenu, Buffer const * buf) int i = 1; for (; cit != end; ++cit, ++i) { - docstring label = convert(i) + ". " + _(cit->name); + docstring label = char_type(uppercase(cit->name[0])) + _(cit->name.substr(1)); // frontends are not supposed to turn on/off toolbars, if they can not // update ToolbarBackend::flags. That is to say, ToolbarsBackend::flags // should reflect the true state of toolbars. @@ -779,7 +780,6 @@ void expandToolbars(Menu & tomenu, Buffer const * buf) // in the case of auto. if (cit->flags & ToolbarBackend::AUTO) label += _(" (auto)"); - label += char_type('|') + convert(i); tomenu.add(MenuItem(MenuItem::Command, label, FuncRequest(LFUN_TOOLBAR_TOGGLE_STATE, _(cit->name)))); } diff --git a/src/frontends/Toolbars.C b/src/frontends/Toolbars.C index 2f68e7d1f7..06b0ca8d22 100644 --- a/src/frontends/Toolbars.C +++ b/src/frontends/Toolbars.C @@ -152,21 +152,23 @@ void Toolbars::toggleToolbarState(string const & name) for (; cit != end; ++cit) { if (cit->name == name) { int flags = cit->flags; - if (flags & ToolbarBackend::ON) { - TurnOffFlag(ON); - TurnOnFlag(OFF); + // off -> on + if (flags & ToolbarBackend::OFF) { + TurnOffFlag(OFF); + TurnOnFlag(ON); + // auto -> off } else if (flags & ToolbarBackend::AUTO) { TurnOffFlag(AUTO); - TurnOnFlag(ON); + TurnOnFlag(OFF); } else if ((flags & ToolbarBackend::MATH) || (flags & ToolbarBackend::TABLE) || (flags & ToolbarBackend::REVIEW)) { - // for math etc, toggle from off -> auto - TurnOffFlag(OFF); + // for math etc, toggle from on -> auto + TurnOffFlag(ON); TurnOnFlag(AUTO); } else { - // for others, toggle from off -> on - TurnOffFlag(OFF); - TurnOnFlag(ON); + // for others, toggle from on -> off + TurnOffFlag(ON); + TurnOnFlag(OFF); } cit->flags = static_cast(flags); return; diff --git a/src/lyxfunc.C b/src/lyxfunc.C index 03cacfeae1..fec6dc5914 100644 --- a/src/lyxfunc.C +++ b/src/lyxfunc.C @@ -352,16 +352,20 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const flag.message(from_utf8(N_("Exiting"))); flag.enabled(true); return flag; - } else if (cmd.action == LFUN_BOOKMARK_GOTO) { + } else if (cmd.action == LFUN_BOOKMARK_GOTO) { // bookmarks can be valid even if there is no opened buffer flag.enabled(LyX::ref().session().bookmarks().isValid(convert(to_utf8(cmd.argument())))); return flag; } else if (cmd.action == LFUN_BOOKMARK_CLEAR) { flag.enabled(LyX::ref().session().bookmarks().size() > 0); return flag; + } else if (cmd.action == LFUN_TOOLBAR_TOGGLE_STATE) { + ToolbarBackend::Flags flags = lyx_view_->getToolbarState(to_utf8(cmd.argument())); + if (!(flags & ToolbarBackend::AUTO)) + flag.setOnOff(flags & ToolbarBackend::ON); + return flag; } - LCursor & cur = view()->cursor(); /* In LyX/Mac, when a dialog is open, the menus of the @@ -573,12 +577,6 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const break; } - case LFUN_TOOLBAR_TOGGLE_STATE: { - ToolbarBackend::Flags flags = lyx_view_->getToolbarState(to_utf8(cmd.argument())); - if (!(flags & ToolbarBackend::AUTO)) - flag.setOnOff(flags & ToolbarBackend::ON); - break; - } // this one is difficult to get right. As a half-baked // solution, we consider only the first action of the sequence -- 2.39.2