editor: Disable items build related.

When editing, disable menu and toolbar items relative to
building software.
This commit is contained in:
Alastair Poole 2020-01-07 22:16:48 +00:00
parent 74ce34f773
commit 73175732f4
3 changed files with 68 additions and 39 deletions

View File

@ -65,6 +65,8 @@ edi_toolbar_setup(void);
static void
_edi_active_process_icons_set(Eina_Bool active)
{
if (!edi_project_mode_get()) return;
if (active)
{
elm_object_disabled_set(_edi_toolbar_run, EINA_TRUE);
@ -607,13 +609,15 @@ _edi_icon_update()
elm_object_disabled_set(_edi_toolbar_undo, !can_undo);
elm_object_disabled_set(_edi_toolbar_redo, !can_redo);
elm_object_item_disabled_set(_edi_menu_init, can_scm);
elm_object_item_disabled_set(_edi_menu_push, !can_remote);
elm_object_item_disabled_set(_edi_menu_pull, !can_remote);
elm_object_item_disabled_set(_edi_menu_status, !can_scm);
elm_object_item_disabled_set(_edi_menu_commit, !can_scm);
elm_object_item_disabled_set(_edi_menu_stash, !can_scm);
if (edi_project_mode_get())
{
elm_object_item_disabled_set(_edi_menu_init, can_scm);
elm_object_item_disabled_set(_edi_menu_push, !can_remote);
elm_object_item_disabled_set(_edi_menu_pull, !can_remote);
elm_object_item_disabled_set(_edi_menu_status, !can_scm);
elm_object_item_disabled_set(_edi_menu_commit, !can_scm);
elm_object_item_disabled_set(_edi_menu_stash, !can_scm);
}
}
void
@ -789,6 +793,7 @@ _edi_launcher_terminate(void)
static void
_edi_build_menu_items_disabled_set(Eina_Bool state)
{
if (!edi_project_mode_get()) return;
elm_object_disabled_set(_edi_toolbar_build, state);
elm_object_disabled_set(_edi_toolbar_test, state);
elm_object_item_disabled_set(_edi_menu_build, state);
@ -1300,25 +1305,27 @@ _edi_menu_setup(Evas_Object *win)
elm_menu_item_separator_add(menu, menu_it);
elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("edit-find"), _("Open Tasks"), _edi_menu_view_tasks_cb, NULL);
menu_it = elm_menu_item_add(menu, NULL, NULL, _("Build"), NULL, NULL);
_edi_menu_build = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("system-run"), _("Build"), _edi_menu_build_cb, NULL);
_edi_menu_test = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("media-record"), _("Test"), _edi_menu_test_cb, NULL);
_edi_menu_clean = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("edit-clear"), _("Clean"), _edi_menu_clean_cb, NULL);
elm_menu_item_separator_add(menu, menu_it);
_edi_menu_run = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("media-playback-start"), _("Run"), _edi_menu_run_cb, NULL);
_edi_menu_terminate = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("media-playback-stop"), _("Terminate"), _edi_menu_terminate_cb, NULL);
elm_menu_item_separator_add(menu, menu_it);
elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("utilities-terminal"), _("Debugger"), _edi_menu_debug_cb, NULL);
elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("applications-electronics"), _("Memcheck"), _edi_menu_memcheck_cb, NULL);
menu_it = elm_menu_item_add(menu, NULL, NULL, _("Project"), NULL, NULL);
_edi_menu_init = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("media-playback-start"), _("Init"), _edi_menu_scm_init_cb, NULL);
_edi_menu_commit = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("mail-send"), _("Commit"), _edi_menu_scm_commit_cb, NULL);
_edi_menu_stash = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("edit-undo"), _("Stash"), _edi_menu_scm_stash_cb, NULL);
_edi_menu_status = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("dialog-error"), _("Status"), _edi_menu_scm_status_cb, NULL);
_edi_menu_push = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("go-up"), _("Push"), _edi_menu_scm_push_cb, NULL);
_edi_menu_pull = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("go-down"), _("Pull"), _edi_menu_scm_pull_cb, NULL);
if (edi_project_mode_get())
{
menu_it = elm_menu_item_add(menu, NULL, NULL, _("Build"), NULL, NULL);
_edi_menu_build = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("system-run"), _("Build"), _edi_menu_build_cb, NULL);
_edi_menu_test = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("media-record"), _("Test"), _edi_menu_test_cb, NULL);
_edi_menu_clean = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("edit-clear"), _("Clean"), _edi_menu_clean_cb, NULL);
elm_menu_item_separator_add(menu, menu_it);
_edi_menu_run = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("media-playback-start"), _("Run"), _edi_menu_run_cb, NULL);
_edi_menu_terminate = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("media-playback-stop"), _("Terminate"), _edi_menu_terminate_cb, NULL);
elm_menu_item_separator_add(menu, menu_it);
elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("utilities-terminal"), _("Debugger"), _edi_menu_debug_cb, NULL);
elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("applications-electronics"), _("Memcheck"), _edi_menu_memcheck_cb, NULL);
menu_it = elm_menu_item_add(menu, NULL, NULL, _("Project"), NULL, NULL);
_edi_menu_init = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("media-playback-start"), _("Init"), _edi_menu_scm_init_cb, NULL);
_edi_menu_commit = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("mail-send"), _("Commit"), _edi_menu_scm_commit_cb, NULL);
_edi_menu_stash = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("edit-undo"), _("Stash"), _edi_menu_scm_stash_cb, NULL);
_edi_menu_status = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("dialog-error"), _("Status"), _edi_menu_scm_status_cb, NULL);
_edi_menu_push = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("go-up"), _("Push"), _edi_menu_scm_push_cb, NULL);
_edi_menu_pull = elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("go-down"), _("Pull"), _edi_menu_scm_pull_cb, NULL);
}
menu_it = elm_menu_item_add(menu, NULL, NULL, _("Help"), NULL, NULL);
elm_menu_item_add(menu, menu_it, edi_theme_icon_path_get("go-home"), _("Visit Website"), _edi_menu_website_cb, NULL);
@ -1450,15 +1457,18 @@ edi_toolbar_setup(void)
tb_it = elm_toolbar_item_append(tb, "separator", "", NULL, NULL);
elm_toolbar_item_separator_set(tb_it, EINA_TRUE);
_edi_toolbar_build = _edi_toolbar_item_add(tb, "system-run", _("Build"), _tb_build_cb);
_edi_toolbar_test = _edi_toolbar_item_add(tb, "media-record", _("Test"), _tb_test_cb);
if (edi_project_mode_get())
{
_edi_toolbar_build = _edi_toolbar_item_add(tb, "system-run", _("Build"), _tb_build_cb);
_edi_toolbar_test = _edi_toolbar_item_add(tb, "media-record", _("Test"), _tb_test_cb);
_edi_toolbar_run =_edi_toolbar_item_add(tb, "media-playback-start", _("Run"), _tb_run_cb);
_edi_toolbar_terminate = _edi_toolbar_item_add(tb, "media-playback-stop", _("Terminate"), _tb_terminate_cb);
_edi_toolbar_item_add(tb, "utilities-terminal", _("Debug"), _tb_debug_cb);
_edi_toolbar_run =_edi_toolbar_item_add(tb, "media-playback-start", _("Run"), _tb_run_cb);
_edi_toolbar_terminate = _edi_toolbar_item_add(tb, "media-playback-stop", _("Terminate"), _tb_terminate_cb);
_edi_toolbar_item_add(tb, "utilities-terminal", _("Debug"), _tb_debug_cb);
tb_it = elm_toolbar_item_append(tb, "separator", "", NULL, NULL);
elm_toolbar_item_separator_set(tb_it, EINA_TRUE);
tb_it = elm_toolbar_item_append(tb, "separator", "", NULL, NULL);
elm_toolbar_item_separator_set(tb_it, EINA_TRUE);
}
_edi_toolbar_item_add(tb, "preferences-desktop", _("Settings"), _tb_settings_cb);
_edi_toolbar_item_add(tb, "help-about", _("About"), _tb_about_cb);
@ -1528,6 +1538,7 @@ _edi_resize_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj,
_edi_project_config->gui.width = w + 1;
_edi_project_config->gui.height = h + 1;
_edi_project_config_save();
elm_box_recalculate(_edi_main_box);
}
static Eina_Bool
@ -1656,12 +1667,13 @@ edi_open(const char *inputpath)
Evas_Object *vbx_tb, *hbx_tb;
char *winname;
char *path;
Eina_Bool is_project = EINA_TRUE;
edi_project_mode_set(EINA_TRUE);
if (!edi_project_set(inputpath))
{
edi_project_set(eina_environment_home_get());
is_project = EINA_FALSE;
edi_project_mode_set(EINA_FALSE);
}
path = realpath(inputpath, NULL);
@ -1726,7 +1738,7 @@ edi_open(const char *inputpath)
_edi_menu_setup(win);
if (is_project)
if (edi_project_mode_get())
content = edi_content_setup(vbx, path);
else
content = edi_content_setup(vbx, ecore_file_dir_get(path));
@ -1735,7 +1747,7 @@ edi_open(const char *inputpath)
evas_object_size_hint_align_set(content, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_box_pack_end(vbx, content);
if (is_project)
if (edi_project_mode_get())
_edi_config_project_add(path);
_edi_open_tabs();
@ -1755,7 +1767,7 @@ edi_open(const char *inputpath)
_edi_project_config->gui.height * elm_config_scale_get());
evas_object_show(win);
if (!is_project)
if (!edi_project_mode_get())
edi_mainview_open_path(path);
free(path);

View File

@ -153,8 +153,12 @@ EAPI char *edi_project_file_path_get(const char *file);
*/
EAPI Eina_Bool edi_project_file_exists(const char *file);
/**
* @}
EAPI Eina_Bool edi_project_mode_get(void);
EAPI void edi_project_mode_set(Eina_Bool enabled);
/* @}
*/
#ifdef __cplusplus

View File

@ -18,6 +18,7 @@
static int _edi_init = 0;
int _edi_lib_log_dom = -1;
static const char *_edi_project_path;
static Eina_Bool _edi_project_mode;
EAPI int
edi_init(void)
@ -134,3 +135,15 @@ edi_project_file_exists(const char *file)
free(path);
return exists;
}
EAPI Eina_Bool
edi_project_mode_get(void)
{
return _edi_project_mode;
}
EAPI void
edi_project_mode_set(Eina_Bool enabled)
{
_edi_project_mode = enabled;
}