X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/72f99574b407ff05bccd7069ec32c030623dc835..ffb232fdee7fdc40785c02811610a5fb13b64ff0:/src/selectionmanager.cpp diff --git a/src/selectionmanager.cpp b/src/selectionmanager.cpp index 1722bc3c5..dea4c1449 100644 --- a/src/selectionmanager.cpp +++ b/src/selectionmanager.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -62,7 +63,10 @@ void SelectionManager::reset() void SelectionManager::slotEntered(const QModelIndex& index) { m_toggle->hide(); - if (index.isValid() && (index.column() == DolphinModel::Name)) { + const bool showToggle = index.isValid() && + (index.column() == DolphinModel::Name) && + (QApplication::mouseButtons() == Qt::NoButton); + if (showToggle) { m_toggle->setUrl(urlForIndex(index)); if (!m_connected) { @@ -76,11 +80,17 @@ void SelectionManager::slotEntered(const QModelIndex& index) } const QRect rect = m_view->visualRect(index); - - const int gap = 2; - const int x = rect.left() + gap; - const int y = rect.top() + gap; - m_toggle->move(QPoint(x, y)); + m_toggle->move(QPoint(rect.left(), rect.top())); + + // increase the size of the toggle for large items + const int height = m_view->iconSize().height(); + if (height >= KIconLoader::SizeEnormous) { + m_toggle->resize(KIconLoader::SizeMedium, KIconLoader::SizeMedium); + } else if (height >= KIconLoader::SizeLarge) { + m_toggle->resize(KIconLoader::SizeSmallMedium, KIconLoader::SizeSmallMedium); + } else { + m_toggle->resize(KIconLoader::SizeSmall, KIconLoader::SizeSmall); + } QItemSelectionModel* selModel = m_view->selectionModel(); m_toggle->setChecked(selModel->isSelected(index));