diff options
| author | Peter Penz <[email protected]> | 2009-05-08 17:08:55 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2009-05-08 17:08:55 +0000 |
| commit | 7d67adcadf879f7975144f03e909cad2e023933c (patch) | |
| tree | 70e3829508186824a5d619705aecc7714cefe139 /src | |
| parent | 5f548d210e735b713d847525cb3e62140f9e6f4d (diff) | |
If the item height is nearly equal to the toggle height, center the toggle vertically instead of aligning it on the top. This assures a better alignment especially for the details and column view when working with a height of ~20 pixels.
svn path=/trunk/KDE/kdebase/apps/; revision=965352
Diffstat (limited to 'src')
| -rw-r--r-- | src/selectionmanager.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/selectionmanager.cpp b/src/selectionmanager.cpp index dea4c1449..0d3efae09 100644 --- a/src/selectionmanager.cpp +++ b/src/selectionmanager.cpp @@ -79,9 +79,6 @@ void SelectionManager::slotEntered(const QModelIndex& index) m_connected = true; } - const QRect rect = m_view->visualRect(index); - 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) { @@ -92,6 +89,18 @@ void SelectionManager::slotEntered(const QModelIndex& index) 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(); |
