git repos / SagoImageBrowser

mainwindow.h

browsing at commit = fc5f2e276b0ec387eb0e54a2d83f6022edcc8910

raw · blame · history

#pragma once

#include <QMainWindow>

class QTreeView;
class QListView;
class QLabel;
class QStackedWidget;
class QFileSystemModel;
class QComboBox;
class ImageModel;
class ImageViewWidget;

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);

private:
    void setupUi();
    void setupConnections();
    void loadVisibleThumbnails();
    void showPreview(const QModelIndex &index);
    void enterSingleImageMode(const QModelIndex &index);
    void leaveSingleImageMode();

    void keyPressEvent(QKeyEvent *event) override;
    bool eventFilter(QObject *obj, QEvent *event) override;

    QFileSystemModel *m_dirModel;
    ImageModel *m_imageModel;

    QTreeView *m_treeView;
    QComboBox *m_rootCombo;
    QListView *m_listView;
    QLabel *m_previewLabel;

    QStackedWidget *m_stack;
    QWidget *m_browserPage;
    ImageViewWidget *m_imageView;
    bool m_wasFullScreen = false;
};