Add app pretty name and .desktop file path support

Add support to set a string to hold a 'pretty' name to be used with the
application and a way to set the path to the .desktop file associated
with the application.

Patch by: Murilo Belluzzo <murilo.belluzzo@profusion.mobi>



SVN revision: 80187
This commit is contained in:
Murilo Belluzzo 2012-12-04 18:09:54 +00:00 committed by Gustavo Sverzut Barbieri
parent 4643908f4f
commit 33c4cb55e7
3 changed files with 93 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2012-12-04 Murilo Pinoti Belluzzo (mbelluzzo)
* Add elm_app_name_set/get(): Formal application name string.
* Add elm_app_destkop_entry_set/get(): Path to '.desktop' file.
2012-12-03 Gustavo Sverzut Barbieri (k-s)
* Add elm_need_edbus(), deprecate elm_need_e_dbus(), integrating

View File

@ -76,6 +76,28 @@
*/
EAPI void elm_app_info_set(void *mainfunc, const char *dom, const char *checkfile);
/**
* Set a formal name to be used with the elm application.
*
* @param name Application name.
*
* @since 1.8
*/
EAPI void elm_app_name_set(const char *name);
/**
* Set the path to the '.desktop' file to be associated
* with the elm application.
*
* @param path The path to the '.desktop' file
*
* @warning Since this path is very environment dependent,
* this will hold whatever value is passed to it.
*
* @since 1.8
*/
EAPI void elm_app_desktop_entry_set(const char *path);
/**
* Provide information on the @b fallback application's binaries
* directory, in scenarios where they get overridden by
@ -143,6 +165,25 @@ EAPI void elm_app_compile_data_dir_set(const char *dir);
*/
EAPI void elm_app_compile_locale_set(const char *dir);
/**
* Retrieve the application formal name, as set by elm_app_name_set().
*
* @return The application formal name.
*
* @since 1.8
*/
EAPI const char *elm_app_name_get(void);
/**
* Retrieve the path to the '.desktop' file, as set by
* elm_app_desktop_entry_set().
*
* @return The '.desktop' file path.
*
* @since 1.8
*/
EAPI const char *elm_app_desktop_entry_get(void);
/**
* Retrieve the application's run time prefix directory, as set by
* elm_app_info_set() and the way (environment) the application was

View File

@ -119,6 +119,8 @@ _elm_emotion_shutdown(void)
}
static void *app_mainfunc = NULL;
static const char *app_name = NULL;
static const char *app_desktop_entry = NULL;
static const char *app_domain = NULL;
static const char *app_checkfile = NULL;
@ -230,6 +232,18 @@ elm_shutdown(void)
while (_elm_win_deferred_free) ecore_main_loop_iterate();
// wrningz :(
// _prefix_shutdown();
if (app_name)
{
eina_stringshare_del(app_name);
app_name = NULL;
}
if (app_desktop_entry)
{
eina_stringshare_del(app_desktop_entry);
app_desktop_entry = NULL;
}
elm_quicklaunch_sub_shutdown();
elm_quicklaunch_shutdown();
return _elm_init_count;
@ -243,6 +257,18 @@ elm_app_info_set(void *mainfunc, const char *dom, const char *checkfile)
eina_stringshare_replace(&app_checkfile, checkfile);
}
EAPI void
elm_app_name_set(const char *name)
{
eina_stringshare_replace(&app_name, name);
}
EAPI void
elm_app_desktop_entry_set(const char *path)
{
eina_stringshare_replace(&app_desktop_entry, path);
}
EAPI void
elm_app_compile_bin_dir_set(const char *dir)
{
@ -267,6 +293,22 @@ elm_app_compile_locale_set(const char *dir)
eina_stringshare_replace(&app_compile_locale_dir, dir);
}
EAPI const char *
elm_app_name_get(void)
{
if (app_name) return app_name;
return "";
}
EAPI const char *
elm_app_desktop_entry_get(void)
{
if (app_desktop_entry) return app_desktop_entry;
return "";
}
EAPI const char *
elm_app_prefix_dir_get(void)
{
@ -455,7 +497,11 @@ elm_quicklaunch_init(int argc,
_elm_exit_handler = ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, _elm_signal_exit, NULL);
if (argv) _elm_appname = strdup(ecore_file_file_get(argv[0]));
if (argv)
{
_elm_appname = strdup(ecore_file_file_get(argv[0]));
elm_app_name_set(_elm_appname);
}
pfx = eina_prefix_new(argv ? argv[0] : NULL, elm_quicklaunch_init,
"ELM", "elementary", "config/profile.cfg",