Author: craig
Date: Wed Oct 30 22:22:30 2013
New Revision: 18583

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=18583
Log:
Move hardcoded named menu to dynamic API

Modified:
    trunk/Scribus/scribus/menumanager.cpp
    trunk/Scribus/scribus/menumanager.h
    trunk/Scribus/scribus/scribus.cpp

Modified: trunk/Scribus/scribus/menumanager.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=18583&path=/trunk/Scribus/scribus/menumanager.cpp
==============================================================================
--- trunk/Scribus/scribus/menumanager.cpp (original)
+++ trunk/Scribus/scribus/menumanager.cpp Wed Oct 30 22:22:30 2013
@@ -30,10 +30,6 @@
 {
        scribusMenuBar=mb;
        menuStrings.clear();
-       recentFileMenu=NULL;
-       editPasteRecentMenu=NULL;
-       itemLayerMenu=NULL;
-       windowsMenu=NULL;
        m_undoMenu=new QMenu("undo");
        m_redoMenu=new QMenu("redo");
        rememberedMenus.clear();
@@ -94,16 +90,16 @@
                menuBarMenus.value(menuName)->setEnabled(enabled);
 }
 
-bool MenuManager::addMenuStringToMenuBar(const QString &menuName)
+bool MenuManager::addMenuStringToMenuBar(const QString &menuName, bool 
rememberMenu)
 {
        bool retVal=false;
        if (menuStrings.contains(menuName))
        {
                QMenu *m=scribusMenuBar->addMenu(menuStringTexts[menuName]);
                menuBarMenus.insert(menuName, m);
-               if (menuName=="Windows" && m!=NULL)
-               {
-                       windowsMenu=m;
+               if (rememberMenu)
+               {
+                       rememberedMenus.insert(menuName, m);
                }
                retVal=true;
        }
@@ -155,14 +151,6 @@
                                                if 
(rememberedMenus.contains(menuStrings[menuName].at(i)))
                                                {
                                                        
rememberedMenus.insert(menuStrings[menuName].at(i), subMenu);
-                                               }
-                                               if 
(menuStrings[menuName].at(i)=="FileOpenRecent")
-                                               {
-                                                       recentFileMenu=subMenu;
-                                               }
-                                               else if 
(menuStrings[menuName].at(i)=="EditPasteRecent")
-                                               {
-                                                       
editPasteRecentMenu=subMenu;
                                                }
                                                
addMenuItemStringstoMenu(menuStrings[menuName].at(i), subMenu, menuActions);
                                        }
@@ -198,16 +186,8 @@
                                                        if 
(rememberedMenus.contains(menuStrings[menuName].at(i)))
                                                        {
                                                                
rememberedMenus.insert(menuStrings[menuName].at(i), subMenu);
+                                                               
addMenuItemStringstoMenu(menuStrings[menuName].at(i), subMenu, menuActions);
                                                        }
-                                                       else if 
(menuStrings[menuName].at(i)=="ItemLayer")
-                                                       {
-                                                               
itemLayerMenu=subMenu;
-                                                       }
-                                                       else if 
(menuStrings[menuName].at(i)=="EditPasteRecent")
-                                                       {
-                                                               
editPasteRecentMenu=subMenu;
-                                                       }
-                                                       
addMenuItemStringstoMenu(menuStrings[menuName].at(i), subMenu, menuActions);
                                                }
                                        }
                                }
@@ -235,31 +215,30 @@
                                for( QMap<QString, QPointer<ScrAction> 
>::ConstIterator it = menuActions.begin(); it!=menuActions.end(); ++it )
                                        
rememberedMenus.value(menuName)->addAction(*it);
                        }
