X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/f5deeadebbb67b4b20eae13f55e0ef66f4127eea..d35964345eeeeaf261ecbd9679b752db6eb49e8f:/src/dolphindetailsview.cpp diff --git a/src/dolphindetailsview.cpp b/src/dolphindetailsview.cpp index 1bf5f75e0..476ed9a3b 100644 --- a/src/dolphindetailsview.cpp +++ b/src/dolphindetailsview.cpp @@ -171,6 +171,21 @@ QSet DolphinDetailsView::expandedUrls() const return m_expandedUrls; } +QRegion DolphinDetailsView::visualRegionForSelection(const QItemSelection &selection) const +{ + // We have to make sure that the visualRect of each model index is inside the region. + // QTreeView::visualRegionForSelection does not do it right because it assumes implicitly + // that all visualRects have the same width, which is in general not the case here. + QRegion selectionRegion; + const QModelIndexList indexes = selection.indexes(); + + foreach(const QModelIndex& index, indexes) { + selectionRegion += visualRect(index); + } + + return selectionRegion; +} + bool DolphinDetailsView::event(QEvent* event) { if (event->type() == QEvent::Polish) { @@ -185,6 +200,7 @@ QStyleOptionViewItem DolphinDetailsView::viewOptions() const { QStyleOptionViewItem viewOptions = QTreeView::viewOptions(); viewOptions.font = m_font; + viewOptions.fontMetrics = QFontMetrics(m_font); viewOptions.showDecorationSelected = true; viewOptions.decorationSize = m_decorationSize; return viewOptions;