ajwillia-ms pushed a commit to branch master.

http://git.enlightenment.org/tools/edi.git/commit/?id=849619d32b926ebfa44a4808aa6831a562b8f41c

commit 849619d32b926ebfa44a4808aa6831a562b8f41c
Author: Andy Williams <[email protected]>
Date:   Tue Jun 27 16:48:49 2017 +0100

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

-- 


Reply via email to