[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: Re: Hidden KDED desktop file crashing systemsettings - where to fix?
From: Sebastian_Trüg <trueg () kde ! org>
Date: 2010-11-02 8:41:22
Message-ID: 4CCFCEB2.6090101 () kde ! org
[Download RAW message or body]
On 11/02/2010 09:26 AM, Jonathan Marten wrote:
> Dear all,
>
> Since it got committed to trunk a few days ago, the new activity
> manager (kdebase/runtime/activitymanager) crashes the "kcmkded"
> systemsettings module:
>
> ASSERT: "file.desktopGroup().readEntry("X-KDE-ServiceTypes") == "KDEDModule""
> in file /ws/trunk/kdebase/runtime/kcontrol/kded/kcmkded.cpp, line 190
>
> This seems to be because it installs a desktop file
> (share/kde4/services/kded/activitymanager.desktop) which contains
> only:
>
> [Desktop Entry]
> Hidden=true
>
> KDEDConfig::load() simply lists all the desktop files in the "kded"
> subdirectory - it does not check whether the desktop file is hidden,
> therefore hitting the assert later.
>
> So my question: where is the best place to fix this? Should it be:
>
> a) add the required (plus some dummy) entries to
> activitymanager.desktop, until its final version is in place. Just
> adding X-KDE-ServiceTypes=KDEDModule, though, fixes the assert but
> shows a blank service entry in the list.
>
> b) check for file.desktopGroup().readEntry("Hidden", false) just
> before the assert, and continue the loop if so.
>
> c) use a KServiceTypeTrader query (which hopefully ignores hidden
> desktop files) instead of listing them.
>
> Even if we say that (a) is the solution for this particular instance,
> it still leaves an unexpected catch in this systemsettings module
> (desktop files here cannot be hidden in the same way as others). So
> should one of (b) or (c) be implemented also?
c seems the correct solution here. Isn't that what the service type
trader is for anyway?
Cheers,
Sebastian
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic