Use the same line dimensions as the profile, on the planner.

The Planner should be 'almost' like the profile, with the possibility
to use the mouse and keyboard to input a new plan, so this is a bit
of 'getting there.' I don't like too much code duplication but since
the current Profile Graphics is a crude cut-and-paste from the old
Cairo backend, it's easyer to start from scratch and have it well
organized as Qt code.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
This commit is contained in:
Tomaz Canabrava 2013-09-16 19:21:13 -03:00
parent f74799d581
commit 493f366765
3 changed files with 25 additions and 7 deletions

View file

@ -5,6 +5,7 @@
#include "ui_diveplanner.h"
#include "mainwindow.h"
#include "tableview.h"
#include "graphicsview-common.h"
#include "../dive.h"
#include "../divelist.h"
@ -19,6 +20,7 @@
#include <QModelIndex>
#include <QSettings>
#include <QTableView>
#include <QColor>
#define TIME_INITIAL_MAX 30
@ -40,6 +42,11 @@ QString strForAir(const divedatapoint& p){
: QObject::tr("Choose Gas");
}
QColor getColor(const color_indice_t i)
{
return profile_color[i].at(0);
}
static DivePlannerPointsModel *plannerModel = DivePlannerPointsModel::instance();
DivePlannerGraphics::DivePlannerGraphics(QWidget* parent): QGraphicsView(parent), activeDraggedHandler(0)
@ -66,6 +73,7 @@ DivePlannerGraphics::DivePlannerGraphics(QWidget* parent): QGraphicsView(parent)
fromPercent(100, Qt::Horizontal),
fromPercent(0, Qt::Vertical)
);
horizontalLine->setPen(QPen(Qt::DotLine));
scene()->addItem(horizontalLine);
@ -73,6 +81,7 @@ DivePlannerGraphics::DivePlannerGraphics(QWidget* parent): QGraphicsView(parent)
timeLine->setMinimum(0);
timeLine->setMaximum(TIME_INITIAL_MAX);
timeLine->setTickInterval(10);
timeLine->setColor(getColor(TIME_GRID));
timeLine->setLine(
fromPercent(10, Qt::Horizontal),
fromPercent(90, Qt::Vertical),
@ -81,7 +90,6 @@ DivePlannerGraphics::DivePlannerGraphics(QWidget* parent): QGraphicsView(parent)
);
timeLine->setOrientation(Qt::Horizontal);
timeLine->setTickSize(fromPercent(1, Qt::Vertical));
timeLine->setColor(profile_color[TIME_GRID].at(0));
timeLine->updateTicks();
scene()->addItem(timeLine);
@ -97,7 +105,7 @@ DivePlannerGraphics::DivePlannerGraphics(QWidget* parent): QGraphicsView(parent)
);
depthLine->setOrientation(Qt::Vertical);
depthLine->setTickSize(fromPercent(1, Qt::Horizontal));
depthLine->setColor(profile_color[DEPTH_GRID].at(0));
depthLine->setColor(getColor(DEPTH_GRID));
depthLine->updateTicks();
scene()->addItem(depthLine);
@ -749,7 +757,12 @@ double Ruler::minimum() const
void Ruler::setColor(const QColor& color)
{
setPen(QPen(color));
QPen defaultPen(color);
defaultPen.setJoinStyle(Qt::RoundJoin);
defaultPen.setCapStyle(Qt::RoundCap);
defaultPen.setWidth(2);
defaultPen.setCosmetic(true);
setPen(defaultPen);
}
Button::Button(QObject* parent): QObject(parent), QGraphicsRectItem()
@ -1139,12 +1152,13 @@ void DivePlannerPointsModel::createPlan()
createTemporaryPlan();
plan(&diveplan, &cache, &tempDive, &errorString);
mark_divelist_changed(TRUE);
diveplan.dp = NULL;
// Remove and clean the diveplan, so we don't delete
// the dive by mistake.
diveplan.dp = NULL;
beginRemoveRows(QModelIndex(), 0, rowCount() -1 );
divepoints.clear();
endRemoveRows();
// show_error(error_string);
planCreated();
}

View file

@ -55,3 +55,8 @@ void fill_profile_color()
profile_color[CALC_CEILING_DEEP] = COLOR(APPLE1_HIGH_TRANS, BLACK1_HIGH_TRANS, APPLE1_HIGH_TRANS);
#undef COLOR
}
QColor getColor(const color_indice_t i, bool isGrayscale = false)
{
return profile_color[i].at((isGrayscale) ? 1 : 0);
}

View file

@ -33,7 +33,6 @@ typedef enum {
/* profile_color[color indice] = COLOR(screen color, b/w printer color, color printer}} printer & screen colours could be different */
extern QMap<color_indice_t, QVector<QColor> > profile_color;
void fill_profile_color();