Hi guys,

the attached patch allows to disable confirmation dialogs.
For example you want to shutdown or hibernate your computer, you first
need to accept the warning. This patch adds an option to the config
panel advanced->dialogs which allows to disable that.
People where asking for it, since my kill dialog patch went in.

Greets,
Brian 'morlenxus' Miculcy
? e_int_config_dialogs.c
? e_int_config_dialogs.h
Index: Makefile.am
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/Makefile.am,v
retrieving revision 1.176
diff -u -r1.176 Makefile.am
--- Makefile.am 2 Mar 2007 17:00:20 -0000       1.176
+++ Makefile.am 8 Mar 2007 17:57:40 -0000
@@ -135,7 +135,7 @@
 e_int_config_desklock.h \
 e_int_config_exebuf.h \
 e_int_config_apps.h \
-e_int_config_cfgdialogs.h \
+e_int_config_dialogs.h \
 e_int_config_color_classes.h \
 e_int_config_mime.h \
 e_int_config_mime_edit.h \
@@ -294,7 +294,7 @@
 e_int_config_desklock.c \
 e_int_config_exebuf.c \
 e_int_config_apps.c \
-e_int_config_cfgdialogs.c \
+e_int_config_dialogs.c \
 e_int_config_intl.c \
 e_int_config_imc.c \
 e_int_config_imc_import.c \
Index: e_actions.c
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_actions.c,v
retrieving revision 1.92
diff -u -r1.92 e_actions.c
--- e_actions.c 4 Mar 2007 07:03:10 -0000       1.92
+++ e_actions.c 8 Mar 2007 17:57:42 -0000
@@ -257,8 +257,11 @@
    E_Object *obj;
 
    obj = data;
-   e_object_del(E_OBJECT(kill_dialog));
-   kill_dialog = NULL;
+   if (dia)
+     {
+       e_object_del(E_OBJECT(kill_dialog));
+       kill_dialog = NULL;
+     }
    if ((!((E_Border *)obj)->lock_close) && (!((E_Border *)obj)->internal)) 
      e_border_act_kill_begin((E_Border *)obj);
 }
@@ -291,6 +294,14 @@
        obj = E_OBJECT(e_border_focused_get());
        if (!obj) return;
      }
+   if (kill_dialog) e_object_del(E_OBJECT(kill_dialog));
+
+   if (e_config->cnfmdlg_disabled)
+     {
+       _e_actions_cb_kill_dialog_ok (obj, NULL);
+       return;
+     }
+
    bd = (E_Border *)obj;
    snprintf(dialog_text, sizeof(dialog_text),
            "You are about to kill %s.<br><br>"
@@ -299,7 +310,6 @@
            "Are you sure you want to kill this window?", 
            bd->client.icccm.name);
 
-   if (kill_dialog) e_object_del(E_OBJECT(kill_dialog));
    kill_dialog = 
e_dialog_new(e_container_current_get(e_manager_current_get()), 
                              "E", "_kill_dialog");
    if (!kill_dialog) return;
@@ -1558,8 +1568,11 @@
 static void
 _e_actions_cb_exit_dialog_ok(void *data, E_Dialog *dia)
 {
-   e_object_del(E_OBJECT(exit_dialog));
-   exit_dialog = NULL;
+   if (dia)
+     {
+       e_object_del(E_OBJECT(exit_dialog));
+       exit_dialog = NULL;
+     }
    e_sys_action_do(E_SYS_EXIT, NULL);
 }
 
