Mercurial > minori
view include/gui/window.h @ 261:3ec7804abf17
include: make header guards more sane
The C++ standard[1] says:
Each identifier that contains a double underscore __ or
begins with an underscore followed by an uppercase letter
is reserved to the implementation for any use.
[1]: https://timsong-cpp.github.io/cppwp/n4659/lex.name#3.1
author | Paper <paper@paper.us.eu.org> |
---|---|
date | Wed, 03 Apr 2024 20:04:28 -0400 |
parents | 862d0d8619f6 |
children | f31305b9f60a |
line wrap: on
line source
#ifndef MINORI_WINDOW_H_ #define MINORI_WINDOW_H_ #include "core/config.h" #include <QMainWindow> #include <memory> /* *could* be forward-declared, but this causes any file that #includes this to have to #include these as well due to unique_ptr */ #include "gui/widgets/sidebar.h" #include <QCloseEvent> #include <QStackedWidget> #include <QThread> #include <QWidget> class QMenu; Q_DECLARE_METATYPE(std::vector<std::string>); class PlayingThread : public QThread { Q_OBJECT public: PlayingThread(QObject* object = nullptr) : QThread(object) {} private: void run() override; signals: void Done(const std::vector<std::string>& files); }; class MainWindow final : public QMainWindow { Q_OBJECT public: enum class Pages { NOW_PLAYING, ANIME_LIST, HISTORY, STATISTICS, SEARCH, SEASONS, TORRENTS }; MainWindow(QWidget* parent = nullptr); void SetActivePage(QWidget* page); void CreateBars(); void AddMainWidgets(); void RetranslateUI(); void UpdateFolderMenu(); void AsyncSynchronize(QAction* action, QStackedWidget* stack); void changeEvent(QEvent* event) override; void showEvent(QShowEvent* event) override; void closeEvent(QCloseEvent* event) override; private: std::unique_ptr<QWidget> main_widget = nullptr; std::unique_ptr<QStackedWidget> stack = nullptr; std::unique_ptr<SideBar> sidebar = nullptr; std::unique_ptr<PlayingThread> thread = nullptr; QMenu* folder_menu = nullptr; }; #endif // MINORI_WINDOW_H_