<div dir="ltr">David,<div><br></div><div>Some thoughts on this.</div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Feb 1, 2015 at 7:20 AM, David Faure <span dir="ltr"><<a href="mailto:faure@kde.org" target="_blank">faure@kde.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Saturday 31 January 2015 19:28:21 Jeremy Whiting wrote:<br>
>  Another question that<br>
> might help clarify this, do Gnome/Unity, other linux desktop environments<br>
> use the cache kbuildsycoca creates when building their menus or is it<br>
> strictly used by plasma (or rather kickoff/kicker which is part of plasma)<br>
> itself?<br>
<br>
</span>Neither statement is correct.<br>
<br>
Gnome doesn't use ksycoca.<br>
Plasma menus use ksycoca.<br>
BUT also any KF5-based app needs ksycoca, so that e.g. when you click on a<br>
link to an image in, say, kmail, it knows how to find an image viewer and<br>
start it.<br>
<br>
kbuildsycoca generates ksycoca which is used by any app that needs to look up<br>
"which application can handle this mimetype" as well as "which<br>
part/component/plugin can provide this type of service (and handle this<br>
mimetype)".<br></blockquote><div><br></div><div>I can see the use case for kf5/qt5 based applications wanting to know what part/component/plugin can provide a service, but I'm not sure why they would need ksycoca for launching applications. OSX has LaunchServices (which I read about yesterday because I was curious how it worked) to decide which application to open when "open foo" is used at a terminal, or a file of a given mime type or a given extension is opened in Finder. Couldn't kf5/qt5 based applications on OSX just use that same mechanism for opening files in other applications? I.e. why wouldn't kmail on OS X use whatever the user has set as their default browser when opening http urls and whatever the user has chosen as their default image viewer when opening image file attachments (if they aren't using the embedded image viewer or kpart I guess)?</div><div><br></div><div>Basically, the big question is does ksycoca need  to scan all the .desktop files in $PREFIX/share/applications for kservice/kparts to work or is that only needed for opening files/urls in external applications? And if the latter can't we use the platform's own file/url handling (I would hope Qt's QDesktopServices::openUrl would do the "right thing" on osx for us here, but haven't tested it yet).</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
The latter is slowly migrating to a json-based plugin discovery in KF5, but<br>
for now many things still work like in kdelibs4, with desktop files describing<br>
parts/components/plugins, therefore ksycoca is needed.<br></blockquote><div><br></div><div>Ah, I guess that answers my question about kparts/plugins/components, so we need to get kbuildsycoca5 on osx to search in $PREFIX/share/applications through the .desktop files then I guess? Or does it only need to search in $PREFIX/share/kservices5 as that appears to be where kparts at least have their .desktop files.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I have long term plans to be able to do the application-lookup stuff without<br>
ksycoca, but these plans are progressing very slowly (one freedesktop meeting<br>
per year...).<br>
<span class=""><br>
> Are they required for kparts to work, or for KService/KServiceTypeTrader to<br>
> work?<br>
<br>
</span>The above answers this, for they == kbuildsycoca+kded.<br>
The part of "they" which points to kdeinit+klauncher is mostly unrelated. They<br>
are not needed for looking up stuff. They are optionally used for starting up<br>
stuff (at least a bit more "optionally" than in kdelibs4). They are however<br>
needed to start kioslaves - because of the feature to be able to put a slave<br>
on hold (after finding out the mimetype) and give it to another app.<br>
Can happen in the kmail->browser example, to avoid posting something twice.<br>
<div class="HOEnZb"><div class="h5"><br>
--<br>
David Faure, <a href="mailto:faure@kde.org">faure@kde.org</a>, <a href="http://www.davidfaure.fr" target="_blank">http://www.davidfaure.fr</a><br>
Working on KDE Frameworks 5<br>
<br>
</div></div></blockquote></div><br></div></div>