-               }
-       }
-       else
-       if (menuName=="FileOpenRecent" && recentFileMenu!=NULL)
-       {
-               for( QMap<QString, QPointer<ScrAction> >::ConstIterator it = 
menuActions.begin(); it!=menuActions.end(); ++it )
-                       recentFileMenu->addAction(*it);
-       }
-       else if (menuName=="Windows" && windowsMenu!=NULL)
-       {
-               for( QMap<QString, QPointer<ScrAction> >::ConstIterator it = 
menuActions.begin(); it!=menuActions.end(); ++it )
-                       windowsMenu->addAction(*it);
-       }
-       else if (menuName=="ItemLayer" && itemLayerMenu!=NULL)
-       {
-               for( QMap<QString, QPointer<ScrAction> >::ConstIterator it = 
menuActions.begin(); it!=menuActions.end(); ++it )
-               {
-                       itemLayerMenu->addAction(*it);
-               }
-       }
-       else if (menuName=="EditPasteRecent" && editPasteRecentMenu!=NULL)
-       {
-               for( QMap<QString, QPointer<ScrAction> >::ConstIterator it = 
menuActions.begin(); it!=menuActions.end(); ++it )
-               {
-                       editPasteRecentMenu->addAction(*it);
+                       else if (menuName=="Windows")
+                       {
+                               for( QMap<QString, QPointer<ScrAction> 
>::ConstIterator it = menuActions.begin(); it!=menuActions.end(); ++it )
+                                       
rememberedMenus.value(menuName)->addAction(*it);
+                       }
+                       else if (menuName=="FileOpenRecent")
+                       {
+                               for( QMap<QString, QPointer<ScrAction> 
>::ConstIterator it = menuActions.begin(); it!=menuActions.end(); ++it )
+                                       
rememberedMenus.value(menuName)->addAction(*it);
+                       }
+                       else if (menuName=="EditPasteRecent")
+                       {
+                               for( QMap<QString, QPointer<ScrAction> 
>::ConstIterator it = menuActions.begin(); it!=menuActions.end(); ++it )
+                               {
+                                       
rememberedMenus.value(menuName)->addAction(*it);
+                               }
+                       }
+                       else if (menuName=="ItemLayer")
+                       {
+                               for( QMap<QString, QPointer<ScrAction> 
>::ConstIterator it = menuActions.begin(); it!=menuActions.end(); ++it )
+                               {
+                                       
rememberedMenus.value(menuName)->addAction(*it);
+                               }
+                       }
                }
        }
 }
@@ -270,23 +249,6 @@
        {
                if (rememberedMenus.value(menuName)!=NULL)
                        rememberedMenus.value(menuName)->clear();
-       }
-       else
-       if (menuName=="FileOpenRecent" && recentFileMenu!=NULL)
-       {
-               recentFileMenu->clear();
-       }
-       else if (menuName=="Windows" && windowsMenu!=NULL)
-       {
-               windowsMenu->clear();
-       }
-       else if (menuName=="ItemLayer" && itemLayerMenu!=NULL)
-       {
-               itemLayerMenu->clear();
-       }
-       else if (menuName=="EditPasteRecent" && editPasteRecentMenu!=NULL)
-       {
-               editPasteRecentMenu->clear();
        }
 }
 

Modified: trunk/Scribus/scribus/menumanager.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=18583&path=/trunk/Scribus/scribus/menumanager.h
==============================================================================
--- trunk/Scribus/scribus/menumanager.h (original)
+++ trunk/Scribus/scribus/menumanager.h Wed Oct 30 22:22:30 2013
@@ -60,7 +60,7 @@
 
 
                QMenu *getLocalPopupMenu(const QString &menuName);
-               bool addMenuStringToMenuBar(const QString &menuName);
+               bool addMenuStringToMenuBar(const QString &menuName, bool 
rememberMenu=false);
                bool addMenuStringToMenuBarBefore(const QString &, const 
QString &beforeMenuName);
                bool clearMenu(const QString &menuName);
                bool empty();
@@ -70,7 +70,6 @@
                void addMenuItemStringstoMenu(const QString &menuName, QMenu 
*menuToAddTo, const QMap<QString, QPointer<ScrAction> > &menuActions);
                void addMenuItemStringstoRememberedMenu(const QString 
&menuName, const QMap<QString, QPointer<ScrAction> > &menuActions);
                void addMenuItemStringstoMenuBar(const QString &menuName, const 
QMap<QString, QPointer<ScrAction> > &menuActions);
-               void addMenuItemStringstoSpecialMenu(const QString &menuName, 
const QMap<QString, QPointer<ScrAction> > &menuActions);
                void clearMenuStrings(const QString &menuName);
                void dumpMenuStrings();
                QMenu *undoMenu() {return m_undoMenu;}
