diff --git a/src/plugins/help/externalhelpwindow.cpp b/src/plugins/help/externalhelpwindow.cpp index 9f51f91fc1d59155234d35d09340e107398970f9..39a5674b3d17d6ee46ebfb11455912159c9ee16a 100644 --- a/src/plugins/help/externalhelpwindow.cpp +++ b/src/plugins/help/externalhelpwindow.cpp @@ -83,14 +83,16 @@ ExternalHelpWindow::ExternalHelpWindow(QWidget *parent) connect(action, SIGNAL(triggered()), this, SIGNAL(activateOpenPages())); addAction(action); + CentralWidget *centralWidget = CentralWidget::instance(); + action = new QAction(this); action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Plus)); - connect(action, SIGNAL(triggered()), CentralWidget::instance(), SLOT(zoomIn())); + connect(action, SIGNAL(triggered()), centralWidget, SLOT(zoomIn())); addAction(action); action = new QAction(this); action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Minus)); - connect(action, SIGNAL(triggered()), CentralWidget::instance(), SLOT(zoomOut())); + connect(action, SIGNAL(triggered()), centralWidget, SLOT(zoomOut())); addAction(action); action = new QAction(this); @@ -100,16 +102,30 @@ ExternalHelpWindow::ExternalHelpWindow(QWidget *parent) action = new QAction(this); action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_C)); - connect(action, SIGNAL(triggered()), CentralWidget::instance(), SLOT(copy())); + connect(action, SIGNAL(triggered()), centralWidget, SLOT(copy())); addAction(action); action = new QAction(this); action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_P)); - connect(action, SIGNAL(triggered()), CentralWidget::instance(), SLOT(print())); + connect(action, SIGNAL(triggered()), centralWidget, SLOT(print())); addAction(action); + action = new QAction(this); + action->setShortcut(QKeySequence::Back); + action->setEnabled(centralWidget->isBackwardAvailable()); + connect(action, SIGNAL(triggered()), centralWidget, SLOT(backward())); + connect(centralWidget, SIGNAL(backwardAvailable(bool)), action, + SLOT(setEnabled(bool))); + + action = new QAction(this); + action->setShortcut(QKeySequence::Forward); + action->setEnabled(centralWidget->isForwardAvailable()); + connect(action, SIGNAL(triggered()), centralWidget, SLOT(forward())); + connect(centralWidget, SIGNAL(forwardAvailable(bool)), action, + SLOT(setEnabled(bool))); + QAction *reset = new QAction(this); - connect(reset, SIGNAL(triggered()), CentralWidget::instance(), SLOT(resetZoom())); + connect(reset, SIGNAL(triggered()), centralWidget, SLOT(resetZoom())); addAction(reset); QAction *ctrlTab = new QAction(this); diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp index 2a3a71688e47f1b7c5c69f0495157c780c6a1fa8..69aa2597d260091454a11edaea6fd6f5e6142ec7 100644 --- a/src/plugins/help/helpplugin.cpp +++ b/src/plugins/help/helpplugin.cpp @@ -303,12 +303,22 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error) Aggregation::Aggregate *agg = new Aggregation::Aggregate; agg->add(m_centralWidget); agg->add(new HelpFindSupport(m_centralWidget)); + + QWidget *toolBarWidget = new QWidget; + QHBoxLayout *toolBarLayout = new QHBoxLayout(toolBarWidget); + toolBarLayout->setMargin(0); + toolBarLayout->setSpacing(0); + toolBarLayout->addWidget(m_externalHelpBar = createIconToolBar(true)); + toolBarLayout->addWidget(m_internalHelpBar = createIconToolBar(false)); + m_externalHelpBar->setVisible(false); + toolBarLayout->addWidget(createWidgetToolBar()); + QWidget *mainWidget = new QWidget; m_splitter->addWidget(mainWidget); QVBoxLayout *mainWidgetLayout = new QVBoxLayout(mainWidget); mainWidgetLayout->setMargin(0); mainWidgetLayout->setSpacing(0); - mainWidgetLayout->addWidget(createToolBar()); + mainWidgetLayout->addWidget(toolBarWidget); mainWidgetLayout->addWidget(m_centralWidget); if (QLayout *layout = m_centralWidget->layout()) { @@ -623,6 +633,8 @@ void HelpPlugin::showExternalWindow() { bool firstTime = m_firstModeChange; setup(); + m_externalHelpBar->setVisible(true); + m_internalHelpBar->setVisible(false); m_externalWindow->show(); connectExternalHelpWindow(); m_externalWindow->activateWindow(); @@ -705,6 +717,8 @@ void HelpPlugin::contextHelpOptionChanged() slotHideRightPane(); m_mode->setEnabled(false); + m_externalHelpBar->setVisible(true); + m_internalHelpBar->setVisible(false); m_externalWindow->show(); connectExternalHelpWindow(); @@ -729,6 +743,8 @@ void HelpPlugin::contextHelpOptionChanged() m_mode->setEnabled(true); m_externalWindow->close(); m_sideBar->setVisible(true); + m_internalHelpBar->setVisible(true); + m_externalHelpBar->setVisible(false); } } } @@ -865,41 +881,25 @@ void HelpPlugin::activateBookmarks() m_sideBar->activateItem(m_bookmarkItem); } -QToolBar *HelpPlugin::createToolBar() +QToolBar *HelpPlugin::createWidgetToolBar() { QToolBar *toolBar = new QToolBar; - Core::ActionManager *am = m_core->actionManager(); - toolBar->addAction(am->command(QLatin1String("Help.Home"))->action()); + toolBar->addWidget(OpenPagesManager::instance().openPagesComboBox()); - QAction *back = am->command(QLatin1String("Help.Previous"))->action(); - QAction *next = am->command(QLatin1String("Help.Next"))->action(); - setupNavigationMenus(back, next, toolBar); - toolBar->addAction(back); - toolBar->addAction(next); - - toolBar->addSeparator(); - toolBar->addAction(am->command(QLatin1String("Help.AddBookmark"))->action()); - toolBar->setMovable(false); - - toolBar->addSeparator(); - - QWidget *w = new QWidget; - toolBar->addWidget(w); - - QHBoxLayout *layout = new QHBoxLayout(w); - layout->setMargin(0); - layout->addSpacing(10); - layout->addWidget(OpenPagesManager::instance().openPagesComboBox()); - - layout->addWidget(new QLabel(tr("Filtered by:"))); + toolBar->addWidget(new QLabel(tr("Filtered by:"))); m_filterComboBox = new QComboBox; m_filterComboBox->setMinimumContentsLength(20); - layout->addWidget(m_filterComboBox); + toolBar->addWidget(m_filterComboBox); connect(m_filterComboBox, SIGNAL(activated(QString)), this, SLOT(filterDocumentation(QString))); connect(m_filterComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateSideBarSource())); + QWidget *dummy = new QWidget; + QHBoxLayout *layout = new QHBoxLayout(dummy); + layout->addStretch(); + toolBar->addWidget(dummy); + m_closeButton = new QToolButton(); m_closeButton->setIcon(QIcon(QLatin1String(Core::Constants::ICON_CLOSE))); m_closeButton->setToolTip(tr("Close current Page")); @@ -907,8 +907,55 @@ QToolBar *HelpPlugin::createToolBar() SLOT(closeCurrentPage())); connect(&OpenPagesManager::instance(), SIGNAL(pagesChanged()), this, SLOT(updateCloseButton())); - layout->addStretch(); - layout->addWidget(m_closeButton); + toolBar->addWidget(m_closeButton); + + return toolBar; +} + +QToolBar *HelpPlugin::createIconToolBar(bool external) +{ + QToolBar *toolBar = new QToolBar; + + QAction *home, *back, *next, *bookmark; + if (external) { + home = new QAction(QIcon(QLatin1String(IMAGEPATH "home.png")), + tr("Home"), toolBar); + connect(home, SIGNAL(triggered()), m_centralWidget, SLOT(home())); + + back = new QAction(QIcon(QLatin1String(IMAGEPATH "previous.png")), + tr("Previous Page"), toolBar); + back->setEnabled(m_centralWidget->isBackwardAvailable()); + connect(back, SIGNAL(triggered()), m_centralWidget, SLOT(backward())); + connect(m_centralWidget, SIGNAL(backwardAvailable(bool)), back, + SLOT(setEnabled(bool))); + + next = new QAction(QIcon(QLatin1String(IMAGEPATH "next.png")), + tr("Next Page"), toolBar); + next->setEnabled(m_centralWidget->isForwardAvailable()); + connect(next, SIGNAL(triggered()), m_centralWidget, SLOT(forward())); + connect(m_centralWidget, SIGNAL(forwardAvailable(bool)), next, + SLOT(setEnabled(bool))); + + bookmark = new QAction(QIcon(QLatin1String(IMAGEPATH "bookmark.png")), + tr("Add Bookmark"), toolBar); + connect(bookmark, SIGNAL(triggered()), this, SLOT(addBookmark())); + } else { + Core::ActionManager *am = m_core->actionManager(); + home = am->command(QLatin1String("Help.Home"))->action(); + back = am->command(QLatin1String("Help.Previous"))->action(); + next = am->command(QLatin1String("Help.Next"))->action(); + bookmark = am->command(QLatin1String("Help.AddBookmark"))->action(); + } + + setupNavigationMenus(back, next, toolBar); + + toolBar->addAction(home); + toolBar->addAction(back); + toolBar->addAction(next); + toolBar->addSeparator(); + toolBar->addAction(bookmark); + toolBar->setMovable(false); + toolBar->addSeparator(); return toolBar; } diff --git a/src/plugins/help/helpplugin.h b/src/plugins/help/helpplugin.h index a5b42d3ac489125bfee008037bab01e5f8ed8fe5..63e420c8748d3da5e55b94b695cdb7a5518b0ff8 100644 --- a/src/plugins/help/helpplugin.h +++ b/src/plugins/help/helpplugin.h @@ -114,7 +114,8 @@ private: void setupUi(); void resetFilter(); void activateHelpMode(); - QToolBar *createToolBar(); + QToolBar *createWidgetToolBar(); + QToolBar *createIconToolBar(bool external); HelpViewer* viewerForContextMode(); void createRightPaneContextViewer(); @@ -159,6 +160,8 @@ private: QMenu *m_backMenu; QMenu *m_nextMenu; + QToolBar *m_internalHelpBar; + QToolBar *m_externalHelpBar; }; } // namespace Internal