Author: jghali
Date: Thu Aug 10 00:43:27 2017
New Revision: 22133

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=22133
Log:
refactoring of PagePalette_MasterPages round1: exit functions early when 
possible

Modified:
    trunk/Scribus/scribus/ui/pagepalette_masterpages.cpp

Modified: trunk/Scribus/scribus/ui/pagepalette_masterpages.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22133&path=/trunk/Scribus/scribus/ui/pagepalette_masterpages.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/pagepalette_masterpages.cpp        (original)
+++ trunk/Scribus/scribus/ui/pagepalette_masterpages.cpp        Thu Aug 10 
00:43:27 2017
@@ -7,17 +7,18 @@
 #include "pagepalette_masterpages.h"
 
 #include <QApplication>
+#include <QCloseEvent>
+#include <QCursor>
 #include <QHBoxLayout>
-#include <QVBoxLayout>
+#include <QInputDialog>
+#include <QListWidget>
+#include <QListWidgetItem>
+#include <QMessageBox>
+#include <QScopedPointer>
 #include <QSpacerItem>
 #include <QToolButton>
-#include <QListWidget>
-#include <QListWidgetItem>
 #include <QToolTip>
-#include <QCursor>
-#include <QCloseEvent>
-#include <QMessageBox>
-#include <QInputDialog>
+#include <QVBoxLayout>
 
 #include "appmodes.h"
 #include "canvasmode.h"
@@ -205,150 +206,24 @@
        while (m_doc->MasterNames.contains(potentialMasterPageName))
                potentialMasterPageName = tr("Copy #%1 of 
%2").arg(copyC++).arg(m_currentPage);
 
-       NewTm *dia = new NewTm(this, tr("&Name:"), tr("New Master Page"), 
m_doc, potentialMasterPageName);
-       if (dia->exec())
-       {
-               if (m_doc->appMode == modeEditClip)
-                       m_view->requestMode(submodeEndNodeEdit);
-               QString MasterPageName = dia->Answer->text();
-               bool MasterPageNameWrong = 
m_doc->MasterNames.contains(MasterPageName);
-               MasterPageNameWrong |= (MasterPageName == 
CommonStrings::masterPageNormal);
-               MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormal);
-               MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormalLeft);
-               MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormalMiddle);
-               MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormalRight);
-               MasterPageNameWrong |=  MasterPageName.isEmpty();
-               while (MasterPageNameWrong)
-               {
-                       if (!dia->exec())
-                       {
-                               delete dia;
-                               return;
-                       }
-                       MasterPageName = dia->Answer->text();
-                       bool MasterPageNameWrong = 
m_doc->MasterNames.contains(MasterPageName);
-                       MasterPageNameWrong |= (MasterPageName == 
CommonStrings::masterPageNormal);
-                       MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormal);
-                       MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormalLeft);
-                       MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormalMiddle);
-                       MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormalRight);
-                       MasterPageNameWrong |=  MasterPageName.isEmpty();
-               }
-               PrefsManager* prefsManager = PrefsManager::instance();
-               int inde = m_doc->MasterNames[m_currentPage];
-               int nr = m_doc->Pages->count();
-               ScPage* from = m_doc->Pages->at(inde);
-               ScPage* destination = m_doc->addMasterPage(nr, MasterPageName);
-               if (m_doc->pagePositioning() != singlePage)
-               {
-                       int lp = dia->Links->currentIndex();
-                       if (lp == 0)
-                               lp = 1;
-                       else if (lp == static_cast<int>(dia->Links->count()-1))
-                               lp = 0;
-                       else
-                               lp++;
-                       destination->LeftPg = lp;
-               }
-               destination->initialMargins.setTop(from->initialMargins.top());
-               
destination->initialMargins.setBottom(from->initialMargins.bottom());
-               if (m_doc->pageSets()[m_doc->pagePositioning()].Columns == 1)
-               {
-                       
destination->initialMargins.setLeft(from->initialMargins.left());
-                       
destination->initialMargins.setRight(from->initialMargins.right());
-               }
-               else
-               {
-                       if (destination->LeftPg != from->LeftPg)
-                       {
-                               if (destination->LeftPg > 1)
-                               {
-                                       
destination->initialMargins.setRight(from->initialMargins.left());
-                                       
destination->initialMargins.setLeft(from->initialMargins.left());
-                               }
-                               else
-                               {
-                                       
destination->initialMargins.setLeft(from->initialMargins.left());
-                                       
destination->initialMargins.setRight(from->initialMargins.right());
-                               }
-                       }
-                       else
-                       {
-                               
destination->initialMargins.setLeft(from->initialMargins.left());
-                               
destination->initialMargins.setRight(from->initialMargins.right());
-                       }
-               }
-               //#8321 : incorrect selection of master page on new mp 
creation/duplication
-               //m_doc->setCurrentPage(destination);
-               updateMasterPageList(MasterPageName);
-               selectMasterPage(MasterPageName);
-               uint oldItems = m_doc->Items->count();
-               uint end2 = m_doc->MasterItems.count();
-               int GrMax = m_doc->GroupCounter;
-               m_doc->m_Selection->clear();
-               if (oldItems>0)
-               {
-                       ScLayers::iterator it;
-                       m_doc->m_Selection->delaySignalsOn();
-                       for (it = m_doc->Layers.begin(); it != 
m_doc->Layers.end(); ++it)
-                       {
-                               for (uint ite = 0; ite < oldItems; ++ite)
-                               {
-                                       PageItem *itemToCopy = 
m_doc->Items->at(ite);
-                                       if (itemToCopy->OwnPage == inde && 
(it->ID == itemToCopy->LayerID))
-                                               
m_doc->m_Selection->addItem(itemToCopy, true);
-                               }
-                               if (m_doc->m_Selection->count() != 0)
-                               {
-                                       ScriXmlDoc ss;
-                                       QString buffer = ss.WriteElem(m_doc, 
m_doc->m_Selection);
-                                       ss.ReadElemToLayer(buffer, 
prefsManager->appPrefs.fontPrefs.AvailFonts, m_doc, destination->xOffset(), 
destination->yOffset(), false, true, prefsManager->appPrefs.fontPrefs.GFontSub, 
it->ID);
-                                       m_doc->m_Selection->clear();
-                               }
-                       }
-                       m_doc->m_Selection->clear();
-                       m_doc->m_Selection->delaySignalsOff();
-               }
-               uint end3 = m_doc->MasterItems.count();
-               for (uint a = end2; a < end3; ++a)
-               {
-                       PageItem *newItem = m_doc->MasterItems.at(a);
-                       newItem->OnMasterPage = MasterPageName;
-                       newItem->OwnPage = m_doc->MasterNames[MasterPageName];
-                       if (!newItem->isGroup())
-                               continue;
-
-                       int masterPageIndex = 
m_doc->MasterNames[MasterPageName];
-                       PageItem_Group* group = newItem->asGroupFrame();
-                       QList<PageItem*> groupList = group->groupItemList;
-                       while (!groupList.isEmpty())
-                       {
-                               newItem = groupList.takeFirst();
-                               newItem->OnMasterPage = MasterPageName;
-                               newItem->OwnPage = masterPageIndex;
-                               if (newItem->isGroup())
-                                       groupList = 
newItem->asGroupFrame()->groupItemList + groupList;
-                       }
-               }
-               from->guides.copy(&destination->guides);
-               m_doc->GroupCounter = GrMax + 1;
-               m_view->Deselect(true);
-               m_doc->setLoading(false);
-               m_view->reformPages();
-               m_view->DrawNew();
-       }
-       delete dia;
-}
-
-void PagePalette_MasterPages::newMasterPage()
-{
-       QString MasterPageName;
-       int nr = m_doc->Pages->count();
-       NewTm *dia = new NewTm(this, tr("Name:"), tr("New MasterPage"), m_doc, 
tr("New Master Page %1").arg(nr));
-       if (dia->exec())
-       {
-               if (m_doc->appMode == modeEditClip)
-                       m_view->requestMode(submodeEndNodeEdit);
+       QScopedPointer<NewTm> dia(new NewTm(this, tr("&Name:"), tr("New Master 
Page"), m_doc, potentialMasterPageName));
+       if (!dia->exec())
+               return;
+
+       if (m_doc->appMode == modeEditClip)
+               m_view->requestMode(submodeEndNodeEdit);
+       QString MasterPageName = dia->Answer->text();
+       bool MasterPageNameWrong = m_doc->MasterNames.contains(MasterPageName);
+       MasterPageNameWrong |= (MasterPageName == 
CommonStrings::masterPageNormal);
+       MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormal);
+       MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormalLeft);
+       MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormalMiddle);
+       MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormalRight);
+       MasterPageNameWrong |=  MasterPageName.isEmpty();
+       while (MasterPageNameWrong)
+       {
+               if (!dia->exec())
+                       return;
                MasterPageName = dia->Answer->text();
                bool MasterPageNameWrong = 
m_doc->MasterNames.contains(MasterPageName);
                MasterPageNameWrong |= (MasterPageName == 
CommonStrings::masterPageNormal);
@@ -357,73 +232,191 @@
                MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormalMiddle);
                MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormalRight);
                MasterPageNameWrong |=  MasterPageName.isEmpty();
