From: Peter Penz Date: Sun, 18 Nov 2007 13:24:43 +0000 (+0000) Subject: fix crash for the following use case: X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/8ee3363dbcc4d2e9e9f89b2737d26fcea55653a7?ds=sidebyside 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 --- 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)