tabs: correct remembering of mime types

Fixes issues where code functions would not appear to load for old tabs
This commit is contained in:
Andy Williams 2017-06-27 16:48:49 +01:00
parent 33b09484a0
commit 849619d32b
2 changed files with 27 additions and 3 deletions

View File

@ -109,7 +109,7 @@ Edi_Content_Provider *edi_content_provider_for_id_get(const char *id)
provider = _edi_content_provider_registry; provider = _edi_content_provider_registry;
while (provider != NULL && provider->id != NULL) while (provider != NULL && provider->id != NULL)
{ {
if (!strncmp(id, provider->id, strlen(provider->id))) if (!strncmp(id, provider->id, strlen(id)))
return provider; return provider;
provider++; provider++;

View File

@ -331,7 +331,7 @@ _edi_mainview_item_tab_add(Edi_Path_Options *options, const char *mime)
edi_mainview_goto(options->line); edi_mainview_goto(options->line);
} }
_edi_project_config_tab_add(options->path, options->type, EINA_FALSE); _edi_project_config_tab_add(options->path, mime?mime:options->type, EINA_FALSE);
} }
static void static void
@ -391,7 +391,7 @@ _edi_mainview_item_win_add(Edi_Path_Options *options, const char *mime)
evas_object_resize(win, 380 * elm_config_scale_get(), 260 * elm_config_scale_get()); evas_object_resize(win, 380 * elm_config_scale_get(), 260 * elm_config_scale_get());
evas_object_show(win); evas_object_show(win);
_edi_project_config_tab_add(options->path, options->type, EINA_TRUE); _edi_project_config_tab_add(options->path, mime?mime:options->type, EINA_TRUE);
} }
static void static void
@ -500,6 +500,18 @@ edi_mainview_open(Edi_Path_Options *options)
{ {
eio_file_direct_stat(options->path, _edi_mainview_tab_stat_done, dummy, options); eio_file_direct_stat(options->path, _edi_mainview_tab_stat_done, dummy, options);
} }
else if (!edi_content_provider_for_id_get(options->type))
{
const char *mime = options->type;
Edi_Content_Provider *provider = edi_content_provider_for_mime_get(mime);
if (provider)
options->type = provider->id;
else
options->type = NULL;
_edi_mainview_item_tab_add(options, mime);
}
else else
{ {
_edi_mainview_item_tab_add(options, NULL); _edi_mainview_item_tab_add(options, NULL);
@ -533,6 +545,18 @@ edi_mainview_open_window(Edi_Path_Options *options)
{ {
eio_file_direct_stat(options->path, _edi_mainview_win_stat_done, dummy, options); eio_file_direct_stat(options->path, _edi_mainview_win_stat_done, dummy, options);
} }
else if (!edi_content_provider_for_id_get(options->type))
{
const char *mime = options->type;
Edi_Content_Provider *provider = edi_content_provider_for_mime_get(mime);
if (provider)
options->type = provider->id;
else
options->type = NULL;
_edi_mainview_item_win_add(options, mime);
}
else else
{ {
_edi_mainview_item_win_add(options, NULL); _edi_mainview_item_win_add(options, NULL);