[BookmarksSidebar] Enable only SingleSelection in sidebar

remotes/origin/falkon
nowrep 12 years ago
parent b826ebc52a
commit 5ad76995a2
  1. 19
      src/lib/bookmarks/bookmarkstreeview.cpp
  2. 3
      src/lib/bookmarks/bookmarkstreeview.h

@ -31,15 +31,12 @@ BookmarksTreeView::BookmarksTreeView(QWidget* parent)
, m_model(m_bookmarks->model()) , m_model(m_bookmarks->model())
, m_filter(new BookmarksFilterModel(m_model)) , m_filter(new BookmarksFilterModel(m_model))
, m_type(BookmarksManagerViewType) , m_type(BookmarksManagerViewType)
, m_buttons(Qt::NoButton)
, m_modifiers(Qt::NoModifier)
{ {
setModel(m_filter); setModel(m_filter);
setDragEnabled(true); setDragEnabled(true);
setAcceptDrops(true); setAcceptDrops(true);
setDropIndicatorShown(true); setDropIndicatorShown(true);
setAllColumnsShowFocus(true); setAllColumnsShowFocus(true);
setSelectionMode(QAbstractItemView::ExtendedSelection);
setContextMenuPolicy(Qt::CustomContextMenu); setContextMenuPolicy(Qt::CustomContextMenu);
setItemDelegate(new BookmarksItemDelegate(this)); setItemDelegate(new BookmarksItemDelegate(this));
header()->resizeSections(QHeaderView::ResizeToContents); header()->resizeSections(QHeaderView::ResizeToContents);
@ -65,11 +62,13 @@ void BookmarksTreeView::setViewType(BookmarksTreeView::ViewType type)
setColumnHidden(1, false); setColumnHidden(1, false);
setHeaderHidden(false); setHeaderHidden(false);
setMouseTracking(false); setMouseTracking(false);
setSelectionMode(QAbstractItemView::ExtendedSelection);
break; break;
case BookmarksSidebarViewType: case BookmarksSidebarViewType:
setColumnHidden(1, true); setColumnHidden(1, true);
setHeaderHidden(true); setHeaderHidden(true);
setMouseTracking(true); setMouseTracking(true);
setSelectionMode(QAbstractItemView::SingleSelection);
break; break;
default: default:
break; break;
@ -199,23 +198,20 @@ void BookmarksTreeView::mouseMoveEvent(QMouseEvent* event)
void BookmarksTreeView::mousePressEvent(QMouseEvent* event) void BookmarksTreeView::mousePressEvent(QMouseEvent* event)
{ {
m_buttons = event->buttons();
m_modifiers = event->modifiers();
QTreeView::mousePressEvent(event); QTreeView::mousePressEvent(event);
if (selectionModel()->selectedRows().count() == 1) { if (selectionModel()->selectedRows().count() == 1) {
QModelIndex index = indexAt(event->pos()); QModelIndex index = indexAt(event->pos());
Qt::MouseButtons buttons = event->buttons();
Qt::KeyboardModifiers modifiers = event->modifiers();
if (index.isValid()) { if (index.isValid()) {
BookmarkItem* item = m_model->item(m_filter->mapToSource(index)); BookmarkItem* item = m_model->item(m_filter->mapToSource(index));
Qt::MouseButtons buttons = event->buttons();
Qt::KeyboardModifiers modifiers = QApplication::keyboardModifiers();
if (buttons == Qt::LeftButton && modifiers == Qt::ShiftModifier) { if (buttons == Qt::LeftButton && modifiers == Qt::ShiftModifier) {
emit bookmarkShiftActivated(item); emit bookmarkShiftActivated(item);
} }
else if (buttons == Qt::MiddleButton || modifiers == Qt::ControlModifier) { else if (buttons == Qt::MiddleButton || (buttons == Qt::LeftButton && modifiers == Qt::ControlModifier)) {
emit bookmarkCtrlActivated(item); emit bookmarkCtrlActivated(item);
} }
} }
@ -233,14 +229,11 @@ void BookmarksTreeView::mouseReleaseEvent(QMouseEvent* event)
BookmarkItem* item = m_model->item(m_filter->mapToSource(index)); BookmarkItem* item = m_model->item(m_filter->mapToSource(index));
// Activate bookmarks with single mouse click in Sidebar // Activate bookmarks with single mouse click in Sidebar
if (m_type == BookmarksSidebarViewType && m_buttons == Qt::LeftButton && m_modifiers == Qt::NoModifier) { if (m_type == BookmarksSidebarViewType && event->button() == Qt::LeftButton && event->modifiers() == Qt::NoModifier) {
emit bookmarkActivated(item); emit bookmarkActivated(item);
} }
} }
} }
m_buttons = Qt::NoButton;
m_modifiers = Qt::NoModifier;
} }
void BookmarksTreeView::mouseDoubleClickEvent(QMouseEvent* event) void BookmarksTreeView::mouseDoubleClickEvent(QMouseEvent* event)

@ -87,9 +87,6 @@ private:
BookmarksModel* m_model; BookmarksModel* m_model;
BookmarksFilterModel* m_filter; BookmarksFilterModel* m_filter;
ViewType m_type; ViewType m_type;
Qt::MouseButtons m_buttons;
Qt::KeyboardModifiers m_modifiers;
}; };
#endif // BOOKMARKSTREEVIEW_H #endif // BOOKMARKSTREEVIEW_H

Loading…
Cancel
Save