#ifndef MAIN_WINDOW_HPP #define MAIN_WINDOW_HPP #include "getsuyomi.hpp" #include "config.hpp" #include #include namespace getsuyomi { class GetsuyomiApp : public QMainWindow { Q_OBJECT public: GetsuyomiApp(); ~GetsuyomiApp() = default; GetsuyomiApp(const GetsuyomiApp&) = delete; GetsuyomiApp(GetsuyomiApp&&) = delete; GetsuyomiApp& operator=(const GetsuyomiApp&) = delete; GetsuyomiApp& operator=(GetsuyomiApp&&) = delete; fud::FudStatus setup(); private: /* Private methods */ void createActions(); void bindShortcuts(); void createMenus(); void createToolBar(); /* Private data */ GetsuyomiConfig m_config{}; Getsuyomi* m_getsuyomi{nullptr}; QAction* m_openFile{nullptr}; QAction* m_openDirectory{nullptr}; QAction* m_quitAction{nullptr}; QAction* m_settingsAction{nullptr}; QAction* m_aboutApp{nullptr}; QAction* m_nextAction{nullptr}; QAction* m_backAction{nullptr}; QAction* m_setSinglePageLayout{nullptr}; QAction* m_setDualPageLayout{nullptr}; QAction* m_setMangaLayout{nullptr}; QActionGroup* m_setPageLayoutGroup{nullptr}; QMenu* m_fileMenu{nullptr}; QMenu* m_settingsMenu{nullptr}; QMenu* m_helpMenu{nullptr}; QToolBar* m_toolBar{nullptr}; QString m_lastOpenedDirectory{}; private slots: void openFile(); void openDirectory(); void quit(); void configure(); void aboutApp(); void readSettings(); void writeSettings(); void closeEvent(QCloseEvent* event) override; void next(); void back(); void setSinglePageLayout(); void setDualPageLayout(); void setMangaLayout(); }; } // namespace getsuyomi #endif