git repos / SagoImageBrowser

commit 1ffc1962

Poul Sander · 2026-02-20 23:41
1ffc1962aa9b3b9c53f80dbb0b4f015d07fd9b80 patch · browse files
parent 61136b77cf0a204767b35e561be988975a71ec67

Allow going back and forth in fullscreeen

Changed files

M imageviewwidget.cpp before
M imageviewwidget.h before
M mainwindow.cpp before
diff --git a/imageviewwidget.cpp b/imageviewwidget.cpp index 2ff637b..98b3538 100644 --- a/imageviewwidget.cpp +++ b/imageviewwidget.cpp
@@ -46,5 +46,19 @@ void ImageViewWidget::keyPressEvent(QKeyEvent *event)
return;
}
+ if (event->key() == Qt::Key_PageDown)
+ {
+ emit nextRequested();
+ event->accept();
+ return;
+ }
+
+ if (event->key() == Qt::Key_PageUp)
+ {
+ emit previousRequested();
+ event->accept();
+ return;
+ }
+
QWidget::keyPressEvent(event);
}
diff --git a/imageviewwidget.h b/imageviewwidget.h index f10cd29..c6f5d3c 100644 --- a/imageviewwidget.h +++ b/imageviewwidget.h
@@ -16,6 +16,8 @@ public:
signals:
void closeRequested();
+ void nextRequested();
+ void previousRequested();
protected:
void paintEvent(QPaintEvent *event) override;
diff --git a/mainwindow.cpp b/mainwindow.cpp index 504f0b0..1f33e27 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp
@@ -107,6 +107,28 @@ void MainWindow::setupConnections()
connect(m_imageView, &ImageViewWidget::closeRequested,
this, &MainWindow::leaveSingleImageMode);
+ connect(m_imageView, &ImageViewWidget::nextRequested, this, [this]() {
+ QModelIndex cur = m_listView->currentIndex();
+ int next = cur.isValid() ? cur.row() + 1 : 0;
+ if (next < m_imageModel->rowCount())
+ {
+ QModelIndex idx = m_imageModel->index(next);
+ m_listView->setCurrentIndex(idx);
+ enterSingleImageMode(idx);
+ }
+ });
+
+ connect(m_imageView, &ImageViewWidget::previousRequested, this, [this]() {
+ QModelIndex cur = m_listView->currentIndex();
+ int prev = cur.isValid() ? cur.row() - 1 : 0;
+ if (prev >= 0)
+ {
+ QModelIndex idx = m_imageModel->index(prev);
+ m_listView->setCurrentIndex(idx);
+ enterSingleImageMode(idx);
+ }
+ });
+
connect(m_listView->verticalScrollBar(), &QScrollBar::valueChanged,
this, [this]()
{ loadVisibleThumbnails(); });