git repos / SagoImageBrowser

commit ccb726b8

Poul Sander · 2026-02-23 22:43
ccb726b8210e6c065ab10093bab48a6428020f22 patch · browse files
parent e1e7f5a615a8dcf83d12da5ce0e1f98112126213

Remove menubar in fullscreen. Remember fullscreen.

Changed files

M src/mainwindow.cpp before
M src/mainwindow.h before
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 37277e4..92ce55c 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp
@@ -110,7 +110,8 @@ void MainWindow::setupUi()
void MainWindow::setupMenuBar()
{
- QMenu *editMenu = menuBar()->addMenu("&Edit");
+ m_menuBar = menuBar();
+ QMenu *editMenu = m_menuBar->addMenu("&Edit");
QAction *preferencesAction = editMenu->addAction("&Preferences");
connect(preferencesAction, &QAction::triggered, this, &MainWindow::onPreferencesTriggered);
}
@@ -265,49 +266,51 @@ void MainWindow::enterSingleImageMode(const QModelIndex &index)
if (!index.isValid())
return;
- m_wasFullScreen = isFullScreen();
- m_wasMaximized = isMaximized();
-
m_imageView->setBackgroundColor(m_backgroundColorPreference);
QString path = m_imageModel->filePath(index);
m_imageView->setImage(path);
m_stack->setCurrentWidget(m_imageView);
m_imageView->setFocus();
+
+ if (m_imageViewWasFullScreen) {
+ setFullScreenMode(true);
+ m_imageViewWasFullScreen = false;
+ }
}
void MainWindow::leaveSingleImageMode()
{
if (isFullScreen()) {
- if (m_wasFullScreen) {
- showFullScreen();
- }
- else if (m_wasMaximized) {
- showMaximized();
- }
- else {
- showNormal();
- }
+ m_imageViewWasFullScreen = true;
+ setFullScreenMode(false);
}
m_stack->setCurrentWidget(m_browserPage);
m_listView->setFocus();
}
+void MainWindow::setFullScreenMode(bool fullScreen)
+{
+ if (fullScreen == isFullScreen())
+ return;
+
+ if (fullScreen) {
+ m_wasMaximized = isMaximized();
+ m_menuBar->hide();
+ showFullScreen();
+ } else {
+ m_menuBar->show();
+ if (m_wasMaximized)
+ showMaximized();
+ else
+ showNormal();
+ }
+}
+
void MainWindow::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_F11 && m_stack->currentWidget() == m_imageView)
{
- if (isFullScreen())
- {
- if (m_wasMaximized) {
- showMaximized();
- }
- else {
- showNormal();
- }
- }
- else {
- showFullScreen();
- }
+ setFullScreenMode(!isFullScreen());
event->accept();
return;
}
diff --git a/src/mainwindow.h b/src/mainwindow.h index 76d736e..eccee46 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h
@@ -6,6 +6,7 @@ class QTreeView;
class QListView;
class QLabel;
class QStackedWidget;
+class QMenuBar;
class QFileSystemModel;
class QComboBox;
class ImageModel;
@@ -28,6 +29,7 @@ private:
void onPreferencesTriggered();
void navigateToFolder(const QString &path);
void selectPreviousFolderIfExists();
+ void setFullScreenMode(bool fullScreen);
void loadVisibleThumbnails();
void showPreview(const QModelIndex &index);
void enterSingleImageMode(const QModelIndex &index);
@@ -49,7 +51,7 @@ private:
QString m_backgroundColorPreference = "black";
QWidget *m_browserPage;
ImageViewWidget *m_imageView;
- bool m_wasFullScreen = false;
bool m_wasMaximized = false;
+ bool m_imageViewWasFullScreen = false;
QString m_previousFolderPath;
-};
+ QMenuBar *m_menuBar = nullptr;};
\ No newline at end of file