Move settings of the Ruler to the Ruler.

As with any other graphics object, the settings for the ruler
should be managed by the ruler, clearing up the Profile logic
and making the code easier to read.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Tomaz Canabrava 2014-05-21 14:24:19 -03:00 committed by Dirk Hohndel
parent 6aab69b298
commit 119950b6db
4 changed files with 18 additions and 7 deletions

View file

@ -499,11 +499,6 @@ void ProfileWidget2::settingsChanged()
needReplot = true;
}
if (currentState == PROFILE) {
rulerItem->setVisible(prefs.rulergraph);
} else {
rulerItem->setVisible(false);
}
if (needReplot)
replot();
}

View file

@ -68,6 +68,7 @@ public:
virtual bool eventFilter(QObject *, QEvent *);
void setupItem(AbstractProfilePolygonItem *item, DiveCartesianAxis *hAxis, DiveCartesianAxis *vAxis, DivePlotDataModel *model, int vData, int hData, int zValue);
void setPrintMode(bool mode, bool grayscale = false);
State currentState;
public
slots: // Necessary to call from QAction's signals.
@ -98,7 +99,6 @@ private: /*methods*/
private:
DivePlotDataModel *dataModel;
State currentState;
int zoomLevel;
qreal zoomFactor;
DivePixmapItem *background;

View file

@ -1,5 +1,7 @@
#include "ruleritem.h"
#include "divetextitem.h"
#include "profilewidget2.h"
#include "../preferences.h"
#include <QFont>
#include <QFontMetrics>
@ -79,6 +81,15 @@ RulerItem2::RulerItem2() : source(new RulerNodeItem2()),
textItemBack->setPen(QColor(Qt::white));
textItemBack->setFlag(QGraphicsItem::ItemIgnoresTransformations);
setPen(QPen(QColor(Qt::black), 0.0));
connect(PreferencesDialog::instance(), SIGNAL(settingsChanged()), this, SLOT(settingsChanged()));
}
void RulerItem2::settingsChanged()
{
ProfileWidget2 *profWidget = NULL;
if(scene() && scene()->views().count())
profWidget = qobject_cast<ProfileWidget2*>(scene()->views().first());
setVisible(profWidget->currentState == ProfileWidget2::PROFILE ? prefs.rulergraph : false);
}
void RulerItem2::recalculate()

View file

@ -31,7 +31,8 @@ private:
DiveCartesianAxis *depthAxis;
};
class RulerItem2 : public QGraphicsLineItem {
class RulerItem2 :public QObject, public QGraphicsLineItem {
Q_OBJECT
public:
explicit RulerItem2();
void recalculate();
@ -41,6 +42,10 @@ public:
RulerNodeItem2 *destNode() const;
void setAxis(DiveCartesianAxis *time, DiveCartesianAxis *depth);
void setVisible(bool visible);
public slots:
void settingsChanged();
private:
struct plot_info pInfo;
QPointF startPoint, endPoint;