Fix bug where changing a config value then selecting a different page (Basic/Advanced) would reset the value to it's original state. Fix config dialogs to work correctly for this. Going for the modules config dialogs next.

SVN revision: 20435
This commit is contained in:
Christopher Michael 2006-02-13 15:36:56 +00:00
parent 388cbda6b1
commit 52a5ccaac5
10 changed files with 22 additions and 53 deletions

View File

@ -23,7 +23,6 @@ e_config_dialog_new(E_Container *con, char *title, char *icon, int icon_size, E_
{
E_Config_Dialog *cfd;
cfd = E_OBJECT_ALLOC(E_Config_Dialog, E_CONFIG_DIALOG_TYPE, _e_config_dialog_free);
cfd->view = view;
cfd->con = con;
@ -35,7 +34,8 @@ e_config_dialog_new(E_Container *con, char *title, char *icon, int icon_size, E_
}
cfd->data = data;
cfd->hide_buttons = 1;
cfd->cfg_changed = 0;
if ((cfd->view->basic.apply_cfdata) || (cfd->view->advanced.apply_cfdata))
cfd->hide_buttons = 0;
@ -76,7 +76,6 @@ _e_config_dialog_go(E_Config_Dialog *cfd, E_Config_Dialog_CFData_Type type)
pdia = cfd->dia;
cfd->dia = e_dialog_new(cfd->con);
cfd->dia->data = cfd;
cfd->view_dirty=0;
e_object_del_attach_func_set(E_OBJECT(cfd->dia), _e_config_dialog_cb_dialog_del);
e_dialog_title_set(cfd->dia, cfd->title);
if (cfd->icon) e_dialog_icon_set(cfd->dia, cfd->icon, cfd->icon_size);
@ -122,8 +121,11 @@ _e_config_dialog_go(E_Config_Dialog *cfd, E_Config_Dialog_CFData_Type type)
{
e_dialog_button_add(cfd->dia, _("OK"), NULL, _e_config_dialog_cb_ok, cfd);
e_dialog_button_add(cfd->dia, _("Apply"), NULL, _e_config_dialog_cb_apply, cfd);
e_dialog_button_disable_num_set(cfd->dia, 0, 1);
e_dialog_button_disable_num_set(cfd->dia, 1, 1);
if (!cfd->cfg_changed)
{
e_dialog_button_disable_num_set(cfd->dia, 0, 1);
e_dialog_button_disable_num_set(cfd->dia, 1, 1);
}
}
/* FIXME: This wont catch the window border close button, but that is probably not cancelable. */
e_dialog_button_add(cfd->dia, _("Close"), NULL, _e_config_dialog_cb_close, cfd);
@ -208,6 +210,7 @@ _e_config_dialog_cb_apply(void *data, E_Dialog *dia)
}
if ((ok) && (!cfd->hide_buttons))
{
cfd->cfg_changed = 0;
e_dialog_button_disable_num_set(cfd->dia, 0, 1);
e_dialog_button_disable_num_set(cfd->dia, 1, 1);
}
@ -239,6 +242,7 @@ _e_config_dialog_cb_changed(void *data, Evas_Object *obj)
cfd = data;
if (!cfd->hide_buttons)
{
cfd->cfg_changed = 1;
e_dialog_button_disable_num_set(cfd->dia, 0, 0);
e_dialog_button_disable_num_set(cfd->dia, 1, 0);
}

View File

@ -43,7 +43,7 @@ struct _E_Config_Dialog
int icon_size;
E_Dialog *dia;
void *data;
int view_dirty;
int cfg_changed;
int hide_buttons;
};

View File

