From 45f75ad2e9e9fffc730d2a99889be21fac9907e3 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Thu, 17 Jan 2013 19:05:20 +0100 Subject: Clean up BookmarkOwner API, restore bk middle click action BUG: 313127 --- src/bookmarks/bookmarkstoolbar.cpp | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) (limited to 'src/bookmarks/bookmarkstoolbar.cpp') diff --git a/src/bookmarks/bookmarkstoolbar.cpp b/src/bookmarks/bookmarkstoolbar.cpp index b025aa61..c570622f 100644 --- a/src/bookmarks/bookmarkstoolbar.cpp +++ b/src/bookmarks/bookmarkstoolbar.cpp @@ -543,17 +543,30 @@ bool BookmarkToolBar::eventFilter(QObject *watched, QEvent *event) int distance = (destPos - m_startDragPos).manhattanLength(); KBookmarkActionInterface *action = dynamic_cast(actionAt(destPos)); - if (action && action->bookmark().isGroup()) + if (action) { - if (mouseEvent->button() == Qt::MidButton) + if (action->bookmark().isGroup()) { - BookmarkManager::self()->owner()->openBookmarkFolder(action->bookmark()); + if (mouseEvent->button() == Qt::MidButton) + { + BookmarkManager::self()->owner()->loadBookmarkFolder(action->bookmark()); + } + else if (distance < QApplication::startDragDistance()) + { + KBookmarkActionMenu *menu = dynamic_cast(actionAt(m_startDragPos)); + QPoint actionPos = mapToGlobal(widgetForAction(menu)->pos()); + menu->menu()->popup(QPoint(actionPos.x(), actionPos.y() + widgetForAction(menu)->height())); + } } - else if (distance < QApplication::startDragDistance()) + else { - KBookmarkActionMenu *menu = dynamic_cast(actionAt(m_startDragPos)); - QPoint actionPos = mapToGlobal(widgetForAction(menu)->pos()); - menu->menu()->popup(QPoint(actionPos.x(), actionPos.y() + widgetForAction(menu)->height())); + if (!action->bookmark().isNull() && !action->bookmark().isSeparator()) + { + if (mouseEvent->button() == Qt::MidButton) + { + BookmarkManager::self()->owner()->loadBookmarkInNewTab(action->bookmark()); + } + } } } } -- cgit v1.2.1