Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision |
dev:garcon [2009/08/18 08:27] – 145.225.60.4 | dev:garcon [2012/04/29 13:57] – [Garcon Thoughts] fix garcon source link tlatsas |
---|
| |
**Specifications:** [[http://standards.freedesktop.org/menu-spec/latest/|Desktop Menu]], [[http://standards.freedesktop.org/desktop-entry-spec/latest/|Desktop Entry]].\\ | **Specifications:** [[http://standards.freedesktop.org/menu-spec/latest/|Desktop Menu]], [[http://standards.freedesktop.org/desktop-entry-spec/latest/|Desktop Entry]].\\ |
**Sources:** [[http://git.xfce.org/libs/garcon/|Garcon]], [[http://git.gnome.org/cgit/alacarte/|Alacarte]]. | **Sources:** [[http://git.xfce.org/xfce/garcon/|Garcon]], [[http://git.gnome.org/cgit/alacarte/|Alacarte]]. |
| |
===== File Monitoring ===== | ===== File Monitoring ===== |
This is where we will do all the monitoring work. We will setup monitors for the menu file itself, as well for the merged files and the desktop entry directories. The object will probably get some signals when an item is added/removed/moved, but we need to do this in such a way it is efficient to update menu or tree implementations. | This is where we will do all the monitoring work. We will setup monitors for the menu file itself, as well for the merged files and the desktop entry directories. The object will probably get some signals when an item is added/removed/moved, but we need to do this in such a way it is efficient to update menu or tree implementations. |
| |
===== Misc ===== | ===== TODO ===== |
| * <del>Fix handling of the Hidden key in .desktop files</del>. |
A couple of tasks that need to be done: | * <del>Right now we return NULL when loading a desktop files with Hidden=True, this is wrong, we should instead return a GarconMenuItem, add _{get.set}_hidden functions and property. There is a possibility the hidden attribute changes during runtime, then the menu item should be visible again</del>. |
* Always return a reffed object in the _get_ functions and mention this in the API docs. | * Always return a reffed object in the _get_ functions and mention this in the API docs. |
* Because we always ref and because of the implementation of the singletons: we also return reffed items in the GList's. This means that developers should also call ''g_list_foreach (list, (GFunc) g_object_unref, NULL);'' or unref in their own loop. This is not a bad thing tho, because of the file monitoring it could be that the menu implementation releases an item (because the .desktop file was destroyed), so apps _should_ have their own references. | * Because we always ref and because of the implementation of the singletons: we also return reffed items in the GList's. This means that developers should also call ''g_list_foreach (list, (GFunc) g_object_unref, NULL);'' or unref in their own loop. This is not a bad thing tho, because of the file monitoring it could be that the menu implementation releases an item (because the .desktop file was destroyed), so apps _should_ have their own references. |
* <del>Use the G_KEY_FILE_DESKTOP_* defines where possible</del>. | * <del>Use the G_KEY_FILE_DESKTOP_* defines where possible</del>. |
| |
Possible things we want to implement: | ===== Future===== |
| |
* We currently support desktop files with the type Application and Directory, but not Link. | * We currently support desktop files with the type Application and Directory, but not Link. |