588 lines
17 KiB
C
588 lines
17 KiB
C
|
/*
|
||
|
|
||
|
Copyright 2014 S. Razi Alavizadeh
|
||
|
Copyright 2012-2018 Adam Reichold
|
||
|
Copyright 2018 Pavel Sanda
|
||
|
Copyright 2012 Michał Trybus
|
||
|
Copyright 2012 Alexander Volkov
|
||
|
|
||
|
This file is part of qpdfview.
|
||
|
|
||
|
qpdfview is free software: you can redistribute it and/or modify
|
||
|
it under the terms of the GNU General Public License as published by
|
||
|
the Free Software Foundation, either version 2 of the License, or
|
||
|
(at your option) any later version.
|
||
|
|
||
|
qpdfview is distributed in the hope that it will be useful,
|
||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
GNU General Public License for more details.
|
||
|
|
||
|
You should have received a copy of the GNU General Public License
|
||
|
along with qpdfview. If not, see <http://www.gnu.org/licenses/>.
|
||
|
|
||
|
*/
|
||
|
|
||
|
#ifndef MAINWINDOW_H
|
||
|
#define MAINWINDOW_H
|
||
|
|
||
|
#include <QMainWindow>
|
||
|
|
||
|
#include <QPointer>
|
||
|
|
||
|
#ifdef WITH_DBUS
|
||
|
|
||
|
#include <QDBusAbstractAdaptor>
|
||
|
|
||
|
class QDBusInterface;
|
||
|
|
||
|
#endif // WITH_DBUS
|
||
|
|
||
|
class QCheckBox;
|
||
|
class QDateTime;
|
||
|
class QGraphicsView;
|
||
|
class QFileInfo;
|
||
|
class QModelIndex;
|
||
|
class QShortcut;
|
||
|
class QTableView;
|
||
|
class QToolButton;
|
||
|
class QTreeView;
|
||
|
class QWidgetAction;
|
||
|
|
||
|
#include "renderparam.h"
|
||
|
|
||
|
namespace qpdfview
|
||
|
{
|
||
|
|
||
|
class Settings;
|
||
|
class DocumentView;
|
||
|
class TabWidget;
|
||
|
class TreeView;
|
||
|
class ComboBox;
|
||
|
class MappingSpinBox;
|
||
|
class SearchLineEdit;
|
||
|
class SearchableMenu;
|
||
|
class RecentlyUsedMenu;
|
||
|
class RecentlyClosedMenu;
|
||
|
class BookmarkModel;
|
||
|
class Database;
|
||
|
class ShortcutHandler;
|
||
|
class SearchModel;
|
||
|
class HelpDialog;
|
||
|
|
||
|
class MainWindow : public QMainWindow
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
|
||
|
friend class MainWindowAdaptor;
|
||
|
|
||
|
public:
|
||
|
explicit MainWindow(QWidget* parent = 0);
|
||
|
|
||
|
QSize sizeHint() const;
|
||
|
QMenu* createPopupMenu();
|
||
|
|
||
|
public slots:
|
||
|
void show();
|
||
|
|
||
|
bool open(const QString& filePath, int page = -1, const QRectF& highlight = QRectF(), bool quiet = false);
|
||
|
bool openInNewTab(const QString& filePath, int page = -1, const QRectF& highlight = QRectF(), bool quiet = false);
|
||
|
|
||
|
bool jumpToPageOrOpenInNewTab(const QString& filePath, int page = -1, bool refreshBeforeJump = false, const QRectF& highlight = QRectF(), bool quiet = false);
|
||
|
|
||
|
void startSearch(const QString& text);
|
||
|
|
||
|
void saveDatabase();
|
||
|
|
||
|
protected slots:
|
||
|
void on_tabWidget_currentChanged();
|
||
|
void on_tabWidget_tabCloseRequested(int index);
|
||
|
void on_tabWidget_tabDragRequested(int index);
|
||
|
void on_tabWidget_tabContextMenuRequested(QPoint globalPos, int index);
|
||
|
|
||
|
void on_currentTab_documentChanged();
|
||
|
void on_currentTab_documentModified();
|
||
|
|
||
|
void on_currentTab_numberOfPagesChaned(int numberOfPages);
|
||
|
void on_currentTab_currentPageChanged(int currentPage);
|
||
|
|
||
|
void on_currentTab_canJumpChanged(bool backward, bool forward);
|
||
|
|
||
|
void on_currentTab_continuousModeChanged(bool continuousMode);
|
||
|
void on_currentTab_layoutModeChanged(LayoutMode layoutMode);
|
||
|
void on_currentTab_rightToLeftModeChanged(bool rightToLeftMode);
|
||
|
void on_currentTab_scaleModeChanged(ScaleMode scaleMode);
|
||
|
void on_currentTab_scaleFactorChanged(qreal scaleFactor);
|
||
|
void on_currentTab_rotationChanged(Rotation rotation);
|
||
|
|
||
|
void on_currentTab_linkClicked(int page);
|
||
|
void on_currentTab_linkClicked(bool newTab, const QString& filePath, int page);
|
||
|
|
||
|
void on_currentTab_renderFlagsChanged(qpdfview::RenderFlags renderFlags);
|
||
|
|
||
|
void on_currentTab_invertColorsChanged(bool invertColors);
|
||
|
void on_currentTab_convertToGrayscaleChanged(bool convertToGrayscale);
|
||
|
void on_currentTab_trimMarginsChanged(bool trimMargins);
|
||
|
|
||
|
void on_currentTab_compositionModeChanged(CompositionMode compositionMode);
|
||
|
|
||
|
void on_currentTab_highlightAllChanged(bool highlightAll);
|
||
|
void on_currentTab_rubberBandModeChanged(RubberBandMode rubberBandMode);
|
||
|
|
||
|
void on_currentTab_searchFinished();
|
||
|
void on_currentTab_searchProgressChanged(int progress);
|
||
|
|
||
|
void on_currentTab_customContextMenuRequested(QPoint pos);
|
||
|
|
||
|
void on_splitView_splitHorizontally_triggered();
|
||
|
void on_splitView_splitVertically_triggered();
|
||
|
void on_splitView_split_triggered(Qt::Orientation orientation, int index);
|
||
|
void on_splitView_closeCurrent_triggered();
|
||
|
void on_splitView_closeCurrent_triggered(int index);
|
||
|
void on_splitView_currentWidgetChanged(QWidget* currentWidget);
|
||
|
|
||
|
void on_currentPage_editingFinished();
|
||
|
void on_currentPage_returnPressed();
|
||
|
|
||
|
void on_scaleFactor_activated(int index);
|
||
|
void on_scaleFactor_editingFinished();
|
||
|
void on_scaleFactor_returnPressed();
|
||
|
|
||
|
void on_open_triggered();
|
||
|
void on_openInNewTab_triggered();
|
||
|
void on_openCopyInNewTab_triggered();
|
||
|
void on_openCopyInNewTab_triggered(const DocumentView* tab);
|
||
|
void on_openCopyInNewWindow_triggered();
|
||
|
void on_openCopyInNewWindow_triggered(const DocumentView* tab);
|
||
|
void on_openContainingFolder_triggered();
|
||
|
void on_openContainingFolder_triggered(const DocumentView* tab);
|
||
|
void on_moveToInstance_triggered();
|
||
|
void on_moveToInstance_triggered(DocumentView* tab);
|
||
|
void on_refresh_triggered();
|
||
|
void on_save_triggered();
|
||
|
void on_saveAs_triggered();
|
||
|
void on_saveCopy_triggered();
|
||
|
void on_print_triggered();
|
||
|
|
||
|
void on_recentlyUsed_openTriggered(const QString& filePath);
|
||
|
|
||
|
void on_previousPage_triggered();
|
||
|
void on_nextPage_triggered();
|
||
|
void on_firstPage_triggered();
|
||
|
void on_lastPage_triggered();
|
||
|
|
||
|
void on_setFirstPage_triggered();
|
||
|
|
||
|
void on_jumpToPage_triggered();
|
||
|
|
||
|
void on_jumpBackward_triggered();
|
||
|
void on_jumpForward_triggered();
|
||
|
|
||
|
void on_search_triggered();
|
||
|
void on_findPrevious_triggered();
|
||
|
void on_findNext_triggered();
|
||
|
void on_cancelSearch_triggered();
|
||
|
|
||
|
void on_copyToClipboardMode_triggered(bool checked);
|
||
|
void on_addAnnotationMode_triggered(bool checked);
|
||
|
|
||
|
void on_settings_triggered();
|
||
|
|
||
|
void on_continuousMode_triggered(bool checked);
|
||
|
void on_twoPagesMode_triggered(bool checked);
|
||
|
void on_twoPagesWithCoverPageMode_triggered(bool checked);
|
||
|
void on_multiplePagesMode_triggered(bool checked);
|
||
|
|
||
|
void on_rightToLeftMode_triggered(bool checked);
|
||
|
|
||
|
void on_zoomIn_triggered();
|
||
|
void on_zoomOut_triggered();
|
||
|
void on_originalSize_triggered();
|
||
|
|
||
|
void on_fitToPageWidthMode_triggered(bool checked);
|
||
|
void on_fitToPageSizeMode_triggered(bool checked);
|
||
|
|
||
|
void on_rotateLeft_triggered();
|
||
|
void on_rotateRight_triggered();
|
||
|
|
||
|
void on_invertColors_triggered(bool checked);
|
||
|
void on_convertToGrayscale_triggered(bool checked);
|
||
|
void on_trimMargins_triggered(bool checked);
|
||
|
void on_darkenWithPaperColor_triggered(bool checked);
|
||
|
void on_lightenWithPaperColor_triggered(bool checked);
|
||
|
|
||
|
void on_fonts_triggered();
|
||
|
|
||
|
void on_fullscreen_triggered(bool checked);
|
||
|
void on_presentation_triggered();
|
||
|
|
||
|
void on_previousTab_triggered();
|
||
|
void on_nextTab_triggered();
|
||
|
void on_closeTab_triggered();
|
||
|
void on_closeAllTabs_triggered();
|
||
|
void on_closeAllTabsButCurrentTab_triggered();
|
||
|
void on_closeAllTabsButThisOne_triggered(int thisIndex);
|
||
|
void on_closeAllTabsToTheLeft_triggered(int ofIndex);
|
||
|
void on_closeAllTabsToTheRight_triggered(int ofIndex);
|
||
|
void on_closeTabs_triggered(const QVector< DocumentView* >& tabs);
|
||
|
|
||
|
void on_restoreMostRecentlyClosedTab_triggered();
|
||
|
|
||
|
void on_recentlyClosed_tabActionTriggered(QAction* tabAction);
|
||
|
|
||
|
void on_tabAction_triggered();
|
||
|
void on_tabShortcut_activated();
|
||
|
|
||
|
void on_previousBookmark_triggered();
|
||
|
void on_nextBookmark_triggered();
|
||
|
void on_addBookmark_triggered();
|
||
|
void on_removeBookmark_triggered();
|
||
|
void on_removeAllBookmarks_triggered();
|
||
|
|
||
|
void on_bookmarksMenu_aboutToShow();
|
||
|
|
||
|
void on_bookmark_openTriggered(const QString& absoluteFilePath);
|
||
|
void on_bookmark_openInNewTabTriggered(const QString& absoluteFilePath);
|
||
|
void on_bookmark_jumpToPageTriggered(const QString& absoluteFilePath, int page);
|
||
|
void on_bookmark_removeBookmarkTriggered(const QString& absoluteFilePath);
|
||
|
|
||
|
void on_contents_triggered();
|
||
|
void on_about_triggered();
|
||
|
|
||
|
void on_focusCurrentPage_activated();
|
||
|
void on_focusScaleFactor_activated();
|
||
|
|
||
|
void on_toggleToolBars_triggered(bool checked);
|
||
|
void on_toggleMenuBar_triggered(bool checked);
|
||
|
|
||
|
void on_searchInitiated(const QString& text, bool modified);
|
||
|
void on_highlightAll_clicked(bool checked);
|
||
|
|
||
|
void on_dock_dockLocationChanged(Qt::DockWidgetArea area);
|
||
|
|
||
|
void on_outline_sectionCountChanged();
|
||
|
void on_outline_clicked(const QModelIndex& index);
|
||
|
|
||
|
void on_properties_sectionCountChanged();
|
||
|
|
||
|
void on_thumbnails_dockLocationChanged(Qt::DockWidgetArea area);
|
||
|
void on_thumbnails_verticalScrollBar_valueChanged(int value);
|
||
|
|
||
|
void on_bookmarks_sectionCountChanged();
|
||
|
void on_bookmarks_clicked(const QModelIndex& index);
|
||
|
void on_bookmarks_contextMenuRequested(QPoint pos);
|
||
|
|
||
|
void on_search_sectionCountChanged();
|
||
|
void on_search_dockLocationChanged(Qt::DockWidgetArea area);
|
||
|
void on_search_visibilityChanged(bool visible);
|
||
|
void on_search_clicked(const QModelIndex& index);
|
||
|
void on_search_rowsInserted(const QModelIndex& parent, int first, int last);
|
||
|
|
||
|
void on_saveDatabase_timeout();
|
||
|
|
||
|
protected:
|
||
|
bool eventFilter(QObject* target, QEvent* event);
|
||
|
|
||
|
void closeEvent(QCloseEvent* event);
|
||
|
|
||
|
void dragEnterEvent(QDragEnterEvent* event);
|
||
|
void dropEvent(QDropEvent* event);
|
||
|
|
||
|
private:
|
||
|
Q_DISABLE_COPY(MainWindow)
|
||
|
|
||
|
static Settings* s_settings;
|
||
|
static Database* s_database;
|
||
|
static ShortcutHandler* s_shortcutHandler;
|
||
|
static SearchModel* s_searchModel;
|
||
|
|
||
|
void prepareStyle();
|
||
|
|
||
|
TabWidget* m_tabWidget;
|
||
|
|
||
|
DocumentView* currentTab() const;
|
||
|
DocumentView* currentTab(int index) const;
|
||
|
QVector< DocumentView* > allTabs(int index) const;
|
||
|
QVector< DocumentView* > allTabs() const;
|
||
|
|
||
|
bool senderIsCurrentTab() const;
|
||
|
|
||
|
bool m_currentTabChangedBlocked;
|
||
|
|
||
|
class CurrentTabChangeBlocker;
|
||
|
|
||
|
void addTab(DocumentView* tab);
|
||
|
void addTabAction(DocumentView* tab);
|
||
|
void connectTab(DocumentView* tab);
|
||
|
|
||
|
void restorePerFileSettings(DocumentView* tab);
|
||
|
|
||
|
bool saveModifications(DocumentView* tab);
|
||
|
void closeTab(DocumentView* tab);
|
||
|
|
||
|
void setWindowTitleForCurrentTab();
|
||
|
void setCurrentPageSuffixForCurrentTab();
|
||
|
|
||
|
BookmarkModel* bookmarkModelForCurrentTab(bool create = false);
|
||
|
|
||
|
QAction* sourceLinkActionForCurrentTab(QObject* parent, QPoint pos);
|
||
|
|
||
|
class RestoreTab;
|
||
|
|
||
|
QTimer* m_saveDatabaseTimer;
|
||
|
|
||
|
void prepareDatabase();
|
||
|
|
||
|
void scheduleSaveDatabase();
|
||
|
void scheduleSaveTabs();
|
||
|
void scheduleSaveBookmarks();
|
||
|
void scheduleSavePerFileSettings();
|
||
|
|
||
|
class TextValueMapper;
|
||
|
|
||
|
MappingSpinBox* m_currentPageSpinBox;
|
||
|
QWidgetAction* m_currentPageAction;
|
||
|
|
||
|
ComboBox* m_scaleFactorComboBox;
|
||
|
QWidgetAction* m_scaleFactorAction;
|
||
|
|
||
|
SearchLineEdit* m_searchLineEdit;
|
||
|
QCheckBox* m_matchCaseCheckBox;
|
||
|
QCheckBox* m_wholeWordsCheckBox;
|
||
|
QCheckBox* m_highlightAllCheckBox;
|
||
|
QToolButton* m_findPreviousButton;
|
||
|
QToolButton* m_findNextButton;
|
||
|
QToolButton* m_cancelSearchButton;
|
||
|
|
||
|
void createWidgets();
|
||
|
|
||
|
QAction* m_openAction;
|
||
|
QAction* m_openInNewTabAction;
|
||
|
QAction* m_refreshAction;
|
||
|
QAction* m_saveAction;
|
||
|
QAction* m_saveAsAction;
|
||
|
QAction* m_saveCopyAction;
|
||
|
QAction* m_printAction;
|
||
|
QAction* m_exitAction;
|
||
|
|
||
|
QAction* m_previousPageAction;
|
||
|
QAction* m_nextPageAction;
|
||
|
QAction* m_firstPageAction;
|
||
|
QAction* m_lastPageAction;
|
||
|
|
||
|
QAction* m_setFirstPageAction;
|
||
|
|
||
|
QAction* m_jumpToPageAction;
|
||
|
|
||
|
QAction* m_jumpBackwardAction;
|
||
|
QAction* m_jumpForwardAction;
|
||
|
|
||
|
QAction* m_searchAction;
|
||
|
QAction* m_findPreviousAction;
|
||
|
QAction* m_findNextAction;
|
||
|
QAction* m_cancelSearchAction;
|
||
|
|
||
|
QAction* m_copyToClipboardModeAction;
|
||
|
QAction* m_addAnnotationModeAction;
|
||
|
|
||
|
QAction* m_settingsAction;
|
||
|
|
||
|
QAction* m_continuousModeAction;
|
||
|
QAction* m_twoPagesModeAction;
|
||
|
QAction* m_twoPagesWithCoverPageModeAction;
|
||
|
QAction* m_multiplePagesModeAction;
|
||
|
|
||
|
QAction* m_rightToLeftModeAction;
|
||
|
|
||
|
QAction* m_zoomInAction;
|
||
|
QAction* m_zoomOutAction;
|
||
|
QAction* m_originalSizeAction;
|
||
|
|
||
|
QAction* m_fitToPageWidthModeAction;
|
||
|
QAction* m_fitToPageSizeModeAction;
|
||
|
|
||
|
QAction* m_rotateLeftAction;
|
||
|
QAction* m_rotateRightAction;
|
||
|
|
||
|
QAction* m_invertColorsAction;
|
||
|
QAction* m_convertToGrayscaleAction;
|
||
|
QAction* m_trimMarginsAction;
|
||
|
QAction* m_darkenWithPaperColorAction;
|
||
|
QAction* m_lightenWithPaperColorAction;
|
||
|
|
||
|
QAction* m_fontsAction;
|
||
|
|
||
|
QAction* m_fullscreenAction;
|
||
|
QAction* m_presentationAction;
|
||
|
|
||
|
QAction* m_previousTabAction;
|
||
|
QAction* m_nextTabAction;
|
||
|
|
||
|
QAction* m_closeTabAction;
|
||
|
QAction* m_closeAllTabsAction;
|
||
|
QAction* m_closeAllTabsButCurrentTabAction;
|
||
|
|
||
|
QAction* m_restoreMostRecentlyClosedTabAction;
|
||
|
|
||
|
QShortcut* m_tabShortcuts[9];
|
||
|
|
||
|
QAction* m_previousBookmarkAction;
|
||
|
QAction* m_nextBookmarkAction;
|
||
|
|
||
|
QAction* m_addBookmarkAction;
|
||
|
QAction* m_removeBookmarkAction;
|
||
|
QAction* m_removeAllBookmarksAction;
|
||
|
|
||
|
QAction* m_contentsAction;
|
||
|
QAction* m_aboutAction;
|
||
|
|
||
|
QAction* m_openCopyInNewTabAction;
|
||
|
QAction* m_openCopyInNewWindowAction;
|
||
|
QAction* m_openContainingFolderAction;
|
||
|
QAction* m_moveToInstanceAction;
|
||
|
QAction* m_splitViewHorizontallyAction;
|
||
|
QAction* m_splitViewVerticallyAction;
|
||
|
QAction* m_closeCurrentViewAction;
|
||
|
|
||
|
QAction* createAction(const QString& text, const QString& objectName, const QIcon& icon, const QList< QKeySequence >& shortcuts, const char* member, bool checkable = false, bool checked = false);
|
||
|
QAction* createAction(const QString& text, const QString& objectName, const QIcon& icon, const QKeySequence& shortcut, const char* member, bool checkable = false, bool checked = false);
|
||
|
QAction* createAction(const QString& text, const QString& objectName, const QString& iconName, const QList< QKeySequence >& shortcuts, const char* member, bool checkable = false, bool checked = false);
|
||
|
QAction* createAction(const QString& text, const QString& objectName, const QString& iconName, const QKeySequence& shortcut, const char* member, bool checkable = false, bool checked = false);
|
||
|
|
||
|
void createActions();
|
||
|
|
||
|
QToolBar* m_fileToolBar;
|
||
|
QToolBar* m_editToolBar;
|
||
|
QToolBar* m_viewToolBar;
|
||
|
|
||
|
QShortcut* m_focusCurrentPageShortcut;
|
||
|
QShortcut* m_focusScaleFactorShortcut;
|
||
|
|
||
|
QToolBar* createToolBar(const QString& text, const QString& objectName, const QStringList& actionNames, const QList< QAction* >& actions);
|
||
|
|
||
|
void createToolBars();
|
||
|
|
||
|
QDockWidget* m_outlineDock;
|
||
|
TreeView* m_outlineView;
|
||
|
|
||
|
QDockWidget* m_propertiesDock;
|
||
|
QTableView* m_propertiesView;
|
||
|
|
||
|
QDockWidget* m_thumbnailsDock;
|
||
|
QGraphicsView* m_thumbnailsView;
|
||
|
|
||
|
QDockWidget* m_bookmarksDock;
|
||
|
QTableView* m_bookmarksView;
|
||
|
|
||
|
QDockWidget* m_searchDock;
|
||
|
QTreeView* m_searchView;
|
||
|
QWidget* m_searchWidget;
|
||
|
|
||
|
QDockWidget* createDock(const QString& text, const QString& objectName, const QKeySequence& toggleViewShortcut);
|
||
|
|
||
|
void createSearchDock();
|
||
|
|
||
|
void createDocks();
|
||
|
|
||
|
QMenu* m_fileMenu;
|
||
|
RecentlyUsedMenu* m_recentlyUsedMenu;
|
||
|
QMenu* m_editMenu;
|
||
|
QMenu* m_viewMenu;
|
||
|
QMenu* m_compositionModeMenu;
|
||
|
SearchableMenu* m_tabsMenu;
|
||
|
RecentlyClosedMenu* m_recentlyClosedMenu;
|
||
|
SearchableMenu* m_bookmarksMenu;
|
||
|
QMenu* m_helpMenu;
|
||
|
|
||
|
bool m_bookmarksMenuIsDirty;
|
||
|
|
||
|
void createMenus();
|
||
|
|
||
|
int m_tabBarHadPolicy;
|
||
|
|
||
|
bool m_fileToolBarWasVisible;
|
||
|
bool m_editToolBarWasVisible;
|
||
|
bool m_viewToolBarWasVisible;
|
||
|
|
||
|
QAction* m_toggleToolBarsAction;
|
||
|
QAction* m_toggleMenuBarAction;
|
||
|
|
||
|
QPointer< HelpDialog > m_helpDialog;
|
||
|
|
||
|
};
|
||
|
|
||
|
#ifdef WITH_DBUS
|
||
|
|
||
|
class MainWindowAdaptor : public QDBusAbstractAdaptor
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
Q_CLASSINFO("D-Bus Interface", "local.qpdfview.MainWindow")
|
||
|
|
||
|
explicit MainWindowAdaptor(MainWindow* mainWindow);
|
||
|
|
||
|
public:
|
||
|
static QDBusInterface* createInterface(const QString& instanceName = QString());
|
||
|
static MainWindowAdaptor* createAdaptor(MainWindow* mainWindow);
|
||
|
|
||
|
public slots:
|
||
|
Q_NOREPLY void raiseAndActivate();
|
||
|
|
||
|
bool open(const QString& absoluteFilePath, int page = -1, const QRectF& highlight = QRectF(), bool quiet = false);
|
||
|
bool openInNewTab(const QString& absoluteFilePath, int page = -1, const QRectF& highlight = QRectF(), bool quiet = false);
|
||
|
|
||
|
bool jumpToPageOrOpenInNewTab(const QString& absoluteFilePath, int page = -1, bool refreshBeforeJump = false, const QRectF& highlight = QRectF(), bool quiet = false);
|
||
|
|
||
|
Q_NOREPLY void startSearch(const QString& text);
|
||
|
|
||
|
Q_NOREPLY void saveDatabase();
|
||
|
|
||
|
|
||
|
int currentPage() const;
|
||
|
Q_NOREPLY void jumpToPage(int page);
|
||
|
|
||
|
Q_NOREPLY void previousPage();
|
||
|
Q_NOREPLY void nextPage();
|
||
|
Q_NOREPLY void firstPage();
|
||
|
Q_NOREPLY void lastPage();
|
||
|
|
||
|
Q_NOREPLY void previousBookmark();
|
||
|
Q_NOREPLY void nextBookmark();
|
||
|
|
||
|
bool jumpToBookmark(const QString& label);
|
||
|
|
||
|
|
||
|
Q_NOREPLY void continuousMode(bool checked);
|
||
|
Q_NOREPLY void twoPagesMode(bool checked);
|
||
|
Q_NOREPLY void twoPagesWithCoverPageMode(bool checked);
|
||
|
Q_NOREPLY void multiplePagesMode(bool checked);
|
||
|
|
||
|
Q_NOREPLY void fitToPageWidthMode(bool checked);
|
||
|
Q_NOREPLY void fitToPageSizeMode(bool checked);
|
||
|
|
||
|
Q_NOREPLY void invertColors(bool checked);
|
||
|
Q_NOREPLY void convertToGrayscale(bool checked);
|
||
|
Q_NOREPLY void trimMargins(bool checked);
|
||
|
|
||
|
Q_NOREPLY void fullscreen(bool checked);
|
||
|
Q_NOREPLY void presentation();
|
||
|
|
||
|
|
||
|
Q_NOREPLY void closeTab();
|
||
|
Q_NOREPLY void closeAllTabs();
|
||
|
Q_NOREPLY void closeAllTabsButCurrentTab();
|
||
|
|
||
|
bool closeTab(const QString& absoluteFilePath);
|
||
|
|
||
|
private:
|
||
|
MainWindow* mainWindow() const;
|
||
|
|
||
|
static QString serviceName(QString instanceName = QString());
|
||
|
|
||
|
};
|
||
|
|
||
|
#endif // WITH_DBUS
|
||
|
|
||
|
} // qpdfview
|
||
|
|
||
|
#endif // MAINWINDOW_H
|