system settings menu in config panel is back.
SVN revision: 53674
This commit is contained in:
parent
b3a0659709
commit
0fe423836f
|
@ -1,5 +1,6 @@
|
||||||
#include "e.h"
|
#include "e.h"
|
||||||
|
|
||||||
|
static void _e_configure_efreet_desktop_cleanup(void);
|
||||||
static void _e_configure_efreet_desktop_update(void);
|
static void _e_configure_efreet_desktop_update(void);
|
||||||
static Eina_Bool _e_configure_cb_efreet_desktop_cache_update(void *data, int type, void *event);
|
static Eina_Bool _e_configure_cb_efreet_desktop_cache_update(void *data, int type, void *event);
|
||||||
static void _e_configure_registry_item_full_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func) (E_Container *con, const char *params), void (*generic_func) (E_Container *con, const char *params), Efreet_Desktop *desktop);
|
static void _e_configure_registry_item_full_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func) (E_Container *con, const char *params), void (*generic_func) (E_Container *con, const char *params), Efreet_Desktop *desktop);
|
||||||
|
@ -8,6 +9,7 @@ EAPI Eina_List *e_configure_registry = NULL;
|
||||||
|
|
||||||
static Eina_List *handlers = NULL;
|
static Eina_List *handlers = NULL;
|
||||||
static E_Int_Menu_Augmentation *maug = NULL;
|
static E_Int_Menu_Augmentation *maug = NULL;
|
||||||
|
static Ecore_Job *update_job = NULL;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_configure_menu_module_item_cb(void *data __UNUSED__, E_Menu *m, E_Menu_Item *mi __UNUSED__)
|
_e_configure_menu_module_item_cb(void *data __UNUSED__, E_Menu *m, E_Menu_Item *mi __UNUSED__)
|
||||||
|
@ -26,6 +28,21 @@ _e_configure_menu_add(void *data __UNUSED__, E_Menu *m)
|
||||||
e_menu_item_callback_set(mi, _e_configure_menu_module_item_cb, NULL);
|
e_menu_item_callback_set(mi, _e_configure_menu_module_item_cb, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_configure_job(void *data __UNUSED__)
|
||||||
|
{
|
||||||
|
_e_configure_efreet_desktop_update();
|
||||||
|
update_job = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_configure_init_timer(void *data __UNUSED__)
|
||||||
|
{
|
||||||
|
if (update_job) ecore_job_del(update_job);
|
||||||
|
update_job = ecore_job_add(_configure_job, NULL);
|
||||||
|
return EINA_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_configure_init(void)
|
e_configure_init(void)
|
||||||
{
|
{
|
||||||
|
@ -38,21 +55,24 @@ e_configure_init(void)
|
||||||
handlers = eina_list_append
|
handlers = eina_list_append
|
||||||
(handlers, ecore_event_handler_add
|
(handlers, ecore_event_handler_add
|
||||||
(EFREET_EVENT_DESKTOP_CACHE_UPDATE, _e_configure_cb_efreet_desktop_cache_update, NULL));
|
(EFREET_EVENT_DESKTOP_CACHE_UPDATE, _e_configure_cb_efreet_desktop_cache_update, NULL));
|
||||||
//_e_configure_efreet_desktop_update();
|
if (update_job)
|
||||||
|
{
|
||||||
|
ecore_job_del(update_job);
|
||||||
|
update_job = NULL;
|
||||||
|
}
|
||||||
|
ecore_timer_add(0.0, _configure_init_timer, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_configure_efreet_desktop_update(void)
|
_e_configure_efreet_desktop_cleanup(void)
|
||||||
{
|
{
|
||||||
Eina_List *settings_desktops, *system_desktops;
|
|
||||||
Eina_List *remove_items = NULL;
|
Eina_List *remove_items = NULL;
|
||||||
Eina_List *remove_cats = NULL;
|
Eina_List *remove_cats = NULL;
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
Efreet_Desktop *desktop;
|
|
||||||
E_Configure_Cat *ecat;
|
E_Configure_Cat *ecat;
|
||||||
void *data;
|
|
||||||
char buf[1024];
|
char buf[1024];
|
||||||
|
void *data;
|
||||||
|
|
||||||
/* remove anything with a desktop entry */
|
/* remove anything with a desktop entry */
|
||||||
EINA_LIST_FOREACH(e_configure_registry, l, ecat)
|
EINA_LIST_FOREACH(e_configure_registry, l, ecat)
|
||||||
{
|
{
|
||||||
|
@ -77,6 +97,15 @@ _e_configure_efreet_desktop_update(void)
|
||||||
e_configure_registry_category_del(data);
|
e_configure_registry_category_del(data);
|
||||||
free(data);
|
free(data);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_configure_efreet_desktop_update(void)
|
||||||
|
{
|
||||||
|
Eina_List *settings_desktops, *system_desktops;
|
||||||
|
Efreet_Desktop *desktop;
|
||||||
|
Eina_List *l;
|
||||||
|
char buf[1024];
|
||||||
|
|
||||||
/* get desktops */
|
/* get desktops */
|
||||||
settings_desktops = efreet_util_desktop_category_list("Settings");
|
settings_desktops = efreet_util_desktop_category_list("Settings");
|
||||||
|
@ -177,7 +206,9 @@ _e_configure_efreet_desktop_update(void)
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_e_configure_cb_efreet_desktop_cache_update(__UNUSED__ void *data, __UNUSED__ int type, __UNUSED__ void *event)
|
_e_configure_cb_efreet_desktop_cache_update(__UNUSED__ void *data, __UNUSED__ int type, __UNUSED__ void *event)
|
||||||
{
|
{
|
||||||
_e_configure_efreet_desktop_update();
|
_e_configure_efreet_desktop_cleanup();
|
||||||
|
if (update_job) ecore_job_del(update_job);
|
||||||
|
update_job = ecore_job_add(_configure_job, NULL);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue