]> cloud.milkyroute.net Git - dolphin.git/commitdiff
QListView might return a wrong x-position if the decoration size decreases. I tempora...
authorPeter Penz <peter.penz19@gmail.com>
Sat, 29 Mar 2008 19:40:26 +0000 (19:40 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Sat, 29 Mar 2008 19:40:26 +0000 (19:40 +0000)
CCMAIL: fredrik@kde.org

svn path=/trunk/KDE/kdebase/apps/; revision=791535

src/dolphiniconsview.cpp
src/dolphiniconsview.h

index da1784c312f96622a2156c8a4d6f57da4010c4e2..8178d062a9884e250658cc29ae833c8acb2866cc 100644 (file)
@@ -133,6 +133,25 @@ DolphinIconsView::~DolphinIconsView()
     m_categoryDrawer = 0;
 }
 
+QRect DolphinIconsView::visualRect(const QModelIndex& index) const
+{
+    QRect itemRect = KCategorizedView::visualRect(index);
+
+    KCategorizedSortFilterProxyModel* proxyModel = dynamic_cast<KCategorizedSortFilterProxyModel*>(model());
+    if ((flow() == QListView::LeftToRight) && !proxyModel->isCategorizedModel()) {
+        // TODO: QListView might return a wrong x-position if the decoration size decreases. This is bypassed
+        // by the following workaround...
+        const IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings();
+        const int margin = settings->gridSpacing();
+        const int gridWidth = gridSize().width();
+        const int gridIndex = (itemRect.left() - margin + 1) / gridWidth;
+        const int centerInc = (m_itemSize.width() - itemRect.width()) / 2;
+        itemRect.moveLeft((gridIndex * gridWidth) + margin + centerInc);
+    }
+
+    return itemRect;
+}
+
 QStyleOptionViewItem DolphinIconsView::viewOptions() const
 {
     QStyleOptionViewItem viewOptions = KCategorizedView::viewOptions();
index 01aac03f2f52f41dc39ecf32a5345dde76df6069..65d53ce7191583b18e6d1f785038a4f690e6cbcd 100644 (file)
@@ -47,6 +47,7 @@ class LIBDOLPHINPRIVATE_EXPORT DolphinIconsView : public KCategorizedView
 public:
     explicit DolphinIconsView(QWidget* parent, DolphinController* controller);
     virtual ~DolphinIconsView();
+    virtual QRect visualRect(const QModelIndex& index) const;
 
 protected:
     virtual QStyleOptionViewItem viewOptions() const;