-               while (MasterPageNameWrong)
-               {
-                       if (!dia->exec())
+       }
+       PrefsManager* prefsManager = PrefsManager::instance();
+       int inde = m_doc->MasterNames[m_currentPage];
+       int nr = m_doc->Pages->count();
+       ScPage* from = m_doc->Pages->at(inde);
+       ScPage* destination = m_doc->addMasterPage(nr, MasterPageName);
+       if (m_doc->pagePositioning() != singlePage)
+       {
+               int lp = dia->Links->currentIndex();
+               if (lp == 0)
+                       lp = 1;
+               else if (lp == static_cast<int>(dia->Links->count()-1))
+                       lp = 0;
+               else
+                       lp++;
+               destination->LeftPg = lp;
+       }
+       destination->initialMargins.setTop(from->initialMargins.top());
+       destination->initialMargins.setBottom(from->initialMargins.bottom());
+       if (m_doc->pageSets()[m_doc->pagePositioning()].Columns == 1)
+       {
+               
destination->initialMargins.setLeft(from->initialMargins.left());
+               
destination->initialMargins.setRight(from->initialMargins.right());
+       }
+       else
+       {
+               if (destination->LeftPg != from->LeftPg)
+               {
+                       if (destination->LeftPg > 1)
                        {
-                               delete dia;
-                               return;
+                               
destination->initialMargins.setRight(from->initialMargins.left());
+                               
destination->initialMargins.setLeft(from->initialMargins.left());
                        }
-                       MasterPageName = dia->Answer->text();
-                       MasterPageNameWrong = 
m_doc->MasterNames.contains(MasterPageName);
-                       MasterPageNameWrong |= (MasterPageName == 
CommonStrings::masterPageNormal);
-                       MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormal);
-                       MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormalLeft);
-                       MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormalMiddle);
-                       MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormalRight);
-                       MasterPageNameWrong |=  MasterPageName.isEmpty();
-               }
-               m_doc->setCurrentPage(m_doc->addMasterPage(nr, MasterPageName));
-               if (m_doc->pagePositioning() != singlePage)
-               {
-                       int lp = dia->Links->currentIndex();
-                       if (lp == 0)
-                               lp = 1;
-                       else if (lp == static_cast<int>(dia->Links->count()-1))
-                               lp = 0;
                        else
-                               lp++;
-                       m_doc->Pages->at(nr)->LeftPg = lp;
-               }
-               updateMasterPageList(MasterPageName);
-               //#8321 : incorrect selection of master page on new mp 
creation/duplictation
-               //m_view->showMasterPage(m_doc->MasterNames[MasterPageName]);
-               selectMasterPage(MasterPageName);
-               m_view->reformPages();
-       }
-       delete dia;
+                       {
+                               
destination->initialMargins.setLeft(from->initialMargins.left());
+                               
destination->initialMargins.setRight(from->initialMargins.right());
+                       }
+               }
+               else
+               {
+                       
destination->initialMargins.setLeft(from->initialMargins.left());
+                       
destination->initialMargins.setRight(from->initialMargins.right());
+               }
+       }
+       //#8321 : incorrect selection of master page on new mp 
creation/duplication
+       //m_doc->setCurrentPage(destination);
+       updateMasterPageList(MasterPageName);
+       selectMasterPage(MasterPageName);
+       uint oldItems = m_doc->Items->count();
+       uint end2 = m_doc->MasterItems.count();
+       int GrMax = m_doc->GroupCounter;
+       m_doc->m_Selection->clear();
+       if (oldItems>0)
+       {
+               ScLayers::iterator it;
+               m_doc->m_Selection->delaySignalsOn();
+               for (it = m_doc->Layers.begin(); it != m_doc->Layers.end(); 
++it)
+               {
+                       for (uint ite = 0; ite < oldItems; ++ite)
+                       {
+                               PageItem *itemToCopy = m_doc->Items->at(ite);
+                               if (itemToCopy->OwnPage == inde && (it->ID == 
itemToCopy->LayerID))
+                                       m_doc->m_Selection->addItem(itemToCopy, 
true);
+                       }
+                       if (m_doc->m_Selection->count() != 0)
+                       {
+                               ScriXmlDoc ss;
+                               QString buffer = ss.WriteElem(m_doc, 
m_doc->m_Selection);
+                               ss.ReadElemToLayer(buffer, 
prefsManager->appPrefs.fontPrefs.AvailFonts, m_doc, destination->xOffset(), 
destination->yOffset(), false, true, prefsManager->appPrefs.fontPrefs.GFontSub, 
it->ID);
+                               m_doc->m_Selection->clear();
+                       }
+               }
+               m_doc->m_Selection->clear();
+               m_doc->m_Selection->delaySignalsOff();
+       }
+       uint end3 = m_doc->MasterItems.count();
+       for (uint a = end2; a < end3; ++a)
+       {
+               PageItem *newItem = m_doc->MasterItems.at(a);
+               newItem->OnMasterPage = MasterPageName;
+               newItem->OwnPage = m_doc->MasterNames[MasterPageName];
+               if (!newItem->isGroup())
+                       continue;
+
+               int masterPageIndex = m_doc->MasterNames[MasterPageName];
+               PageItem_Group* group = newItem->asGroupFrame();
+               QList<PageItem*> groupList = group->groupItemList;
+               while (!groupList.isEmpty())
+               {
+                       newItem = groupList.takeFirst();
+                       newItem->OnMasterPage = MasterPageName;
+                       newItem->OwnPage = masterPageIndex;
+                       if (newItem->isGroup())
+                               groupList = 
newItem->asGroupFrame()->groupItemList + groupList;
+               }
+       }
+       from->guides.copy(&destination->guides);
+       m_doc->GroupCounter = GrMax + 1;
+       m_view->Deselect(true);
+       m_doc->setLoading(false);
+       m_view->reformPages();
+       m_view->DrawNew();
+}
+
+void PagePalette_MasterPages::newMasterPage()
+{
+       QString MasterPageName;
+       int nr = m_doc->Pages->count();
+
+       QScopedPointer<NewTm> dia(new NewTm(this, tr("Name:"), tr("New 
MasterPage"), m_doc, tr("New Master Page %1").arg(nr)));
+       if (!dia->exec())
+               return;
+
+       if (m_doc->appMode == modeEditClip)
+               m_view->requestMode(submodeEndNodeEdit);
+       MasterPageName = dia->Answer->text();
+       bool MasterPageNameWrong = m_doc->MasterNames.contains(MasterPageName);
+       MasterPageNameWrong |= (MasterPageName == 
CommonStrings::masterPageNormal);
+       MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormal);
+       MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormalLeft);
+       MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormalMiddle);
+       MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormalRight);
+       MasterPageNameWrong |=  MasterPageName.isEmpty();
+       while (MasterPageNameWrong)
+       {
+               if (!dia->exec())
+                       return;
+               MasterPageName = dia->Answer->text();
+               MasterPageNameWrong = 
m_doc->MasterNames.contains(MasterPageName);
+               MasterPageNameWrong |= (MasterPageName == 
CommonStrings::masterPageNormal);
+               MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormal);
+               MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormalLeft);
+               MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormalMiddle);
+               MasterPageNameWrong |= (MasterPageName == 
CommonStrings::trMasterPageNormalRight);
+               MasterPageNameWrong |=  MasterPageName.isEmpty();
+       }
+       m_doc->setCurrentPage(m_doc->addMasterPage(nr, MasterPageName));
+       if (m_doc->pagePositioning() != singlePage)
+       {
+               int lp = dia->Links->currentIndex();
+               if (lp == 0)
+                       lp = 1;
+               else if (lp == static_cast<int>(dia->Links->count()-1))
+                       lp = 0;
+               else
+                       lp++;
+               m_doc->Pages->at(nr)->LeftPg = lp;
+       }
+       updateMasterPageList(MasterPageName);
+       //#8321 : incorrect selection of master page on new mp 
creation/duplictation
+       //m_view->showMasterPage(m_doc->MasterNames[MasterPageName]);
+       selectMasterPage(MasterPageName);
+       m_view->reformPages();
 }
 
 void PagePalette_MasterPages::importPage()
 {
-       MergeDoc *dia = new MergeDoc(this, true);
-       if (dia->exec())
-       {
-               if (m_doc->appMode == modeEditClip)
-                       m_view->requestMode(submodeEndNodeEdit);
-               qApp->setOverrideCursor(QCursor(Qt::WaitCursor));
-               int nr = m_doc->Pages->count();
-
-               QString MasterPageName(dia->getMasterPageNameText());
-               QString MasterPageName2(MasterPageName);
-               int copyC = 1;
-               while (m_doc->MasterNames.contains(MasterPageName2))
-               {
-                       MasterPageName2 = tr("Copy #%1 of 
").arg(copyC)+MasterPageName;
-                       copyC++;
-               }
-               m_doc->setCurrentPage(m_doc->addMasterPage(nr, 
MasterPageName2));
-               qApp->processEvents();
-               //CB TODO: If we are loading to a new name, we rely on 
doc->onpage in 
-               //FileLoader::PasteItem as this call doesn't pass in the new 
destination page
-               m_doc->scMW()->loadPage(dia->getFromDoc(), 
dia->getMasterPageNameItem(), true, MasterPageName2);
-               qApp->processEvents();
-
-               updateMasterPageList(MasterPageName2);
-               m_view->showMasterPage(m_doc->MasterNames[MasterPageName2]);
-               qApp->restoreOverrideCursor();
-       }
-       delete dia;
+       QScopedPointer<MergeDoc> dia(new MergeDoc(this, true));
+       if (!dia->exec())
+               return;
+
+       if (m_doc->appMode == modeEditClip)
+               m_view->requestMode(submodeEndNodeEdit);
+       qApp->setOverrideCursor(QCursor(Qt::WaitCursor));
+       int nr = m_doc->Pages->count();
+
+       QString MasterPageName(dia->getMasterPageNameText());
+       QString MasterPageName2(MasterPageName);
+       int copyC = 1;
+       while (m_doc->MasterNames.contains(MasterPageName2))
+       {
+               MasterPageName2 = tr("Copy #%1 of ").arg(copyC)+MasterPageName;
+               copyC++;
+       }
+       m_doc->setCurrentPage(m_doc->addMasterPage(nr, MasterPageName2));
+       qApp->processEvents();
+       //CB TODO: If we are loading to a new name, we rely on doc->onpage in 
+       //FileLoader::PasteItem as this call doesn't pass in the new 
destination page
+       m_doc->scMW()->loadPage(dia->getFromDoc(), 
dia->getMasterPageNameItem(), true, MasterPageName2);
+       qApp->processEvents();
+
+       updateMasterPageList(MasterPageName2);
+       m_view->showMasterPage(m_doc->MasterNames[MasterPageName2]);
+       qApp->restoreOverrideCursor();
 }
 
 void PagePalette_MasterPages::selectMasterPage(QListWidgetItem *item)


_______________________________________________
scribus-commit mailing list
scribus-commit@lists.scribus.net
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to