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