]> git.lyx.org Git - lyx.git/commitdiff
Fix remaining toolbar/session issues
authorBo Peng <bpeng@lyx.org>
Thu, 2 Nov 2006 23:14:31 +0000 (23:14 +0000)
committerBo Peng <bpeng@lyx.org>
Thu, 2 Nov 2006 23:14:31 +0000 (23:14 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15696 a592a061-630c-0410-9148-cb99ea01b6c8

src/LyXAction.C
src/MenuBackend.C
src/frontends/Toolbars.C
src/lyxfunc.C

index 9a97638cd4ecdd409247c892e227b202dc22141a..6f503f3818d57b89d90b4094e54e26b5193d4eb5 100644 (file)
@@ -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 }
        };
index 5d925eafe3b407231b76a2d1c076d0433908b006..38c77e0f72142515233b81fb1d73bdb29c5f4b72 100644 (file)
@@ -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<docstring>(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<docstring>(i);
                tomenu.add(MenuItem(MenuItem::Command, label,
                                    FuncRequest(LFUN_TOOLBAR_TOGGLE_STATE, _(cit->name))));
        }
index 2f68e7d1f7035d2cdba65229619309718d35b80a..06b0ca8d22c5c1e1e42b0eb2c4ab315c10850342 100644 (file)
@@ -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<lyx::ToolbarBackend::Flags>(flags);
                        return;
index 03cacfeae15360603a571211de5ff5e90bbedec3..fec6dc59140c9a8bfec32ea7473d06eeb65b478c 100644 (file)
@@ -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<unsigned int>(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