Duplicate entries in ksycoca4

Pascal Létourneau pascal.letourneau at gmail.com
Wed Aug 29 20:44:48 BST 2007


On Saturday 25 August 2007 00:00:49 Allen Winter wrote:
>On Wednesday 15 August 2007 3:05:11 pm Pascal Létourneau wrote:
>> Hi
>> 
>> On my system, KStandardDirs::resourceDirs("applications") returns (among 
>> others)
>> /home/pletourn/kde/share/applications
>> 	coming from "KDEDIR" + "share/" + "applications"
>> /home/pletourn/kde/share/applications/kde4
>> 	coming from "XDG_APPS_INSTALL_DIR"
>> which cause duplicate apps entries in ksycoca4
>> 
>> With the included patch, installdir is no longer returned when it starts 
with 
>> one of the previous canditates
>> 
>> Is that an acceptable solution?
> 
>
>I wonder if this is why we have double and triple menu entries??
Yes

Pascal Létourneau

Index: kstandarddirs.cpp
===================================================================
--- kstandarddirs.cpp   (revision 706139)
+++ kstandarddirs.cpp   (working copy)
@@ -1117,8 +1117,17 @@ QStringList KStandardDirs::resourceDirs(

         // make sure we find the path where it's installed
         QString installdir = installPath( type );
-        if (!installdir.isEmpty() && !candidates.contains(installdir))
+        if (!installdir.isEmpty()) {
+            bool ok = true;
+            foreach (QString s, candidates) {
+                if (installdir.startsWith(s)) {
+                    ok = false;
+                    break;
+                }
+            }
+            if (ok)
             candidates.append(installdir);
+        }

         dirs = d->absolutes.value(type);
         if (!dirs.isEmpty())




More information about the kde-core-devel mailing list