From 5d24f7948edfaa9489c26298cbd15d27278d0e75 Mon Sep 17 00:00:00 2001 From: semernin Date: Wed, 1 Jul 2009 18:35:26 +0000 Subject: [PATCH] 1. New field in E_Fm2_Op_Registry_Entry named dialog, that hold pointer to error, abort or overwrite dialogs. 2. Glyph in fileman_opinfo theme that show have or not operation linked filemanager window. 3. When click on operation on fileman_opinfo, then linked efm window raised or attention dialog if error exist. SVN revision: 41229 --- src/bin/e_fm.c | 65 +++++++++++------- src/bin/e_fm_op_registry.h | 1 + .../e-module-fileman_opinfo.edj | Bin 41962 -> 43835 bytes src/modules/fileman_opinfo/e_mod_main.c | 42 +++++++++++ 4 files changed, 84 insertions(+), 24 deletions(-) diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c index 7d43c270b..438dce9a0 100644 --- a/src/bin/e_fm.c +++ b/src/bin/e_fm.c @@ -340,19 +340,19 @@ static void _e_fm2_icon_entry_widget_del(E_Fm2_Icon *ic); static void _e_fm2_icon_entry_widget_cb_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info); static void _e_fm2_icon_entry_widget_accept(E_Fm2_Icon *ic); -static void _e_fm_retry_abort_dialog(int pid, const char *str); +static E_Dialog* _e_fm_retry_abort_dialog(int pid, const char *str); static void _e_fm_retry_abort_delete_cb(void *obj); static void _e_fm_retry_abort_retry_cb(void *data, E_Dialog *dialog); static void _e_fm_retry_abort_abort_cb(void *data, E_Dialog *dialog); -static void _e_fm_overwrite_dialog(int pid, const char *str); +static E_Dialog* _e_fm_overwrite_dialog(int pid, const char *str); static void _e_fm_overwrite_delete_cb(void *obj); static void _e_fm_overwrite_no_cb(void *data, E_Dialog *dialog); static void _e_fm_overwrite_no_all_cb(void *data, E_Dialog *dialog); static void _e_fm_overwrite_yes_cb(void *data, E_Dialog *dialog); static void _e_fm_overwrite_yes_all_cb(void *data, E_Dialog *dialog); -static void _e_fm_error_dialog(int pid, const char *str); +static E_Dialog* _e_fm_error_dialog(int pid, const char *str); static void _e_fm_error_delete_cb(void *obj); static void _e_fm_error_retry_cb(void *data, E_Dialog *dialog); static void _e_fm_error_abort_cb(void *data, E_Dialog *dialog); @@ -582,6 +582,7 @@ _e_fm2_op_registry_go_on(int id) if (!ere) return; ere->status = E_FM2_OP_STATUS_IN_PROGRESS; ere->needs_attention = 0; + ere->dialog = NULL; e_fm2_op_registry_entry_changed(ere); } @@ -592,27 +593,30 @@ _e_fm2_op_registry_aborted(int id) if (!ere) return; ere->status = E_FM2_OP_STATUS_ABORTED; ere->needs_attention = 0; + ere->dialog = NULL; ere->finished = 1; e_fm2_op_registry_entry_changed(ere); // XXX e_fm2_op_registry_entry_del(id); } static void -_e_fm2_op_registry_error(int id) +_e_fm2_op_registry_error(int id, E_Dialog *dlg) { E_Fm2_Op_Registry_Entry *ere = e_fm2_op_registry_entry_get(id); if (!ere) return; ere->status = E_FM2_OP_STATUS_ERROR; ere->needs_attention = 1; + ere->dialog = dlg; e_fm2_op_registry_entry_changed(ere); } static void -_e_fm2_op_registry_needs_attention(int id) +_e_fm2_op_registry_needs_attention(int id, E_Dialog *dlg) { E_Fm2_Op_Registry_Entry *ere = e_fm2_op_registry_entry_get(id); if (!ere) return; ere->needs_attention = 1; + ere->dialog = dlg; e_fm2_op_registry_entry_changed(ere); } @@ -3068,21 +3072,30 @@ e_fm2_client_data(Ecore_Ipc_Event_Client_Data *e) break; case E_FM_OP_ERROR:/*error*/ - printf("%s:%s(%d) Error from slave #%d: %s\n", __FILE__, __FUNCTION__, __LINE__, e->ref, (char *)e->data); - _e_fm_error_dialog(e->ref, e->data); - _e_fm2_op_registry_error(e->ref); + { + E_Dialog *dlg; + printf("%s:%s(%d) Error from slave #%d: %s\n", __FILE__, __FUNCTION__, __LINE__, e->ref, (char *)e->data); + dlg = _e_fm_error_dialog(e->ref, e->data); + _e_fm2_op_registry_error(e->ref, dlg); + } break; case E_FM_OP_ERROR_RETRY_ABORT:/*error*/ - printf("%s:%s(%d) Error from slave #%d: %s\n", __FILE__, __FUNCTION__, __LINE__, e->ref, (char *)e->data); - _e_fm_retry_abort_dialog(e->ref, (char *)e->data); - _e_fm2_op_registry_error(e->ref); + { + E_Dialog *dlg; + printf("%s:%s(%d) Error from slave #%d: %s\n", __FILE__, __FUNCTION__, __LINE__, e->ref, (char *)e->data); + dlg = _e_fm_retry_abort_dialog(e->ref, (char *)e->data); + _e_fm2_op_registry_error(e->ref, dlg); + } break; case E_FM_OP_OVERWRITE:/*overwrite*/ - printf("%s:%s(%d) Overwrite from slave #%d: %s\n", __FILE__, __FUNCTION__, __LINE__, e->ref, (char *)e->data); - _e_fm_overwrite_dialog(e->ref, (char *)e->data); - _e_fm2_op_registry_needs_attention(e->ref); + { + E_Dialog *dlg; + printf("%s:%s(%d) Overwrite from slave #%d: %s\n", __FILE__, __FUNCTION__, __LINE__, e->ref, (char *)e->data); + dlg = _e_fm_overwrite_dialog(e->ref, (char *)e->data); + _e_fm2_op_registry_needs_attention(e->ref, dlg); + } break; case E_FM_OP_PROGRESS:/*progress*/ @@ -8964,7 +8977,8 @@ _e_fm2_file_do_rename(const char *text, E_Fm2_Icon *ic) } } -static void _e_fm_retry_abort_dialog(int pid, const char *str) +static E_Dialog* +_e_fm_retry_abort_dialog(int pid, const char *str) { E_Manager *man; E_Container *con; @@ -8973,9 +8987,9 @@ static void _e_fm_retry_abort_dialog(int pid, const char *str) char text[4096 + PATH_MAX]; man = e_manager_current_get(); - if (!man) return; + if (!man) return NULL; con = e_container_current_get(man); - if (!con) return; + if (!con) return NULL; id = malloc(sizeof(int)); *id = pid; @@ -8996,7 +9010,7 @@ static void _e_fm_retry_abort_dialog(int pid, const char *str) e_dialog_text_set(dialog, text); e_win_centered_set(dialog->win, 1); e_dialog_show(dialog); - + return dialog; } static void _e_fm_retry_abort_delete_cb(void *obj) @@ -9021,7 +9035,7 @@ static void _e_fm_retry_abort_abort_cb(void *data, E_Dialog *dialog) e_object_del(E_OBJECT(dialog)); } -static void +static E_Dialog* _e_fm_overwrite_dialog(int pid, const char *str) { E_Manager *man; @@ -9031,9 +9045,9 @@ _e_fm_overwrite_dialog(int pid, const char *str) char text[4096 + PATH_MAX]; man = e_manager_current_get(); - if (!man) return; + if (!man) return NULL; con = e_container_current_get(man); - if (!con) return; + if (!con) return NULL; id = malloc(sizeof(int)); *id = pid; @@ -9055,6 +9069,7 @@ _e_fm_overwrite_dialog(int pid, const char *str) e_dialog_text_set(dialog, text); e_win_centered_set(dialog->win, 1); e_dialog_show(dialog); + return dialog; } static void @@ -9100,7 +9115,7 @@ _e_fm_overwrite_yes_all_cb(void *data, E_Dialog *dialog) e_object_del(E_OBJECT(dialog)); } -static void +static E_Dialog* _e_fm_error_dialog(int pid, const char *str) { E_Manager *man; @@ -9110,9 +9125,9 @@ _e_fm_error_dialog(int pid, const char *str) char text[4096 + PATH_MAX]; man = e_manager_current_get(); - if (!man) return; + if (!man) return NULL; con = e_container_current_get(man); - if (!con) return; + if (!con) return NULL; id = malloc(sizeof(int)); *id = pid; @@ -9135,6 +9150,7 @@ _e_fm_error_dialog(int pid, const char *str) e_dialog_text_set(dialog, text); e_win_centered_set(dialog->win, 1); e_dialog_show(dialog); + return dialog; } static void @@ -9822,6 +9838,7 @@ _e_fm2_operation_abort_internal(E_Fm2_Op_Registry_Entry *ere) ere->status = E_FM2_OP_STATUS_ABORTED; ere->finished = 1; ere->needs_attention = 0; + ere->dialog = NULL; e_fm2_op_registry_entry_changed(ere); _e_fm_client_send(E_FM_OP_ABORT, ere->id, NULL, 0); } diff --git a/src/bin/e_fm_op_registry.h b/src/bin/e_fm_op_registry.h index d7b39935b..f05345c75 100644 --- a/src/bin/e_fm_op_registry.h +++ b/src/bin/e_fm_op_registry.h @@ -34,6 +34,7 @@ struct _E_Fm2_Op_Registry_Entry E_Fm_Op_Type op; E_Fm2_Op_Status status; Eina_Bool needs_attention:1; + E_Dialog *dialog; Eina_Bool finished:1; // service callbacks diff --git a/src/modules/fileman_opinfo/e-module-fileman_opinfo.edj b/src/modules/fileman_opinfo/e-module-fileman_opinfo.edj index cdaf15280d74ce551daed9676fc6d0d6761148b7..918b591dd0329c2b337ec83381cbe63fe6993b66 100644 GIT binary patch delta 12940 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 delta 11088 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 diff --git a/src/modules/fileman_opinfo/e_mod_main.c b/src/modules/fileman_opinfo/e_mod_main.c index bf76b2f7b..acc924c71 100644 --- a/src/modules/fileman_opinfo/e_mod_main.c +++ b/src/modules/fileman_opinfo/e_mod_main.c @@ -45,6 +45,7 @@ static int _opinfo_op_registry_free_data_delayed(void *data); static void _opinfo_op_registry_abort_cb (void *data, Evas_Object *obj, const char *emission, const char *source); static void _opinfo_op_registry_summary_cb (void *data, Evas_Object *obj, const char *emission, const char *source); static void _opinfo_op_registry_detailed_cb (void *data, Evas_Object *obj, const char *emission, const char *source); +static void _opinfo_op_registry_window_jump_cb (void *data, Evas_Object *obj, const char *emission, const char *source); static void _opinfo_op_registry_update_status (Instance *inst); /******************** GLOBALS ******************************************/ @@ -77,6 +78,12 @@ _opinfo_op_registry_listener(void *data, const E_Fm2_Op_Registry_Entry *ere) edje_object_signal_emit(o, "e,action,icon,unknow", "e"); } + // Update has/none linked efm window + if (e_win_evas_object_win_get(ere->e_fm)) + edje_object_signal_emit(o, "state,set,window,exist", "fileman_opinfo"); + else + edje_object_signal_emit(o, "state,set,window,absent", "fileman_opinfo"); + // Update information text switch (ere->status) { @@ -211,6 +218,39 @@ _opinfo_op_registry_detailed_cb(void *data, Evas_Object *obj, const char *emissi e_box_pack_options_set(obj, 1, 0, 1, 0, 0.0, 0.0, mw, xh, 9999, xh); } +static void +_opinfo_op_registry_window_jump_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + int id = (int)data; + E_Fm2_Op_Registry_Entry *ere; + E_Win *win; + + if (!id) return; + ere = e_fm2_op_registry_entry_get(id); + if (!ere) return; + + // if attention dialog is present then raise it, otherwise raise the efm window + win = (ere->needs_attention && ere->dialog) ? ere->dialog->win + : e_win_evas_object_win_get(ere->e_fm); + if (!win) return; + + if (win->border) + { + if (win->border->iconic) + e_border_uniconify(win->border); + if (win->border->shaded) + e_border_unshade(win->border, win->border->shade.dir); + } + else + e_win_show(win); + e_win_raise(win); + e_desk_show(win->border->desk); + e_border_focus_set_with_pointer(win->border); + + if (ere->needs_attention && e_config->pointer_slide) + e_border_pointer_warp_to_center(win->border); +} + static int _opinfo_op_registry_entry_add_cb(void *data, int type, void *event) { @@ -242,6 +282,8 @@ _opinfo_op_registry_entry_add_cb(void *data, int type, void *event) _opinfo_op_registry_summary_cb, inst); edje_object_signal_callback_add(o, "state,request,detailed", "fileman_opinfo", _opinfo_op_registry_detailed_cb, inst); + edje_object_signal_callback_add(o, "e,fm,window,jump", "", + _opinfo_op_registry_window_jump_cb, (void*)ere->id); e_fm2_op_registry_entry_listener_add(ere, _opinfo_op_registry_listener, o, _opinfo_op_registry_free_data);