Hi Martin, On Fri, Mar 25, 2011 at 2:55 PM, Martin Pitt <[email protected]> wrote: > > > Just for the record I would like to explain the approach that we have > had in Ubuntu since December 09. It might not be too useful any more, > but can perhaps at least give some pointers. Vincent didn't like it > too much back then, and rightly said that it should be implemented > using GVariant, but we never got around to this as the current system > actually works quite well (and it also dropped out of focus).
Thanks, this is useful to hear of. > * Being able to ignore NoDisplay/Hide/OnlyShowIn desktop files, which > eliminated about half of the .desktop files. Unfortunately I don't think we can use this approach for GNOME; we need to do application tracking even for NoDisplay apps at least. > * Not having to do gettext lookups for translations (we use gettext > at runtime, so that we can update translations post-release without > having to rebuild app packages, see > http://bugzilla.gnome.org/show_bug.cgi?id=569829). But even with > inline translations you'd save the lookups and reading a lot of > extra data, so I recommend to consider per-locale caches. Yes, that makes sense. > Also, I'm well aware of the corner case that this would simply ignore > desktop files that the admin puts into /usr/share/applications/. We > currently treat this case as "don't do that then", that's what > /usr/local/ is for, but it's of course a small design wart of this. We could probably just get away with declaring that broken, but this kind of thing is already a huge mess for ISVs to figure out. I think you have to at least be correct and check whether the mtime on the directory is newer than the cache, and ignore it if so - this is what gtk+ does for the icon cache. I'll look at your patches, though as I replied to Vincent I think we should be fixing Gio nowadays first, and rebase gnome-menus on top. _______________________________________________ desktop-devel-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/desktop-devel-list
