diff options
| author | Peter Penz <[email protected]> | 2012-05-09 15:49:14 +0200 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2012-05-09 15:50:54 +0200 |
| commit | 6150ac5d5d8e2d10a30381407cec550ff0aa392c (patch) | |
| tree | bfe220de710ea08b8a01b81a8f48e81d0c02bc53 /src/views/viewproperties.cpp | |
| parent | 9641672247fad1ce4aa0eb31631db40900884248 (diff) | |
Assure backward compatibility for the sort-role
Dolphin 2.1 uses "text" instead of "name" as default-role. Provide
backward compatibility with older .directory files and assure
that they get updated.
Diffstat (limited to 'src/views/viewproperties.cpp')
| -rw-r--r-- | src/views/viewproperties.cpp | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/src/views/viewproperties.cpp b/src/views/viewproperties.cpp index 8dadf4e49..3a9a2a370 100644 --- a/src/views/viewproperties.cpp +++ b/src/views/viewproperties.cpp @@ -177,6 +177,10 @@ void ViewProperties::setSortRole(const QByteArray& role) QByteArray ViewProperties::sortRole() const { + if (m_node->version() <= NameRolePropertiesVersion) { + const_cast<ViewProperties*>(this)->convertNameRoleToTextRole(); + } + return m_node->sortRole().toLatin1(); } @@ -270,9 +274,11 @@ QList<QByteArray> ViewProperties::visibleRoles() const if (visibleRoles.isEmpty() && version <= AdditionalInfoViewPropertiesVersion) { // Convert the obsolete additionalInfo-property from older versions into the // visibleRoles-property - visibleRoles = const_cast<ViewProperties*>(this)->convertAdditionalInfo(); + const_cast<ViewProperties*>(this)->convertAdditionalInfo(); + visibleRoles = m_node->visibleRoles(); } else if (version <= NameRolePropertiesVersion) { - visibleRoles = const_cast<ViewProperties*>(this)->convertNameRole(); + const_cast<ViewProperties*>(this)->convertNameRoleToTextRole(); + visibleRoles = m_node->visibleRoles(); } foreach (const QString& visibleRole, visibleRoles) { @@ -375,7 +381,7 @@ QString ViewProperties::viewModePrefix() const return prefix; } -QStringList ViewProperties::convertAdditionalInfo() +void ViewProperties::convertAdditionalInfo() { QStringList visibleRoles; @@ -404,11 +410,9 @@ QStringList ViewProperties::convertAdditionalInfo() m_node->setAdditionalInfo(QStringList()); m_node->setVisibleRoles(visibleRoles); update(); - - return visibleRoles; } -QStringList ViewProperties::convertNameRole() +void ViewProperties::convertNameRoleToTextRole() { QStringList visibleRoles = m_node->visibleRoles(); for (int i = 0; i < visibleRoles.count(); ++i) { @@ -418,13 +422,16 @@ QStringList ViewProperties::convertNameRole() } } + QString sortRole = m_node->sortRole(); + if (sortRole == QLatin1String("name")) { + sortRole = QLatin1String("text"); + } + m_node->setVisibleRoles(visibleRoles); + m_node->setSortRole(sortRole); update(); - - return visibleRoles; } - bool ViewProperties::isPartOfHome(const QString& filePath) { // For performance reasons cache the path in a static QString |
