aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qt-ui/profile/divecartesianaxis.cpp29
-rw-r--r--qt-ui/profile/divecartesianaxis.h4
-rw-r--r--qt-ui/profile/profilewidget2.cpp10
3 files changed, 35 insertions, 8 deletions
diff --git a/qt-ui/profile/divecartesianaxis.cpp b/qt-ui/profile/divecartesianaxis.cpp
index 46f1a9656..bf5a5380c 100644
--- a/qt-ui/profile/divecartesianaxis.cpp
+++ b/qt-ui/profile/divecartesianaxis.cpp
@@ -8,11 +8,14 @@
#include "divelineitem.h"
#include "profilewidget2.h"
-static QPen gridPen()
+QPen DiveCartesianAxis::gridPen()
{
QPen pen;
pen.setColor(getColor(TIME_GRID));
- pen.setWidth(2);
+ /* cosmetic width() == 0 for lines in printMode
+ * having setCosmetic(true) and width() > 0 does not work when
+ * printing on OSX and Linux */
+ pen.setWidth(DiveCartesianAxis::printMode ? 0 : 2);
pen.setCosmetic(true);
return pen;
}
@@ -33,6 +36,18 @@ void DiveCartesianAxis::setFontLabelScale(qreal scale)
changed = true;
}
+void DiveCartesianAxis::setPrintMode(bool mode)
+{
+ printMode = mode;
+ // update the QPen of all lines depending on printMode
+ QPen newPen = gridPen();
+ QColor oldColor = pen().brush().color();
+ newPen.setBrush(oldColor);
+ setPen(newPen);
+ Q_FOREACH (DiveLineItem *item, lines)
+ item->setPen(pen());
+}
+
void DiveCartesianAxis::setMaximum(double maximum)
{
if (IS_FP_SAME(max, maximum))
@@ -57,6 +72,7 @@ void DiveCartesianAxis::setTextColor(const QColor &color)
DiveCartesianAxis::DiveCartesianAxis() : QObject(),
QGraphicsLineItem(),
+ printMode(false),
unitSystem(0),
orientation(LeftToRight),
min(0),
@@ -220,10 +236,8 @@ void DiveCartesianAxis::updateTicks(color_indice_t color)
childPos = begin - i * stepSize;
}
DiveLineItem *line = new DiveLineItem(this);
- QPen pen;
+ QPen pen = gridPen();
pen.setBrush(getColor(color));
- pen.setCosmetic(true);
- pen.setWidthF(2);
line->setPen(pen);
line->setZValue(0);
lines.push_back(line);
@@ -340,11 +354,10 @@ double DiveCartesianAxis::fontLabelScale() const
void DiveCartesianAxis::setColor(const QColor &color)
{
- QPen defaultPen(color);
+ QPen defaultPen = gridPen();
+ defaultPen.setColor(color);
defaultPen.setJoinStyle(Qt::RoundJoin);
defaultPen.setCapStyle(Qt::RoundCap);
- defaultPen.setWidth(2);
- defaultPen.setCosmetic(true);
setPen(defaultPen);
}
diff --git a/qt-ui/profile/divecartesianaxis.h b/qt-ui/profile/divecartesianaxis.h
index 15155692e..27cfa62d8 100644
--- a/qt-ui/profile/divecartesianaxis.h
+++ b/qt-ui/profile/divecartesianaxis.h
@@ -16,6 +16,9 @@ class DiveCartesianAxis : public QObject, public QGraphicsLineItem {
Q_PROPERTY(QPointF pos WRITE setPos READ pos)
Q_PROPERTY(qreal x WRITE setX READ x)
Q_PROPERTY(qreal y WRITE setY READ y)
+private:
+ bool printMode;
+ QPen gridPen();
public:
enum Orientation {
TopToBottom,
@@ -25,6 +28,7 @@ public:
};
DiveCartesianAxis();
virtual ~DiveCartesianAxis();
+ void setPrintMode(bool mode);
void setMinimum(double minimum);
void setMaximum(double maximum);
void setTickInterval(double interval);
diff --git a/qt-ui/profile/profilewidget2.cpp b/qt-ui/profile/profilewidget2.cpp
index ab9ae2c0d..3ccd1bb6d 100644
--- a/qt-ui/profile/profilewidget2.cpp
+++ b/qt-ui/profile/profilewidget2.cpp
@@ -1479,6 +1479,16 @@ void ProfileWidget2::setPrintMode(bool mode, bool grayscale)
{
printMode = mode;
resetZoom();
+
+ // set printMode for axes
+ profileYAxis->setPrintMode(mode);
+ gasYAxis->setPrintMode(mode);
+ temperatureAxis->setPrintMode(mode);
+ timeAxis->setPrintMode(mode);
+ cylinderPressureAxis->setPrintMode(mode);
+ heartBeatAxis->setPrintMode(mode);
+ percentageAxis->setPrintMode(mode);
+
isGrayscale = mode ? grayscale : false;
mouseFollowerHorizontal->setVisible(!mode);
mouseFollowerVertical->setVisible(!mode);