yacreader/YACReader/main_window_viewer.h
Igor Kushnir 39ab598363 Reader: clean unused code up
closeEvent is accepted by default, so this commit does not change the
application behavior. But Qt documentation recommends not relying on the
default value as subclasses may choose to clear it in their constructor.
2019-09-18 18:10:40 +02:00

187 lines
4.8 KiB
C++

#ifndef __MAIN_WINDOW_VIEWER_H
#define __MAIN_WINDOW_VIEWER_H
#include <QMainWindow>
#include <QScrollArea>
#include <QToolBar>
#include <QAction>
#include <QKeyEvent>
#include <QMouseEvent>
#include <QCloseEvent>
#include <QSettings>
#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<ComicDB> &siblings);
void open(QString path, qint64 comicId, qint64 libraryId);
void openFolder();
void openRecent();
void openLatestComic();
void openComicFromRecentAction(QAction *action);
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;
QAction *openLatestComicAction;
QList<QAction *> 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) override;
//void resizeEvent(QResizeEvent * event);
void mouseDoubleClickEvent(QMouseEvent *event) override;
void dropEvent(QDropEvent *event) override;
void dragEnterEvent(QDragEnterEvent *event) override;
QSettings *settings;
ComicDB currentComicDB;
QList<ComicDB> 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;
protected:
void closeEvent(QCloseEvent *event) override;
void sendComic();
public:
MainWindowViewer();
~MainWindowViewer() override;
};
#endif