]> cloud.milkyroute.net Git - dolphin.git/commitdiff
remove revision-information entries when items got deleted in the model
authorPeter Penz <peter.penz19@gmail.com>
Fri, 17 Jul 2009 19:37:47 +0000 (19:37 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Fri, 17 Jul 2009 19:37:47 +0000 (19:37 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=998498

src/dolphinmodel.cpp
src/dolphinmodel.h

index f399c33048476980894e905d8cf5ac39e9b66be3..c5ea06a363b7bf05709bfdfae3515a6560fffbed 100644 (file)
@@ -70,7 +70,12 @@ bool DolphinModel::setData(const QModelIndex& index, const QVariant& value, int
         const QPersistentModelIndex key = index;
         const RevisionState state = static_cast<RevisionState>(value.toInt());
         if (m_revisionHash.value(key, LocalRevision) != state) {
-            m_hasRevisionData = true;
+            if (!m_hasRevisionData) {
+                connect(this, SIGNAL(rowsRemoved (const QModelIndex&, int, int)),
+                        this, SLOT(slotRowsRemoved(const QModelIndex&, int, int)));
+                m_hasRevisionData = true;
+            }
+
             m_revisionHash.insert(key, state);
             emit dataChanged(index, index);
             return true;
@@ -138,6 +143,16 @@ bool DolphinModel::hasRevisionData() const
     return m_hasRevisionData;
 }
 
+void DolphinModel::slotRowsRemoved(const QModelIndex& parent, int start, int end)
+{
+    Q_ASSERT(hasRevisionData());
+
+    const int column = parent.column();
+    for (int row = start; row <= end; ++row) {
+        m_revisionHash.remove(parent.child(row, column));
+    }
+}
+
 QVariant DolphinModel::displayRoleData(const QModelIndex& index) const
 {
     QString retString;
index 717f21d4e9de433993febccb40612b89365eae97..45fd1efa2c3a2fa3f804f53cb1705e57e9c8d2dc 100644 (file)
@@ -54,6 +54,9 @@ public:
 
     bool hasRevisionData() const;
 
+private slots:
+    void slotRowsRemoved(const QModelIndex& parent, int start, int end);
+
 private:
     QVariant displayRoleData(const QModelIndex& index) const;
     QVariant sortRoleData(const QModelIndex& index) const;