aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-paths.patch
blob: 3ced15e7e5a4447497b0789094c2f9009c2c008d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
From e68d983a6befd223087916cb3fe31baee77decc4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
Date: Sun, 12 May 2019 08:50:07 -0300
Subject: [PATCH 1/2] Use qt library to determine where to look for application
 files

---
 dde-file-manager-lib/shutil/fileutils.cpp     | 34 ++++++++++++-------
 .../shutil/mimesappsmanager.cpp               | 11 ++----
 2 files changed, 25 insertions(+), 20 deletions(-)

diff --git a/dde-file-manager-lib/shutil/fileutils.cpp b/dde-file-manager-lib/shutil/fileutils.cpp
index ae8120d3..d6a0573a 100644
--- a/dde-file-manager-lib/shutil/fileutils.cpp
+++ b/dde-file-manager-lib/shutil/fileutils.cpp
@@ -242,13 +242,19 @@ bool FileUtils::isArchive(const QString &path)
  */
 QStringList FileUtils::getApplicationNames() {
   QStringList appNames;
-  QDirIterator it("/usr/share/applications", QStringList("*.desktop"),
-                  QDir::Files | QDir::NoDotAndDotDot,
-                  QDirIterator::Subdirectories);
-  while (it.hasNext()) {
-    it.next();
-    appNames.append(it.fileName());
+
+  const QStringList desktopDirs = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
+  qDebug() << "dde-file-manager getApplicationNames desktopDirs:" << desktopDirs;
+  for (const QString &dir : desktopDirs) {
+    QDirIterator it(dir, QStringList("*.desktop"),
+                    QDir::Files | QDir::NoDotAndDotDot,
+                    QDirIterator::Subdirectories);
+    while (it.hasNext()) {
+      it.next();
+      appNames.append(it.fileName());
+    }
   }
+  
   return appNames;
 }
 //---------------------------------------------------------------------------
@@ -259,12 +265,16 @@ QStringList FileUtils::getApplicationNames() {
  */
 QList<DesktopFile> FileUtils::getApplications() {
   QList<DesktopFile> apps;
-  QDirIterator it("/usr/share/applications", QStringList("*.desktop"),
-                  QDir::Files | QDir::NoDotAndDotDot,
-                  QDirIterator::Subdirectories);
-  while (it.hasNext()) {
-    it.next();
-    apps.append(DesktopFile(it.filePath()));
+  const QStringList desktopDirs = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
+  qDebug() << "dde-file-manager getApplications desktopDirs:" << desktopDirs;
+  for (const QString &dir : desktopDirs) {
+    QDirIterator it(dir, QStringList("*.desktop"),
+                    QDir::Files | QDir::NoDotAndDotDot,
+                    QDirIterator::Subdirectories);
+    while (it.hasNext()) {
+      it.next();
+      apps.append(DesktopFile(it.filePath()));
+    }
   }
   return apps;
 }
diff --git a/dde-file-manager-lib/shutil/mimesappsmanager.cpp b/dde-file-manager-lib/shutil/mimesappsmanager.cpp
index c6149702..c9e53630 100644
--- a/dde-file-manager-lib/shutil/mimesappsmanager.cpp
+++ b/dde-file-manager-lib/shutil/mimesappsmanager.cpp
@@ -542,14 +542,9 @@ QStringList MimesAppsManager::getrecommendedAppsFromMimeWhiteList(const DUrl &ur
 
 QStringList MimesAppsManager::getApplicationsFolders()
 {
-    QStringList desktopFolders;
-    desktopFolders << QString("/usr/share/applications/")
-                   << QString("/usr/local/share/applications/")
-                   << QString("/usr/share/gnome/applications/")
-                   << QString("/var/lib/flatpak/exports/share/applications")
-                   << QDir::homePath() + QString("/.local/share/flatpak/exports/share/applications")
-                   << QDir::homePath() + QString( "/.local/share/applications" );
-    return desktopFolders;
+    QStringList paths = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
+    qDebug() << "dde-file-manager getApplicationsFolders:" << paths;
+    return paths;
 }
 
 QString MimesAppsManager::getMimeAppsCacheFile()
-- 
2.21.0