move from data_home/apps/defaults.list to config_home/mimeapps.list

this moves to the newer mimeapps.list file in ~/.config from the older
defaults.list. it also provides a migration (copy file ovr if target
doesnt exist on e startup).

this fixes T6784

@fix
This commit is contained in:
Carsten Haitzler 2018-03-20 20:36:56 +09:00
parent 55c8ac4625
commit a1994536a4
5 changed files with 30 additions and 12 deletions

View File

@ -40,6 +40,20 @@ static E_Exehist *_e_exehist = NULL;
static E_Powersave_Deferred_Action *_e_exehist_unload_defer = NULL;
static int _e_exehist_changes = 0;
static void
_upgrade_defaults_to_mimeapps(void)
{
char buf[PATH_MAX], buf2[PATH_MAX];
snprintf(buf, sizeof(buf), "%s/mimeapps.list",
efreet_config_home_get());
if (ecore_file_exists(buf)) return;
ecore_file_mkpath(efreet_config_home_get());
snprintf(buf2, sizeof(buf2), "%s/applications/defaults.list",
efreet_data_home_get());
ecore_file_cp(buf2, buf);
}
/* externally accessible functions */
EINTERN int
e_exehist_init(void)
@ -65,6 +79,8 @@ e_exehist_init(void)
E_EVENT_EXEHIST_UPDATE = ecore_event_type_new();
_upgrade_defaults_to_mimeapps();
return 1;
}
@ -313,8 +329,8 @@ e_exehist_mime_desktop_add(const char *mime, Efreet_Desktop *desktop)
f = efreet_util_path_to_file_id(desktop->orig_path);
if (!f) return;
snprintf(buf, sizeof(buf), "%s/applications/defaults.list",
efreet_data_home_get());
snprintf(buf, sizeof(buf), "%s/mimeapps.list",
efreet_config_home_get());
ini = efreet_ini_new(buf);
//fprintf(stderr, "try open %s = %p\n", buf, ini);
if (ini)

View File

@ -113,8 +113,8 @@ handler_find(const char *mime)
char path[PATH_MAX];
const char *name;
snprintf(path, sizeof(path), "%s/applications/defaults.list",
efreet_data_home_get());
snprintf(path, sizeof(path), "%s/mimeapps.list",
efreet_config_home_get());
name = xdg_defaults_get(path, mime);
if (!name)
{
@ -328,7 +328,8 @@ terminal_open(void)
s = efreet_data_home_get();
if (s)
{
snprintf(buf, sizeof(buf), "%s/applications/defaults.list", s);
snprintf(buf, sizeof(buf), "%s/mimeapps.list",
efreet_config_home_get());
tdesktop = _terminal_get(buf);
}
if (tdesktop) goto have_desktop;

View File

@ -1151,7 +1151,8 @@ e_util_terminal_desktop_get(void)
s = efreet_data_home_get();
if (s)
{
snprintf(buf, sizeof(buf), "%s/applications/defaults.list", s);
snprintf(buf, sizeof(buf), "%s/mimeapps.list",
efreet_config_home_get());
tdesktop = _e_util_default_terminal_get(buf);
}
if (tdesktop) return tdesktop;

View File

@ -94,8 +94,8 @@ _create_data(E_Config_Dialog *cfd EINA_UNUSED)
cfdata->desk_change_handler = ecore_event_handler_add
(EFREET_EVENT_DESKTOP_CACHE_UPDATE, _desks_update, cfdata);
snprintf(buf, sizeof(buf), "%s/applications/defaults.list",
efreet_data_home_get());
snprintf(buf, sizeof(buf), "%s/mimeapps.list",
efreet_config_home_get());
myini = efreet_ini_new(buf);
if (myini)
{
@ -393,8 +393,8 @@ _basic_apply(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
if ((cfdata->terminal_desktop) && (cfdata->terminal_desktop[0]))
efreet_ini_string_set(cfdata->ini, "x-scheme-handler/terminal",
cfdata->terminal_desktop);
snprintf(buf, sizeof(buf), "%s/applications/defaults.list",
efreet_data_home_get());
snprintf(buf, sizeof(buf), "%s/mimeapps.list",
efreet_config_home_get());
efreet_ini_save(cfdata->ini, buf);
}
if ((cfdata->browser_custom) && (cfdata->browser_custom[0]))

View File

@ -1238,8 +1238,8 @@ _e_fwin_suggested_apps_list_sort(const char *mime, Eina_List *desktops, Eina_Boo
Eina_List *order, *l;
Efreet_Desktop *desktop;
snprintf(path, sizeof(path), "%s/applications/defaults.list",
efreet_data_home_get());
snprintf(path, sizeof(path), "%s/mimeapps.list",
efreet_config_home_get());
order = _e_fwin_defaults_apps_get(mime, path);
if (!order)