From 16821dd8529c564bcfe75876084c38477be9d40b Mon Sep 17 00:00:00 2001 From: con <qtc-committer@nokia.com> Date: Wed, 16 Dec 2009 14:56:16 +0100 Subject: [PATCH] Move the "Move Up/Down" items from bookmarks menu to bookmarks view. Better would be to support drag and drop in the view, but this might be better than nothing. Task-number: QTCREATORBUG-466 --- src/plugins/bookmarks/bookmarkmanager.cpp | 34 ++++++++++++++--------- src/plugins/bookmarks/bookmarkmanager.h | 1 + src/plugins/bookmarks/bookmarksplugin.cpp | 19 ------------- src/plugins/bookmarks/bookmarksplugin.h | 2 -- 4 files changed, 22 insertions(+), 34 deletions(-) diff --git a/src/plugins/bookmarks/bookmarkmanager.cpp b/src/plugins/bookmarks/bookmarkmanager.cpp index ce08ec8202b..326638fc1bf 100644 --- a/src/plugins/bookmarks/bookmarkmanager.cpp +++ b/src/plugins/bookmarks/bookmarkmanager.cpp @@ -35,6 +35,7 @@ #include <coreplugin/editormanager/editormanager.h> #include <coreplugin/icore.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/uniqueidmanager.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/session.h> @@ -227,15 +228,24 @@ BookmarkView::~BookmarkView() void BookmarkView::contextMenuEvent(QContextMenuEvent *event) { QMenu menu; - QAction *remove = menu.addAction(tr("&Remove Bookmark")); - QAction *removeAll = menu.addAction(tr("Remove all Bookmarks")); + QAction *moveUp = menu.addAction(tr("Move Up")); + QAction *moveDown = menu.addAction(tr("Move Down")); + QAction *remove = menu.addAction(tr("&Remove")); + QAction *removeAll = menu.addAction(tr("Remove All")); m_contextMenuIndex = indexAt(event->pos()); - if (!m_contextMenuIndex.isValid()) + if (!m_contextMenuIndex.isValid()) { + moveUp->setEnabled(false); + moveDown->setEnabled(false); remove->setEnabled(false); + } if (model()->rowCount() == 0) removeAll->setEnabled(false); + connect(moveUp, SIGNAL(triggered()), + m_manager, SLOT(moveUp())); + connect(moveDown, SIGNAL(triggered()), + m_manager, SLOT(moveDown())); connect(remove, SIGNAL(triggered()), this, SLOT(removeFromContextMenu())); connect(removeAll, SIGNAL(triggered()), @@ -251,18 +261,16 @@ void BookmarkView::removeFromContextMenu() void BookmarkView::removeBookmark(const QModelIndex& index) { - BookmarkManager *manager = static_cast<BookmarkManager *>(model()); - Bookmark *bm = manager->bookmarkForIndex(index); - manager->removeBookmark(bm); + Bookmark *bm = m_manager->bookmarkForIndex(index); + m_manager->removeBookmark(bm); } // The perforcemance of this function could be greatly improved. // void BookmarkView::removeAll() { - BookmarkManager *manager = static_cast<BookmarkManager *>(model()); - while (manager->rowCount()) { - QModelIndex index = manager->index(0, 0); + while (m_manager->rowCount()) { + QModelIndex index = m_manager->index(0, 0); removeBookmark(index); } } @@ -271,6 +279,7 @@ void BookmarkView::setModel(QAbstractItemModel *model) { BookmarkManager *manager = qobject_cast<BookmarkManager *>(model); QTC_ASSERT(manager, return); + m_manager = manager; QListView::setModel(model); setSelectionModel(manager->selectionModel()); setSelectionMode(QAbstractItemView::SingleSelection); @@ -279,10 +288,9 @@ void BookmarkView::setModel(QAbstractItemModel *model) void BookmarkView::gotoBookmark(const QModelIndex &index) { - BookmarkManager *bm = static_cast<BookmarkManager *>(model()); - Bookmark *bk = bm->bookmarkForIndex(index); - if (!bm->gotoBookmark(bk)) - bm->removeBookmark(bk); + Bookmark *bk = m_manager->bookmarkForIndex(index); + if (!m_manager->gotoBookmark(bk)) + m_manager->removeBookmark(bk); } //// diff --git a/src/plugins/bookmarks/bookmarkmanager.h b/src/plugins/bookmarks/bookmarkmanager.h index d916759fe82..02c30368334 100644 --- a/src/plugins/bookmarks/bookmarkmanager.h +++ b/src/plugins/bookmarks/bookmarkmanager.h @@ -151,6 +151,7 @@ protected: private: BookmarkContext *m_bookmarkContext; QModelIndex m_contextMenuIndex; + BookmarkManager *m_manager; }; class BookmarkContext : public Core::IContext diff --git a/src/plugins/bookmarks/bookmarksplugin.cpp b/src/plugins/bookmarks/bookmarksplugin.cpp index ca6f406d111..dc91a36cc2f 100644 --- a/src/plugins/bookmarks/bookmarksplugin.cpp +++ b/src/plugins/bookmarks/bookmarksplugin.cpp @@ -98,21 +98,6 @@ bool BookmarksPlugin::initialize(const QStringList & /*arguments*/, QString *) cmd = am->registerAction(sep, QLatin1String("Bookmarks.Sep.Toggle"), textcontext); mbm->addAction(cmd); - // Move Up - m_moveUpAction = new QAction(tr("Move Up"), this); - cmd = am->registerAction(m_moveUpAction, BOOKMARKS_MOVEUP_ACTION, context); - mbm->addAction(cmd); - - // Move Down - m_moveDownAction = new QAction(tr("Move Down"), this); - cmd = am->registerAction(m_moveDownAction, BOOKMARKS_MOVEDOWN_ACTION, context); - mbm->addAction(cmd); - - sep = new QAction(this); - sep->setSeparator(true); - cmd = am->registerAction(sep, QLatin1String("Bookmarks.Sep.Navigation"), context); - mbm->addAction(cmd); - //Previous m_prevAction = new QAction(tr("Previous Bookmark"), this); cmd = am->registerAction(m_prevAction, BOOKMARKS_PREV_ACTION, globalcontext); @@ -155,8 +140,6 @@ bool BookmarksPlugin::initialize(const QStringList & /*arguments*/, QString *) connect(m_nextAction, SIGNAL(triggered()), m_bookmarkManager, SLOT(next())); connect(m_docPrevAction, SIGNAL(triggered()), m_bookmarkManager, SLOT(prevInDocument())); connect(m_docNextAction, SIGNAL(triggered()), m_bookmarkManager, SLOT(nextInDocument())); - connect(m_moveUpAction, SIGNAL(triggered()), m_bookmarkManager, SLOT(moveUp())); - connect(m_moveDownAction, SIGNAL(triggered()), m_bookmarkManager, SLOT(moveDown())); connect(m_bookmarkManager, SIGNAL(updateActions(int)), this, SLOT(updateActions(int))); updateActions(m_bookmarkManager->state()); addAutoReleasedObject(new BookmarkViewFactory(m_bookmarkManager)); @@ -192,8 +175,6 @@ void BookmarksPlugin::updateActions(int state) m_nextAction->setEnabled(hasbm); m_docPrevAction->setEnabled(hasdocbm); m_docNextAction->setEnabled(hasdocbm); - m_moveUpAction->setEnabled(hasbm); - m_moveDownAction->setEnabled(hasbm); } void BookmarksPlugin::editorOpened(Core::IEditor *editor) diff --git a/src/plugins/bookmarks/bookmarksplugin.h b/src/plugins/bookmarks/bookmarksplugin.h index 3686dbec914..5a55e864333 100644 --- a/src/plugins/bookmarks/bookmarksplugin.h +++ b/src/plugins/bookmarks/bookmarksplugin.h @@ -85,8 +85,6 @@ private: QAction *m_nextAction; QAction *m_docPrevAction; QAction *m_docNextAction; - QAction *m_moveUpAction; - QAction *m_moveDownAction; QAction *m_bookmarkMarginAction; int m_bookmarkMarginActionLineNumber; -- GitLab