summaryrefslogtreecommitdiffstats
path: root/scribus/pdflib_core.cpp
diff options
context:
space:
mode:
authorjghali <jghali@11d20701-8431-0410-a711-e3c959e3b870>2012-08-03 22:33:53 +0000
committerjghali <jghali@11d20701-8431-0410-a711-e3c959e3b870>2012-08-03 22:33:53 +0000
commit092996ccb67d5d9897a757ac78aa43996a75dd93 (patch)
tree7bbb9f0978221cbb39b6c84e3dca7dd5ab620b13 /scribus/pdflib_core.cpp
parent7d5ed2f76d11a6b0ad428e69680c4d4d6f444cc5 (diff)
downloadscribus-092996ccb67d5d9897a757ac78aa43996a75dd93.tar.gz
scribus-092996ccb67d5d9897a757ac78aa43996a75dd93.tar.xz
scribus-092996ccb67d5d9897a757ac78aa43996a75dd93.zip
#10999: Speed up some loops for very long text in many linked frames
git-svn-id: svn://scribus.net/branches/Version14x/Scribus@17750 11d20701-8431-0410-a711-e3c959e3b870
Diffstat (limited to 'scribus/pdflib_core.cpp')
-rw-r--r--scribus/pdflib_core.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/scribus/pdflib_core.cpp b/scribus/pdflib_core.cpp
index 6a652cb..9018b7f 100644
--- a/scribus/pdflib_core.cpp
+++ b/scribus/pdflib_core.cpp
@@ -933,7 +933,9 @@ bool PDFLibCore::PDF_Begin_Doc(const QString& fn, SCFonts &AllFonts, QMap<QStrin
ReallyUsed.insert(pgit->itemText.defaultStyle().charStyle().font().replacementName(), DocFonts[pgit->itemText.defaultStyle().charStyle().font().replacementName()]);
}
}
- for (uint e = 0; e < static_cast<uint>(pgit->itemText.length()); ++e)
+ uint start = pgit->isTextFrame() ? (uint) pgit->firstInFrame() : 0;
+ uint stop = pgit->isTextFrame() ? (uint) pgit->lastInFrame() + 1 : (uint) pgit->itemText.length();
+ for (uint e = start; e < stop; ++e)
{
ReallyUsed.insert(pgit->itemText.charStyle(e).font().replacementName(), DocFonts[pgit->itemText.charStyle(e).font().replacementName()]);
}
@@ -957,7 +959,9 @@ bool PDFLibCore::PDF_Begin_Doc(const QString& fn, SCFonts &AllFonts, QMap<QStrin
ReallyUsed.insert(pgit->itemText.defaultStyle().charStyle().font().replacementName(), DocFonts[pgit->itemText.defaultStyle().charStyle().font().replacementName()]);
}
}
- for (uint e = 0; e < static_cast<uint>(pgit->itemText.length()); ++e)
+ uint start = pgit->isTextFrame() ? (uint) pgit->firstInFrame() : 0;
+ uint stop = pgit->isTextFrame() ? (uint) pgit->lastInFrame() + 1 : (uint) pgit->itemText.length();
+ for (uint e = start; e < stop; ++e)
{
ReallyUsed.insert(pgit->itemText.charStyle(e).font().replacementName(), DocFonts[pgit->itemText.charStyle(e).font().replacementName()]);
}
@@ -981,7 +985,9 @@ bool PDFLibCore::PDF_Begin_Doc(const QString& fn, SCFonts &AllFonts, QMap<QStrin
ReallyUsed.insert(pgit->itemText.defaultStyle().charStyle().font().replacementName(), DocFonts[pgit->itemText.defaultStyle().charStyle().font().replacementName()]);
}
}
- for (uint e = 0; e < static_cast<uint>(pgit->itemText.length()); ++e)
+ uint start = pgit->isTextFrame() ? (uint) pgit->firstInFrame() : 0;
+ uint stop = pgit->isTextFrame() ? (uint) pgit->lastInFrame() + 1 : (uint) pgit->itemText.length();
+ for (uint e = start; e < stop; ++e)
{
ReallyUsed.insert(pgit->itemText.charStyle(e).font().replacementName(), DocFonts[pgit->itemText.charStyle(e).font().replacementName()]);
}
@@ -1011,7 +1017,9 @@ bool PDFLibCore::PDF_Begin_Doc(const QString& fn, SCFonts &AllFonts, QMap<QStrin
ReallyUsed.insert(pgit->itemText.defaultStyle().charStyle().font().replacementName(), DocFonts[pgit->itemText.defaultStyle().charStyle().font().replacementName()]);
}
}
- for (uint e = 0; e < static_cast<uint>(pgit->itemText.length()); ++e)
+ uint start = pgit->isTextFrame() ? (uint) pgit->firstInFrame() : 0;
+ uint stop = pgit->isTextFrame() ? (uint) pgit->lastInFrame() + 1 : (uint) pgit->itemText.length();
+ for (uint e = start; e < stop; ++e)
{
ReallyUsed.insert(pgit->itemText.charStyle(e).font().replacementName(), DocFonts[pgit->itemText.charStyle(e).font().replacementName()]);
}