From 7681895fe09aa81c83143c6a58459e354a4234b1 Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava Date: Fri, 7 Jun 2013 15:34:27 -0300 Subject: Remove the dive computer clicking on the trash icon. This code removes the dive computer clicking on the trash icon, the result is not saved on the XML, this will need a bit of hacking from some of the older guys. :) Signed-off-by: Tomaz Canabrava --- qt-ui/divecomputermanagementdialog.cpp | 22 ++++++++++++++++++++++ qt-ui/divecomputermanagementdialog.h | 5 +++++ 2 files changed, 27 insertions(+) diff --git a/qt-ui/divecomputermanagementdialog.cpp b/qt-ui/divecomputermanagementdialog.cpp index 867ca2d49..7a96b4c63 100644 --- a/qt-ui/divecomputermanagementdialog.cpp +++ b/qt-ui/divecomputermanagementdialog.cpp @@ -1,6 +1,8 @@ #include "divecomputermanagementdialog.h" #include "models.h" #include "ui_divecomputermanagementdialog.h" +#include "mainwindow.h" +#include DiveComputerManagementDialog::DiveComputerManagementDialog(QWidget* parent, Qt::WindowFlags f): QDialog(parent, f) , ui( new Ui::DiveComputerManagementDialog()) @@ -8,6 +10,8 @@ DiveComputerManagementDialog::DiveComputerManagementDialog(QWidget* parent, Qt:: ui->setupUi(this); model = new DiveComputerModel(); ui->tableView->setModel(model); + connect(ui->tableView, SIGNAL(clicked(QModelIndex)), this, SLOT(tryRemove(QModelIndex))); + ui->tableView->setColumnWidth(DiveComputerModel::REMOVE, 22); } DiveComputerManagementDialog* DiveComputerManagementDialog::instance() @@ -20,3 +24,21 @@ void DiveComputerManagementDialog::update() { model->update(); } + +void DiveComputerManagementDialog::tryRemove(const QModelIndex& index) +{ + if (index.column() != DiveComputerModel::REMOVE){ + return; + } + + QMessageBox::StandardButton response = QMessageBox::question( + this, + tr("Remove the selected Dive Computer?"), + tr("Are you sure that you want to \n remove the selected dive computer?"), + QMessageBox::Ok | QMessageBox::Cancel + ); + + if (response == QMessageBox::Ok){ + model->remove(index); + } +} diff --git a/qt-ui/divecomputermanagementdialog.h b/qt-ui/divecomputermanagementdialog.h index 27a1408ab..e10a96db2 100644 --- a/qt-ui/divecomputermanagementdialog.h +++ b/qt-ui/divecomputermanagementdialog.h @@ -2,6 +2,7 @@ #define DIVECOMPUTERMANAGEMENTDIALOG_H #include +class QModelIndex; class DiveComputerModel; namespace Ui{ class DiveComputerManagementDialog; @@ -13,6 +14,10 @@ Q_OBJECT public: static DiveComputerManagementDialog *instance(); void update(); + +public slots: + void tryRemove(const QModelIndex& index); + private: explicit DiveComputerManagementDialog(QWidget* parent = 0, Qt::WindowFlags f = 0); Ui::DiveComputerManagementDialog *ui; -- cgit v1.2.3-70-g09d2