]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/Menus.cpp
The Cursor argument here was not being used, so there is no need
[lyx.git] / src / frontends / qt4 / Menus.cpp
index eb4d0b2a86b452915f2c12b37a4978ad125ede40..270d5586978be777990ccdc667e29979376fdf2a 100644 (file)
@@ -723,12 +723,6 @@ bool MenuDefinition::searchMenu(FuncRequest const & func, docstring_list & names
 }
 
 
-bool compareFormat(Format const * p1, Format const * p2)
-{
-       return *p1 < *p2;
-}
-
-
 QString limitStringLength(docstring const & str)
 {
        size_t const max_item_length = 45;
@@ -1023,8 +1017,6 @@ void MenuDefinition::expandFormats(MenuItem::Kind const kind, Buffer const * buf
                return;
        }
        
-       sort(formats.begin(), formats.end(), &compareFormat);
-
        bool const view_update = (kind == MenuItem::ViewFormats
                        || kind == MenuItem::UpdateFormats);
 
@@ -1746,9 +1738,10 @@ void Menus::Impl::macxMenuBarInit(GuiView * view, QMenuBar * qmb)
                {LFUN_LYX_QUIT, "", "Quit LyX", QAction::QuitRole}
        };
        const size_t num_entries = sizeof(entries) / sizeof(entries[0]);
+       const bool first_call = mac_special_menu_.size() == 0;
 
        // the special menu for Menus. Fill it up only once.
-       if (mac_special_menu_.size() == 0) {
+       if (first_call) {
                for (size_t i = 0 ; i < num_entries ; ++i) {
                        FuncRequest const func(entries[i].action,
                                from_utf8(entries[i].arg));
@@ -1756,17 +1749,26 @@ void Menus::Impl::macxMenuBarInit(GuiView * view, QMenuBar * qmb)
                                entries[i].label, func));
                }
        }
-       
+
        // add the entries to a QMenu that will eventually be empty
        // and therefore invisible.
        QMenu * qMenu = qmb->addMenu("special");
        MenuDefinition::const_iterator cit = mac_special_menu_.begin();
        MenuDefinition::const_iterator end = mac_special_menu_.end();
        for (size_t i = 0 ; cit != end ; ++cit, ++i) {
+#if defined(QT_MAC_USE_COCOA) && (QT_MAC_USE_COCOA > 0)
+               if (first_call || entries[i].role != QAction::ApplicationSpecificRole) {
+                       Action * action = new Action(view, QIcon(), cit->label(),
+                                cit->func(), QString(), qMenu);
+                       action->setMenuRole(entries[i].role);
+                       qMenu->addAction(action);
+               }
+#else
                Action * action = new Action(view, QIcon(), cit->label(),
                        cit->func(), QString(), qMenu);
                action->setMenuRole(entries[i].role);
                qMenu->addAction(action);
+#endif
        }
 }