@@ -1582,6 +1595,13 @@
 ACT_FN_GO(exit)
 {
    if (exit_dialog) e_object_del(E_OBJECT(exit_dialog));
+
+   if (e_config->cnfmdlg_disabled)
+     {
+       _e_actions_cb_exit_dialog_ok (NULL, NULL);
+       return;
+     }
+
    exit_dialog = 
e_dialog_new(e_container_current_get(e_manager_current_get()), "E", 
"_exit_dialog");
    if (!exit_dialog) return;
    e_win_delete_callback_set(exit_dialog->win, 
_e_actions_cb_exit_dialog_delete);
@@ -1619,8 +1639,11 @@
 static void
 _e_actions_cb_logout_dialog_ok(void *data, E_Dialog *dia)
 {
-   e_object_del(E_OBJECT(logout_dialog));
-   logout_dialog = NULL;
+   if (dia)
+     {
+       e_object_del(E_OBJECT(logout_dialog));
+       logout_dialog = NULL;
+     }
    e_sys_action_do(E_SYS_LOGOUT, NULL);
 }
 
@@ -1643,6 +1666,13 @@
 ACT_FN_GO(logout)
 {
    if (logout_dialog) e_object_del(E_OBJECT(logout_dialog));
+   
+   if (e_config->cnfmdlg_disabled)
+     {
+       _e_actions_cb_logout_dialog_ok (NULL, NULL);
+       return;
+     }
+
    logout_dialog = 
e_dialog_new(e_container_current_get(e_manager_current_get()), "E", 
"_logout_dialog");
    if (!logout_dialog) return;
    e_win_delete_callback_set(logout_dialog->win, 
_e_actions_cb_logout_dialog_delete);
@@ -1668,8 +1698,11 @@
 static void
 _e_actions_cb_halt_dialog_ok(void *data, E_Dialog *dia)
 {
-   e_object_del(E_OBJECT(halt_dialog));
-   halt_dialog = NULL;
+   if (dia)
+     {
+       e_object_del(E_OBJECT(halt_dialog));
+       halt_dialog = NULL;
+     }
    e_sys_action_do(E_SYS_HALT, NULL);
 }
 
@@ -1692,6 +1725,13 @@
 ACT_FN_GO(halt)
 {
    if (halt_dialog) e_object_del(E_OBJECT(halt_dialog));
+
+   if (e_config->cnfmdlg_disabled)
+     {
+       _e_actions_cb_halt_dialog_ok (NULL, NULL);
+       return;
+     }
+
    halt_dialog = 
e_dialog_new(e_container_current_get(e_manager_current_get()), "E", 
"_halt_dialog");
    if (!halt_dialog) return;
    e_win_delete_callback_set(halt_dialog->win, 
_e_actions_cb_halt_dialog_delete);
@@ -1717,8 +1757,11 @@
 static void
 _e_actions_cb_reboot_dialog_ok(void *data, E_Dialog *dia)
 {
-   e_object_del(E_OBJECT(reboot_dialog));
-   reboot_dialog = NULL;
+   if (dia)
+     {
+       e_object_del(E_OBJECT(reboot_dialog));
+       reboot_dialog = NULL;
+     }
    e_sys_action_do(E_SYS_REBOOT, NULL);
 }
 
@@ -1741,6 +1784,13 @@
 ACT_FN_GO(reboot)
 {
    if (reboot_dialog) e_object_del(E_OBJECT(reboot_dialog));
+
+   if (e_config->cnfmdlg_disabled)
+     {
+       _e_actions_cb_reboot_dialog_ok (NULL, NULL);
+       return;
+     }
+
    reboot_dialog = 
e_dialog_new(e_container_current_get(e_manager_current_get()), "E", 
"_reboot_dialog");
    if (!reboot_dialog) return;
    e_win_delete_callback_set(reboot_dialog->win, 
_e_actions_cb_reboot_dialog_delete);
@@ -1766,8 +1816,11 @@
 static void
 _e_actions_cb_suspend_dialog_ok(void *data, E_Dialog *dia)
 {
-   e_object_del(E_OBJECT(suspend_dialog));
-   suspend_dialog = NULL;
+   if (dia)
+     {
+       e_object_del(E_OBJECT(suspend_dialog));
+       suspend_dialog = NULL;
+     }
    e_sys_action_do(E_SYS_SUSPEND, NULL);
 }
 
@@ -1790,6 +1843,13 @@
 ACT_FN_GO(suspend)
 {
    if (suspend_dialog) e_object_del(E_OBJECT(suspend_dialog));
+
+   if (e_config->cnfmdlg_disabled)
+     {
+       _e_actions_cb_suspend_dialog_ok (NULL, NULL);
+       return;
+     }
+
    suspend_dialog = 
e_dialog_new(e_container_current_get(e_manager_current_get()), "E", 
"_suspend_dialog");
    if (!suspend_dialog) return;
    e_win_delete_callback_set(suspend_dialog->win, 
_e_actions_cb_suspend_dialog_delete);
@@ -1815,8 +1875,11 @@
 static void
 _e_actions_cb_hibernate_dialog_ok(void *data, E_Dialog *dia)
 {
-   e_object_del(E_OBJECT(hibernate_dialog));
-   hibernate_dialog = NULL;
+   if (dia)
+     {
+       e_object_del(E_OBJECT(hibernate_dialog));
+       hibernate_dialog = NULL;
+     }
    e_sys_action_do(E_SYS_HIBERNATE, NULL);
 }
 
@@ -1839,6 +1902,13 @@
 ACT_FN_GO(hibernate)
 {
    if (hibernate_dialog) e_object_del(E_OBJECT(hibernate_dialog));
+
+   if (e_config->cnfmdlg_disabled)
+     {
+       _e_actions_cb_hibernate_dialog_ok (NULL, NULL);
+       return;
+     }
+
    hibernate_dialog = 
e_dialog_new(e_container_current_get(e_manager_current_get()), "E", 
"_hibernate_dialog");
    if (!hibernate_dialog) return;
    e_win_delete_callback_set(hibernate_dialog->win, 
_e_actions_cb_hibernate_dialog_delete);
Index: e_config.c
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_config.c,v
retrieving revision 1.228
diff -u -r1.228 e_config.c
--- e_config.c  2 Mar 2007 17:00:20 -0000       1.228
+++ e_config.c  8 Mar 2007 17:57:43 -0000
@@ -471,6 +471,7 @@
    E_CONFIG_VAL(D, T, exebuf_term_cmd, STR);
    E_CONFIG_LIST(D, T, color_classes, _e_config_color_class_edd);
    E_CONFIG_VAL(D, T, use_app_icon, INT);
+   E_CONFIG_VAL(D, T, cnfmdlg_disabled, INT); /**/
    E_CONFIG_VAL(D, T, cfgdlg_auto_apply, INT); /**/
    E_CONFIG_VAL(D, T, cfgdlg_default_mode, INT); /**/
    E_CONFIG_LIST(D, T, gadcons, _e_config_gadcon_edd);
@@ -694,6 +695,7 @@
    e_config->exebuf_term_cmd = evas_stringshare_add("xterm -hold -e");
    e_config->color_classes = NULL;
    e_config->use_app_icon = 0;
+   e_config->cnfmdlg_disabled = 0;
    e_config->cfgdlg_auto_apply = 0;
    e_config->cfgdlg_default_mode = 0;
    e_config->gadcons = NULL;
@@ -1417,6 +1419,7 @@
    E_CONFIG_LIMIT(e_config->menu_eap_generic_show, 0, 1);
    E_CONFIG_LIMIT(e_config->menu_eap_comment_show, 0, 1);
    E_CONFIG_LIMIT(e_config->use_app_icon, 0, 1);
+   E_CONFIG_LIMIT(e_config->cnfmdlg_disabled, 0, 1);
    E_CONFIG_LIMIT(e_config->cfgdlg_auto_apply, 0, 1);
    E_CONFIG_LIMIT(e_config->cfgdlg_default_mode, 0, 1);
    E_CONFIG_LIMIT(e_config->font_hinting, 0, 2);
Index: e_config.h
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_config.h,v
retrieving revision 1.143
diff -u -r1.143 e_config.h
--- e_config.h  2 Mar 2007 17:00:20 -0000       1.143
+++ e_config.h  8 Mar 2007 17:57:44 -0000
@@ -217,6 +217,7 @@
    const char *exebuf_term_cmd; // GUI
    Evas_List  *color_classes; // GUI
    int         use_app_icon; // GUI
+   int         cnfmdlg_disabled; // GUI
    int         cfgdlg_auto_apply; // GUI
    int         cfgdlg_default_mode; // GUI   
    Evas_List  *gadcons; // GUI
Index: e_configure.c
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_configure.c,v
retrieving revision 1.90
diff -u -r1.90 e_configure.c
--- e_configure.c       21 Feb 2007 00:05:27 -0000      1.90
+++ e_configure.c       8 Mar 2007 17:57:44 -0000
@@ -438,7 +438,7 @@
    _e_configure_item_add(cat, _("Input Method Settings"), "enlightenment/imc", 
e_int_config_imc);
 
    cat = _e_configure_category_add(eco, _("Advanced"), 
"enlightenment/advanced");
-   _e_configure_item_add(cat, _("Configuration Dialogs"), 
"enlightenment/configuration", e_int_config_cfgdialogs);
+   _e_configure_item_add(cat, _("Dialogs"), "enlightenment/configuration", 
e_int_config_dialogs);
    _e_configure_item_add(cat, _("Performance"), "enlightenment/performance", 
e_int_config_performance);   
    _e_configure_item_add(cat, _("Window List"), "enlightenment/winlist", 
e_int_config_winlist);
    _e_configure_item_add(cat, _("Run Command"), "enlightenment/run", 
e_int_config_exebuf);
Index: e_includes.h
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_includes.h,v
retrieving revision 1.148
diff -u -r1.148 e_includes.h
--- e_includes.h        21 Feb 2007 00:05:27 -0000      1.148
+++ e_includes.h        8 Mar 2007 17:57:44 -0000
@@ -106,7 +106,7 @@
 #include "e_int_config_dpms.h"
 #include "e_int_config_exebuf.h"
 #include "e_int_config_apps.h"
-#include "e_int_config_cfgdialogs.h"
+#include "e_int_config_dialogs.h"
 #include "e_int_config_intl.h"
 #include "e_int_config_imc.h"
 #include "e_int_config_imc_import.h"
Index: e_int_config_display.c
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_display.c,v
retrieving revision 1.33
diff -u -r1.33 e_int_config_display.c
--- e_int_config_display.c      22 Jan 2007 17:24:30 -0000      1.33
+++ e_int_config_display.c      8 Mar 2007 17:57:45 -0000
@@ -93,8 +93,7 @@
    e_config_save_queue();
    sb->cfdata->orig_size = c_size;
    sb->cfdata->orig_rate = c_rate;
-   _surebox_dialog_cb_delete(dia->win);
-
+   if (dia) _surebox_dialog_cb_delete(dia->win);
 }
 
 static void
@@ -338,7 +337,17 @@
        else
           ecore_x_randr_screen_size_set(man->root, size);
 
-       _surebox_new(cfd, cfdata);
+       if (e_config->cnfmdlg_disabled)
+         {
+            SureBox *sb;
+            
+            sb = E_NEW(SureBox, 1);
+            sb->cfd = cfd;
+            sb->cfdata = cfdata;
+            _surebox_dialog_cb_yes (sb, NULL);
+         }
+       else
+          _surebox_new(cfd, cfdata);
      }
 
    if ((cfdata->can_rotate) || (cfdata->can_flip))
#include "e.h"

static void        *_create_data(E_Config_Dialog *cfd);
static void        _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data 
*cfdata);
static int         _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data 
*cfdata);
static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, 
E_Config_Dialog_Data *cfdata);
#if 0
static int         _advanced_apply_data(E_Config_Dialog *cfd, 
E_Config_Dialog_Data *cfdata);
static Evas_Object *_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, 
E_Config_Dialog_Data *cfdata);
#endif

struct _E_Config_Dialog_Data 
{
   int cnfmdlg_disabled;
   int cfgdlg_auto_apply;
   int cfgdlg_default_mode;
};

EAPI E_Config_Dialog *
e_int_config_dialogs(E_Container *con) 
{
   E_Config_Dialog *cfd;
   E_Config_Dialog_View *v;
   
   if (e_config_dialog_find("E", "_config_config_dialog_dialog")) return NULL;
   v = E_NEW(E_Config_Dialog_View, 1);
   
   v->create_cfdata = _create_data;
   v->free_cfdata = _free_data;
   v->basic.apply_cfdata = _basic_apply_data;
   v->basic.create_widgets = _basic_create_widgets;
   v->override_auto_apply = 1;
   
   cfd = e_config_dialog_new(con,
                             _("Dialog Settings"),
                             "E", "_config_config_dialog_dialog",
                             "enlightenment/configuration", 0, v, NULL);
   return cfd;
}

static void
_fill_data(E_Config_Dialog_Data *cfdata) 
{
   cfdata->cnfmdlg_disabled = e_config->cnfmdlg_disabled;
   cfdata->cfgdlg_auto_apply = e_config->cfgdlg_auto_apply;
   cfdata->cfgdlg_default_mode = e_config->cfgdlg_default_mode;
}

