mirror of
https://github.com/YACReader/yacreader
synced 2025-05-28 03:10:27 -04:00
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.
187 lines
4.8 KiB
C++
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
|