[PULL REQUEST] initial profile printing support
Lubomir I. Ivanov
neolit123 at gmail.com
Sat Jul 13 08:56:37 PDT 2013
the first two patches make fixes related to the table print. the page detection
algorithm is now even slower..
the rest of the series add experimental profile printing support.
it can be accessed for now only via the '6 dives' option and what it does
at the moment is to print each dive profile on a full page instead.
grayscale printing is now supported both profile-internally and via bitmap
coversation to grayscale (experimental). it's under question which one of the
two methods is faster, but also which looks better. the profile-internal
method gives more control, of course, as it reads the grayscale colors
from the profile_colors table.
in terms of performance both the table print and profile printing are
much slower in comparison to the GTK build...
QTextDocument aside (table printing), i can understand if QGraphicsScene
is much more sophisticated than cairo, but under the Ubuntu VM here,
by browsing the divelist it can take >3 seconds, where with GTK/cairo it took
~0 seconds. if you have a fast machine you may not notice this at all,
but under a VM you may be measuring with something like a 1.5GHz single core.
also if you test the new profile printing you may notice a blocking operation
of N seconds, while all profiles are rendered. ~42 dive profiles, full page
300 DPI on A4, in color take ~16 seconds on my end.
not sure if performance is much of an issue here..
The following changes since commit a69e92d891726e7aa75024d313ec2295faa7cc72:
About: improve dialog layout (2013-07-11 09:22:20 -0300)
are available in the git repository at:
git at github.com:neolit123/subsurface.git print
for you to fetch changes up to b5ed72a705481b69b3d3459be8a747356f297f2c:
Colors: a couple of grayscale color tweaks (2013-07-13 18:31:22 +0300)
Lubomir I. Ivanov (9):
Print: support any resolution for the table print
Print: improve new page detection in table print
Profile: use a printMode flag in ProfileGraphicsView
Print: add experimental code for printing profiles
Print: add method to convert profile to grayscale
Profile: add the isGrayscale flag
Print: pass grayscale flag to setPrintMode()
Profile: support grayscale plotting
Colors: a couple of grayscale color tweaks
qt-ui/graphicsview-common.cpp | 5 +--
qt-ui/printdialog.cpp | 1 +
qt-ui/printlayout.cpp | 88 +++++++++++++++++++++++++++++++++-----
qt-ui/printlayout.h | 1 +
qt-ui/profilegraphics.cpp | 98 ++++++++++++++++++++++++++-----------------
qt-ui/profilegraphics.h | 10 ++++-
6 files changed, 150 insertions(+), 53 deletions(-)
More information about the subsurface