forked from enlightenment/edi
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
This commit is contained in:
parent
19c48c6cdc
commit
1cf8322d12
|
@ -19,11 +19,9 @@
|
||||||
#include "edi_config.h"
|
#include "edi_config.h"
|
||||||
|
|
||||||
static Evas_Object *_content_frame, *_current_view, *tb, *_main_win, *_welcome_panel, *_tab_scroller;
|
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 Evas_Object *_edi_mainview_search_project_popup;
|
||||||
|
|
||||||
static Edi_Path_Options *_edi_mainview_choose_options;
|
|
||||||
|
|
||||||
static Eina_List *_edi_mainview_items = NULL;
|
static Eina_List *_edi_mainview_items = NULL;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -331,75 +329,26 @@ _edi_mainview_item_win_add(Edi_Path_Options *options, const char *mime)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_edi_mainview_choose_type_tab_cb(void *data,
|
_edi_popup_cancel_cb(void *data, Evas_Object *obj EINA_UNUSED,
|
||||||
Evas_Object *obj EINA_UNUSED,
|
void *event_info EINA_UNUSED)
|
||||||
void *event_info EINA_UNUSED)
|
|
||||||
{
|
{
|
||||||
evas_object_del(_edi_mainview_choose_popup);
|
evas_object_del((Evas_Object *) data);
|
||||||
|
|
||||||
_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
|
static void
|
||||||
_edi_mainview_choose_type_win_cb(void *data,
|
_edi_mainview_mime_content_safe_popup(void)
|
||||||
Evas_Object *obj EINA_UNUSED,
|
|
||||||
void *event_info EINA_UNUSED)
|
|
||||||
{
|
{
|
||||||
evas_object_del(_edi_mainview_choose_popup);
|
Evas_Object *popup, *button;
|
||||||
|
|
||||||
_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_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);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
_edi_mainview_choose_type(Evas_Object *parent EINA_UNUSED, Edi_Path_Options *options, void *cb)
|
|
||||||
{
|
|
||||||
Evas_Object *popup, *cancel;
|
|
||||||
|
|
||||||
popup = elm_popup_add(_main_win);
|
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",
|
elm_object_part_text_set(popup, "title,text",
|
||||||
"Unrecognised file type");
|
"Unrecognised file type");
|
||||||
|
elm_object_text_set(popup, "To force open, select this file in the file browser, and use \"open as\" menu options.");
|
||||||
|
|
||||||
_edi_mainview_filetype_create(popup, "text", cb);
|
button = elm_button_add(popup);
|
||||||
_edi_mainview_filetype_create(popup, "code", cb);
|
elm_object_text_set(button, "OK");
|
||||||
_edi_mainview_filetype_create(popup, "image", cb);
|
elm_object_part_content_set(popup, "button1", button);
|
||||||
|
evas_object_smart_callback_add(button, "clicked", _edi_popup_cancel_cb, popup);
|
||||||
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);
|
|
||||||
|
|
||||||
evas_object_show(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);
|
provider = edi_content_provider_for_mime_get(mime);
|
||||||
if (!provider)
|
if (!provider)
|
||||||
{
|
{
|
||||||
_edi_mainview_choose_type(_content_frame, options, _edi_mainview_choose_type_tab_cb);
|
_edi_mainview_mime_content_safe_popup();
|
||||||
return;
|
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);
|
provider = edi_content_provider_for_mime_get(mime);
|
||||||
if (!provider)
|
if (!provider)
|
||||||
{
|
{
|
||||||
_edi_mainview_choose_type(_content_frame, options, _edi_mainview_choose_type_win_cb);
|
_edi_mainview_mime_content_safe_popup();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue