file_browser: support to switch main EDC file.

F2 => set main edc
F3 => quick jump
F4 => revert quick jump (not done yet)
F5 => reference tooltip.
This commit is contained in:
Hermet Park 2016-08-08 20:25:05 +09:00
parent 1fda44ae6d
commit 997b878fa8
5 changed files with 94 additions and 39 deletions

11
README
View File

@ -30,12 +30,11 @@ Once you have met the requirements, compiling and installing is simple:
[Short Cut Keys]
Esc - Open/Close Menu
F1 - About
F2 - New
F3 - Save
F4 - Load
F5 - Quick Jump
F6 - Keyword Reference
F1 - Help
F2 - Set Main EDC (in File Browser)
F3 - Quick Jump (Open an including file / Jumping to a referencing part)
F4 - Revert Quick Jump
F5 - Keyword Reference
F7 - Toggle Tools
F8 - Toggle Status
F9 - Toggle File Browser

View File

@ -1,11 +1,10 @@
<b>Functions:</b></br>
Esc - Open/Close Menu</br>
F1 - About</br>
F2 - New</br>
F3 - Save</br>
F4 - Load</br>
F5 - Quick Jump</br>
F6 - Keyword Reference</br>
F1 - Help</br>
F2 - Set Main EDC (in File Browser)</br>
F3 - Quick Jump (Open an including file / Jumping to a referencing part)</br>
F4 - Revert Quick Jump</br>
F5 - Keyword Reference</br>
F7 - Toggle Tools</br>
F8 - Toggle Status</br>
F9 - Toggle File Browser</br>

View File

@ -35,7 +35,6 @@ typedef struct file_browser_s
brows_file *workspace; //workspace directory
Eina_List *search_file_list; /* list of searched files. This is only used for
showing search results. */
Evas_Object *base_layout;
Evas_Object *search_entry;
Evas_Object *genlist;
@ -45,6 +44,8 @@ typedef struct file_browser_s
Elm_Genlist_Item_Class *search_itc;
File_Browser_Mode mode;
Elm_Object_Item *main_it;
} brows_data;
static brows_data *g_bd = NULL;
@ -90,6 +91,13 @@ gl_item_del_cb(void *data, Evas_Object *obj EINA_UNUSED,
if (!file) return;
file->it = NULL;
//Reset Main Item
if (file->main)
{
brows_data *bd = g_bd;
bd->main_it = NULL;
}
}
static Elm_Object_Item *
@ -121,6 +129,13 @@ file_genlist_item_append(brows_file *file, Elm_Object_Item *parent_it,
elm_genlist_item_expanded_set(file->it, EINA_FALSE);
//Keep Main Item
if (file->main)
{
brows_data *bd = g_bd;
bd->main_it = file->it;
}
return file->it;
}
@ -828,3 +843,54 @@ file_browser_refresh(void)
}
}
void
file_browser_selected_file_main_set(void)
{
const char *exception_msg = "Please select a main EDC file in file browser.";
brows_data *bd = g_bd;
if (!bd) return;
Elm_Object_Item *it = elm_genlist_selected_item_get(bd->genlist);
if(!it)
{
stats_info_msg_update(exception_msg);
return;
}
brows_file *file = elm_object_item_data_get(it);
if (!file)
{
EINA_LOG_ERR("No item data??");
return;
}
if (!file->path)
{
EINA_LOG_ERR("No item file path??");
return;
}
if (!eina_str_has_extension(file->path, "edc"))
{
stats_info_msg_update(exception_msg);
return;
}
//Replace main item
Elm_Object_Item *prev_main_it = bd->main_it;
if (prev_main_it)
{
brows_file *prev_file = elm_object_item_data_get(prev_main_it);
if (prev_file) prev_file->main = EINA_FALSE;
else EINA_LOG_ERR("No item data??");
}
file->main = EINA_TRUE;
bd->main_it = file->it;
config_input_path_set(file->path);
elm_genlist_realized_items_update(bd->genlist);
}

View File

@ -116,7 +116,7 @@ syntax_color_init(Enventor_Object *enventor)
}
static void
main_edc_update(void)
main_edc_update(Eina_Bool refresh)
{
//Update file browser only if main item is changed,
Enventor_Item *main_it = enventor_object_main_item_get(base_enventor_get());
@ -125,7 +125,8 @@ main_edc_update(void)
if (prev_path == config_input_path_get()) return;
file_mgr_main_file_set(config_input_path_get());
file_browser_refresh();
if (refresh) file_browser_refresh();
}
static void
@ -141,7 +142,7 @@ config_update_cb(void *data EINA_UNUSED)
base_statusbar_toggle(EINA_FALSE);
base_console_auto_hide();
main_edc_update();
main_edc_update(EINA_TRUE);
}
static Eina_Bool
@ -770,7 +771,7 @@ keygrabber_key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED,
if (ctrl_func(ev)) return;
if (alt_func(ev)) return;
//README
//About
if (!strcmp(ev->key, "F1"))
{
enventor_object_ctxpopup_dismiss(base_enventor_get());
@ -778,37 +779,25 @@ keygrabber_key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED,
help_open();
return;
}
//New
//Set Main EDC
if (!strcmp(ev->key, "F2"))
{
enventor_object_ctxpopup_dismiss(base_enventor_get());
live_edit_cancel(EINA_FALSE);
menu_edc_new(EINA_FALSE);
return;
}
//Save
if (!strcmp(ev->key, "F3"))
{
enventor_object_ctxpopup_dismiss(base_enventor_get());
live_edit_cancel(EINA_FALSE);
menu_edc_save();
return;
}
//Load
if (!strcmp(ev->key, "F4"))
{
enventor_object_ctxpopup_dismiss(base_enventor_get());
live_edit_cancel(EINA_FALSE);
menu_edc_load();
file_browser_selected_file_main_set();
main_edc_update(EINA_FALSE);
return;
}
//Quick Jump
if (!strcmp(ev->key, "F5"))
if (!strcmp(ev->key, "F3"))
{
return;
}
//Revert Quick Jump
if (!strcmp(ev->key, "F4"))
{
return;
}
//Keyword Reference
if (!strcmp(ev->key, "F6"))
if (!strcmp(ev->key, "F5"))
{
enventor_object_ctxpopup_dismiss(base_enventor_get());
enventor_object_keyword_reference_show(base_enventor_get());

View File

@ -4,3 +4,5 @@ void file_browser_workspace_set(const char *workspace_dir);
void file_browser_tools_set(void);
void file_browser_tools_visible_set(Eina_Bool visible);
void file_browser_refresh(void);
void file_browser_selected_file_main_set(void);
void file_brwser_refresh(void);