diff options
| author | Peter Penz <[email protected]> | 2007-11-18 13:24:43 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2007-11-18 13:24:43 +0000 |
| commit | 8ee3363dbcc4d2e9e9f89b2737d26fcea55653a7 (patch) | |
| tree | e913777c1cf6c1114e0754623fe77cd9d4bc00ff | |
| parent | afe7ee85836e824744dcab8b43f3999f1d6fa178 (diff) | |
fix crash for the following use case:
- open a view with no selection
- press SHIFT + right mouse-click on an item
- a context menu will be opened although no item has been selected -> assertion gets triggered later
svn path=/trunk/KDE/kdebase/apps/; revision=738255
| -rw-r--r-- | src/dolphincolumnwidget.cpp | 14 | ||||
| -rw-r--r-- | src/dolphindetailsview.cpp | 4 | ||||
| -rw-r--r-- | src/dolphiniconsview.cpp | 4 |
3 files changed, 14 insertions, 8 deletions
diff --git a/src/dolphincolumnwidget.cpp b/src/dolphincolumnwidget.cpp index 2dc3bc153..7681b8838 100644 --- a/src/dolphincolumnwidget.cpp +++ b/src/dolphincolumnwidget.cpp @@ -309,12 +309,14 @@ void DolphinColumnWidget::contextMenuEvent(QContextMenuEvent* event) QListView::contextMenuEvent(event); - const QModelIndex index = indexAt(event->pos()); - if (index.isValid() || m_active) { - // Only open a context menu above an item or if the mouse is above - // the active column. - const QPoint pos = m_view->viewport()->mapFromGlobal(event->globalPos()); - m_view->m_controller->triggerContextMenuRequest(pos); + if (selectionModel()->hasSelection()) { + const QModelIndex index = indexAt(event->pos()); + if (index.isValid() || m_active) { + // Only open a context menu above an item or if the mouse is above + // the active column. + const QPoint pos = m_view->viewport()->mapFromGlobal(event->globalPos()); + m_view->m_controller->triggerContextMenuRequest(pos); + } } } diff --git a/src/dolphindetailsview.cpp b/src/dolphindetailsview.cpp index f4bba2f03..9dd91b308 100644 --- a/src/dolphindetailsview.cpp +++ b/src/dolphindetailsview.cpp @@ -167,7 +167,9 @@ QStyleOptionViewItem DolphinDetailsView::viewOptions() const void DolphinDetailsView::contextMenuEvent(QContextMenuEvent* event) { QTreeView::contextMenuEvent(event); - m_controller->triggerContextMenuRequest(event->pos()); + if (selectionModel()->hasSelection()) { + m_controller->triggerContextMenuRequest(event->pos()); + } } void DolphinDetailsView::mousePressEvent(QMouseEvent* event) diff --git a/src/dolphiniconsview.cpp b/src/dolphiniconsview.cpp index 08ff9cf48..95ea011b0 100644 --- a/src/dolphiniconsview.cpp +++ b/src/dolphiniconsview.cpp @@ -162,7 +162,9 @@ QStyleOptionViewItem DolphinIconsView::viewOptions() const void DolphinIconsView::contextMenuEvent(QContextMenuEvent* event) { KCategorizedView::contextMenuEvent(event); - m_controller->triggerContextMenuRequest(event->pos()); + if (selectionModel()->hasSelection()) { + m_controller->triggerContextMenuRequest(event->pos()); + } } void DolphinIconsView::mousePressEvent(QMouseEvent* event) |
