From 46dfd21ce5d31ab0d4b611ed4f4d4d3889cef477 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 9 Oct 2014 16:42:12 +0200 Subject: [PATCH] Help Window: Add Bookmarks view Change-Id: I8b4db5b3208c4133466fe4e61f1dd1f18b432fea Reviewed-by: Eike Ziller --- src/plugins/help/helpwidget.cpp | 19 ++++++++++++++++++- src/plugins/help/helpwidget.h | 1 + src/shared/help/bookmarkmanager.cpp | 9 ++++++++- src/shared/help/bookmarkmanager.h | 3 +++ 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/plugins/help/helpwidget.cpp b/src/plugins/help/helpwidget.cpp index 3c858e46bf5..a0e5189130d 100644 --- a/src/plugins/help/helpwidget.cpp +++ b/src/plugins/help/helpwidget.cpp @@ -257,6 +257,7 @@ HelpWidget::~HelpWidget() if (m_sideBar) { m_sideBar->saveSettings(Core::ICore::settings(), QLatin1String(kSideBarSettingsKey)); Core::ActionManager::unregisterAction(m_indexAction, Constants::HELP_INDEX); + Core::ActionManager::unregisterAction(m_bookmarkAction, Constants::HELP_BOOKMARKS); } Core::ICore::removeContextObject(m_context); Core::ActionManager::unregisterAction(m_copy, Core::Constants::COPY); @@ -296,8 +297,21 @@ void HelpWidget::addSideBar() : tr("Ctrl+Shift+I"))); shortcutMap.insert(QLatin1String(Constants::HELP_INDEX), cmd); + auto bookmarkWidget = new BookmarkWidget(&LocalHelpManager::bookmarkManager(), 0, false); + bookmarkWidget->setWindowTitle(tr(Constants::SB_BOOKMARKS)); + bookmarkWidget->setOpenInNewPageActionVisible(false); + auto bookmarkItem = new Core::SideBarItem(bookmarkWidget, + QLatin1String(Constants::HELP_BOOKMARKS)); + connect(bookmarkWidget, &BookmarkWidget::linkActivated, this, &HelpWidget::setSource); + m_bookmarkAction = new QAction(tr("Activate Help Bookmarks View"), this); + cmd = Core::ActionManager::registerAction(m_bookmarkAction, Constants::HELP_BOOKMARKS, + m_context->context()); + cmd->setDefaultKeySequence(QKeySequence(Core::UseMacShortcuts ? tr("Meta+B") + : tr("Ctrl+Shift+B"))); + shortcutMap.insert(QLatin1String(Constants::HELP_BOOKMARKS), cmd); + QList itemList; - itemList << indexItem; + itemList << indexItem << bookmarkItem; m_sideBar = new Core::SideBar(itemList, QList() << indexItem); m_sideBar->setShortcutMap(shortcutMap); m_sideBar->setCloseWhenEmpty(true); @@ -312,6 +326,9 @@ void HelpWidget::addSideBar() connect(m_indexAction, &QAction::triggered, m_sideBar, [this]() { m_sideBar->activateItem(QLatin1String(Constants::HELP_INDEX)); }); + connect(m_bookmarkAction, &QAction::triggered, m_sideBar, [this]() { + m_sideBar->activateItem(QLatin1String(Constants::HELP_BOOKMARKS)); + }); } HelpViewer *HelpWidget::currentViewer() const diff --git a/src/plugins/help/helpwidget.h b/src/plugins/help/helpwidget.h index d81e9a17ae1..428202afc23 100644 --- a/src/plugins/help/helpwidget.h +++ b/src/plugins/help/helpwidget.h @@ -141,6 +141,7 @@ private: Core::MiniSplitter *m_sideBarSplitter; Core::SideBar *m_sideBar; QAction *m_indexAction; + QAction *m_bookmarkAction; }; } // Internal diff --git a/src/shared/help/bookmarkmanager.cpp b/src/shared/help/bookmarkmanager.cpp index c0e79953c04..bfc8f925d7f 100644 --- a/src/shared/help/bookmarkmanager.cpp +++ b/src/shared/help/bookmarkmanager.cpp @@ -302,6 +302,7 @@ BookmarkWidget::BookmarkWidget(BookmarkManager *manager, QWidget *parent, , addButton(0) , removeButton(0) , bookmarkManager(manager) + , m_isOpenInNewPageActionVisible(true) { setup(showButtons); installEventFilter(this); @@ -311,6 +312,11 @@ BookmarkWidget::~BookmarkWidget() { } +void BookmarkWidget::setOpenInNewPageActionVisible(bool visible) +{ + m_isOpenInNewPageActionVisible = visible; +} + void BookmarkWidget::removeClicked() { const QModelIndex& index = treeView->currentIndex(); @@ -384,7 +390,8 @@ void BookmarkWidget::customContextMenuRequested(const QPoint &point) renameItem = menu.addAction(tr("Rename Folder")); } else { showItem = menu.addAction(tr("Show Bookmark")); - showItemNewTab = menu.addAction(tr("Show Bookmark as New Page")); + if (m_isOpenInNewPageActionVisible) + showItemNewTab = menu.addAction(tr("Show Bookmark as New Page")); if (searchField->text().isEmpty()) { menu.addSeparator(); removeItem = menu.addAction(tr("Delete Bookmark")); diff --git a/src/shared/help/bookmarkmanager.h b/src/shared/help/bookmarkmanager.h index d2e5424940f..6139462ccfd 100644 --- a/src/shared/help/bookmarkmanager.h +++ b/src/shared/help/bookmarkmanager.h @@ -113,6 +113,8 @@ public: bool showButtons = true); ~BookmarkWidget(); + void setOpenInNewPageActionVisible(bool visible); + signals: void addBookmark(); void linkActivated(const QUrl &url); @@ -138,6 +140,7 @@ private: QToolButton *removeButton; BookmarkManager *bookmarkManager; QSortFilterProxyModel* filterBookmarkModel; + bool m_isOpenInNewPageActionVisible; }; class BookmarkModel : public QStandardItemModel