Add previous and next buttons to bookmarks pane tool bar

Task-number: QTCREATORBUG-9859
Change-Id: I2555fc89cd893681ee17b272def053f1e42e9368
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Eike Ziller
2018-04-30 13:55:36 +02:00
parent c1097cbe7f
commit 80b9f047f6
3 changed files with 26 additions and 1 deletions

View File

@@ -57,6 +57,7 @@
#include <QMenu> #include <QMenu>
#include <QPainter> #include <QPainter>
#include <QSpinBox> #include <QSpinBox>
#include <QToolButton>
Q_DECLARE_METATYPE(Bookmarks::Internal::Bookmark*) Q_DECLARE_METATYPE(Bookmarks::Internal::Bookmark*)
@@ -241,6 +242,20 @@ BookmarkView::~BookmarkView()
ICore::removeContextObject(m_bookmarkContext); ICore::removeContextObject(m_bookmarkContext);
} }
QList<QToolButton *> BookmarkView::createToolBarWidgets() const
{
Command *prevCmd = ActionManager::command(Constants::BOOKMARKS_PREV_ACTION);
Command *nextCmd = ActionManager::command(Constants::BOOKMARKS_NEXT_ACTION);
QTC_ASSERT(prevCmd && nextCmd, return {});
auto prevButton = new QToolButton;
prevButton->setToolButtonStyle(Qt::ToolButtonIconOnly);
prevButton->setDefaultAction(prevCmd->action());
auto nextButton = new QToolButton;
nextButton->setToolButtonStyle(Qt::ToolButtonIconOnly);
nextButton->setDefaultAction(nextCmd->action());
return {prevButton, nextButton};
}
void BookmarkView::contextMenuEvent(QContextMenuEvent *event) void BookmarkView::contextMenuEvent(QContextMenuEvent *event)
{ {
QMenu menu; QMenu menu;
@@ -804,7 +819,10 @@ BookmarkViewFactory::BookmarkViewFactory(BookmarkManager *bm)
NavigationView BookmarkViewFactory::createWidget() NavigationView BookmarkViewFactory::createWidget()
{ {
return NavigationView(new BookmarkView(m_manager)); auto view = new BookmarkView(m_manager);
auto navview = NavigationView(view);
navview.dockToolBarWidgets = view->createToolBarWidgets();
return navview;
} }
} // namespace Internal } // namespace Internal

View File

@@ -128,6 +128,8 @@ public:
explicit BookmarkView(BookmarkManager *manager); explicit BookmarkView(BookmarkManager *manager);
~BookmarkView(); ~BookmarkView();
QList<QToolButton *> createToolBarWidgets() const;
public slots: public slots:
void gotoBookmark(const QModelIndex &index); void gotoBookmark(const QModelIndex &index);

View File

@@ -42,6 +42,7 @@
#include <texteditor/texteditorconstants.h> #include <texteditor/texteditorconstants.h>
#include <utils/fileutils.h> #include <utils/fileutils.h>
#include <utils/utilsicons.h>
#include <QMenu> #include <QMenu>
@@ -113,12 +114,16 @@ BookmarksPluginRunData::BookmarksPluginRunData()
mbm->addSeparator(); mbm->addSeparator();
// Previous // Previous
m_prevAction.setIcon(Utils::Icons::PREV_TOOLBAR.icon());
m_prevAction.setIconVisibleInMenu(false);
cmd = ActionManager::registerAction(&m_prevAction, BOOKMARKS_PREV_ACTION, editorManagerContext); cmd = ActionManager::registerAction(&m_prevAction, BOOKMARKS_PREV_ACTION, editorManagerContext);
cmd->setDefaultKeySequence(QKeySequence(useMacShortcuts ? BookmarksPlugin::tr("Meta+,") cmd->setDefaultKeySequence(QKeySequence(useMacShortcuts ? BookmarksPlugin::tr("Meta+,")
: BookmarksPlugin::tr("Ctrl+,"))); : BookmarksPlugin::tr("Ctrl+,")));
mbm->addAction(cmd); mbm->addAction(cmd);
// Next // Next
m_nextAction.setIcon(Utils::Icons::NEXT_TOOLBAR.icon());
m_nextAction.setIconVisibleInMenu(false);
cmd = ActionManager::registerAction(&m_nextAction, BOOKMARKS_NEXT_ACTION, editorManagerContext); cmd = ActionManager::registerAction(&m_nextAction, BOOKMARKS_NEXT_ACTION, editorManagerContext);
cmd->setDefaultKeySequence(QKeySequence(useMacShortcuts ? BookmarksPlugin::tr("Meta+.") cmd->setDefaultKeySequence(QKeySequence(useMacShortcuts ? BookmarksPlugin::tr("Meta+.")
: BookmarksPlugin::tr("Ctrl+."))); : BookmarksPlugin::tr("Ctrl+.")));