[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Re: Duplicate entries in ksycoca4
From:       Pascal =?iso-8859-1?q?L=E9tourneau?= <pascal.letourneau () gmail ! com>
Date:       2007-08-29 19:44:48
Message-ID: 200708291544.48251.pascal.letourneau () gmail ! com
[Download RAW message or body]

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())

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic