r14733 by jghali - #8813 : column / row guides are not correctly shown when reopening a document

scribus-commit scribus-commit at lists.scribus.net
Mon Feb 15 21:11:06 CET 2010


Revision: 14733
Author: jghali
Date: 2010-02-15T20:01:59.980706Z
Commit message: #8813 : column / row guides are not correctly shown when reopening a document

Changeset: 
M  /trunk/Scribus/scribus/plugins/fileloader/scribus150format/scribus150format.cpp
M  /trunk/Scribus/scribus/plugins/fileloader/scribus134format/scribus134format.cpp
M  /trunk/Scribus/scribus/guidemanagercore.cpp
M  /trunk/Scribus/scribus/ui/guidemanager.cpp
M  /trunk/Scribus/scribus/guidemanagercore.h

Diffs:
Index: scribus/guidemanagercore.cpp
===================================================================
--- scribus/guidemanagercore.cpp	(revision 14732)
+++ scribus/guidemanagercore.cpp	(revision 14733)
@@ -236,6 +236,106 @@
 	return -1.0; // just for compiler warning
 }
 
+Guides GuideManagerCore::getAutoHorizontals(Page* page)
+{
+	Guides guides;
+	double rowSize;
+	int value = m_horizontalAutoCount;
+	double offset = 0.0;
+	double newPageHeight = page->height();
+
+	if (page == NULL)
+		page = m_page;
+	if (page == NULL)
+		return guides;
+
+	if (m_horizontalAutoCount == 0)
+		return guides;
+	++value;
+
+	if (m_horizontalAutoRefer == 1)
+	{
+		newPageHeight = newPageHeight - page->Margins.Top - page->Margins.Bottom;
+		offset = page->Margins.Top;
+	}
+	else if (m_horizontalAutoRefer == 2)
+	{
+		if (qRound(page->guides.gy) != 0.0)
+		{
+			offset = page->guides.gy;
+			newPageHeight = page->guides.gh;
+		}
+	}
+
+	if (page->guides.horizontalAutoGap() > 0.0)
+		rowSize = (newPageHeight - (value - 1) * page->guides.horizontalAutoGap()) / value;
+	else
+		rowSize = newPageHeight / value;
+
+	for (int i = 1, gapCount = 0; i < value; ++i)
+	{
+		if (page->guides.horizontalAutoGap() > 0.0)
+		{
+			guides.append(offset + i * rowSize + gapCount * page->guides.horizontalAutoGap());
+			++gapCount;
+			guides.append(offset + i * rowSize + gapCount * page->guides.horizontalAutoGap());
+		}
+		else
+			guides.append(offset + rowSize * i);
+	}
+	return guides;
+}
+
+Guides GuideManagerCore::getAutoVerticals(Page* page)
+{
+	Guides guides;
+	double columnSize;
+	int value = m_verticalAutoCount;
+	double offset = 0.0;
+	double newPageWidth = page->width();
+
+	if (page == NULL)
+		page = m_page;
+	if (page == NULL)
+		return guides;
+
+	if (m_verticalAutoCount == 0)
+		return guides;
+	++value;
+
+	if (m_horizontalAutoRefer == 1)
+	{
+		newPageWidth = newPageWidth - page->Margins.Left - page->Margins.Right;
+		offset = page->Margins.Left;
+	}
+	else if (m_horizontalAutoRefer == 2)
+	{
+		if (qRound(page->guides.gx) != 0)
+		{
+			offset = page->guides.gx;
+			newPageWidth = page->guides.gw;
+		}
+	}
+
+	if (page->guides.verticalAutoGap() > 0.0)
+		columnSize = (newPageWidth - (value - 1) * page->guides.verticalAutoGap()) / value;
+	else
+		columnSize = newPageWidth / value;
+
+	for (int i = 1, gapCount = 0; i < value; ++i)
+	{
+		if (page->guides.verticalAutoGap() > 0.0)
+		{
+			guides.append(offset + i * columnSize + gapCount * page->guides.verticalAutoGap());
+			++gapCount;
+			guides.append(offset + i * columnSize + gapCount * page->guides.verticalAutoGap());
+		}
+		else
+			guides.append(offset + columnSize * i);
+	}
+	return guides;
+}
+
 void GuideManagerCore::clearHorizontals(GuideType type)
 {
 	switch (type)
Index: scribus/ui/guidemanager.cpp
===================================================================
--- scribus/ui/guidemanager.cpp	(revision 14732)
+++ scribus/ui/guidemanager.cpp	(revision 14733)
@@ -556,94 +556,46 @@
 	QDialog::windowActivationChange( oldActive );
 }
 
