X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/fd1a078cc4f5375c856ec49e05c0a33099db8861..a058c64eba30f11bfa87ac097371c04437d0471e:/src/views/viewproperties.cpp diff --git a/src/views/viewproperties.cpp b/src/views/viewproperties.cpp index e056e25e3..e5f3a82c4 100644 --- a/src/views/viewproperties.cpp +++ b/src/views/viewproperties.cpp @@ -26,6 +26,8 @@ #include +#include + namespace { const int AdditionalInfoViewPropertiesVersion = 1; const int NameRolePropertiesVersion = 2; @@ -49,22 +51,32 @@ ViewProperties::ViewProperties(const QUrl& url) : GeneralSettings* settings = GeneralSettings::self(); const bool useGlobalViewProps = settings->globalViewProps() || url.isEmpty(); bool useDetailsViewWithPath = false; + bool useRecentDocumentsView = false; + bool useDownloadsView = false; // We try and save it to the file .directory in the directory being viewed. // If the directory is not writable by the user or the directory is not local, // we store the properties information in a local file. if (useGlobalViewProps) { m_filePath = destinationDir(QStringLiteral("global")); - } else if (url.scheme().contains(QStringLiteral("search"))) { + } else if (url.scheme().contains(QLatin1String("search"))) { m_filePath = destinationDir(QStringLiteral("search/")) + directoryHashForUrl(url); useDetailsViewWithPath = true; } else if (url.scheme() == QLatin1String("trash")) { m_filePath = destinationDir(QStringLiteral("trash")); useDetailsViewWithPath = true; + } else if (url.scheme() == QLatin1String("recentdocuments")) { + m_filePath = destinationDir(QStringLiteral("recentdocuments")); + useRecentDocumentsView = true; } else if (url.isLocalFile()) { m_filePath = url.toLocalFile(); bool useDestinationDir = !isPartOfHome(m_filePath); + if (!useDestinationDir) { + const KFileItem fileItem(url); + useDestinationDir = fileItem.isSlow(); + } + if (!useDestinationDir) { const QFileInfo dirInfo(m_filePath); const QFileInfo fileInfo(m_filePath + QDir::separator() + ViewPropertiesFileName); @@ -78,6 +90,10 @@ ViewProperties::ViewProperties(const QUrl& url) : #endif m_filePath = destinationDir(QStringLiteral("local")) + m_filePath; } + + if (m_filePath == QStandardPaths::writableLocation(QStandardPaths::DownloadLocation)) { + useDownloadsView = true; + } } else { m_filePath = destinationDir(QStringLiteral("remote")) + m_filePath; } @@ -94,6 +110,17 @@ ViewProperties::ViewProperties(const QUrl& url) : if (useDetailsViewWithPath) { setViewMode(DolphinView::DetailsView); setVisibleRoles({"path"}); + } else if (useRecentDocumentsView || useDownloadsView) { + setSortRole(QByteArrayLiteral("modificationtime")); + setSortOrder(Qt::DescendingOrder); + + if (useRecentDocumentsView) { + setViewMode(DolphinView::DetailsView); + setVisibleRoles({QByteArrayLiteral("path")}); + } else if (useDownloadsView) { + setSortFoldersFirst(false); + setGroupedSorting(true); + } } else { // The global view-properties act as default for directories without // any view-property configuration. Constructing a ViewProperties