From be629fe8501941138da849cf1179ad67cd5570cb Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Thu, 8 Sep 2011 18:57:52 +0200 Subject: Version control: Apply text-color if an item is versioned --- src/kitemviews/kfileitemlistwidget.cpp | 8 +++++--- src/kitemviews/kfileitemmodel.cpp | 19 ++++++++++++++----- src/kitemviews/kfileitemmodel.h | 9 ++++++++- 3 files changed, 27 insertions(+), 9 deletions(-) (limited to 'src/kitemviews') diff --git a/src/kitemviews/kfileitemlistwidget.cpp b/src/kitemviews/kfileitemlistwidget.cpp index 8cd124437..8078d0d4d 100644 --- a/src/kitemviews/kfileitemlistwidget.cpp +++ b/src/kitemviews/kfileitemlistwidget.cpp @@ -168,12 +168,14 @@ void KFileItemListWidget::setTextColor(const QColor& color) } else { *m_customTextColor = color; } - } else { + updateAdditionalInfoTextColor(); + update(); + } else if (m_customTextColor){ delete m_customTextColor; m_customTextColor = 0; + updateAdditionalInfoTextColor(); + update(); } - updateAdditionalInfoTextColor(); - update(); } QColor KFileItemListWidget::textColor() const diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp index 2a52de986..9de99d8de 100644 --- a/src/kitemviews/kfileitemmodel.cpp +++ b/src/kitemviews/kfileitemmodel.cpp @@ -204,13 +204,22 @@ KFileItem KFileItemModel::fileItem(int index) const return KFileItem(); } +KFileItem KFileItemModel::fileItem(const KUrl& url) const +{ + const int index = m_items.value(url, -1); + if (index >= 0) { + return m_sortedItems.at(index); + } + return KFileItem(); +} + int KFileItemModel::index(const KFileItem& item) const { if (item.isNull()) { return -1; } - return m_items.value(item, -1); + return m_items.value(item.url(), -1); } KUrl KFileItemModel::rootDirectory() const @@ -360,7 +369,7 @@ void KFileItemModel::onSortRoleChanged(const QByteArray& current, const QByteArr int index = 0; foreach (const KFileItem& item, sortedItems) { m_sortedItems.append(item); - m_items.insert(item, index); + m_items.insert(item.url(), index); m_data.append(retrieveData(item)); ++index; @@ -504,7 +513,7 @@ void KFileItemModel::insertItems(const KFileItemList& items) // The indexes of all m_items must be adjusted, not only the index // of the new items for (int i = 0; i < m_sortedItems.count(); ++i) { - m_items.insert(m_sortedItems.at(i), i); + m_items.insert(m_sortedItems.at(i).url(), i); } itemRanges << KItemRange(insertedAtIndex, insertedCount); @@ -566,7 +575,7 @@ void KFileItemModel::removeItems(const KFileItemList& items) // Delete the items for (int i = indexesToRemove.count() - 1; i >= 0; --i) { const int indexToRemove = indexesToRemove.at(i); - m_items.remove(m_sortedItems.at(indexToRemove)); + m_items.remove(m_sortedItems.at(indexToRemove).url()); m_sortedItems.removeAt(indexToRemove); m_data.removeAt(indexToRemove); } @@ -574,7 +583,7 @@ void KFileItemModel::removeItems(const KFileItemList& items) // The indexes of all m_items must be adjusted, not only the index // of the removed items for (int i = 0; i < m_sortedItems.count(); ++i) { - m_items.insert(m_sortedItems.at(i), i); + m_items.insert(m_sortedItems.at(i).url(), i); } if (count() <= 0) { diff --git a/src/kitemviews/kfileitemmodel.h b/src/kitemviews/kfileitemmodel.h index 189c50846..1b7c8bdca 100644 --- a/src/kitemviews/kfileitemmodel.h +++ b/src/kitemviews/kfileitemmodel.h @@ -82,6 +82,13 @@ public: */ KFileItem fileItem(int index) const; + /** + * @return The file-item for the url \a url. If no file-item with the given + * URL is found KFileItem::isNull() will be true for the returned + * file-item. The runtime complexity of this call is O(1). + */ + KFileItem fileItem(const KUrl& url) const; + /** * @return The index for the file-item \a item. -1 is returned if no file-item * is found or if the file-item is null. The runtime @@ -183,7 +190,7 @@ private: Qt::CaseSensitivity m_caseSensitivity; KFileItemList m_sortedItems; // Allows O(1) access for KFileItemModel::fileItem(int index) - QHash m_items; // Allows O(1) access for KFileItemModel::index(const KFileItem& item) + QHash m_items; // Allows O(1) access for KFileItemModel::index(const KFileItem& item) QList > m_data; bool m_requestRole[RolesCount]; -- cgit v1.3