ajwillia-ms pushed a commit to branch master.

http://git.enlightenment.org/tools/edi.git/commit/?id=1cf8322d1297d953653bd342589cf599962051a9

commit 1cf8322d1297d953653bd342589cf599962051a9
Author: Al Poole <nets...@gmail.com>
Date:   Sun May 14 20:58:50 2017 +0100

    mainview: Don't allow any file without text/* mimetype to be opened.
    
    Reviewers: ajwillia.ms
    
    Reviewed By: ajwillia.ms
    
    Differential Revision: https://phab.enlightenment.org/D4851
---
 src/bin/mainview/edi_mainview.c | 79 ++++++++---------------------------------
 1 file changed, 14 insertions(+), 65 deletions(-)

diff --git a/src/bin/mainview/edi_mainview.c b/src/bin/mainview/edi_mainview.c
index 4a44a87..3cdba92 100644
--- a/src/bin/mainview/edi_mainview.c
+++ b/src/bin/mainview/edi_mainview.c
@@ -19,11 +19,9 @@
 #include "edi_config.h"
 
 static Evas_Object *_content_frame, *_current_view, *tb, *_main_win, 
*_welcome_panel, *_tab_scroller;
-static Evas_Object *_edi_mainview_choose_popup, *_edi_mainview_goto_popup;
+static Evas_Object *_edi_mainview_goto_popup;
 static Evas_Object *_edi_mainview_search_project_popup;
 
-static Edi_Path_Options *_edi_mainview_choose_options;
-
 static Eina_List *_edi_mainview_items = NULL;
 
 static void
@@ -331,75 +329,26 @@ _edi_mainview_item_win_add(Edi_Path_Options *options, 
const char *mime)
 }
 
 static void
-_edi_mainview_choose_type_tab_cb(void *data,
-                             Evas_Object *obj EINA_UNUSED,
-                             void *event_info EINA_UNUSED)
-{
-   evas_object_del(_edi_mainview_choose_popup);
-
-   _edi_mainview_choose_options->type = (const char *) data;
-   
_edi_config_mime_add(efreet_mime_type_get(_edi_mainview_choose_options->path), 
_edi_mainview_choose_options->type);
-   edi_mainview_open(_edi_mainview_choose_options);
-}
-
-static void
-_edi_mainview_choose_type_win_cb(void *data,
-                             Evas_Object *obj EINA_UNUSED,
-                             void *event_info EINA_UNUSED)
-{
-   evas_object_del(_edi_mainview_choose_popup);
-
-   _edi_mainview_choose_options->type = (const char *) data;
-   
_edi_config_mime_add(efreet_mime_type_get(_edi_mainview_choose_options->path), 
_edi_mainview_choose_options->type);
-   edi_mainview_open_window(_edi_mainview_choose_options);
-
-}
-
-static void
-_edi_mainview_choose_type_close_cb(void *data EINA_UNUSED,
-                                   Evas_Object *obj EINA_UNUSED,
-                                   void *event_info EINA_UNUSED)
-{
-   evas_object_del(_edi_mainview_choose_popup);
-}
-
-static void
-_edi_mainview_filetype_create(Evas_Object *popup, const char *type, void *cb)
+_edi_popup_cancel_cb(void *data, Evas_Object *obj EINA_UNUSED,
+                     void *event_info EINA_UNUSED)
 {
-   Edi_Content_Provider *provider;
-   Evas_Object *icon;
-
-   provider = edi_content_provider_for_id_get(type);
-   if (!provider)
-     return;
-
-   icon = elm_icon_add(popup);
-   elm_icon_standard_set(icon, provider->icon);
-   elm_popup_item_append(popup, type, icon, cb, type);
+   evas_object_del((Evas_Object *) data);
 }
 
 static void
-_edi_mainview_choose_type(Evas_Object *parent EINA_UNUSED, Edi_Path_Options 
*options, void *cb)
+_edi_mainview_mime_content_safe_popup(void)
 {
-   Evas_Object *popup, *cancel;
+   Evas_Object *popup, *button;
 
    popup = elm_popup_add(_main_win);
-   _edi_mainview_choose_popup = popup;
-   _edi_mainview_choose_options = options;
-
-   // popup title
    elm_object_part_text_set(popup, "title,text",
-                            "Unrecognised file type");
-
-   _edi_mainview_filetype_create(popup, "text", cb);
-   _edi_mainview_filetype_create(popup, "code", cb);
-   _edi_mainview_filetype_create(popup, "image", cb);
+                                   "Unrecognised file type");
+   elm_object_text_set(popup, "To force open, select this file in the file 
browser, and use \"open as\" menu options.");
 
-   cancel = elm_button_add(popup);
-   elm_object_text_set(cancel, "cancel");
-   elm_object_part_content_set(popup, "button1", cancel);
-   evas_object_smart_callback_add(cancel, "clicked",
-                                       _edi_mainview_choose_type_close_cb, 
NULL);
+   button = elm_button_add(popup);
+   elm_object_text_set(button, "OK");
+   elm_object_part_content_set(popup, "button1", button);
+   evas_object_smart_callback_add(button, "clicked", _edi_popup_cancel_cb, 
popup);
 
    evas_object_show(popup);
 }
@@ -419,7 +368,7 @@ _edi_mainview_tab_stat_done(void *data, Eio_File *handler 
EINA_UNUSED, const Ein
    provider = edi_content_provider_for_mime_get(mime);
    if (!provider)
      {
-        _edi_mainview_choose_type(_content_frame, options, 
_edi_mainview_choose_type_tab_cb);
+        _edi_mainview_mime_content_safe_popup();
         return;
      }
 
@@ -442,7 +391,7 @@ _edi_mainview_win_stat_done(void *data, Eio_File *handler 
EINA_UNUSED, const Ein
    provider = edi_content_provider_for_mime_get(mime);
    if (!provider)
      {
-        _edi_mainview_choose_type(_content_frame, options, 
_edi_mainview_choose_type_win_cb);
+        _edi_mainview_mime_content_safe_popup();
         return;
      }
 

-- 


Reply via email to