mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Make planner prettier. but still ugly.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
This commit is contained in:
parent
19fbc108c3
commit
233e245b78
2 changed files with 40 additions and 15 deletions
|
@ -17,13 +17,13 @@ DivePlannerGraphics::DivePlannerGraphics(QWidget* parent): QGraphicsView(parent)
|
||||||
{
|
{
|
||||||
setMouseTracking(true);
|
setMouseTracking(true);
|
||||||
setScene(new QGraphicsScene());
|
setScene(new QGraphicsScene());
|
||||||
scene()->setSceneRect(0,0,100,100);
|
scene()->setSceneRect(0,0,200,200);
|
||||||
|
|
||||||
verticalLine = new QGraphicsLineItem(0,0,0, 100);
|
verticalLine = new QGraphicsLineItem(0,0,0, 200);
|
||||||
verticalLine->setPen(QPen(Qt::DotLine));
|
verticalLine->setPen(QPen(Qt::DotLine));
|
||||||
scene()->addItem(verticalLine);
|
scene()->addItem(verticalLine);
|
||||||
|
|
||||||
horizontalLine = new QGraphicsLineItem(0,0,100,0);
|
horizontalLine = new QGraphicsLineItem(0,0,200,0);
|
||||||
horizontalLine->setPen(QPen(Qt::DotLine));
|
horizontalLine->setPen(QPen(Qt::DotLine));
|
||||||
scene()->addItem(horizontalLine);
|
scene()->addItem(horizontalLine);
|
||||||
|
|
||||||
|
@ -31,16 +31,16 @@ DivePlannerGraphics::DivePlannerGraphics(QWidget* parent): QGraphicsView(parent)
|
||||||
timeLine->setMinimum(0);
|
timeLine->setMinimum(0);
|
||||||
timeLine->setMaximum(TIME_INITIAL_MAX);
|
timeLine->setMaximum(TIME_INITIAL_MAX);
|
||||||
timeLine->setTickInterval(10);
|
timeLine->setTickInterval(10);
|
||||||
timeLine->setLine(10, 90, 99, 90);
|
timeLine->setLine(10, 190, 190, 190);
|
||||||
timeLine->setOrientation(Qt::Horizontal);
|
timeLine->setOrientation(Qt::Horizontal);
|
||||||
timeLine->updateTicks();
|
timeLine->updateTicks();
|
||||||
scene()->addItem(timeLine);
|
scene()->addItem(timeLine);
|
||||||
|
|
||||||
depthLine = new Ruler();
|
depthLine = new Ruler();
|
||||||
depthLine->setMinimum(0);
|
depthLine->setMinimum(0);
|
||||||
depthLine->setMaximum(100);
|
depthLine->setMaximum(40);
|
||||||
depthLine->setTickInterval(10);
|
depthLine->setTickInterval(10);
|
||||||
depthLine->setLine(10, 1, 10, 90);
|
depthLine->setLine(10, 1, 10, 190);
|
||||||
depthLine->setOrientation(Qt::Vertical);
|
depthLine->setOrientation(Qt::Vertical);
|
||||||
depthLine->updateTicks();
|
depthLine->updateTicks();
|
||||||
scene()->addItem(depthLine);
|
scene()->addItem(depthLine);
|
||||||
|
@ -53,29 +53,35 @@ DivePlannerGraphics::DivePlannerGraphics(QWidget* parent): QGraphicsView(parent)
|
||||||
depthString->setFlag(QGraphicsItem::ItemIgnoresTransformations);
|
depthString->setFlag(QGraphicsItem::ItemIgnoresTransformations);
|
||||||
scene()->addItem(depthString);
|
scene()->addItem(depthString);
|
||||||
|
|
||||||
|
diveBg = new QGraphicsPolygonItem();
|
||||||
|
diveBg->setBrush(QBrush(Qt::green));
|
||||||
|
scene()->addItem(diveBg);
|
||||||
|
|
||||||
plusDepth = new Button();
|
plusDepth = new Button();
|
||||||
plusDepth->setPixmap(QPixmap(":plus"));
|
plusDepth->setPixmap(QPixmap(":plus"));
|
||||||
plusDepth->setPos(15, 1);
|
plusDepth->setPos(0, 1);
|
||||||
scene()->addItem(plusDepth);
|
scene()->addItem(plusDepth);
|
||||||
connect(plusDepth, SIGNAL(clicked()), this, SLOT(increaseDepth()));
|
connect(plusDepth, SIGNAL(clicked()), this, SLOT(increaseDepth()));
|
||||||
|
|
||||||
plusTime = new Button();
|
plusTime = new Button();
|
||||||
plusTime->setPixmap(QPixmap(":plus"));
|
plusTime->setPixmap(QPixmap(":plus"));
|
||||||
plusTime->setPos(95, 90);
|
plusTime->setPos(180, 190);
|
||||||
scene()->addItem(plusTime);
|
scene()->addItem(plusTime);
|
||||||
connect(plusTime, SIGNAL(clicked()), this, SLOT(increaseTime()));
|
connect(plusTime, SIGNAL(clicked()), this, SLOT(increaseTime()));
|
||||||
|
|
||||||
okBtn = new Button();
|
okBtn = new Button();
|
||||||
okBtn->setText(tr("Ok"));
|
okBtn->setText(tr("Ok"));
|
||||||
okBtn->setPos(1, 95);
|
okBtn->setPos(1, 190);
|
||||||
scene()->addItem(okBtn);
|
scene()->addItem(okBtn);
|
||||||
connect(okBtn, SIGNAL(clicked()), this, SLOT(okClicked()));
|
connect(okBtn, SIGNAL(clicked()), this, SLOT(okClicked()));
|
||||||
|
|
||||||
cancelBtn = new Button();
|
cancelBtn = new Button();
|
||||||
cancelBtn->setText(tr("Cancel"));
|
cancelBtn->setText(tr("Cancel"));
|
||||||
cancelBtn->setPos(10,95);
|
cancelBtn->setPos(10,190);
|
||||||
scene()->addItem(cancelBtn);
|
scene()->addItem(cancelBtn);
|
||||||
connect(cancelBtn, SIGNAL(clicked()), this, SLOT(cancelClicked()));
|
connect(cancelBtn, SIGNAL(clicked()), this, SLOT(cancelClicked()));
|
||||||
|
|
||||||
|
setRenderHint(QPainter::Antialiasing);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DivePlannerGraphics::cancelClicked()
|
void DivePlannerGraphics::cancelClicked()
|
||||||
|
@ -185,6 +191,9 @@ void DivePlannerGraphics::createDecoStops()
|
||||||
// entered vs. segments that were calculated
|
// entered vs. segments that were calculated
|
||||||
double lastx = timeLine->posAtValue(0);
|
double lastx = timeLine->posAtValue(0);
|
||||||
double lasty = depthLine->posAtValue(0);
|
double lasty = depthLine->posAtValue(0);
|
||||||
|
|
||||||
|
QPolygonF poly;
|
||||||
|
poly.append(QPointF(lastx, lasty));
|
||||||
for (dp = diveplan.dp; dp != NULL; dp = dp->next) {
|
for (dp = diveplan.dp; dp != NULL; dp = dp->next) {
|
||||||
double xpos = timeLine->posAtValue(dp->time / 60.0);
|
double xpos = timeLine->posAtValue(dp->time / 60.0);
|
||||||
double ypos = depthLine->posAtValue(dp->depth / 1000.0);
|
double ypos = depthLine->posAtValue(dp->depth / 1000.0);
|
||||||
|
@ -194,8 +203,22 @@ void DivePlannerGraphics::createDecoStops()
|
||||||
lasty = ypos;
|
lasty = ypos;
|
||||||
scene()->addItem(item);
|
scene()->addItem(item);
|
||||||
lines << item;
|
lines << item;
|
||||||
|
poly.append(QPointF(lastx, lasty));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
diveBg->setPolygon(poly);
|
||||||
|
QRectF b = poly.boundingRect();
|
||||||
|
QLinearGradient linearGrad(
|
||||||
|
b.x(),
|
||||||
|
b.y(),
|
||||||
|
b.x(),
|
||||||
|
b.height() + b.y()
|
||||||
|
);
|
||||||
|
|
||||||
|
linearGrad.setColorAt(0, Qt::green);
|
||||||
|
linearGrad.setColorAt(1, Qt::white);
|
||||||
|
diveBg->setBrush(linearGrad);
|
||||||
|
|
||||||
deleteTemporaryDivePlan(diveplan.dp);
|
deleteTemporaryDivePlan(diveplan.dp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -225,12 +248,12 @@ void DivePlannerGraphics::mouseMoveEvent(QMouseEvent* event)
|
||||||
if (isPointOutOfBoundaries(mappedPos))
|
if (isPointOutOfBoundaries(mappedPos))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
verticalLine->setLine(mappedPos.x(), 0, mappedPos.x(), 100);
|
verticalLine->setLine(mappedPos.x(), 0, mappedPos.x(), 200);
|
||||||
horizontalLine->setLine(0, mappedPos.y(), 100, mappedPos.y());
|
horizontalLine->setLine(0, mappedPos.y(), 200, mappedPos.y());
|
||||||
depthString->setText(QString::number(rint(depthLine->valueAt(mappedPos))) + "m" );
|
depthString->setText(QString::number(rint(depthLine->valueAt(mappedPos))) + "m" );
|
||||||
depthString->setPos(0, mappedPos.y());
|
depthString->setPos(0, mappedPos.y());
|
||||||
timeString->setText(QString::number(rint(timeLine->valueAt(mappedPos))) + "min");
|
timeString->setText(QString::number(rint(timeLine->valueAt(mappedPos))) + "min");
|
||||||
timeString->setPos(mappedPos.x()+1, 90);
|
timeString->setPos(mappedPos.x()+1, 180);
|
||||||
|
|
||||||
if (activeDraggedHandler)
|
if (activeDraggedHandler)
|
||||||
moveActiveHandler(mappedPos);
|
moveActiveHandler(mappedPos);
|
||||||
|
@ -311,7 +334,7 @@ void DivePlannerGraphics::mouseReleaseEvent(QMouseEvent* event)
|
||||||
if (activeDraggedHandler) {
|
if (activeDraggedHandler) {
|
||||||
activeDraggedHandler->sec = rint(timeLine->valueAt(lastValidPos)) * 60;
|
activeDraggedHandler->sec = rint(timeLine->valueAt(lastValidPos)) * 60;
|
||||||
activeDraggedHandler->mm = rint(depthLine->valueAt(lastValidPos)) * 1000;
|
activeDraggedHandler->mm = rint(depthLine->valueAt(lastValidPos)) * 1000;
|
||||||
activeDraggedHandler->setBrush(QBrush());
|
activeDraggedHandler->setBrush(QBrush(Qt::white));
|
||||||
createDecoStops();
|
createDecoStops();
|
||||||
activeDraggedHandler = 0;
|
activeDraggedHandler = 0;
|
||||||
}
|
}
|
||||||
|
@ -319,6 +342,8 @@ void DivePlannerGraphics::mouseReleaseEvent(QMouseEvent* event)
|
||||||
|
|
||||||
DiveHandler::DiveHandler(): QGraphicsEllipseItem(), from(0), to(0)
|
DiveHandler::DiveHandler(): QGraphicsEllipseItem(), from(0), to(0)
|
||||||
{
|
{
|
||||||
|
setBrush(Qt::white);
|
||||||
|
setZValue(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Ruler::setMaximum(double maximum)
|
void Ruler::setMaximum(double maximum)
|
||||||
|
|
|
@ -82,7 +82,7 @@ private:
|
||||||
QGraphicsLineItem *verticalLine;
|
QGraphicsLineItem *verticalLine;
|
||||||
QGraphicsLineItem *horizontalLine;
|
QGraphicsLineItem *horizontalLine;
|
||||||
DiveHandler *activeDraggedHandler;
|
DiveHandler *activeDraggedHandler;
|
||||||
|
QGraphicsPolygonItem *diveBg;
|
||||||
Ruler *timeLine;
|
Ruler *timeLine;
|
||||||
QGraphicsSimpleTextItem *timeString;
|
QGraphicsSimpleTextItem *timeString;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue