mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
First implementation of the Shared Model for the Planner
This implementation of the shared model already shares some, but not all data between the two views, but it's already a huge improvement. When the user clicks on the visual planner, it will update the view on the qt-widget based view. The editing of the view is still not allowed, and removing nodes is not allowed too ( yet. ) Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
This commit is contained in:
parent
9856aaaa86
commit
024dd80664
2 changed files with 146 additions and 10 deletions
|
@ -351,6 +351,7 @@ void DivePlannerGraphics::mouseDoubleClickEvent(QMouseEvent* event)
|
|||
}
|
||||
}
|
||||
|
||||
DivePlannerPointsModel::instance()->addStop(meters, minutes, tr("Air"), 0);
|
||||
DiveHandler *item = new DiveHandler ();
|
||||
item->sec = minutes * 60;
|
||||
item->mm = meters * 1000;
|
||||
|
@ -383,7 +384,6 @@ void DivePlannerGraphics::selectGas(const QModelIndex& index)
|
|||
gasListView->hide();
|
||||
}
|
||||
|
||||
|
||||
void DivePlannerGraphics::createDecoStops()
|
||||
{
|
||||
qDeleteAll(lines);
|
||||
|
@ -793,6 +793,49 @@ DivePlannerWidget::DivePlannerWidget(QWidget* parent, Qt::WindowFlags f): QWidge
|
|||
{
|
||||
ui->setupUi(this);
|
||||
ui->tablePoints->setModel(DivePlannerPointsModel::instance());
|
||||
connect(ui->startTime, SIGNAL(timeChanged(QTime)), this, SLOT(startTimeChanged(QTime)));
|
||||
connect(ui->ATMPressure, SIGNAL(textChanged(QString)), this, SLOT(atmPressureChanged(QString)));
|
||||
connect(ui->bottomSAC, SIGNAL(textChanged(QString)), this, SLOT(bottomSacChanged(QString)));
|
||||
connect(ui->decoStopSAC, SIGNAL(textChanged(QString)), this, SLOT(decoSacChanged(QString)));
|
||||
connect(ui->highGF, SIGNAL(textChanged(QString)), this, SLOT(gfhighChanged(QString)));
|
||||
connect(ui->lowGF, SIGNAL(textChanged(QString)), this, SLOT(gflowChanged(QString)));
|
||||
connect(ui->highGF, SIGNAL(textChanged(QString)), this, SLOT(gfhighChanged(QString)));
|
||||
connect(ui->lastStop, SIGNAL(toggled(bool)), this, SLOT(lastStopChanged(bool)));
|
||||
}
|
||||
|
||||
void DivePlannerWidget::startTimeChanged(const QTime& time)
|
||||
{
|
||||
DivePlannerPointsModel::instance()->setStartTime(time);
|
||||
}
|
||||
|
||||
void DivePlannerWidget::atmPressureChanged(const QString& pressure)
|
||||
{
|
||||
DivePlannerPointsModel::instance()->setSurfacePressure(pressure.toInt());
|
||||
}
|
||||
|
||||
void DivePlannerWidget::bottomSacChanged(const QString& bottomSac)
|
||||
{
|
||||
DivePlannerPointsModel::instance()->setBottomSac(bottomSac.toInt());
|
||||
}
|
||||
|
||||
void DivePlannerWidget::decoSacChanged(const QString& decosac)
|
||||
{
|
||||
DivePlannerPointsModel::instance()->setDecoSac(decosac.toInt());
|
||||
}
|
||||
|
||||
void DivePlannerWidget::gfhighChanged(const QString& gfhigh)
|
||||
{
|
||||
DivePlannerPointsModel::instance()->setGFHigh(gfhigh.toShort());
|
||||
}
|
||||
|
||||
void DivePlannerWidget::gflowChanged(const QString& gflow)
|
||||
{
|
||||
DivePlannerPointsModel::instance()->setGFLow(gflow.toShort());
|
||||
}
|
||||
|
||||
void DivePlannerWidget::lastStopChanged(bool checked)
|
||||
{
|
||||
DivePlannerPointsModel::instance()->setLastStop6m(checked);
|
||||
}
|
||||
|
||||
int DivePlannerPointsModel::columnCount(const QModelIndex& parent) const
|
||||
|
@ -802,12 +845,21 @@ int DivePlannerPointsModel::columnCount(const QModelIndex& parent) const
|
|||
|
||||
QVariant DivePlannerPointsModel::data(const QModelIndex& index, int role) const
|
||||
{
|
||||
if(role == Qt::DisplayRole){
|
||||
divedatapoint p = divepoints.at(index.row());
|
||||
switch(index.column()){
|
||||
case GAS: return tr("Air");
|
||||
case CCSETPOINT: return 0;
|
||||
case DEPTH: return p.depth;
|
||||
case DURATION: return p.time;
|
||||
}
|
||||
}
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
QVariant DivePlannerPointsModel::headerData(int section, Qt::Orientation orientation, int role) const
|
||||
{
|
||||
if (role == Qt::DisplayRole){
|
||||
if (role == Qt::DisplayRole && orientation == Qt::Horizontal){
|
||||
switch(section){
|
||||
case DEPTH: return tr("Final Depth");
|
||||
case DURATION: return tr("Duration");
|
||||
|
@ -820,12 +872,11 @@ QVariant DivePlannerPointsModel::headerData(int section, Qt::Orientation orienta
|
|||
|
||||
int DivePlannerPointsModel::rowCount(const QModelIndex& parent) const
|
||||
{
|
||||
return 0;
|
||||
return divepoints.count();
|
||||
}
|
||||
|
||||
DivePlannerPointsModel::DivePlannerPointsModel(QObject* parent): QAbstractTableModel(parent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
DivePlannerPointsModel* DivePlannerPointsModel::instance()
|
||||
|
@ -834,3 +885,57 @@ DivePlannerPointsModel* DivePlannerPointsModel::instance()
|
|||
return self;
|
||||
}
|
||||
|
||||
void DivePlannerPointsModel::createPlan()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void DivePlannerPointsModel::setBottomSac(int sac)
|
||||
{
|
||||
diveplan.bottomsac = sac;
|
||||
}
|
||||
|
||||
void DivePlannerPointsModel::setDecoSac(int sac)
|
||||
{
|
||||
diveplan.decosac = sac;
|
||||
}
|
||||
|
||||
void DivePlannerPointsModel::setGFHigh(short int gfhigh)
|
||||
{
|
||||
diveplan.gfhigh = gfhigh;
|
||||
}
|
||||
|
||||
void DivePlannerPointsModel::setGFLow(short int ghflow)
|
||||
{
|
||||
diveplan.gflow = ghflow;
|
||||
}
|
||||
|
||||
void DivePlannerPointsModel::setSurfacePressure(int pressure)
|
||||
{
|
||||
diveplan.surface_pressure = pressure;
|
||||
}
|
||||
|
||||
void DivePlannerPointsModel::setLastStop6m(bool value)
|
||||
{
|
||||
}
|
||||
|
||||
void DivePlannerPointsModel::setStartTime(const QTime& t)
|
||||
{
|
||||
diveplan.when = t.msec();
|
||||
}
|
||||
|
||||
int DivePlannerPointsModel::addStop(int meters, int minutes, const QString& gas, int ccpoint)
|
||||
{
|
||||
int row = divepoints.count();
|
||||
beginInsertRows(QModelIndex(), row, row);
|
||||
divedatapoint point;
|
||||
point.depth = meters;
|
||||
point.time = minutes;
|
||||
point.o2 = 209;
|
||||
point.he = 0;
|
||||
point.po2 = 0;
|
||||
divepoints.append( point );
|
||||
endInsertRows();
|
||||
return row;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue