Author: jghali
Date: Wed Nov 11 13:20:53 2020
New Revision: 24224

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=24224
Log:
#16323: Starting page not stored

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

Modified: trunk/Scribus/scribus/prefsmanager.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24224&path=/trunk/Scribus/scribus/prefsmanager.cpp
==============================================================================
--- trunk/Scribus/scribus/prefsmanager.cpp      (original)
+++ trunk/Scribus/scribus/prefsmanager.cpp      Wed Nov 11 13:20:53 2020
@@ -1467,8 +1467,6 @@
        deMiscellaneous.setAttribute("saveEmergencyFile", 
static_cast<int>(appPrefs.miscPrefs.saveEmergencyFile));
        elem.appendChild(deMiscellaneous);
 
-
-
        QDomElement deSE = docu.createElement("StoryEditor");
        deSE.setAttribute("Font", appPrefs.storyEditorPrefs.guiFont);
        deSE.setAttribute("FontColorBackground", 
appPrefs.storyEditorPrefs.guiFontColorBackground.name());
@@ -2352,42 +2350,47 @@
 
                if (dc.tagName() == "PageSets")
                {
-                       QDomNode pgs = DOC.firstChild();
-                       if (!pgs.namedItem("PageNames").isNull())
+                       QList<PageSet> newPageSets;
+                       for (QDomNode pgs = DOC.firstChild(); !pgs.isNull(); 
pgs = pgs.nextSibling())
                        {
-                               appPrefs.pageSets.clear();
-                               while (!pgs.isNull())
+                               QDomElement pgsAttr = pgs.toElement();
+                               if (pgsAttr.tagName() != "Set")
+                                       continue;
+
+                               struct PageSet pageS;
+                               pageS.Name = pgsAttr.attribute("Name");
+                               pageS.FirstPage = 
pgsAttr.attribute("FirstPage", "0").toInt();
+                               pageS.Rows = pgsAttr.attribute("Rows", 
"1").toInt();
+                               pageS.Columns = pgsAttr.attribute("Columns", 
"1").toInt();
+//                             pageS.GapHorizontal = 
pgsAttr.attribute("GapHorizontal", "0").toDouble();
+//                             pageS.GapVertical = 
pgsAttr.attribute("GapVertical", "0").toDouble();
+//                             pageS.GapBelow = pgsAttr.attribute("GapBelow", 
"0").toDouble();
+                               pageS.pageNames.clear();
+
+                               for (QDomNode pgsN = pgs.firstChild(); 
!pgsN.isNull(); pgsN = pgsN.nextSibling())
                                {
-                                       QDomElement pgsAttr = pgs.toElement();
-                                       if (pgsAttr.tagName() == "Set")
-                                       {
-                                               struct PageSet pageS;
-                                               pageS.Name = 
pgsAttr.attribute("Name");
-                                               pageS.FirstPage = 
pgsAttr.attribute("FirstPage", "0").toInt();
-                                               pageS.Rows = 
pgsAttr.attribute("Rows", "1").toInt();
-                                               pageS.Columns = 
pgsAttr.attribute("Columns", "1").toInt();
-//                                             pageS.GapHorizontal = 
pgsAttr.attribute("GapHorizontal", "0").toDouble();
-//                                             pageS.GapVertical = 
pgsAttr.attribute("GapVertical", "0").toDouble();
-//                                             pageS.GapBelow = 
pgsAttr.attribute("GapBelow", "0").toDouble();
-                                               pageS.pageNames.clear();
-                                               QDomNode pgsN = 
pgs.firstChild();
-                                               while (!pgsN.isNull())
-                                               {
-                                                       QDomElement PgsAttrN = 
pgsN.toElement();
-                                                       if (PgsAttrN.tagName() 
== "PageNames")
-                                                               
pageS.pageNames.append(PgsAttrN.attribute("Name"));
-                                                       pgsN = 
pgsN.nextSibling();
-                                               }
-                                               appPrefs.pageSets.append(pageS);
-                                               if ((appPrefs.pageSets.count() 
== appPrefs.docSetupPrefs.pagePositioning) && 
((appPrefs.displayPrefs.pageGapHorizontal < 0) && 
(appPrefs.displayPrefs.pageGapVertical < 0)))
-                                               {
-                                                       
appPrefs.displayPrefs.pageGapHorizontal = 
ScCLocale::toDoubleC(pgsAttr.attribute("GapHorizontal"), 0.0);
-                                                       
appPrefs.displayPrefs.pageGapVertical   = 
ScCLocale::toDoubleC(pgsAttr.attribute("GapBelow"), 40.0);
-                                               }
-                                       }
-                                       pgs = pgs.nextSibling();
+                                       QDomElement pgsAttrN = pgsN.toElement();
+                                       if (pgsAttrN.tagName() == "PageNames")
+                                               
pageS.pageNames.append(pgsAttrN.attribute("Name"));
+                               }
+
+                               int pagesPerSpread = pageS.Rows * pageS.Columns;
+                               if (pagesPerSpread < 0)
+                                       continue;
+                               if ((pagesPerSpread == 1) && 
(pageS.pageNames.count() > 1))
+                                       continue;
+                               if ((pagesPerSpread > 1) && (pagesPerSpread != 
pageS.pageNames.count()))
+                                       continue;
+                               newPageSets.append(pageS);
+
+                               if ((newPageSets.count() == 
appPrefs.docSetupPrefs.pagePositioning) && 
((appPrefs.displayPrefs.pageGapHorizontal < 0) && 
(appPrefs.displayPrefs.pageGapVertical < 0)))
+                               {
+                                       appPrefs.displayPrefs.pageGapHorizontal 
= ScCLocale::toDoubleC(pgsAttr.attribute("GapHorizontal"), 0.0);
+                                       appPrefs.displayPrefs.pageGapVertical   
= ScCLocale::toDoubleC(pgsAttr.attribute("GapBelow"), 40.0);
                                }
                        }
+                       if (newPageSets.count() > 0)
+                               appPrefs.pageSets = newPageSets;
                }
 
                if (dc.tagName() == "ColorManagement")

Modified: trunk/Scribus/scribus/prefsmanager.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24224&path=/trunk/Scribus/scribus/prefsmanager.h
==============================================================================
--- trunk/Scribus/scribus/prefsmanager.h        (original)
+++ trunk/Scribus/scribus/prefsmanager.h        Wed Nov 11 13:20:53 2020
@@ -99,7 +99,7 @@
 
        /*! \brief Read the preferences.
        \param fname optional filename with preferences. If is not given,
-       the defualt is used. */
+       the default is used. */
        void ReadPrefs();
        void ReadPrefsXML();
 
@@ -120,6 +120,7 @@
        \param ho a file name to write
        \retval bool true on success, false on write error */
        bool ReadPref(const QString& ho);
+
        void setGhostscriptExecutable(const QString&);
        void setImageEditorExecutable(const QString&);
        void setExtBrowserExecutable(const QString&);


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

Reply via email to