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"
#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

View File

@ -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;

View File

@ -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.
*

View File

@ -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)
{