For consideration for 4.5.1 or 4.6
Guido Lerch
guido.lerch at gmail.com
Tue Oct 20 15:32:43 PDT 2015
2015-10-20 23:55 GMT+02:00 Dirk Hohndel <dirk at hohndel.org>:
> For 4.5.1 I'm not sure... it does change user visible behavior, would
> require new strings, user manual updates... I'd say no.
> But once I cut 4.5.1 I will take this for 4.6
>
I wish you could consider this for 4.5.1.
Yes it does add strings, depending on how our translation works only 2,
worst case 4.
>
> /D
>
> On Tue, Oct 20, 2015 at 10:08:29PM +0200, Guido Lerch wrote:
> > adding context menu to images for multi selection deletion and deleting
> all
> > images.
> >
> > ideally we add a menu for adding dives as well but I have not done this
> > yet, waiting for
> > you input.
> >
> > purpose of this: usability
> >
> > is someone working on getting images and eventually multi format files in
> > to git yet ?
> >
> > --
> > Best regards,
> > Guido
>
> > From 65241f94f08ebcd5165d488067b32ba64c0620dc Mon Sep 17 00:00:00 2001
> > From: Guido Lerch <guido.lerch at gmail.com>
> > Date: Tue, 20 Oct 2015 21:02:41 +0200
> > Subject: [PATCH 1/6] Adding context menu to Images
> >
> > Allowing to delete selected or all photos from the
> > dive images
> >
> > Signed-off-by: Guido Lerch <guido.lerch at gmail.com>
> > ---
> > qt-ui/maintab.cpp | 9 +++++++++
> > qt-ui/maintab.h | 1 +
> > 2 files changed, 10 insertions(+)
> >
> > diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp
> > index 0afb7b4..a1f0438 100644
> > --- a/qt-ui/maintab.cpp
> > +++ b/qt-ui/maintab.cpp
> > @@ -1610,3 +1610,12 @@ void MainTab::showAndTriggerEditSelective(struct
> dive_components what)
> > weightModel->changed = true;
> > }
> > }
> > +
> > +void MainTab::contextMenuEvent(QContextMenuEvent *event)
> > +{
> > + QMenu popup(this);
> > + popup.addAction(tr("Delete selected images"), this,
> SLOT(removeSelectedPhotos()));
> > + popup.addAction(tr("Delete all images"), this,
> SLOT(removeAllPhotos()));
> > + QAction *actionTaken = popup.exec(event->globalPos());
> > + event->accept();
> > +}
> > diff --git a/qt-ui/maintab.h b/qt-ui/maintab.h
> > index 20b4da6..7b2bb86 100644
> > --- a/qt-ui/maintab.h
> > +++ b/qt-ui/maintab.h
> > @@ -54,6 +54,7 @@ public:
> > void refreshDisplayedDiveSite();
> > void nextInputField(QKeyEvent *event);
> > void showAndTriggerEditSelective(struct dive_components what);
> > + void contextMenuEvent(QContextMenuEvent *event);
> >
> > signals:
> > void addDiveFinished();
> > --
> > 2.3.8 (Apple Git-58)
> >
>
> > From bf989a642f9bb50cf6cf6f266fb0f8407f3916c9 Mon Sep 17 00:00:00 2001
> > From: Guido Lerch <guido.lerch at gmail.com>
> > Date: Tue, 20 Oct 2015 21:03:53 +0200
> > Subject: [PATCH 2/6] Context menu support for images
> >
> > Altering DivePicture model to allow deleting images
> > from the QListView without immediate updating of the
> > list. Updating is determined by an additioanl parameter
> >
> > Signed-off-by: Guido Lerch <guido.lerch at gmail.com>
> > ---
> > qt-models/divepicturemodel.cpp | 10 ++++++----
> > qt-models/divepicturemodel.h | 2 +-
> > 2 files changed, 7 insertions(+), 5 deletions(-)
> >
> > diff --git a/qt-models/divepicturemodel.cpp
> b/qt-models/divepicturemodel.cpp
> > index 1f37423..bb5db33 100644
> > --- a/qt-models/divepicturemodel.cpp
> > +++ b/qt-models/divepicturemodel.cpp
> > @@ -111,12 +111,14 @@ QVariant DivePictureModel::data(const QModelIndex
> &index, int role) const
> > return ret;
> > }
> >
> > -void DivePictureModel::removePicture(const QString &fileUrl)
> > +void DivePictureModel::removePicture(const QString &fileUrl, bool last)
> > {
> > dive_remove_picture(fileUrl.toUtf8().data());
> > - copy_dive(current_dive, &displayed_dive);
> > - updateDivePictures();
> > - mark_divelist_changed(true);
> > + if (last) {
> > + copy_dive(current_dive, &displayed_dive);
> > + updateDivePictures();
> > + mark_divelist_changed(true);
> > + }
> > }
> >
> > int DivePictureModel::rowCount(const QModelIndex &parent) const
> > diff --git a/qt-models/divepicturemodel.h b/qt-models/divepicturemodel.h
> > index d6393e4..7390fc5 100644
> > --- a/qt-models/divepicturemodel.h
> > +++ b/qt-models/divepicturemodel.h
> > @@ -33,7 +33,7 @@ public:
> > virtual int rowCount(const QModelIndex &parent = QModelIndex())
> const;
> > virtual void updateDivePictures();
> > void updateDivePicturesWhenDone(QList<QFuture<void> >);
> > - void removePicture(const QString& fileUrl);
> > + void removePicture(const QString& fileUrl, bool last);
> >
> > protected:
> > DivePictureModel();
> > --
> > 2.3.8 (Apple Git-58)
> >
>
> > From a62e8f94408dded8cff07d8bec3c8cefb50200ff Mon Sep 17 00:00:00 2001
> > From: Guido Lerch <guido.lerch at gmail.com>
> > Date: Tue, 20 Oct 2015 21:07:43 +0200
> > Subject: [PATCH 3/6] Context menu support for images
> >
> > removing obsolete code
> >
> > Signed-off-by: Guido Lerch <guido.lerch at gmail.com>
> > ---
> > qt-ui/maintab.cpp | 7 -------
> > 1 file changed, 7 deletions(-)
> >
> > diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp
> > index a1f0438..595e9da 100644
> > --- a/qt-ui/maintab.cpp
> > +++ b/qt-ui/maintab.cpp
> > @@ -177,13 +177,6 @@ MainTab::MainTab(QWidget *parent) :
> QTabWidget(parent),
> >
> 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()));
> > -
> > ui.waitingSpinner->setRoundness(70.0);
> > ui.waitingSpinner->setMinimumTrailOpacity(15.0);
> > ui.waitingSpinner->setTrailFadePercentage(70.0);
> > --
> > 2.3.8 (Apple Git-58)
> >
>
> > From f7f3e711262989f2ae095fc49af173b3c1909167 Mon Sep 17 00:00:00 2001
> > From: Guido Lerch <guido.lerch at gmail.com>
> > Date: Tue, 20 Oct 2015 21:08:59 +0200
> > Subject: [PATCH 4/6] Context menu support for images
> >
> > Adding modified code to support deletion of selected images as
> > well as deleting of all images (with warning messagebox)
> >
> > Signed-off-by: Guido Lerch <guido.lerch at gmail.com>
> > ---
> > qt-ui/maintab.cpp | 25 ++++++++++++++++++++++---
> > qt-ui/maintab.h | 1 +
> > 2 files changed, 23 insertions(+), 3 deletions(-)
> >
> > diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp
> > index 595e9da..88f7903 100644
> > --- a/qt-ui/maintab.cpp
> > +++ b/qt-ui/maintab.cpp
> > @@ -1556,12 +1556,31 @@ void MainTab::photoDoubleClicked(const QString
> filePath)
> >
> > void MainTab::removeSelectedPhotos()
> > {
> > + bool last = false;
> > if (!ui.photosView->selectionModel()->hasSelection())
> > return;
> > + QModelIndexList indexes =
> ui.photosView->selectionModel()->selectedRows();
> > + if (indexes.count() == 0)
> > + indexes =
> ui.photosView->selectionModel()->selectedIndexes();
> > + QModelIndex photo = indexes.first();
> > + do {
> > + photo = indexes.first();
> > + last = indexes.count() == 1;
> > + if (photo.isValid()) {
> > + QString fileUrl =
> photo.data(Qt::DisplayPropertyRole).toString();
> > + if (fileUrl.length() > 0)
> > +
> DivePictureModel::instance()->removePicture(fileUrl, last);
> > + }
> > + indexes.removeFirst();
> > + } while(!indexes.isEmpty());
> > +}
> >
> > - QModelIndex photoIndex =
> ui.photosView->selectionModel()->selectedIndexes().first();
> > - QString fileUrl =
> photoIndex.data(Qt::DisplayPropertyRole).toString();
> > - DivePictureModel::instance()->removePicture(fileUrl);
> > +void MainTab::removeAllPhotos()
> > +{
> > + if (QMessageBox::warning(this, tr("Deleting Images"), tr("Are you
> sure you want to delete all images?"), QMessageBox::Cancel |
> QMessageBox::Ok, QMessageBox::Cancel) != QMessageBox::Cancel ) {
> > + ui.photosView->selectAll();
> > + removeSelectedPhotos();
> > + }
> > }
> >
> > #define SHOW_SELECTIVE(_component) \
> > diff --git a/qt-ui/maintab.h b/qt-ui/maintab.h
> > index 7b2bb86..c3f6649 100644
> > --- a/qt-ui/maintab.h
> > +++ b/qt-ui/maintab.h
> > @@ -97,6 +97,7 @@ slots:
> > void escDetected(void);
> > void photoDoubleClicked(const QString filePath);
> > void removeSelectedPhotos();
> > + void removeAllPhotos();
> > void showLocation();
> > void enableGeoLookupEdition();
> > void disableGeoLookupEdition();
> > --
> > 2.3.8 (Apple Git-58)
> >
>
> > From 16905ded34691e42655de562147a4e6e456cf4c4 Mon Sep 17 00:00:00 2001
> > From: Guido Lerch <guido.lerch at gmail.com>
> > Date: Tue, 20 Oct 2015 21:10:44 +0200
> > Subject: [PATCH 5/6] Context menu support for images
> >
> > Required change within DivePictureItem, adding update
> > parameter defaulted to true in this case.
> >
> > Signed-off-by: Guido Lerch <guido.lerch at gmail.com>
> > ---
> > qt-ui/profile/divepixmapitem.cpp | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/qt-ui/profile/divepixmapitem.cpp
> b/qt-ui/profile/divepixmapitem.cpp
> > index 581f6f9..2be21ae 100644
> > --- a/qt-ui/profile/divepixmapitem.cpp
> > +++ b/qt-ui/profile/divepixmapitem.cpp
> > @@ -126,5 +126,5 @@ void
> DivePictureItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
> >
> > void DivePictureItem::removePicture()
> > {
> > - DivePictureModel::instance()->removePicture(fileUrl);
> > + DivePictureModel::instance()->removePicture(fileUrl, true);
> > }
> > --
> > 2.3.8 (Apple Git-58)
> >
>
> > From 8e48d93bf256e74ce2b483d2a11f71b8734fe12c Mon Sep 17 00:00:00 2001
> > From: Guido Lerch <guido.lerch at gmail.com>
> > Date: Tue, 20 Oct 2015 22:04:40 +0200
> > Subject: [PATCH 6/6] Context menu suport for images
> >
> > Enabling multi selection
> >
> > Signed-off-by: Guido Lerch <guido.lerch at gmail.com>
> > ---
> > qt-ui/maintab.cpp | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp
> > index 88f7903..57e9a36 100644
> > --- a/qt-ui/maintab.cpp
> > +++ b/qt-ui/maintab.cpp
> > @@ -198,6 +198,7 @@ MainTab::MainTab(QWidget *parent) :
> QTabWidget(parent),
> > acceptingEdit = false;
> >
> > ui.diveTripLocation->hide();
> > + ui.photosView->setSelectionMode(QAbstractItemView::MultiSelection);
> > }
> >
> > MainTab::~MainTab()
> > --
> > 2.3.8 (Apple Git-58)
> >
>
> > _______________________________________________
> > subsurface mailing list
> > subsurface at subsurface-divelog.org
> > http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
>
>
--
Best regards,
Guido
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.subsurface-divelog.org/pipermail/subsurface/attachments/20151021/9b75e7da/attachment-0001.html>
More information about the subsurface
mailing list