filepanel: add method to select by path and select upon tab promotion.

When a file is focussed in it's panel and tab the file is also selected
in the filepanel. Another visual indicator of current focus and
synchronises behaviour of tab selection and filepanel selection.
This commit is contained in:
Al Poole 2017-09-01 20:16:19 +01:00
parent 2731c4bb75
commit 7f1dfbb26e
3 changed files with 18 additions and 1 deletions

View File

@ -781,6 +781,18 @@ _filter_key_down_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
elm_genlist_filter_set(tree, (void *)strdup(match));
}
void
edi_filepanel_select_path(const char *path)
{
Elm_Object_Item *item;
item = _file_listing_item_find(path);
if (!item)
return;
elm_genlist_item_selected_set(item, EINA_TRUE);
}
void
edi_filepanel_search()
{

View File

@ -41,6 +41,7 @@ void edi_filepanel_add(Evas_Object *parent, Evas_Object *win,
const char *edi_filepanel_selected_path_get(Evas_Object *obj);
void edi_filepanel_select_path(const char *path);
void edi_filepanel_search();
/**

View File

@ -12,6 +12,7 @@
#include "mainview/edi_mainview_panel.h"
#include "mainview/edi_mainview.h"
#include "edi_filepanel.h"
#include "editor/edi_editor.h"
#include "edi_content_provider.h"
@ -268,8 +269,9 @@ _promote(void *data, Evas_Object *obj EINA_UNUSED,
{
Edi_Mainview_Panel *panel;
Edi_Editor *editor;
Edi_Mainview_Item *item = (Edi_Mainview_Item *) data;
panel = edi_mainview_panel_for_item_get((Edi_Mainview_Item *)data);
panel = edi_mainview_panel_for_item_get((Edi_Mainview_Item *)item);
edi_mainview_panel_focus(panel);
@ -281,6 +283,8 @@ _promote(void *data, Evas_Object *obj EINA_UNUSED,
editor = (Edi_Editor *)evas_object_data_get(panel->current->view, "editor");
if (editor)
elm_object_focus_set(editor->entry, EINA_TRUE);
edi_filepanel_select_path(item->path);
}
static void