| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
1 |
#pragma once |
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
2 |
|
| 80a9926d |
Poul Sander |
2026-05-19 20:28 |
3 |
#include <QByteArray> |
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
4 |
#include <QMainWindow> |
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
5 |
|
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
6 |
class QTreeView; |
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
7 |
class QListView; |
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
8 |
class QLabel; |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
9 |
class QStackedWidget; |
| ccb726b8 |
Poul Sander |
2026-02-23 22:43 |
10 |
class QMenuBar; |
| cbc7d22b |
Poul Sander |
2026-02-24 19:23 |
11 |
class QDockWidget; |
| 40efdfde |
Poul Sander |
2026-05-19 21:24 |
12 |
class FsDirModel; |
| 3bee3e3e |
Poul Sander |
2026-03-05 17:07 |
13 |
class QListWidget; |
| 53fdab93 |
Poul Sander |
2026-05-18 18:45 |
14 |
class QTableWidget; |
| fd7f51cd |
Poul Sander |
2026-05-22 15:30 |
15 |
class QLineEdit; |
| fd7f51cd |
Poul Sander |
2026-05-22 15:30 |
16 |
class QPushButton; |
| fd7f51cd |
Poul Sander |
2026-05-22 15:30 |
17 |
class QCompleter; |
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
18 |
class ImageModel; |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
19 |
class ImageViewWidget; |
| fd7f51cd |
Poul Sander |
2026-05-22 15:30 |
20 |
class PathCompleterModel; |
| f61bf886 |
Poul Sander |
2026-02-23 19:27 |
21 |
class PreferencesDialog; |
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
22 |
|
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
23 |
class MainWindow : public QMainWindow |
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
24 |
{ |
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
25 |
Q_OBJECT |
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
26 |
|
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
27 |
public: |
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
28 |
explicit MainWindow(QWidget *parent = nullptr); |
| 48607848 |
Poul Sander |
2026-05-19 19:20 |
29 |
void openPath(const QString &path); |
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
30 |
|
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
31 |
private: |
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
32 |
void setupUi(); |
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
33 |
void setupConnections(); |
| f61bf886 |
Poul Sander |
2026-02-23 19:27 |
34 |
void setupMenuBar(); |
| f61bf886 |
Poul Sander |
2026-02-23 19:27 |
35 |
void loadPreferences(); |
| f61bf886 |
Poul Sander |
2026-02-23 19:27 |
36 |
void savePreferences(); |
| f61bf886 |
Poul Sander |
2026-02-23 19:27 |
37 |
void onPreferencesTriggered(); |
| 7370f1c0 |
Poul Sander |
2026-03-01 15:15 |
38 |
void resetLayoutToDefault(); |
| 80a9926d |
Poul Sander |
2026-05-19 20:28 |
39 |
void navigateToFolder(const QByteArray &path); |
| 80a9926d |
Poul Sander |
2026-05-19 20:28 |
40 |
void navigateToFolder(const QString &path); // convenience: converts via QFile::encodeName |
| 665ac308 |
Poul Sander |
2026-02-23 19:34 |
41 |
void selectPreviousFolderIfExists(); |
| ccb726b8 |
Poul Sander |
2026-02-23 22:43 |
42 |
void setFullScreenMode(bool fullScreen); |
| 6fcd6c90 |
Poul Sander |
2026-02-19 21:12 |
43 |
void loadVisibleThumbnails(); |
| cfe4a67b |
Poul Sander |
2026-02-19 23:06 |
44 |
void showPreview(const QModelIndex &index); |
| 80a9926d |
Poul Sander |
2026-05-19 20:28 |
45 |
void updateExifInfo(const QByteArray &path); |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
46 |
void enterSingleImageMode(const QModelIndex &index); |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
47 |
void leaveSingleImageMode(); |
| beb4a823 |
Poul Sander |
2026-05-19 21:53 |
48 |
void onEditCaption(); |
| fd7f51cd |
Poul Sander |
2026-05-22 15:30 |
49 |
void onPathEntered(); |
| fd7f51cd |
Poul Sander |
2026-05-22 15:30 |
50 |
void updatePathField(const QByteArray &path); |
| 80a9926d |
Poul Sander |
2026-05-19 20:28 |
51 |
QList<QByteArray> computeNeighborPaths(const QModelIndex &index) const; |
| 6fcd6c90 |
Poul Sander |
2026-02-19 21:12 |
52 |
|
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
53 |
void keyPressEvent(QKeyEvent *event) override; |
| 6fcd6c90 |
Poul Sander |
2026-02-19 21:12 |
54 |
bool eventFilter(QObject *obj, QEvent *event) override; |
| c9e5684a |
Poul Sander |
2026-02-23 19:18 |
55 |
void closeEvent(QCloseEvent *event) override; |
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
56 |
|
| 40efdfde |
Poul Sander |
2026-05-19 21:24 |
57 |
FsDirModel *m_dirModel; |
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
58 |
ImageModel *m_imageModel; |
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
59 |
|
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
60 |
QTreeView *m_treeView; |
| 3bee3e3e |
Poul Sander |
2026-03-05 17:07 |
61 |
QListWidget *m_rootList; |
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
62 |
QListView *m_listView; |
| 032aa1e1 |
Poul Sander |
2026-02-19 18:55 |
63 |
QLabel *m_previewLabel; |
| fd7f51cd |
Poul Sander |
2026-05-22 15:30 |
64 |
QLineEdit *m_pathEdit = nullptr; |
| fd7f51cd |
Poul Sander |
2026-05-22 15:30 |
65 |
QPushButton *m_goButton = nullptr; |
| fd7f51cd |
Poul Sander |
2026-05-22 15:30 |
66 |
PathCompleterModel *m_pathCompleterModel = nullptr; |
| fd7f51cd |
Poul Sander |
2026-05-22 15:30 |
67 |
QCompleter *m_pathCompleter = nullptr; |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
68 |
|
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
69 |
QStackedWidget *m_stack; |
| f61bf886 |
Poul Sander |
2026-02-23 19:27 |
70 |
QString m_backgroundColorPreference = "black"; |
| 459bad0f |
Poul Sander |
2026-05-17 14:11 |
71 |
int m_folderCacheSizePreference = 4; |
| ac476ca8 |
Poul Sander |
2026-05-18 16:47 |
72 |
QString m_thumbnailCacheSizePreference = "normal"; |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
73 |
QWidget *m_browserPage; |
| 61136b77 |
Poul Sander |
2026-02-20 22:45 |
74 |
ImageViewWidget *m_imageView; |
| 3968465e |
Poul Sander |
2026-02-23 19:13 |
75 |
bool m_wasMaximized = false; |
| ccb726b8 |
Poul Sander |
2026-02-23 22:43 |
76 |
bool m_imageViewWasFullScreen = false; |
| 80a9926d |
Poul Sander |
2026-05-19 20:28 |
77 |
QByteArray m_previousFolderPath; |
| cbc7d22b |
Poul Sander |
2026-02-24 19:23 |
78 |
QMenuBar *m_menuBar = nullptr; |
| 3bee3e3e |
Poul Sander |
2026-03-05 17:07 |
79 |
QDockWidget *m_rootDock = nullptr; |
| cbc7d22b |
Poul Sander |
2026-02-24 19:23 |
80 |
QDockWidget *m_folderDock = nullptr; |
| cbc7d22b |
Poul Sander |
2026-02-24 19:23 |
81 |
QDockWidget *m_previewDock = nullptr; |
| 53fdab93 |
Poul Sander |
2026-05-18 18:45 |
82 |
QDockWidget *m_exifDock = nullptr; |
| 53fdab93 |
Poul Sander |
2026-05-18 18:45 |
83 |
QTableWidget *m_exifTable = nullptr; |
| 3bee3e3e |
Poul Sander |
2026-03-05 17:07 |
84 |
bool m_rootDockWasVisible = true; |
| cbc7d22b |
Poul Sander |
2026-02-24 19:23 |
85 |
bool m_folderDockWasVisible = true; |
| cbc7d22b |
Poul Sander |
2026-02-24 19:23 |
86 |
bool m_previewDockWasVisible = true; |
| 53fdab93 |
Poul Sander |
2026-05-18 18:45 |
87 |
bool m_exifDockWasVisible = true; |
| 4ae57f60 |
Poul Sander |
2026-02-25 21:35 |
88 |
bool m_lockDockingPreference = false; |
| 4ae57f60 |
Poul Sander |
2026-02-25 21:35 |
89 |
|
| 4ae57f60 |
Poul Sander |
2026-02-25 21:35 |
90 |
void applyDockLocking(bool lock); |
| cbc7d22b |
Poul Sander |
2026-02-24 19:23 |
91 |
}; |