@ -148,9 +148,7 @@ _basic_create_widgets(E_Config_Dialog *cdd, Evas *evas, E_Config_Dialog_Data *cf
{
/* generate the core widget layout for a basic dialog */
Evas_Object *o, *ob, *of, *ot;
_fill_data(cfdata);
o = e_widget_list_add(evas, 0, 0);
of = e_widget_framelist_add(evas, _("Number of Desktops"), 0);
@ -177,8 +175,6 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
/* generate the core widget layout for an advanced dialog */
Evas_Object *o, *ob, *of, *ot;
_fill_data(cfdata);
o = e_widget_list_add(evas, 0, 0);
of = e_widget_framelist_add(evas, _("Number of Desktops"), 0);

View File

@ -149,9 +149,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
/* generate the core widget layout for a basic dialog */
Evas_Object *o, *ob;
E_Radio_Group *rg;
_fill_data(cfdata);
o = e_widget_list_add(evas, 0, 0);
rg = e_widget_radio_group_new(&(cfdata->mode));
ob = e_widget_radio_add(evas, _("Click Window to Focus"), E_FOCUS_CLICK, rg);
@ -169,9 +167,7 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
/* generate the core widget layout for an advanced dialog */
Evas_Object *o, *ob, *of;
E_Radio_Group *rg;
_fill_data(cfdata);
o = e_widget_list_add(evas, 0, 0);
of = e_widget_framelist_add(evas, _("Focus"), 0);

View File

@ -85,9 +85,7 @@ static Evas_Object *
_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
{
Evas_Object *o, *of, *ob;
_fill_data(cfdata);
o = e_widget_list_add(evas, 0, 0);
of = e_widget_framelist_add(evas, _("Menu Settings"), 0);
ob = e_widget_check_add(evas, _("Show Name In Menu"), &(cfdata->menu_eap_name_show));
@ -109,22 +107,14 @@ _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
e_config->menu_eap_comment_show = cfdata->menu_eap_comment_show;
if (cfdata->menus_scroll_speed == 0)
{
e_config->menus_scroll_speed = 1.0;
}
e_config->menus_scroll_speed = 1.0;
else
{
e_config->menus_scroll_speed = cfdata->menus_scroll_speed;
}
e_config->menus_scroll_speed = cfdata->menus_scroll_speed;
if (cfdata->menus_fast_mouse_move_threshhold == 0)
{
e_config->menus_fast_mouse_move_threshhold = 1.0;
}
else
{
e_config->menus_fast_mouse_move_threshhold = cfdata->menus_fast_mouse_move_threshhold;
}
e_config->menus_fast_mouse_move_threshhold = 1.0;
else
e_config->menus_fast_mouse_move_threshhold = cfdata->menus_fast_mouse_move_threshhold;
e_config->menus_click_drag_timeout = cfdata->menus_click_drag_timeout;
e_config->menu_autoscroll_margin = cfdata->menu_autoscroll_margin;
@ -139,8 +129,6 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
{
Evas_Object *o, *of, *ob;
_fill_data(cfdata);
o = e_widget_list_add(evas, 0, 0);
of = e_widget_framelist_add(evas, _("Menu Settings"), 0);
ob = e_widget_check_add(evas, _("Show Name In Menu"), &(cfdata->menu_eap_name_show));

View File

@ -55,6 +55,7 @@ _create_data(E_Config_Dialog *cfd)
E_Config_Dialog_Data *cfdata;
cfdata = E_NEW(E_Config_Dialog_Data, 1);
_fill_data(cfdata);
return cfdata;
}
@ -79,8 +80,6 @@ static Evas_Object *
_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
{
Evas_Object *o, *of, *ob;
_fill_data(cfdata);
o = e_widget_list_add(evas, 0, 0);
@ -115,8 +114,6 @@ static Evas_Object *
_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
{
Evas_Object *o, *ob, *of;
_fill_data(cfdata);
o = e_widget_list_add(evas, 0, 0);

View File

@ -39,6 +39,7 @@ _create_data(E_Config_Dialog *cfd)
E_Config_Dialog_Data *cfdata;
cfdata = E_NEW(E_Config_Dialog_Data, 1);
_fill_data(cfdata);
return cfdata;
}
@ -63,8 +64,6 @@ static Evas_Object *
_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
{
Evas_Object *o, *of, *ob;
_fill_data(cfdata);
o = e_widget_list_add(evas, 0, 0);

View File

@ -137,8 +137,6 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
Evas_Object *o, *of, *ob;
E_Radio_Group *rg;
_fill_data(cfdata);
o = e_widget_list_add(evas, 0, 0);
of = e_widget_framelist_add(evas, _("Display"), 0);
@ -170,8 +168,6 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
Evas_Object *o, *ob, *of;
E_Radio_Group *rg;
_fill_data(cfdata);
o = e_widget_list_add(evas, 0, 0);
of = e_widget_framelist_add(evas, _("Window Move Geometry"), 0);

View File

@ -126,8 +126,6 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
Evas_Object *o, *of, *ob;
E_Radio_Group *rg;
_fill_data(cfdata);
o = e_widget_list_add(evas, 0, 0);
of = e_widget_framelist_add(evas, _("Miscellaneous Options"), 0);
@ -159,8 +157,6 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
Evas_Object *o, *ob, *of;
E_Radio_Group *rg;
_fill_data(cfdata);
o = e_widget_list_add(evas, 0, 0);
of = e_widget_framelist_add(evas, _("Autoraise"), 0);

View File

@ -83,6 +83,7 @@ _create_data(E_Config_Dialog *cfd)
E_Config_Dialog_Data *cfdata;
cfdata = E_NEW(E_Config_Dialog_Data, 1);
_fill_data(cfdata);
return cfdata;
}
@ -116,8 +117,6 @@ static Evas_Object *
_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
{
Evas_Object *o, *of, *ob;
_fill_data(cfdata);
o = e_widget_list_add(evas, 0, 0);
@ -188,8 +187,6 @@ static Evas_Object *
_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
{
Evas_Object *o, *of, *ob, *ot;
_fill_data(cfdata);
o = e_widget_list_add(evas, 0, 0);
ot = e_widget_table_add(evas, 0);