📄 part.h.svn-base
字号:
/*************************************************************************** * Copyright (C) 2002 by Wilco Greven <greven@kde.org> * * Copyright (C) 2003-2004 by Christophe Devriese * * <Christophe.Devriese@student.kuleuven.ac.be> * * Copyright (C) 2003 by Andy Goossens <andygoossens@telenet.be> * * Copyright (C) 2003 by Laurent Montel <montel@kde.org> * * Copyright (C) 2004 by Dominique Devriese <devriese@kde.org> * * Copyright (C) 2004-2006 by Albert Astals Cid <tsdgeos@terra.es> * * * * This program 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. * ***************************************************************************/#ifndef _KPDF_PART_H_#define _KPDF_PART_H_#include <kparts/browserextension.h>#include <kparts/part.h>#include <qlist.h>#include <qpointer.h>#include "core/observer.h"#include "core/document.h"#include <QtDBus/QtDBus>class QAction;class QWidget;class QSplitter;class QToolBox;class KUrl;class KAction;class KConfig;class KDirWatch;class KToggleAction;class KToggleFullScreenAction;class KSelectAction;class KAboutData;class KPrinter;class KPDFDocument;class ThumbnailList;class ThumbnailController;class PageView;class PresentationWidget;class SearchWidget;class TOC;class MiniBar;class ExportEntry;namespace okular {class BrowserExtension;/** * This is a "Part". It that does all the real work in a KPart * application. * * @short Main Part * @author Wilco Greven <greven@kde.org> * @version 0.2 */class Part : public KParts::ReadOnlyPart, public DocumentObserver{Q_OBJECTQ_CLASSINFO("D-Bus Interface", "org.kde.okular")public: // Default constructor Part(QWidget* parentWidget, QObject* parent, const QStringList& args); // Destructor ~Part(); // inherited from DocumentObserver uint observerId() const { return PART_ID; } void notifyViewportChanged( bool smoothMove ); static KAboutData* createAboutData();public slots: // dbus Q_SCRIPTABLE Q_NOREPLY void goToPage(uint page); Q_SCRIPTABLE Q_NOREPLY void openDocument(KUrl doc); Q_SCRIPTABLE uint pages(); Q_SCRIPTABLE uint currentPage(); Q_SCRIPTABLE KUrl currentDocument(); Q_SCRIPTABLE void slotPreferences(); Q_SCRIPTABLE void slotFind(); Q_SCRIPTABLE void slotPrintPreview(); Q_SCRIPTABLE void slotPreviousPage(); Q_SCRIPTABLE void slotNextPage(); Q_SCRIPTABLE void slotGotoFirst(); Q_SCRIPTABLE void slotGotoLast();signals: void enablePrintAction(bool enable);protected: // reimplemented from KParts::ReadOnlyPart bool openFile(); bool openURL(const KUrl &url); bool closeURL(); // filter that watches for splitter size changes bool eventFilter( QObject * watched, QEvent * e ); void supportedMimetypes();protected slots: // connected to actions void openURLFromDocument(const KUrl &url); void slotGoToPage(); void slotHistoryBack(); void slotHistoryNext(); void slotPreviousBookmark(); void slotNextBookmark(); void slotFindNext(); void slotSaveFileAs(); void slotGetNewStuff(); void slotNewConfig(); void slotShowMenu(const KPDFPage *page, const QPoint &point); void slotShowProperties(); void slotShowEmbeddedFiles(); void slotShowLeftPanel(); void slotShowPresentation(); void slotHidePresentation(); void slotExportAs(QAction *); bool slotImportPSFile(); void close(); void cannotQuit(); void setMimeTypes(KIO::Job *job); void saveSplitterSize(); // can be connected to widget elements void updateViewActions(); void enableTOC(bool enable);public slots: // connected to Shell action (and browserExtension), not local one void slotPrint(); void restoreDocument(const KUrl &url, int page); void saveDocumentRestoreInfo(KConfig* config); void slotFileDirty( const QString& ); void slotDoFileDirty(); void psTransformEnded();private: void doPrint( KPrinter& printer ); void fillGenerators(); // the document KPDFDocument * m_document; QString m_temporaryLocalFile; // main widgets QSplitter *m_splitter; QWidget *m_leftPanel; QToolBox *m_toolBox; SearchWidget *m_searchWidget; QPointer<ThumbnailList> m_thumbnailList; QPointer<PageView> m_pageView; QPointer<TOC> m_toc; QPointer<MiniBar> m_miniBar; QPointer<PresentationWidget> m_presentationWidget; // document watcher (and reloader) variables KDirWatch *m_watcher; QTimer *m_dirtyHandler; DocumentViewport m_viewportDirty; // Remember the search history QStringList m_searchHistory; // actions KAction *m_gotoPage; KAction *m_prevPage; KAction *m_nextPage; KAction *m_firstPage; KAction *m_lastPage; KAction *m_historyBack; KAction *m_historyNext; KAction *m_prevBookmark; KAction *m_nextBookmark; KAction *m_find; KAction *m_findNext; KAction *m_saveAs; KAction *m_printPreview; KAction *m_showProperties; KAction *m_showEmbeddedFiles; KAction *m_exportAs; QAction *m_exportAsText; KAction *m_showPresentation; KToggleAction* m_showMenuBarAction; KToggleAction* m_showLeftPanel; KToggleFullScreenAction* m_showFullScreenAction; bool m_actionsSearched; bool m_searchStarted; BrowserExtension *m_bExtension; // QHash: key is the name of the generator QHash<QString, Generator*> m_loadedGenerators; // list of names of the generators that have settings QStringList m_generatorsWithSettings; QStringList m_supportedMimeTypes; KSelectAction * m_confGens; QList<ExportEntry*> m_exportItems; private slots: void slotGeneratorPreferences();};class BrowserExtension : public KParts::BrowserExtension{Q_OBJECTpublic: BrowserExtension(Part*);public slots: // Automatically detected by the host. void print();};}#endif// vim:ts=2:sw=2:tw=78:et
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -