summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qt-ui/maintab.cpp17
-rw-r--r--qt-ui/maintab.h2
-rw-r--r--qt-ui/profile/divepixmapitem.cpp7
-rw-r--r--qt-ui/profile/divepixmapitem.h1
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();