static void *
_create_data(E_Config_Dialog *cfd) 
{
   E_Config_Dialog_Data *cfdata;
   
   cfdata = E_NEW(E_Config_Dialog_Data, 1);
   _fill_data(cfdata);
   return cfdata;
}

static void
_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) 
{
   E_FREE(cfdata);
}

static int
_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) 
{
   e_config->cnfmdlg_disabled = cfdata->cnfmdlg_disabled;
   /* Auto Apply is disabled in E for now */
   /* (e_config->cfgdlg_auto_apply = cfdata->cfgdlg_auto_apply; */
   e_config->cfgdlg_default_mode = cfdata->cfgdlg_default_mode;
   e_config_save_queue();
   return 1;
}

static Evas_Object *
_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data 
*cfdata) 
{
   Evas_Object *o, *of, *ob;
   E_Radio_Group *rg;
   
   o = e_widget_list_add(evas, 0, 0);

   of = e_widget_framelist_add(evas, _("General Settings"), 0);

   ob = e_widget_check_add(evas, _("Disable Confirmation Dialogs"), 
&(cfdata->cnfmdlg_disabled));
   e_widget_framelist_object_append(of, ob);
//   ob = e_widget_check_add(evas, _("Auto-Apply Configuration Changes"), 
&(cfdata->cfgdlg_auto_apply));
//   e_widget_framelist_object_append(of, ob);
   
   e_widget_list_object_append(o, of, 1, 1, 0.5);
 
   of = e_widget_framelist_add(evas, _("Default Configuration Dialogs Mode"), 
0);
   rg = e_widget_radio_group_new(&(cfdata->cfgdlg_default_mode));

   ob = e_widget_radio_add(evas, _("Basic Mode"), 
E_CONFIG_DIALOG_CFDATA_TYPE_BASIC, rg);
   e_widget_framelist_object_append(of, ob);
   ob = e_widget_radio_add(evas, _("Advanced Mode"), 
E_CONFIG_DIALOG_CFDATA_TYPE_ADVANCED, rg);
   e_widget_framelist_object_append(of, ob);
   
   e_widget_list_object_append(o, of, 1, 1, 0.5);

   return o;
}

