config: Move project config into global config area

A little refactoring to get the project name to index this
This commit is contained in:
Andy Williams 2016-11-04 14:49:39 +00:00
parent 1ab2700a7c
commit 1855b437af
4 changed files with 30 additions and 12 deletions

View File

@ -12,6 +12,9 @@
#include "edi_private.h" #include "edi_private.h"
#define EDI_CONFIG_NAME PACKAGE_NAME
#define EDI_PROJECT_CONFIG_NAME "project"
# define EDI_CONFIG_LIMIT(v, min, max) \ # define EDI_CONFIG_LIMIT(v, min, max) \
if (v > max) v = max; else if (v < min) v = min; 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]; static char dir[PATH_MAX];
if (!dir[0] && edi_project_get()) 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; return dir;
} }
@ -284,7 +287,7 @@ _edi_config_load(void)
{ {
Eina_Bool save = EINA_FALSE; 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) if (_edi_config)
{ {
Eina_Bool reload = EINA_FALSE; Eina_Bool reload = EINA_FALSE;
@ -332,7 +335,7 @@ _edi_config_load(void)
void void
_edi_config_save(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); ecore_event_add(EDI_EVENT_CONFIG_CHANGED, NULL, NULL, NULL);
} }
@ -408,7 +411,7 @@ _edi_project_config_load()
{ {
Eina_Bool save = EINA_FALSE; 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) if (_edi_project_config)
{ {
Eina_Bool reload = EINA_FALSE; Eina_Bool reload = EINA_FALSE;
@ -482,7 +485,7 @@ _edi_project_config_load()
static Eina_Bool static Eina_Bool
_edi_project_config_save_no_notify() _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 void

View File

@ -943,10 +943,10 @@ edi_toolbar_setup(Evas_Object *win)
} }
static char * static char *
_edi_win_title_get(const char *path) _edi_win_title_get()
{ {
char *winname, *dirname; char *winname;
const char *type; const char *name, *type;
Edi_Build_Provider *provider; Edi_Build_Provider *provider;
int len; int len;
@ -956,10 +956,10 @@ _edi_win_title_get(const char *path)
else else
type = "unknown"; type = "unknown";
dirname = basename((char*)path); name = edi_project_name_get();
len = 8 + 3 + strlen(dirname) + strlen(type); len = 8 + 3 + strlen(name) + strlen(type);
winname = malloc(len * sizeof(char)); winname = malloc(len * sizeof(char));
snprintf(winname, len, "Edi :: %s (%s)", dirname, type); snprintf(winname, len, "Edi :: %s (%s)", name, type);
return winname; return winname;
} }
@ -1045,7 +1045,7 @@ edi_open(const char *inputpath)
elm_need_ethumb(); elm_need_ethumb();
elm_need_efreet(); elm_need_efreet();
winname = _edi_win_title_get(path); winname = _edi_win_title_get();
win = elm_win_util_standard_add("main", winname); win = elm_win_util_standard_add("main", winname);
free((char*)winname); free((char*)winname);
if (!win) return EINA_FALSE; if (!win) return EINA_FALSE;

View File

@ -119,6 +119,15 @@ EAPI Eina_Bool edi_project_set(const char *path);
*/ */
EAPI const char *edi_project_get(void); 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. * Get the path to a file within the current project.
* *

View File

@ -105,6 +105,12 @@ edi_project_get()
return _edi_project_path; return _edi_project_path;
} }
EAPI const char *
edi_project_name_get()
{
return basename((char*)edi_project_get());
}
EAPI const char * EAPI const char *
edi_project_file_path_get(const char *file) edi_project_file_path_get(const char *file)
{ {