Help: Clean up bookmarks widget

Remove unused buttons, and unify style with other views (e.g. no focus
rect on OS X) by using the common navigation tree view class.

Change-Id: I51ce1806507e45077bcbf6b8589585bb15eae712
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
This commit is contained in:
Eike Ziller
2014-10-09 17:07:35 +02:00
committed by Eike Ziller
parent 46dfd21ce5
commit 5cf2972345
4 changed files with 16 additions and 59 deletions

View File

@@ -325,7 +325,7 @@ void HelpPlugin::setupUi()
shortcutMap.insert(searchItem->id(), cmd); shortcutMap.insert(searchItem->id(), cmd);
BookmarkManager *manager = &LocalHelpManager::bookmarkManager(); BookmarkManager *manager = &LocalHelpManager::bookmarkManager();
BookmarkWidget *bookmarkWidget = new BookmarkWidget(manager, 0, false); BookmarkWidget *bookmarkWidget = new BookmarkWidget(manager);
bookmarkWidget->setWindowTitle(tr(Constants::SB_BOOKMARKS)); bookmarkWidget->setWindowTitle(tr(Constants::SB_BOOKMARKS));
auto bookmarkItem = new SideBarItem(bookmarkWidget, QLatin1String(Constants::HELP_BOOKMARKS)); auto bookmarkItem = new SideBarItem(bookmarkWidget, QLatin1String(Constants::HELP_BOOKMARKS));
connect(bookmarkWidget, SIGNAL(linkActivated(QUrl)), m_centralWidget, connect(bookmarkWidget, SIGNAL(linkActivated(QUrl)), m_centralWidget,

View File

@@ -297,7 +297,7 @@ void HelpWidget::addSideBar()
: tr("Ctrl+Shift+I"))); : tr("Ctrl+Shift+I")));
shortcutMap.insert(QLatin1String(Constants::HELP_INDEX), cmd); shortcutMap.insert(QLatin1String(Constants::HELP_INDEX), cmd);
auto bookmarkWidget = new BookmarkWidget(&LocalHelpManager::bookmarkManager(), 0, false); auto bookmarkWidget = new BookmarkWidget(&LocalHelpManager::bookmarkManager());
bookmarkWidget->setWindowTitle(tr(Constants::SB_BOOKMARKS)); bookmarkWidget->setWindowTitle(tr(Constants::SB_BOOKMARKS));
bookmarkWidget->setOpenInNewPageActionVisible(false); bookmarkWidget->setOpenInNewPageActionVisible(false);
auto bookmarkItem = new Core::SideBarItem(bookmarkWidget, auto bookmarkItem = new Core::SideBarItem(bookmarkWidget,

View File

@@ -296,15 +296,12 @@ bool BookmarkDialog::eventFilter(QObject *object, QEvent *e)
// #pragma mark -- BookmarkWidget // #pragma mark -- BookmarkWidget
BookmarkWidget::BookmarkWidget(BookmarkManager *manager, QWidget *parent, BookmarkWidget::BookmarkWidget(BookmarkManager *manager, QWidget *parent)
bool showButtons)
: QWidget(parent) : QWidget(parent)
, addButton(0)
, removeButton(0)
, bookmarkManager(manager) , bookmarkManager(manager)
, m_isOpenInNewPageActionVisible(true) , m_isOpenInNewPageActionVisible(true)
{ {
setup(showButtons); setup();
installEventFilter(this); installEventFilter(this);
} }
@@ -337,12 +334,6 @@ void BookmarkWidget::filterChanged()
filterBookmarkModel->setSourceModel(bookmarkManager->treeBookmarkModel()); filterBookmarkModel->setSourceModel(bookmarkManager->treeBookmarkModel());
} }
if (addButton)
addButton->setEnabled(searchBookmarks);
if (removeButton)
removeButton->setEnabled(searchBookmarks);
filterBookmarkModel->setFilterRegExp(regExp); filterBookmarkModel->setFilterRegExp(regExp);
const QModelIndex &index = treeView->indexAt(QPoint(1, 1)); const QModelIndex &index = treeView->indexAt(QPoint(1, 1));
@@ -422,7 +413,7 @@ void BookmarkWidget::customContextMenuRequested(const QPoint &point)
} }
} }
void BookmarkWidget::setup(bool showButtons) void BookmarkWidget::setup()
{ {
regExp.setPatternSyntax(QRegExp::FixedString); regExp.setPatternSyntax(QRegExp::FixedString);
regExp.setCaseSensitivity(Qt::CaseInsensitive); regExp.setCaseSensitivity(Qt::CaseInsensitive);
@@ -449,40 +440,8 @@ void BookmarkWidget::setup(bool showButtons)
SLOT(filterChanged())); SLOT(filterChanged()));
treeView = new TreeView(this); treeView = new TreeView(this);
treeView->setFrameStyle(QFrame::NoFrame);
vlayout->addWidget(treeView); vlayout->addWidget(treeView);
#ifdef Q_OS_MAC
# define SYSTEM "mac"
#else
# define SYSTEM "win"
#endif
if (showButtons) {
QLayout *hlayout = new QHBoxLayout();
vlayout->addItem(hlayout);
hlayout->addItem(new QSpacerItem(40, 20, QSizePolicy::Expanding));
addButton = new QToolButton(this);
addButton->setText(tr("Add"));
addButton->setIcon(QIcon(QLatin1String(":/trolltech/assistant/images/"
SYSTEM "/addtab.png")));
addButton->setAutoRaise(true);
addButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
hlayout->addWidget(addButton);
connect(addButton, SIGNAL(clicked()), this, SIGNAL(addBookmark()));
removeButton = new QToolButton(this);
removeButton->setText(tr("Remove"));
removeButton->setIcon(QIcon(QLatin1String(":/trolltech/assistant/images/"
SYSTEM "/closetab.png")));
removeButton->setAutoRaise(true);
removeButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
hlayout->addWidget(removeButton);
connect(removeButton, SIGNAL(clicked()), this, SLOT(removeClicked()));
}
filterBookmarkModel = new QSortFilterProxyModel(this); filterBookmarkModel = new QSortFilterProxyModel(this);
treeView->setModel(filterBookmarkModel); treeView->setModel(filterBookmarkModel);
@@ -490,7 +449,6 @@ void BookmarkWidget::setup(bool showButtons)
treeView->setAcceptDrops(true); treeView->setAcceptDrops(true);
treeView->setAutoExpandDelay(1000); treeView->setAutoExpandDelay(1000);
treeView->setDropIndicatorShown(true); treeView->setDropIndicatorShown(true);
treeView->header()->setVisible(false);
treeView->viewport()->installEventFilter(this); treeView->viewport()->installEventFilter(this);
treeView->setContextMenuPolicy(Qt::CustomContextMenu); treeView->setContextMenuPolicy(Qt::CustomContextMenu);
@@ -545,13 +503,13 @@ bool BookmarkWidget::eventFilter(QObject *object, QEvent *e)
switch (ke->key()) { switch (ke->key()) {
default: break; default: break;
case Qt::Key_Up: { case Qt::Key_Up:
case Qt::Key_Down: case Qt::Key_Down: {
treeView->subclassKeyPressEvent(ke); treeView->subclassKeyPressEvent(ke);
} break; } break;
case Qt::Key_Enter: { case Qt::Key_Enter:
case Qt::Key_Return: case Qt::Key_Return: {
index = treeView->selectionModel()->currentIndex(); index = treeView->selectionModel()->currentIndex();
if (index.isValid()) { if (index.isValid()) {
QString data = index.data(Qt::UserRole + 10).toString(); QString data = index.data(Qt::UserRole + 10).toString();

View File

@@ -32,6 +32,8 @@
#include "ui_bookmarkdialog.h" #include "ui_bookmarkdialog.h"
#include <utils/navigationtreeview.h>
#include <QUrl> #include <QUrl>
#include <QObject> #include <QObject>
#include <QString> #include <QString>
@@ -92,15 +94,15 @@ private:
QSortFilterProxyModel *proxyModel; QSortFilterProxyModel *proxyModel;
}; };
class TreeView : public QTreeView class TreeView : public Utils::NavigationTreeView
{ {
Q_OBJECT Q_OBJECT
public: public:
TreeView(QWidget* parent = 0) : QTreeView(parent) {} TreeView(QWidget* parent = 0) : Utils::NavigationTreeView(parent) {}
void subclassKeyPressEvent(QKeyEvent* event) void subclassKeyPressEvent(QKeyEvent* event)
{ {
QTreeView::keyPressEvent(event); Utils::NavigationTreeView::keyPressEvent(event);
} }
}; };
@@ -109,8 +111,7 @@ class BookmarkWidget : public QWidget
Q_OBJECT Q_OBJECT
public: public:
explicit BookmarkWidget(BookmarkManager *manager, QWidget *parent = 0, explicit BookmarkWidget(BookmarkManager *manager, QWidget *parent = 0);
bool showButtons = true);
~BookmarkWidget(); ~BookmarkWidget();
void setOpenInNewPageActionVisible(bool visible); void setOpenInNewPageActionVisible(bool visible);
@@ -128,7 +129,7 @@ private slots:
void customContextMenuRequested(const QPoint &point); void customContextMenuRequested(const QPoint &point);
private: private:
void setup(bool showButtons); void setup();
void expandItems(); void expandItems();
bool eventFilter(QObject *object, QEvent *event); bool eventFilter(QObject *object, QEvent *event);
@@ -136,8 +137,6 @@ private:
QRegExp regExp; QRegExp regExp;
TreeView *treeView; TreeView *treeView;
Utils::FancyLineEdit *searchField; Utils::FancyLineEdit *searchField;
QToolButton *addButton;
QToolButton *removeButton;
BookmarkManager *bookmarkManager; BookmarkManager *bookmarkManager;
QSortFilterProxyModel* filterBookmarkModel; QSortFilterProxyModel* filterBookmarkModel;
bool m_isOpenInNewPageActionVisible; bool m_isOpenInNewPageActionVisible;