X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/7f96282e41012a367b956f8a36758c32c51767c8..727fd64e121f97b32d645e2fb26c4e93c413a849:/src/views/viewproperties.cpp diff --git a/src/views/viewproperties.cpp b/src/views/viewproperties.cpp index 8dadf4e49..125ac749e 100644 --- a/src/views/viewproperties.cpp +++ b/src/views/viewproperties.cpp @@ -42,6 +42,9 @@ namespace { // the details view as customized by the user. See // ViewProperties::visibleRoles() for more information. const char* CustomizedDetailsString = "CustomizedDetails"; + + // Filename that is used for storing the properties + const char* ViewPropertiesFileName = ".directory"; } ViewProperties::ViewProperties(const KUrl& url) : @@ -78,13 +81,13 @@ ViewProperties::ViewProperties(const KUrl& url) : m_filePath = destinationDir("remote") + m_filePath; } - const QString file = m_filePath + QDir::separator() + QLatin1String(".directory"); + const QString file = m_filePath + QDir::separator() + ViewPropertiesFileName; m_node = new ViewPropertySettings(KSharedConfig::openConfig(file)); // If the .directory file does not exist or the timestamp is too old, // use default values instead. const bool useDefaultProps = (!useGlobalViewProps || useDetailsViewWithPath) && - (!QFileInfo(file).exists() || + (!QFile::exists(file) || (m_node->timestamp() < settings->viewPropsTimestamp())); if (useDefaultProps) { if (useDetailsViewWithPath) { @@ -177,6 +180,10 @@ void ViewProperties::setSortRole(const QByteArray& role) QByteArray ViewProperties::sortRole() const { + if (m_node->version() <= NameRolePropertiesVersion) { + const_cast(this)->convertNameRoleToTextRole(); + } + return m_node->sortRole().toLatin1(); } @@ -270,9 +277,11 @@ QList ViewProperties::visibleRoles() const if (visibleRoles.isEmpty() && version <= AdditionalInfoViewPropertiesVersion) { // Convert the obsolete additionalInfo-property from older versions into the // visibleRoles-property - visibleRoles = const_cast(this)->convertAdditionalInfo(); + const_cast(this)->convertAdditionalInfo(); + visibleRoles = m_node->visibleRoles(); } else if (version <= NameRolePropertiesVersion) { - visibleRoles = const_cast(this)->convertNameRole(); + const_cast(this)->convertNameRoleToTextRole(); + visibleRoles = m_node->visibleRoles(); } foreach (const QString& visibleRole, visibleRoles) { @@ -347,11 +356,10 @@ void ViewProperties::save() m_changedProps = false; } -KUrl ViewProperties::mirroredDirectory() +bool ViewProperties::exist() const { - QString basePath = KGlobal::mainComponent().componentName(); - basePath.append("/view_properties/"); - return KUrl(KStandardDirs::locateLocal("data", basePath)); + const QString file = m_filePath + QDir::separator() + ViewPropertiesFileName; + return QFile::exists(file); } QString ViewProperties::destinationDir(const QString& subDir) const @@ -375,7 +383,7 @@ QString ViewProperties::viewModePrefix() const return prefix; } -QStringList ViewProperties::convertAdditionalInfo() +void ViewProperties::convertAdditionalInfo() { QStringList visibleRoles; @@ -404,11 +412,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 +424,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 @@ -446,3 +455,10 @@ QString ViewProperties::directoryHashForUrl(const KUrl& url) hashString.replace('/', '-'); return hashString; } + +KUrl ViewProperties::mirroredDirectory() +{ + QString basePath = KGlobal::mainComponent().componentName(); + basePath.append("/view_properties/"); + return KUrl(KStandardDirs::locateLocal("data", basePath)); +}