From 849619d32b926ebfa44a4808aa6831a562b8f41c Mon Sep 17 00:00:00 2001 From: Andy Williams Date: Tue, 27 Jun 2017 16:48:49 +0100 Subject: [PATCH] tabs: correct remembering of mime types Fixes issues where code functions would not appear to load for old tabs --- src/bin/edi_content_provider.c | 2 +- src/bin/mainview/edi_mainview.c | 28 ++++++++++++++++++++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/bin/edi_content_provider.c b/src/bin/edi_content_provider.c index 8869fbe..d0e0a0a 100644 --- a/src/bin/edi_content_provider.c +++ b/src/bin/edi_content_provider.c @@ -109,7 +109,7 @@ Edi_Content_Provider *edi_content_provider_for_id_get(const char *id) provider = _edi_content_provider_registry; while (provider != NULL && provider->id != NULL) { - if (!strncmp(id, provider->id, strlen(provider->id))) + if (!strncmp(id, provider->id, strlen(id))) return provider; provider++; diff --git a/src/bin/mainview/edi_mainview.c b/src/bin/mainview/edi_mainview.c index eed3364..dd43afb 100644 --- a/src/bin/mainview/edi_mainview.c +++ b/src/bin/mainview/edi_mainview.c @@ -331,7 +331,7 @@ _edi_mainview_item_tab_add(Edi_Path_Options *options, const char *mime) 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 @@ -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_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 @@ -500,6 +500,18 @@ edi_mainview_open(Edi_Path_Options *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 { _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); } + 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 { _edi_mainview_item_win_add(options, NULL);