-Guides GuideManager::getAutoVerticals(Page * p)
+Guides GuideManager::getAutoVerticals(Page * page)
 {
-	Guides retval;
-	double columnSize;
-	int value = verticalAutoCountSpin->value();
-	double offset = 0.0;
-	double newPageWidth = p->width();
+	GuideManagerCore guides;
 
-	if (value == 0)
-		return retval;
-	++value;
+	double gapValue = 0.0;
+	if (horizontalAutoGapCheck->isChecked())
+		gapValue = value2pts(horizontalAutoGapSpin->value(), docUnitIndex);
+	guides.setHorizontalAutoGap(gapValue);
+	guides.setHorizontalAutoCount(horizontalAutoCountSpin->value());
+	guides.setHorizontalAutoRefer(horizontalRefer());
 
-	if (verticalRefer() == 1)
-	{
-		newPageWidth = newPageWidth - p->Margins.Left - p->Margins.Right;
-		offset = p->Margins.Left;
-	}
-	else if (verticalRefer() == 2)
-	{
-		if (qRound(p->guides.gx) != 0)
-		{
-			offset = p->guides.gx;
-			newPageWidth = p->guides.gw;
-		}
-	}
+	gapValue = 0.0;
+	if (verticalAutoGapCheck->isChecked())
+		gapValue = value2pts(verticalAutoGapSpin->value(), docUnitIndex);
+	guides.setVerticalAutoGap(gapValue);
+	guides.setVerticalAutoCount(verticalAutoCountSpin->value());
+	guides.setVerticalAutoRefer(verticalRefer());
 
-	if (p->guides.verticalAutoGap() > 0.0 && verticalAutoGapCheck->isChecked())
-		columnSize = (newPageWidth - (value - 1) * p->guides.verticalAutoGap()) / value;
-	else
-		columnSize = newPageWidth / value;
-
-	for (int i = 1, gapCount = 0; i < value; ++i)
-	{
-		if (p->guides.verticalAutoGap() > 0.0 && verticalAutoGapCheck->isChecked())
-		{
-			retval.append(offset + i * columnSize + gapCount * p->guides.verticalAutoGap());
-			++gapCount;
-			retval.append(offset + i * columnSize + gapCount * p->guides.verticalAutoGap());
-		}
-		else
-			retval.append(offset + columnSize * i);
-	}
-	return retval;
+	return guides.getAutoVerticals(page);
 }
 
-Guides GuideManager::getAutoHorizontals(Page * p)
+Guides GuideManager::getAutoHorizontals(Page * page)
 {
-	Guides retval;
-	double rowSize;
-	int value = horizontalAutoCountSpin->value();
-	double offset = 0.0;
-	double newPageHeight = p->height();
+	GuideManagerCore guides;
 
-	if (value == 0)
-		return retval;
-	++value;
+	double gapValue = 0.0;
+	if (horizontalAutoGapCheck->isChecked())
+		gapValue = value2pts(horizontalAutoGapSpin->value(), docUnitIndex);
+	guides.setHorizontalAutoGap(gapValue);
+	guides.setHorizontalAutoCount(horizontalAutoCountSpin->value());
+	guides.setHorizontalAutoRefer(horizontalRefer());
 
-	if (horizontalRefer() == 1)
-	{
-		newPageHeight = newPageHeight - p->Margins.Top - p->Margins.Bottom;
-		offset = p->Margins.Top;
-	}
-	else if (horizontalRefer() == 2)
-	{
-		if (qRound(p->guides.gy) != 0.0)
-		{
-			offset = p->guides.gy;
-			newPageHeight = p->guides.gh;
-		}
-	}
+	gapValue = 0.0;
+	if (verticalAutoGapCheck->isChecked())
+		gapValue = value2pts(verticalAutoGapSpin->value(), docUnitIndex);
+	guides.setVerticalAutoGap(gapValue);
+	guides.setVerticalAutoCount(verticalAutoCountSpin->value());
+	guides.setVerticalAutoRefer(verticalRefer());
 
-	if (p->guides.horizontalAutoGap() > 0.0 && horizontalAutoGapCheck->isChecked())
-		rowSize = (newPageHeight - (value - 1) * p->guides.horizontalAutoGap()) / value;
-	else
-		rowSize = newPageHeight / value;
-
-	for (int i = 1, gapCount = 0; i < value; ++i)
-	{
-		if (p->guides.horizontalAutoGap() > 0.0&& horizontalAutoGapCheck->isChecked())
-		{
-			retval.append(offset + i * rowSize + gapCount * p->guides.horizontalAutoGap());
-			++gapCount;
-			retval.append(offset + i * rowSize + gapCount * p->guides.horizontalAutoGap());
-		}
-		else
-			retval.append(offset + rowSize * i);
-	}
-	return retval;
+	return guides.getAutoHorizontals(page);
 }
 
 void GuideManager::resetSelectionForPage()
