// TODO: remove data again when items are deleted...
const QPersistentModelIndex key = index;
- const RevisionState state = static_cast<RevisionState>(value.toInt());
- if (m_revisionHash.value(key, LocalRevision) != state) {
- m_hasRevisionData = true;
+ const RevisionControlPlugin::RevisionState state = static_cast<RevisionControlPlugin::RevisionState>(value.toInt());
+ if (m_revisionHash.value(key, RevisionControlPlugin::UnversionedRevision) != state) {
+ 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;
case Qt::DecorationRole:
if (index.column() == DolphinModel::Revision) {
- return m_revisionHash.value(index, LocalRevision);
+ return m_revisionHash.value(index, RevisionControlPlugin::UnversionedRevision);
}
break;
case Qt::DisplayRole:
if (index.column() == DolphinModel::Revision) {
- switch (m_revisionHash.value(index, LocalRevision)) {
- case LatestRevision:
- return i18nc("@item::intable", "Latest");
-
- case LocalRevision:
+ switch (m_revisionHash.value(index, RevisionControlPlugin::UnversionedRevision)) {
+ case RevisionControlPlugin::NormalRevision:
+ return i18nc("@item::intable", "Normal");
+ case RevisionControlPlugin::UpdateRequiredRevision:
+ return i18nc("@item::intable", "Update required");
+ case RevisionControlPlugin::LocallyModifiedRevision:
+ return i18nc("@item::intable", "Locally modified");
+ case RevisionControlPlugin::AddedRevision:
+ return i18nc("@item::intable", "Added");
+ case RevisionControlPlugin::RemovedRevision:
+ return i18nc("@item::intable", "Removed");
+ case RevisionControlPlugin::ConflictingRevision:
+ return i18nc("@item::intable", "Conflicting");
+ case RevisionControlPlugin::UnversionedRevision:
default:
- return i18nc("@item::intable", "Local");
+ return i18nc("@item::intable", "Unversioned");
}
}
break;
return KDirModel::columnCount(parent) + (ExtraColumnCount - ColumnCount);
}
+void DolphinModel::clearRevisionData()
+{
+ m_revisionHash.clear();
+ m_hasRevisionData = false;
+}
+
bool DolphinModel::hasRevisionData() const
{
return m_hasRevisionData;
}
+void DolphinModel::slotRowsRemoved(const QModelIndex& parent, int start, int end)
+{
+ if (m_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;