/************************************************************************** ** ** This file is part of Qt Creator ** ** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). ** ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** Commercial Usage ** ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Commercial License Agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at http://qt.nokia.com/contact. ** **************************************************************************/ #ifndef HELPPLUGIN_H #define HELPPLUGIN_H #include #include #include QT_FORWARD_DECLARE_CLASS(QAction) QT_FORWARD_DECLARE_CLASS(QComboBox) QT_FORWARD_DECLARE_CLASS(QMenu) QT_FORWARD_DECLARE_CLASS(QToolBar) QT_FORWARD_DECLARE_CLASS(QToolButton) QT_FORWARD_DECLARE_CLASS(QUrl) namespace Core { class ICore; class IMode; class MiniSplitter; class SideBar; class SideBarItem; } // Core namespace Help { namespace Internal { class CentralWidget; class DocSettingsPage; class ExternalHelpWindow; class FilterSettingsPage; class GeneralSettingsPage; class HelpMode; class HelpViewer; class LocalHelpManager; class OpenPagesManager; class SearchWidget; class HelpPlugin : public ExtensionSystem::IPlugin { Q_OBJECT public: HelpPlugin(); virtual ~HelpPlugin(); bool initialize(const QStringList &arguments, QString *error_message); void extensionsInitialized(); ShutdownFlag aboutToShutdown(); private slots: void showExternalWindow(); void modeChanged(Core::IMode *mode, Core::IMode *old); void activateContext(); void activateIndex(); void activateContents(); void activateSearch(); void activateOpenPages(); void activateBookmarks(); void addBookmark(); void updateFilterComboBox(); void filterDocumentation(const QString &customFilter); void switchToHelpMode(); void switchToHelpMode(const QUrl &source); void slotHideRightPane(); void showHideSidebar(); void updateSideBarSource(); void updateSideBarSource(const QUrl &newUrl); void fontChanged(); void contextHelpOptionChanged(); void updateCloseButton(); void setupHelpEngineIfNeeded(); void highlightSearchTerms(); void handleHelpRequest(const QUrl &url); void slotAboutToShowBackMenu(); void slotAboutToShowNextMenu(); void slotOpenActionUrl(QAction *action); private: void setupUi(); void resetFilter(); void activateHelpMode(); QToolBar *createWidgetToolBar(); QToolBar *createIconToolBar(bool external); HelpViewer* viewerForContextMode(); void createRightPaneContextViewer(); void doSetupIfNeeded(); int contextHelpOption() const; void connectExternalHelpWindow(); void setupNavigationMenus(QAction *back, QAction *next, QWidget *parent); private: HelpMode *m_mode; Core::ICore *m_core; CentralWidget *m_centralWidget; HelpViewer *m_helpViewerForSideBar; Core::SideBarItem *m_contentItem; Core::SideBarItem *m_indexItem; Core::SideBarItem *m_searchItem; Core::SideBarItem *m_bookmarkItem; Core::SideBarItem *m_openPagesItem; DocSettingsPage *m_docSettingsPage; FilterSettingsPage *m_filterSettingsPage; GeneralSettingsPage *m_generalSettingsPage; QComboBox *m_filterComboBox; Core::SideBar *m_sideBar; bool m_firstModeChange; LocalHelpManager *m_helpManager; OpenPagesManager *m_openPagesManager; Core::MiniSplitter *m_splitter; QToolButton *m_closeButton; QString m_oldAttrValue; QString m_styleProperty; QString m_idFromContext; Core::IMode* m_oldMode; bool m_connectWindow; ExternalHelpWindow *m_externalWindow; QMenu *m_backMenu; QMenu *m_nextMenu; QToolBar *m_internalHelpBar; QToolBar *m_externalHelpBar; }; } // namespace Internal } // namespace Help #endif // HELPPLUGIN_H