@@ -86,11 +85,6 @@
        QMap<QString, QString> menuStringTexts;
        QMap<QString, QMenu*> menuBarMenus;
        QMap<QString, QMenu*> rememberedMenus;
-       //TODO move these static items into rememberedMenus
-       QMenu *recentFileMenu;
-       QMenu *editPasteRecentMenu;
-       QMenu *itemLayerMenu;
-       QMenu *windowsMenu;
        //some hacks to keep undo menu functioning for now
        QMenu *m_undoMenu;
        QMenu *m_redoMenu;

Modified: trunk/Scribus/scribus/scribus.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=18583&path=/trunk/Scribus/scribus/scribus.cpp
==============================================================================
--- trunk/Scribus/scribus/scribus.cpp (original)
+++ trunk/Scribus/scribus/scribus.cpp Wed Oct 30 22:22:30 2013
@@ -734,7 +734,7 @@
        scrMenuMgr->addMenuItemString("fileNewFromTemplate", "File");
        scrMenuMgr->addMenuItemString("fileOpen", "File");
        scrMenuMgr->addMenuItemString("FileOpenRecent", "File");
-       scrMenuMgr->createMenu("FileOpenRecent", tr("Open &Recent"), "File");
+       scrMenuMgr->createMenu("FileOpenRecent", tr("Open &Recent"), "File", 
false, true);
        scrMenuMgr->addMenuItemString("SEPARATOR", "File");
        scrMenuMgr->addMenuItemString("fileClose", "File");
        scrMenuMgr->addMenuItemString("fileSave", "File");
@@ -773,7 +773,7 @@
        scrMenuMgr->addMenuItemString("editCut", "Edit");
        scrMenuMgr->addMenuItemString("editCopy", "Edit");
        scrMenuMgr->addMenuItemString("editPaste", "Edit");
-       scrMenuMgr->createMenu("EditPasteRecent", tr("Paste Recent"), "Edit");
+       scrMenuMgr->createMenu("EditPasteRecent", tr("Paste Recent"), 
"Edit",false,true);
        scrMenuMgr->createMenu("EditContents", tr("Contents"), "Edit");
        scrMenuMgr->addMenuItemString("editCopyContents", "EditContents");
        scrMenuMgr->addMenuItemString("editPasteContents", "EditContents");
@@ -822,7 +822,7 @@
        scrMenuMgr->addMenuItemString("itemLower", "ItemLevel");
        scrMenuMgr->addMenuItemString("itemRaiseToTop", "ItemLevel");
        scrMenuMgr->addMenuItemString("itemLowerToBottom", "ItemLevel");
-       scrMenuMgr->createMenu("ItemLayer", tr("Send to La&yer"));
+       scrMenuMgr->createMenu("ItemLayer", tr("Send to La&yer"), "",false, 
true);
        scrMenuMgr->addMenuItemString("ItemLayer", "Item");
 //     scrMenuMgr->addMenuToMenu("ItemLayer", "Item");
        scrMenuMgr->createMenu("SendTo", tr("Send to"), "Item");
@@ -1120,7 +1120,7 @@
        scrMenuMgr->addMenuItemStringstoMenuBar("Extras", scrActions);
        scrMenuMgr->addMenuStringToMenuBar("View");
        scrMenuMgr->addMenuItemStringstoMenuBar("View", scrActions);
-       scrMenuMgr->addMenuStringToMenuBar("Windows");
+       scrMenuMgr->addMenuStringToMenuBar("Windows", true);
        addDefaultWindowMenuItems();
        menuBar()->addSeparator();
        scrMenuMgr->addMenuStringToMenuBar("Help");
@@ -2214,8 +2214,6 @@
 
 void ScribusMainWindow::windowsMenuAboutToShow()
 {
-       //for( QMap<QString, QPointer<ScrAction> >::Iterator it = 
scrWindowsActions.begin(); it!=scrWindowsActions.end(); ++it )
-       //      scrMenuMgr->removeMenuItem((*it), "Windows");
        scrWindowsActions.clear();
        addDefaultWindowMenuItems();
        QList<QMdiSubWindow *> windows = mdiArea->subWindowList();
@@ -2233,12 +2231,11 @@
                        scrWindowsActions.insert(docInWindow, new ScrAction( 
ScrAction::Window, QPixmap(), QPixmap(), docInWindow, QKeySequence(), this, i));
                        scrWindowsActions[docInWindow]->setToggleAction(true);
                        connect( scrWindowsActions[docInWindow], 
SIGNAL(triggeredData(int)), this, SLOT(windowsMenuActivated(int)) );
-//                     if (windowCount>1)
-//                             
scrMenuMgr->addMenuItem(scrWindowsActions[docInWindow], "Windows", true);
                        
scrWindowsActions[docInWindow]->setChecked(mdiArea->activeSubWindow() == 
windows.at(i));
+                       scrMenuMgr->addMenuItemString(docInWindow, "Windows");
                }
                if (windowCount>1)
-                       scrMenuMgr->addMenuItemStringstoSpecialMenu("Windows", 
scrWindowsActions);
+                       
scrMenuMgr->addMenuItemStringstoRememberedMenu("Windows", scrWindowsActions);
        }
 }
 
@@ -3555,8 +3552,9 @@
                strippedName.prepend(QString("%1").arg(m+1, 2, 10, QChar('0')));
                scrRecentFileActions.insert(strippedName, new 
ScrAction(ScrAction::RecentFile, QPixmap(), QPixmap(), QString("%1 
&%2").arg(m+1).arg(localName.replace("&","&&")), QKeySequence(), this, 
0,0.0,RecentDocs[m]));
                connect( scrRecentFileActions[strippedName], 
SIGNAL(triggeredData(QString)), this, SLOT(loadRecent(QString)) );
-       }
-       scrMenuMgr->addMenuItemStringstoSpecialMenu("FileOpenRecent", 
scrRecentFileActions);
+               scrMenuMgr->addMenuItemString(strippedName, "FileOpenRecent");
+       }
+       scrMenuMgr->addMenuItemStringstoRememberedMenu("FileOpenRecent", 
scrRecentFileActions);
        fileToolBar->rebuildRecentFileMenu();
 }
 
@@ -3578,10 +3576,10 @@
                        QPixmap pm = it.value().Preview;
                        scrRecentPasteActions.insert(strippedName, new 
ScrAction(ScrAction::RecentPaste, pm, QPixmap(), QString("&%1 
%2").arg(m+1).arg(strippedName), QKeySequence(), this, 0,0.0,it.key()));
                        connect( scrRecentPasteActions[strippedName], 
SIGNAL(triggeredData(QString)), this, SLOT(pasteRecent(QString)) );
-//                     
scrMenuMgr->addMenuItem(scrRecentPasteActions[strippedName], "EditPasteRecent", 
true);
+                       scrMenuMgr->addMenuItemString(strippedName, 
"EditPasteRecent");
                        it--;
                }
-               scrMenuMgr->addMenuItemStringstoSpecialMenu("EditPasteRecent", 
scrRecentPasteActions);
+               
scrMenuMgr->addMenuItemStringstoRememberedMenu("EditPasteRecent", 
scrRecentPasteActions);
        }
 }
 
@@ -3789,11 +3787,10 @@
 
                for( QMap<QString, QPointer<ScrAction> >::Iterator it = 
scrLayersActions.begin(); it!=scrLayersActions.end(); ++it )
                {
-                       //scrMenuMgr->addMenuItem((*it), "ItemLayer", true);
+                       scrMenuMgr->addMenuItemString(it.key(), "ItemLayer");
                        connect( (*it), SIGNAL(triggeredData(int)), doc, 
SLOT(itemSelection_SendToLayer(int)) );
                }
-               scrMenuMgr->addMenuItemStringstoSpecialMenu("ItemLayer", 
scrLayersActions);
-
+               scrMenuMgr->addMenuItemStringstoRememberedMenu("ItemLayer", 
scrLayersActions);
        }
 }
 


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to