diff --git a/src/bin/edi_config.c b/src/bin/edi_config.c index 6601e8b..b183f72 100644 --- a/src/bin/edi_config.c +++ b/src/bin/edi_config.c @@ -12,6 +12,9 @@ #include "edi_private.h" +#define EDI_CONFIG_NAME PACKAGE_NAME +#define EDI_PROJECT_CONFIG_NAME "project" + # define EDI_CONFIG_LIMIT(v, min, max) \ if (v > max) v = max; else if (v < min) v = min; @@ -76,7 +79,7 @@ _edi_project_config_dir_get(void) static char dir[PATH_MAX]; if (!dir[0] && edi_project_get()) - snprintf(dir, sizeof(dir), "%s/.edi", edi_project_get()); + snprintf(dir, sizeof(dir), "%s/edi/%s", efreet_config_home_get(), edi_project_name_get()); return dir; } @@ -284,7 +287,7 @@ _edi_config_load(void) { Eina_Bool save = EINA_FALSE; - _edi_config = _edi_config_domain_load(_edi_config_dir_get(), PACKAGE_NAME, _edi_cfg_edd); + _edi_config = _edi_config_domain_load(_edi_config_dir_get(), EDI_CONFIG_NAME, _edi_cfg_edd); if (_edi_config) { Eina_Bool reload = EINA_FALSE; @@ -332,7 +335,7 @@ _edi_config_load(void) void _edi_config_save(void) { - if (_edi_config_domain_save(_edi_config_dir_get(), PACKAGE_NAME, _edi_cfg_edd, _edi_config)) + if (_edi_config_domain_save(_edi_config_dir_get(), EDI_CONFIG_NAME, _edi_cfg_edd, _edi_config)) ecore_event_add(EDI_EVENT_CONFIG_CHANGED, NULL, NULL, NULL); } @@ -408,7 +411,7 @@ _edi_project_config_load() { Eina_Bool save = EINA_FALSE; - _edi_project_config = _edi_config_domain_load(_edi_project_config_dir_get(), PACKAGE_NAME, _edi_proj_cfg_edd); + _edi_project_config = _edi_config_domain_load(_edi_project_config_dir_get(), EDI_PROJECT_CONFIG_NAME, _edi_proj_cfg_edd); if (_edi_project_config) { Eina_Bool reload = EINA_FALSE; @@ -482,7 +485,7 @@ _edi_project_config_load() static Eina_Bool _edi_project_config_save_no_notify() { - return _edi_config_domain_save(_edi_project_config_dir_get(), PACKAGE_NAME, _edi_proj_cfg_edd, _edi_project_config); + return _edi_config_domain_save(_edi_project_config_dir_get(), EDI_PROJECT_CONFIG_NAME, _edi_proj_cfg_edd, _edi_project_config); } void diff --git a/src/bin/edi_main.c b/src/bin/edi_main.c index ed5e152..c0475a8 100644 --- a/src/bin/edi_main.c +++ b/src/bin/edi_main.c @@ -943,10 +943,10 @@ edi_toolbar_setup(Evas_Object *win) } static char * -_edi_win_title_get(const char *path) +_edi_win_title_get() { - char *winname, *dirname; - const char *type; + char *winname; + const char *name, *type; Edi_Build_Provider *provider; int len; @@ -956,10 +956,10 @@ _edi_win_title_get(const char *path) else type = "unknown"; - dirname = basename((char*)path); - len = 8 + 3 + strlen(dirname) + strlen(type); + name = edi_project_name_get(); + len = 8 + 3 + strlen(name) + strlen(type); winname = malloc(len * sizeof(char)); - snprintf(winname, len, "Edi :: %s (%s)", dirname, type); + snprintf(winname, len, "Edi :: %s (%s)", name, type); return winname; } @@ -1045,7 +1045,7 @@ edi_open(const char *inputpath) elm_need_ethumb(); elm_need_efreet(); - winname = _edi_win_title_get(path); + winname = _edi_win_title_get(); win = elm_win_util_standard_add("main", winname); free((char*)winname); if (!win) return EINA_FALSE; diff --git a/src/lib/Edi.h b/src/lib/Edi.h index 9f3e19b..4318528 100644 --- a/src/lib/Edi.h +++ b/src/lib/Edi.h @@ -119,6 +119,15 @@ EAPI Eina_Bool edi_project_set(const char *path); */ EAPI const char *edi_project_get(void); +/** + * Get the name of the current edi project that is loaded. + * + * @return the name of the project that Edi is current working with. + * + * @ingroup Main + */ +EAPI const char *edi_project_name_get(void); + /** * Get the path to a file within the current project. * diff --git a/src/lib/edi.c b/src/lib/edi.c index 4aa4d6b..225ce04 100644 --- a/src/lib/edi.c +++ b/src/lib/edi.c @@ -105,6 +105,12 @@ edi_project_get() return _edi_project_path; } +EAPI const char * +edi_project_name_get() +{ + return basename((char*)edi_project_get()); +} + EAPI const char * edi_project_file_path_get(const char *file) {