summaryrefslogtreecommitdiffstats
path: root/qt-ui
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tcanabrava@kde.org>2013-08-30 16:08:55 -0300
committerGravatar Tomaz Canabrava <tcanabrava@kde.org>2013-08-30 16:08:55 -0300
commit72807017aeb4fb9db36e5c160ef6d6f89200590e (patch)
tree9b8592c91efc2daf2b7431b91e43ca80bcecea3e /qt-ui
parentd37213a413d8b460aba0363879a162af8bf0a47e (diff)
downloadsubsurface-72807017aeb4fb9db36e5c160ef6d6f89200590e.tar.gz
Make planned points deletion works on the Table too.
Now the planner deletes points by clicking on the trash icon on the table. The dive planner is almost finished. <3 next: add a point from the table. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Diffstat (limited to 'qt-ui')
-rw-r--r--qt-ui/diveplanner.cpp21
-rw-r--r--qt-ui/diveplanner.h2
2 files changed, 17 insertions, 6 deletions
diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp
index 1dce675c1..9ff47792c 100644
--- a/qt-ui/diveplanner.cpp
+++ b/qt-ui/diveplanner.cpp
@@ -284,12 +284,6 @@ void DivePlannerGraphics::keyDeleteAction()
{
int selCount = scene()->selectedItems().count();
if(selCount){
-
- while(selCount--){
- Button *btn = gases.takeLast();
- delete btn;
- }
-
QVector<int> selectedIndexes;
Q_FOREACH(QGraphicsItem *i, scene()->selectedItems()){
if (DiveHandler *handler = qgraphicsitem_cast<DiveHandler*>(i)){
@@ -307,8 +301,11 @@ void DivePlannerGraphics::pointsRemoved(const QModelIndex& , int start, int end)
for(int i = num; i != 0; i--){
delete handles.back();
handles.pop_back();
+ delete gases.back();
+ gases.pop_back();
}
scene()->clearSelection();
+ createDecoStops();
}
bool intLessThan(int a, int b){
@@ -853,6 +850,8 @@ DivePlannerWidget::DivePlannerWidget(QWidget* parent, Qt::WindowFlags f): QWidge
ui->setupUi(this);
ui->tablePoints->setModel(DivePlannerPointsModel::instance());
ui->tablePoints->setItemDelegateForColumn(DivePlannerPointsModel::GAS, new AirTypesDelegate(this));
+
+ connect(ui->tablePoints, SIGNAL(clicked(QModelIndex)), plannerModel, SLOT(removePoint(const QModelIndex)));
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)));
@@ -1095,3 +1094,13 @@ divedatapoint DivePlannerPointsModel::at(int row)
{
return divepoints.at(row);
}
+
+void DivePlannerPointsModel::removePoint(const QModelIndex& index)
+{
+ if (index.column() != REMOVE)
+ return;
+
+ beginRemoveRows(QModelIndex(), index.row(), index.row());
+ divepoints.remove(index.row());
+ endRemoveRows();
+}
diff --git a/qt-ui/diveplanner.h b/qt-ui/diveplanner.h
index 976e06f06..0aea77788 100644
--- a/qt-ui/diveplanner.h
+++ b/qt-ui/diveplanner.h
@@ -32,6 +32,7 @@ public:
virtual bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
virtual Qt::ItemFlags flags(const QModelIndex& index) const;
void removeSelectedPoints(const QVector<int>& rows);
+
/**
* @return the row number.
*/
@@ -47,6 +48,7 @@ public slots:
void setStartTime(const QTime& t);
void setLastStop6m(bool value);
void createPlan();
+ void removePoint(const QModelIndex& index);
private:
explicit DivePlannerPointsModel(QObject* parent = 0);