diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2017-12-17 16:17:38 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2017-12-18 12:07:10 -0800 |
commit | 05a1626c7e14978c55a9670f35ff72e2a3388096 (patch) | |
tree | 191f020470db156e8e757cffc4d75980b16cabf3 /desktop-widgets/tab-widgets/TabDivePhotos.cpp | |
parent | 0d01c70f3a376fbba09137ccf677cf0cd754719c (diff) | |
download | subsurface-05a1626c7e14978c55a9670f35ff72e2a3388096.tar.gz |
Implement different zoom levels for dive photos tab
This implements different zoom levels for the dive photos tab as
suggested by Stefan Fuchs <sfuchs@gmx.de> in #898.
The zoom level can be changed using a slider or CTRL+mousewheel.
Zoom levels range from a third of the standard thumbnail size to
thrice the standard thumbnail size.
Thumbnails are cached in maximum resolution and scaled down on
the fly. Because the profile widget took its pictures from the
photo list model, an extra picture copy with a fixed size had
to be introduced.
The UI is still a bit crude.
Reported-by: Stefan Fuchs <sfuchs@gmx.de>
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'desktop-widgets/tab-widgets/TabDivePhotos.cpp')
-rw-r--r-- | desktop-widgets/tab-widgets/TabDivePhotos.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/desktop-widgets/tab-widgets/TabDivePhotos.cpp b/desktop-widgets/tab-widgets/TabDivePhotos.cpp index 86749e770..571e0a3ac 100644 --- a/desktop-widgets/tab-widgets/TabDivePhotos.cpp +++ b/desktop-widgets/tab-widgets/TabDivePhotos.cpp @@ -29,6 +29,10 @@ TabDivePhotos::TabDivePhotos(QWidget *parent) QDesktopServices::openUrl(QUrl::fromLocalFile(path)); } ); + connect(ui->photosView, &DivePictureWidget::zoomLevelChanged, + this, &TabDivePhotos::changeZoomLevel); + connect(ui->zoomSlider, &QAbstractSlider::valueChanged, + DivePictureModel::instance(), &DivePictureModel::setZoomLevel); } TabDivePhotos::~TabDivePhotos() @@ -98,3 +102,8 @@ void TabDivePhotos::updateData() divePictureModel->updateDivePictures(); } +void TabDivePhotos::changeZoomLevel(int delta) +{ + // We count on QSlider doing bound checks + ui->zoomSlider->setValue(ui->zoomSlider->value() + delta); +} |