#if 0
static int
_advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) 
{
   /* Auto Apply is disabled in E for now */
   /* (e_config->cfgdlg_auto_apply = cfdata->auto_apply; */

   e_config->cfgdlg_default_mode = cfdata->default_mode;
   e_config_save_queue();
   return 1;
}

static Evas_Object *
_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data 
*cfdata) 
{
   Evas_Object *o, *ob, *of;
   E_Radio_Group *rg;
   
   o = e_widget_list_add(evas, 0, 0);

//   of = e_widget_framelist_add(evas, _("General Settings"), 0);
//   ob = e_widget_check_add(evas, _("Auto-Apply Configuration Changes"), 
&(cfdata->auto_apply));
//   e_widget_framelist_object_append(of, ob);
//   e_widget_list_object_append(o, of, 1, 1, 0.5);   
   
   of = e_widget_framelist_add(evas, _("Default Dialog Mode"), 0);
   rg = e_widget_radio_group_new(&(cfdata->default_mode));

   ob = e_widget_radio_add(evas, _("Basic Mode"), 
E_CONFIG_DIALOG_CFDATA_TYPE_BASIC, rg);
   e_widget_framelist_object_append(of, ob);
   ob = e_widget_radio_add(evas, _("Advanced Mode"), 
E_CONFIG_DIALOG_CFDATA_TYPE_ADVANCED, rg);
   e_widget_framelist_object_append(of, ob);
   
   e_widget_list_object_append(o, of, 1, 1, 0.5);   
   return o;
}
#endif
#ifdef E_TYPEDEFS
#else
#ifndef E_INT_CONFIG_DIALOGS_H
#define E_INT_CONFIG_DIALOGS_H

EAPI E_Config_Dialog *e_int_config_dialogs(E_Container *con);

#endif
#endif
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to