]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/Toolbars.C
Document pasteParagraphList as hinted by Jean-Marc
[lyx.git] / src / frontends / Toolbars.C
index 478013b9e5018b02729d9d41386f00fe0c1bb87d..71cd21489196e01e3884b5b80980c346fa4c1c5c 100644 (file)
@@ -45,7 +45,10 @@ void Toolbars::initFlags(ToolbarBackend::Toolbar & tbb)
        ToolbarSection::ToolbarInfo & info = LyX::ref().session().toolbars().load(tbb.name);
 
        unsigned int flags = static_cast<unsigned int>(tbb.flags);
-       // remove position
+
+       // Remove default.ui positions. Only when a valid postion is stored 
+       // in the session file the default.ui value will be overwritten
+       unsigned int save = flags;
        TurnOffFlag(TOP);
        TurnOffFlag(BOTTOM);
        TurnOffFlag(RIGHT);
@@ -62,7 +65,8 @@ void Toolbars::initFlags(ToolbarBackend::Toolbar & tbb)
        else if (info.location == ToolbarSection::ToolbarInfo::LEFT)
                TurnOnFlag(LEFT);
        else {
-               TurnOnFlag(TOP);
+               // use setting from default.ui
+               flags = save;
                valid_location = false;
        }
 
@@ -129,6 +133,24 @@ void Toolbars::display(string const & name, bool show)
 }
 
 
+ToolbarBackend::Flags Toolbars::getToolbarState(string const & name)
+{      
+       ToolbarBackend::Toolbars::const_iterator cit = toolbarbackend.begin();
+       ToolbarBackend::Toolbars::const_iterator end = toolbarbackend.end();
+
+       for (; cit != end; ++cit) {
+               if (cit->name == name)
+                       return cit->flags;
+       }
+
+       lyxerr[Debug::GUI] << "Toolbar::display: no toolbar named "
+               << name << endl;
+
+       // return dummy for msvc
+       return ToolbarBackend::OFF;
+}
+
+
 void Toolbars::toggleToolbarState(string const & name)
 {
        ToolbarBackend::Toolbars::iterator cit = toolbarbackend.begin();
@@ -137,26 +159,30 @@ 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);
-                       break;
+                       return;
                }
        }
+       lyxerr[Debug::GUI] << "Toolbar::display: no toolbar named "
+               << name << endl;
 }
 #undef TurnOnFlag
 #undef TurnOffFlag
@@ -307,7 +333,7 @@ void layoutSelected(LyXView & lv, string const & name)
                // Yes, the lyx::to_utf8(_()) is correct
                if (lyx::to_utf8(_(itname)) == name) {
                        FuncRequest const func(LFUN_LAYOUT, itname,
-                                              FuncRequest::UI);
+                                              FuncRequest::TOOLBAR);
                        lv.dispatch(func);
                        return;
                }