#ifndef MAIN_WINDOW_HPP #define MAIN_WINDOW_HPP #include "archive.hpp" #include "getsuyomi.hpp" #include #include namespace getsuyomi { constexpr const char* AppVendor = "libfud"; constexpr const char* AppName = "getsuyomi"; constexpr const char* AppVersionString = "1.0.0"; 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 createMenus(); void createToolBar(); /* Private data */ Getsuyomi* m_getsuyomi{nullptr}; QAction* m_openFile{nullptr}; QAction* m_openDirectory{nullptr}; QAction* m_quitAction{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_menuBar{nullptr}; QToolBar* m_toolBar{nullptr}; QString m_lastOpenedDirectory{}; private slots: void openFile(); void openDirectory(); void quit(); void readSettings(); void writeSettings(); void closeEvent(QCloseEvent* event) override; void next(); void back(); void setSinglePageLayout(); void setDualPageLayout(); void setMangaLayout(); }; } // namespace getsuyomi #endif