diff options
author | Tomaz Canabrava <tomaz.canabrava@intel.com> | 2014-08-06 18:05:54 -0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-08-06 18:32:28 -0700 |
commit | 68af9f0afb86b8a98d0b5029cdbf746d95627877 (patch) | |
tree | 490730aa720dd930acbc6ba95cca746d4dc3ae44 | |
parent | b0addb456767916935a65361338b0cd68c76eb2f (diff) | |
download | subsurface-68af9f0afb86b8a98d0b5029cdbf746d95627877.tar.gz |
Delete pictures from the Widget by pressing delete
Select the picture, press delete, profit.
[Dirk Hohndel: removed the stray hunk that snuck into this patch]
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | qt-ui/maintab.cpp | 17 | ||||
-rw-r--r-- | qt-ui/maintab.h | 2 | ||||
-rw-r--r-- | qt-ui/profile/divepixmapitem.cpp | 7 | ||||
-rw-r--r-- | qt-ui/profile/divepixmapitem.h | 1 |
4 files changed, 24 insertions, 3 deletions
diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp index ed65a1943..d49c8844c 100644 --- a/qt-ui/maintab.cpp +++ b/qt-ui/maintab.cpp @@ -167,6 +167,13 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent), ui.cylinders->view()->setColumnHidden(i, checked); ui.cylinders->view()->horizontalHeader()->addAction(action); } + + QAction *deletePhoto = new QAction(this); + deletePhoto->setShortcut(Qt::Key_Delete); + deletePhoto->setShortcutContext(Qt::WidgetShortcut); + ui.photosView->addAction(deletePhoto); + ui.photosView->setSelectionMode(QAbstractItemView::SingleSelection); + connect(deletePhoto, SIGNAL(triggered(bool)), this, SLOT(removeSelectedPhotos())); } MainTab::~MainTab() @@ -1153,3 +1160,13 @@ void MainTab::photoDoubleClicked(const QString filePath) { QDesktopServices::openUrl(QUrl::fromLocalFile(filePath)); } + +void MainTab::removeSelectedPhotos() +{ + if (!ui.photosView->selectionModel()->hasSelection()) + return; + + QModelIndex photoIndex = ui.photosView->selectionModel()->selectedIndexes().first(); + QString fileUrl = photoIndex.data(Qt::DisplayPropertyRole).toString(); + DivePictureModel::instance()->removePicture(fileUrl); +} diff --git a/qt-ui/maintab.h b/qt-ui/maintab.h index 20a72d09a..f3aec5458 100644 --- a/qt-ui/maintab.h +++ b/qt-ui/maintab.h @@ -86,7 +86,7 @@ slots: void updateTextLabels(bool showUnits = true); void escDetected(void); void photoDoubleClicked(const QString filePath); - + void removeSelectedPhotos(); private: Ui::MainTab ui; WeightModel *weightModel; diff --git a/qt-ui/profile/divepixmapitem.cpp b/qt-ui/profile/divepixmapitem.cpp index 853b95029..a73473a1f 100644 --- a/qt-ui/profile/divepixmapitem.cpp +++ b/qt-ui/profile/divepixmapitem.cpp @@ -114,6 +114,11 @@ void DivePictureItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) button->hide(); } +DivePictureItem::~DivePictureItem(){ + if(button) + Animations::hide(button); +} + void DivePictureItem::mousePressEvent(QGraphicsSceneMouseEvent *event) { QDesktopServices::openUrl(QUrl::fromLocalFile(fileUrl)); @@ -121,7 +126,5 @@ void DivePictureItem::mousePressEvent(QGraphicsSceneMouseEvent *event) void DivePictureItem::removePicture() { - Animations::hide(button); - hide(); DivePictureModel::instance()->removePicture(fileUrl); } diff --git a/qt-ui/profile/divepixmapitem.h b/qt-ui/profile/divepixmapitem.h index d39f26db6..963e641e8 100644 --- a/qt-ui/profile/divepixmapitem.h +++ b/qt-ui/profile/divepixmapitem.h @@ -19,6 +19,7 @@ class DivePictureItem : public DivePixmapItem { Q_PROPERTY(qreal scale WRITE setScale READ scale) public: DivePictureItem(QObject *parent = 0); + virtual ~DivePictureItem(); void setPixmap(const QPixmap& pix); public slots: void settingsChanged(); |