Position the X and Y labels of the Rulers

Position the X and Y labels of the rulers, this way
it's a bit more clear the deepness and the length
of the trip. It's still not the best approach, but
I'm getting close.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
This commit is contained in:
Tomaz Canabrava 2013-09-16 11:09:54 -03:00
parent f5b33dede3
commit 4e06c52f68
2 changed files with 20 additions and 1 deletions

View file

@ -673,21 +673,38 @@ void DiveHandler::mousePressEvent(QGraphicsSceneMouseEvent* event)
void Ruler::setMaximum(double maximum) void Ruler::setMaximum(double maximum)
{ {
maxText->setText(QString::number(maximum));
if(orientation == Qt::Horizontal)
maxText->setPos( line().x2(), line().y2() -5 );
else
maxText->setPos( line().x1() - 50, line().y2());
max = maximum; max = maximum;
} }
void Ruler::setMinimum(double minimum) void Ruler::setMinimum(double minimum)
{ {
minText->setText(QString::number(minimum));
if(orientation == Qt::Horizontal)
minText->setPos( line().x1(), line().y2() -5 );
else
minText->setPos( line().x1() - 50, line().y1());
min = minimum; min = minimum;
} }
Ruler::Ruler() : orientation(Qt::Horizontal) Ruler::Ruler() : orientation(Qt::Horizontal),
minText(new QGraphicsSimpleTextItem(this)),
maxText(new QGraphicsSimpleTextItem(this))
{ {
minText->setFlag(QGraphicsItem::ItemIgnoresTransformations);
maxText->setFlag(QGraphicsItem::ItemIgnoresTransformations);
} }
void Ruler::setOrientation(Qt::Orientation o) void Ruler::setOrientation(Qt::Orientation o)
{ {
orientation = o; orientation = o;
// position the elements on the screen.
setMinimum(minimum());
setMaximum(maximum());
} }
void Ruler::updateTicks() void Ruler::updateTicks()

View file

@ -99,6 +99,8 @@ public:
private: private:
Qt::Orientation orientation; Qt::Orientation orientation;
QList<QGraphicsLineItem*> ticks; QList<QGraphicsLineItem*> ticks;
QGraphicsSimpleTextItem *minText;
QGraphicsSimpleTextItem *maxText;
double min; double min;
double max; double max;
double interval; double interval;