Index: scribus/guidemanagercore.h
===================================================================
--- scribus/guidemanagercore.h	(revision 14732)
+++ scribus/guidemanagercore.h	(revision 14733)
@@ -56,6 +56,9 @@
 	double horizontal(uint ix, GuideType type);
 	double vertical(uint ix, GuideType type);
 
+	Guides getAutoHorizontals(Page* page = NULL);
+	Guides getAutoVerticals(Page* page = NULL);
+
 	void clearHorizontals(GuideType type);
 	void clearVerticals(GuideType type);
 
Index: scribus/plugins/fileloader/scribus150format/scribus150format.cpp
===================================================================
--- scribus/plugins/fileloader/scribus150format/scribus150format.cpp	(revision 14732)
+++ scribus/plugins/fileloader/scribus150format/scribus150format.cpp	(revision 14733)
@@ -1684,6 +1684,9 @@
 			GuideManagerCore::Standard,
 			attrs.hasAttribute("NumHGuides"));
 	GuideManagerIO::readSelection(attrs.valueAsString("AGSelection"), newPage);
+
+	newPage->guides.addHorizontals(newPage->guides.getAutoHorizontals(newPage), GuideManagerCore::Auto);
+	newPage->guides.addVerticals(newPage->guides.getAutoVerticals(newPage), GuideManagerCore::Auto);
 	return true;
 }
 
@@ -3136,6 +3139,9 @@
 											GuideManagerCore::Standard,
 											attrs.hasAttribute("NumHGuides"));
 			GuideManagerIO::readSelection(attrs.valueAsString("AGSelection"), newPage);
+
+			newPage->guides.addHorizontals(newPage->guides.getAutoHorizontals(newPage), GuideManagerCore::Auto);
+			newPage->guides.addVerticals(newPage->guides.getAutoVerticals(newPage), GuideManagerCore::Auto);
 		}
 		if ((tagName == "PAGEOBJECT") || (tagName == "MASTEROBJECT") || (tagName == "FRAMEOBJECT"))
 		{
Index: scribus/plugins/fileloader/scribus134format/scribus134format.cpp
===================================================================
--- scribus/plugins/fileloader/scribus134format/scribus134format.cpp	(revision 14732)
+++ scribus/plugins/fileloader/scribus134format/scribus134format.cpp	(revision 14733)
@@ -1681,6 +1681,9 @@
 			GuideManagerCore::Standard,
 			attrs.hasAttribute("NumHGuides"));
 	GuideManagerIO::readSelection(attrs.valueAsString("AGSelection"), newPage);
+
+	newPage->guides.addHorizontals(newPage->guides.getAutoHorizontals(newPage), GuideManagerCore::Auto);
+	newPage->guides.addVerticals(newPage->guides.getAutoVerticals(newPage), GuideManagerCore::Auto);
 	return true;
 }
 
@@ -3101,6 +3104,9 @@
 											GuideManagerCore::Standard,
 											attrs.hasAttribute("NumHGuides"));
 			GuideManagerIO::readSelection(attrs.valueAsString("AGSelection"), newPage);
+
+			newPage->guides.addHorizontals(newPage->guides.getAutoHorizontals(newPage), GuideManagerCore::Auto);
+			newPage->guides.addVerticals(newPage->guides.getAutoVerticals(newPage), GuideManagerCore::Auto);
 		}
 		if ((tagName == "PAGEOBJECT") || (tagName == "MASTEROBJECT") || (tagName == "FRAMEOBJECT"))
 		{




More information about the scribus-commit mailing list