summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2015-07-29 12:24:18 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-07-29 12:24:18 -0700
commit4687f5d3b42b04cf270c53e5bf77941d5743d03a (patch)
treeb0c36ffa5f48b1ea3cff65b243ad81adfa7062f3
parent64aace63f0a8478be6538e87fecd574f8cc29e86 (diff)
downloadsubsurface-4687f5d3b42b04cf270c53e5bf77941d5743d03a.tar.gz
Printing: calculate a much more accurate font scale value
This simply uses the relative size of the profile. This can result in truly tiny text in print, but at least it's consistent and logical. We could add some minimum value there but I'm not sure that's the right answer, either. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--printer.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/printer.cpp b/printer.cpp
index fcafaa38e..fc18c9afe 100644
--- a/printer.cpp
+++ b/printer.cpp
@@ -61,11 +61,11 @@ void Printer::render(int Pages = 0)
int profileFrameStyle = profile->frameStyle();
int animationOriginal = prefs.animation_speed;
double fontScale = profile->getFontPrintScale();
+ double printFontScale = 1.0;
// apply printing settings to profile
profile->setFrameStyle(QFrame::NoFrame);
profile->setPrintMode(true, !printOptions->color_selected);
- profile->setFontPrintScale(pageSize.width() * 0.001);
profile->setToolTipVisibile(false);
prefs.animation_speed = 0;
@@ -81,8 +81,10 @@ void Printer::render(int Pages = 0)
QSize originalSize = profile->size();
if (collection.count() > 0) {
+ printFontScale = (double)collection.at(0).geometry().size().height() / (double)profile->size().height();
profile->resize(collection.at(0).geometry().size());
}
+ profile->setFontPrintScale(printFontScale);
int elemNo = 0;
for (int i = 0; i < Pages; i++) {