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();