X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/b8fa103e8a7e9942f472f6e5c931a0db31263568..233a08164f79d9909693c5de438f856467ad5b76:/src/selectionmanager.cpp diff --git a/src/selectionmanager.cpp b/src/selectionmanager.cpp index 129e7e2ca..0d3efae09 100644 --- a/src/selectionmanager.cpp +++ b/src/selectionmanager.cpp @@ -79,23 +79,28 @@ void SelectionManager::slotEntered(const QModelIndex& index) m_connected = true; } - const QRect rect = m_view->visualRect(index); - - // align the toggle on the bottom left of the item - const int gap = 2; - const int x = rect.left() + gap; - const int y = rect.top() + gap; - m_toggle->move(QPoint(x, y)); - // increase the size of the toggle for large items - if (rect.height() >= KIconLoader::SizeEnormous) { + const int height = m_view->iconSize().height(); + if (height >= KIconLoader::SizeEnormous) { m_toggle->resize(KIconLoader::SizeMedium, KIconLoader::SizeMedium); - } else if (rect.height() >= KIconLoader::SizeHuge) { + } else if (height >= KIconLoader::SizeLarge) { m_toggle->resize(KIconLoader::SizeSmallMedium, KIconLoader::SizeSmallMedium); } else { m_toggle->resize(KIconLoader::SizeSmall, KIconLoader::SizeSmall); } + const QRect rect = m_view->visualRect(index); + int x = rect.left(); + int y = rect.top(); + if (height < KIconLoader::SizeSmallMedium) { + // The height is nearly equal to the smallest toggle height. + // Assure that the toggle is vertically centered instead + // of aligned on the top and gets more horizontal gap. + x += 2; + y += (rect.height() - m_toggle->height()) / 2; + } + m_toggle->move(QPoint(x, y)); + QItemSelectionModel* selModel = m_view->selectionModel(); m_toggle->setChecked(selModel->isSelected(index)); m_toggle->show();