Profile: use a printMode flag in ProfileGraphicsView

When printing the profile there are certain features which
we want different (or disabled). This includes font scale ignoring
and showing a toolip. To achieve that we check for a printMode flag
in ProfileGraphicsView which can be set using setPrintMode(bool).

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
This commit is contained in:
Lubomir I. Ivanov 2013-07-12 17:20:59 +03:00 committed by Dirk Hohndel
parent b722bf6931
commit 8ea849d0c2
2 changed files with 12 additions and 1 deletions

View file

@ -46,6 +46,7 @@ extern int evn_used;
ProfileGraphicsView::ProfileGraphicsView(QWidget* parent) : QGraphicsView(parent), toolTip(0) , dive(0), diveDC(0)
{
printMode = false;
gc.printer = false;
fill_profile_color();
setScene(new QGraphicsScene());
@ -189,6 +190,11 @@ void ProfileGraphicsView::refresh()
plot(current_dive, TRUE);
}
void ProfileGraphicsView::setPrintMode(bool mode)
{
printMode = mode;
}
void ProfileGraphicsView::plot(struct dive *d, bool forceRedraw)
{
struct divecomputer *dc;
@ -214,6 +220,8 @@ void ProfileGraphicsView::plot(struct dive *d, bool forceRedraw)
toolTip = new ToolTipItem();
installEventFilter(toolTip);
scene()->addItem(toolTip);
if (printMode)
toolTip->setVisible(false);
// Fix this for printing / screen later.
// plot_set_scale(scale_mode_t);
@ -1106,6 +1114,7 @@ QGraphicsItemGroup *ProfileGraphicsView::plot_text(text_render_options_t *tro,co
textItem->setPen(Qt::NoPen);
group->setPos(point.x() + dx, point.y() + dy);
if (!printMode)
group->setFlag(QGraphicsItem::ItemIgnoresTransformations);
if (!parent)

View file

@ -92,6 +92,7 @@ public:
void plot(struct dive *d, bool forceRedraw = FALSE);
bool eventFilter(QObject* obj, QEvent* event);
void clear();
void setPrintMode(bool);
protected:
void resizeEvent(QResizeEvent *event);
@ -134,6 +135,7 @@ private:
struct dive *dive;
struct divecomputer *diveDC;
int zoomLevel;
bool printMode;
// Top Level Items.
QGraphicsItem* profileGrid;