#ifndef __MAIN_WINDOW_VIEWER_H #define __MAIN_WINDOW_VIEWER_H #include #include #include #include #include #include #include #include #ifdef Q_OS_MAC #include "yacreader_macosx_toolbar.h" #endif #include "comic_db.h" class Comic; class Viewer; class OptionsDialog; class HelpAboutDialog; class HttpVersionChecker; class ShortcutsDialog; class YACReaderSliderAction; class YACReaderSlider; class EditShortcutsDialog; class MainWindowViewer : public QMainWindow { Q_OBJECT public slots: void open(); void open(QString path, ComicDB & comic, QList & siblings); void open(QString path, qint64 comicId, qint64 libraryId); void openFolder(); void openRecent(); void saveImage(); void toggleToolBars(); void hideToolBars(); void showToolBars(); void enableActions(); void disableActions(); void toggleFullScreen(); void toFullScreen(); void toNormal(); void loadConfiguration(); void newVersion(); void openPreviousComic(); void openNextComic(); void openComicFromPath(QString pathFile); void openSiblingComic(QString pathFile); void openComic(QString pathFile); void openFolderFromPath(QString pathDir); void openFolderFromPath(QString pathFile, QString atFileName); void alwaysOnTopSwitch(); void adjustToFullSizeSwitch(); void fitToPageSwitch(); void resetZoomLevel(); void increasePageZoomLevel(); void decreasePageZoomLevel(); void reloadOptions(); void fitToWidth(); void fitToHeight(); void toggleWidthHeight(); void checkNewVersion(); void processReset(); void setUpShortcutsManagement(); void toggleFitToWidthSlider(); /*void viewComic(); void prev(); void next(); void updatePage();*/ private: //!State bool fullscreen; bool toolbars; bool alwaysOnTop; bool fromMaximized; //QTBUG-41883 QSize _size; QPoint _pos; QString currentDirectory; QString currentDirectoryImgDest; //!Widgets Viewer * viewer; //GoToDialog * goToDialog; OptionsDialog * optionsDialog; HelpAboutDialog * had; //ShortcutsDialog * shortcutsDialog; EditShortcutsDialog * editShortcutsDialog; //! ToolBars #ifdef Q_OS_MAC YACReaderMacOSXToolbar * comicToolBar; #else QToolBar * comicToolBar; #endif //! Actions QAction *openAction; QAction *openFolderAction; QList recentFilesActionList; QAction *clearRecentFilesAction; QAction *saveImageAction; QAction *openPreviousComicAction; QAction *openNextComicAction; QAction *nextAction; QAction *prevAction; QAction *adjustWidthAction; QAction *adjustHeightAction; QAction *goToPageAction; QAction *optionsAction; QAction *helpAboutAction; QAction *showMagnifyingGlassAction; QAction *setBookmarkAction; QAction *showBookmarksAction; QAction *leftRotationAction; QAction *rightRotationAction; QAction *showInfoAction; QAction *closeAction; QAction *doublePageAction; QAction *doubleMangaPageAction; QAction *showShorcutsAction; QAction *showDictionaryAction; QAction *alwaysOnTopAction; QAction *adjustToFullSizeAction; QAction *fitToPageAction; QAction *resetZoomAction; QAction *showZoomSliderlAction; QAction *increasePageZoomAction; QAction *decreasePageZoomAction; QAction *showFlowAction; QAction *showEditShortcutsAction; YACReaderSlider * zoomSliderAction; HttpVersionChecker * versionChecker; QString previousComicPath; QString nextComicPath; //! Método que inicializa el interfaz. void setupUI(); void createActions(); void createToolBars(); void refreshRecentFilesActionList(); void clearRecentFiles(); void getSiblingComics(QString path,QString currentComic); //! Manejadores de evento: void keyPressEvent(QKeyEvent *event); //void resizeEvent(QResizeEvent * event); void mouseDoubleClickEvent ( QMouseEvent * event ); void dropEvent(QDropEvent *event); void dragEnterEvent(QDragEnterEvent *event); QSettings * settings; ComicDB currentComicDB; QList siblingComics; bool isClient; QString startComicPath; quint64 libraryId; //fullscreen mode in Windows for preventing this bug: QTBUG-41309 https://bugreports.qt.io/browse/QTBUG-41309 Qt::WindowFlags previousWindowFlags; QPoint previousPos; QSize previousSize; signals: void closed(); protected: virtual void closeEvent ( QCloseEvent * event ); void sendComic(); public: MainWindowViewer(); ~MainWindowViewer(); }; #endif