r23070 by jghali - #15715: When changing sections, page numbers on regular pages are not updated immediately

scribus-commit scribus-commit at lists.scribus.net
Fri Jul 5 19:49:15 UTC 2019


Author: jghali
Date: Fri Jul  5 19:49:15 2019
New Revision: 23070

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=23070
Log:
#15715: When changing sections, page numbers on regular pages are not updated immediately

Modified:
    trunk/Scribus/scribus/pagestructs.h
    trunk/Scribus/scribus/prefsstructs.h
    trunk/Scribus/scribus/scribus.cpp
    trunk/Scribus/scribus/scribusdoc.cpp

Modified: trunk/Scribus/scribus/pagestructs.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23070&path=/trunk/Scribus/scribus/pagestructs.h
==============================================================================
--- trunk/Scribus/scribus/pagestructs.h	(original)
+++ trunk/Scribus/scribus/pagestructs.h	Fri Jul  5 19:49:15 2019
@@ -53,6 +53,36 @@
 	bool active; // Is the section active, ie, if the fromindex is 10, and theres 5 pages, this should be inactive.
 	QChar pageNumberFillChar; //Prefix to be placed before page number
 	int pageNumberWidth; //Minimum width of page number string
+
+	bool operator==(const DocumentSection &other) const
+	{
+		if (number != other.number)
+			return false;
+		if (name != other.name)
+			return false;
+		if (fromindex != other.fromindex)
+			return false;
+		if (toindex != other.toindex)
+			return false;
+		if (type != other.type)
+			return false;
+		if (sectionstartindex != other.sectionstartindex)
+			return false;
+		if (reversed != other.reversed)
+			return false;
+		if (active != other.active)
+			return false;
+		if (pageNumberFillChar != other.pageNumberFillChar)
+			return false;
+		if (pageNumberWidth != other.pageNumberWidth)
+			return false;
+		return true;
+	}
+
+	inline bool operator!=(const DocumentSection &other) const
+	{
+		return (this->operator==(other) == false);
+	}
 };
 
 typedef QMap<uint, DocumentSection> DocumentSectionMap;

Modified: trunk/Scribus/scribus/prefsstructs.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23070&path=/trunk/Scribus/scribus/prefsstructs.h
==============================================================================
--- trunk/Scribus/scribus/prefsstructs.h	(original)
+++ trunk/Scribus/scribus/prefsstructs.h	Fri Jul  5 19:49:15 2019
@@ -80,11 +80,11 @@
 	int valueStrikeThruPos; //! Strike-through displacement
 	int valueStrikeThruWidth; //! Strike-through line width
 
-	inline bool operator==(const TypoPrefs &other)
+	inline bool operator==(const TypoPrefs &other) const
 	{
 		return (memcmp(this, &other, sizeof(TypoPrefs)) == 0);
 	}
-	inline bool operator!=(const TypoPrefs &other)
+	inline bool operator!=(const TypoPrefs &other) const
 	{
 		return (memcmp(this, &other, sizeof(TypoPrefs)) != 0);
 	}

Modified: trunk/Scribus/scribus/scribus.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23070&path=/trunk/Scribus/scribus/scribus.cpp
==============================================================================
--- trunk/Scribus/scribus/scribus.cpp	(original)
+++ trunk/Scribus/scribus/scribus.cpp	Fri Jul  5 19:49:15 2019
@@ -6763,7 +6763,7 @@
 
 	slotChangeUnit(doc->unitIndex(), false);
 
-	if (oldDocPrefs.itemToolPrefs.imageLowResType!=newDocPrefs.itemToolPrefs.imageLowResType)
+	if (oldDocPrefs.itemToolPrefs.imageLowResType != newDocPrefs.itemToolPrefs.imageLowResType)
 	{
 		setStatusBarInfoText( tr("Updating Images"));
 		mainWindowProgressBar->reset();
@@ -6775,10 +6775,7 @@
 		mainWindowProgressBar->reset();
 		viewToolBar->setDoc(doc);
 	}
-	if (oldDocPrefs.typoPrefs != newDocPrefs.typoPrefs)
-	{
-		doc->invalidateAll();
-	}
+
 	emit UpdateRequest(reqDocFontListUpdate);
 	scrActions["viewShowMargins"]->setChecked(doc->guidesPrefs().marginsShown);
 	scrActions["viewShowBleeds"]->setChecked(doc->guidesPrefs().showBleed);

Modified: trunk/Scribus/scribus/scribusdoc.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=23070&path=/trunk/Scribus/scribus/scribusdoc.cpp
==============================================================================
--- trunk/Scribus/scribus/scribusdoc.cpp	(original)
+++ trunk/Scribus/scribus/scribusdoc.cpp	Fri Jul  5 19:49:15 2019
@@ -16059,13 +16059,14 @@
 			Items->at(i)->setImageVisible(m_docPrefsData.guidesPrefs.showPic);
 	}
 
-	double oldBaseGridValue  = oldPrefsData.guidesPrefs.valueBaselineGrid;
-	double oldBaseGridOffset = oldPrefsData.guidesPrefs.offsetBaselineGrid;
-	if (oldBaseGridValue  != prefsData.guidesPrefs.valueBaselineGrid ||
-		oldBaseGridOffset != prefsData.guidesPrefs.offsetBaselineGrid )
-	{
+	bool   mustInvalidateAll = false;
+	mustInvalidateAll |= (oldPrefsData.guidesPrefs.valueBaselineGrid  != prefsData.guidesPrefs.valueBaselineGrid);
+	mustInvalidateAll |= (oldPrefsData.guidesPrefs.offsetBaselineGrid != prefsData.guidesPrefs.offsetBaselineGrid);
+	mustInvalidateAll |= (oldPrefsData.typoPrefs != prefsData.typoPrefs);
+	mustInvalidateAll |= (oldPrefsData.docSectionMap != prefsData.docSectionMap);
+
+	if (mustInvalidateAll)
 		this->invalidateAll();
-	}
 }
 
 void ScribusDoc::applyPrefsPageSizingAndMargins(bool resizePages, bool resizeMasterPages, bool resizePageMargins, bool resizeMasterPageMargins)




More information about the scribus-commit mailing list