r14596 by jghali - #8756 (first round) : fix a few problems which may happen with sections management when deleting pages
scribus-commit
scribus-commit at lists.scribus.net
Mon Feb 1 19:45:24 CET 2010
Revision: 14596
Author: jghali
Date: 2010-01-30T15:34:55.499359Z
Commit message: #8756 (first round) : fix a few problems which may happen with sections management when deleting pages
Changeset:
M /trunk/Scribus/scribus/scribusdoc.cpp
Diffs:
Index: scribus/scribusdoc.cpp
===================================================================
--- scribus/scribusdoc.cpp (revision 14595)
+++ scribus/scribusdoc.cpp (revision 14596)
@@ -4915,27 +4915,28 @@
void ScribusDoc::removePageFromSection(const uint pageIndex)
{
//Get the section of the new page index.
- bool found=false;
+ bool found = false;
+ uint fromIndex, toIndex;
DocumentSectionMap::Iterator it = sections.begin();
for (; it!= sections.end(); ++it)
{
if (pageIndex>=it.value().fromindex && pageIndex<=it.value().toindex)
{
- found=true;
+ fromIndex = it.value().fromindex;
+ toIndex = it.value().toindex - 1;
+ if (fromIndex > toIndex) // Remove section in that case
+ sections.remove(it.key());
break;
}
}
- //Our page was not in a section
- if (!found)
- return;
-
- --it.value().toindex;
- ++it;
- while (it!=sections.end())
+ for (it = sections.begin(); it != sections.end(); ++it)
{
- --it.value().fromindex;
- --it.value().toindex;
- ++it;
+ fromIndex = it.value().fromindex;
+ toIndex = it.value().toindex;
+ if (fromIndex > pageIndex)
+ --it.value().fromindex;
+ if (toIndex >= pageIndex)
+ --it.value().toindex;
}
//Now update the Pages' internal storage of their page number
updateSectionPageNumbersToPages();
More information about the scribus-commit
mailing list