提交 0a0c502c 编写于 作者: K Karsten Wiese 提交者: Linus Torvalds

[PATCH] kconfig: set gconf's save-widget's sensitivity according to .config's changed state

Clean up a little.
Signed-off-by: NKarsten Wiese <fzu@wemgehoertderstaat.de>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Acked-by: NRandy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 3b354c55
...@@ -38,8 +38,6 @@ static gboolean show_all = FALSE; ...@@ -38,8 +38,6 @@ static gboolean show_all = FALSE;
static gboolean show_debug = FALSE; static gboolean show_debug = FALSE;
static gboolean resizeable = FALSE; static gboolean resizeable = FALSE;
static gboolean config_changed = FALSE;
static char nohelp_text[] = static char nohelp_text[] =
N_("Sorry, no help available for this option yet.\n"); N_("Sorry, no help available for this option yet.\n");
...@@ -50,6 +48,8 @@ GtkWidget *text_w = NULL; ...@@ -50,6 +48,8 @@ GtkWidget *text_w = NULL;
GtkWidget *hpaned = NULL; GtkWidget *hpaned = NULL;
GtkWidget *vpaned = NULL; GtkWidget *vpaned = NULL;
GtkWidget *back_btn = NULL; GtkWidget *back_btn = NULL;
GtkWidget *save_btn = NULL;
GtkWidget *save_menu_item = NULL;
GtkTextTag *tag1, *tag2; GtkTextTag *tag1, *tag2;
GdkColor color; GdkColor color;
...@@ -75,7 +75,7 @@ static void display_tree_part(void); ...@@ -75,7 +75,7 @@ static void display_tree_part(void);
static void update_tree(struct menu *src, GtkTreeIter * dst); static void update_tree(struct menu *src, GtkTreeIter * dst);
static void set_node(GtkTreeIter * node, struct menu *menu, gchar ** row); static void set_node(GtkTreeIter * node, struct menu *menu, gchar ** row);
static gchar **fill_row(struct menu *menu); static gchar **fill_row(struct menu *menu);
static void conf_changed(void);
/* Helping/Debugging Functions */ /* Helping/Debugging Functions */
...@@ -224,6 +224,10 @@ void init_main_window(const gchar * glade_file) ...@@ -224,6 +224,10 @@ void init_main_window(const gchar * glade_file)
gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget, gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget,
show_value); show_value);
save_btn = glade_xml_get_widget(xml, "button3");
save_menu_item = glade_xml_get_widget(xml, "save1");
conf_set_changed_callback(conf_changed);
style = gtk_widget_get_style(main_wnd); style = gtk_widget_get_style(main_wnd);
widget = glade_xml_get_widget(xml, "toolbar1"); widget = glade_xml_get_widget(xml, "toolbar1");
...@@ -512,14 +516,14 @@ static void text_insert_msg(const char *title, const char *message) ...@@ -512,14 +516,14 @@ static void text_insert_msg(const char *title, const char *message)
/* Main Windows Callbacks */ /* Main Windows Callbacks */
void on_save1_activate(GtkMenuItem * menuitem, gpointer user_data); void on_save_activate(GtkMenuItem * menuitem, gpointer user_data);
gboolean on_window1_delete_event(GtkWidget * widget, GdkEvent * event, gboolean on_window1_delete_event(GtkWidget * widget, GdkEvent * event,
gpointer user_data) gpointer user_data)
{ {
GtkWidget *dialog, *label; GtkWidget *dialog, *label;
gint result; gint result;
if (config_changed == FALSE) if (!conf_get_changed())
return FALSE; return FALSE;
dialog = gtk_dialog_new_with_buttons(_("Warning !"), dialog = gtk_dialog_new_with_buttons(_("Warning !"),
...@@ -543,7 +547,7 @@ gboolean on_window1_delete_event(GtkWidget * widget, GdkEvent * event, ...@@ -543,7 +547,7 @@ gboolean on_window1_delete_event(GtkWidget * widget, GdkEvent * event,
result = gtk_dialog_run(GTK_DIALOG(dialog)); result = gtk_dialog_run(GTK_DIALOG(dialog));
switch (result) { switch (result) {
case GTK_RESPONSE_YES: case GTK_RESPONSE_YES:
on_save1_activate(NULL, NULL); on_save_activate(NULL, NULL);
return FALSE; return FALSE;
case GTK_RESPONSE_NO: case GTK_RESPONSE_NO:
return FALSE; return FALSE;
...@@ -621,12 +625,10 @@ void on_load1_activate(GtkMenuItem * menuitem, gpointer user_data) ...@@ -621,12 +625,10 @@ void on_load1_activate(GtkMenuItem * menuitem, gpointer user_data)
} }
void on_save1_activate(GtkMenuItem * menuitem, gpointer user_data) void on_save_activate(GtkMenuItem * menuitem, gpointer user_data)
{ {
if (conf_write(NULL)) if (conf_write(NULL))
text_insert_msg(_("Error"), _("Unable to save configuration !")); text_insert_msg(_("Error"), _("Unable to save configuration !"));
config_changed = FALSE;
} }
...@@ -819,12 +821,6 @@ void on_load_clicked(GtkButton * button, gpointer user_data) ...@@ -819,12 +821,6 @@ void on_load_clicked(GtkButton * button, gpointer user_data)
} }
void on_save_clicked(GtkButton * button, gpointer user_data)
{
on_save1_activate(NULL, user_data);
}
void on_single_clicked(GtkButton * button, gpointer user_data) void on_single_clicked(GtkButton * button, gpointer user_data)
{ {
view_mode = SINGLE_VIEW; view_mode = SINGLE_VIEW;
...@@ -899,7 +895,6 @@ static void renderer_edited(GtkCellRendererText * cell, ...@@ -899,7 +895,6 @@ static void renderer_edited(GtkCellRendererText * cell,
sym_set_string_value(sym, new_def); sym_set_string_value(sym, new_def);
config_changed = TRUE;
update_tree(&rootmenu, NULL); update_tree(&rootmenu, NULL);
gtk_tree_path_free(path); gtk_tree_path_free(path);
...@@ -930,7 +925,6 @@ static void change_sym_value(struct menu *menu, gint col) ...@@ -930,7 +925,6 @@ static void change_sym_value(struct menu *menu, gint col)
if (!sym_tristate_within_range(sym, newval)) if (!sym_tristate_within_range(sym, newval))
newval = yes; newval = yes;
sym_set_tristate_value(sym, newval); sym_set_tristate_value(sym, newval);
config_changed = TRUE;
if (view_mode == FULL_VIEW) if (view_mode == FULL_VIEW)
update_tree(&rootmenu, NULL); update_tree(&rootmenu, NULL);
else if (view_mode == SPLIT_VIEW) { else if (view_mode == SPLIT_VIEW) {
...@@ -1633,3 +1627,10 @@ int main(int ac, char *av[]) ...@@ -1633,3 +1627,10 @@ int main(int ac, char *av[])
return 0; return 0;
} }
static void conf_changed(void)
{
bool changed = conf_get_changed();
gtk_widget_set_sensitive(save_btn, changed);
gtk_widget_set_sensitive(save_menu_item, changed);
}
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
<property name="tooltip" translatable="yes">Save the config in .config</property> <property name="tooltip" translatable="yes">Save the config in .config</property>
<property name="label" translatable="yes">_Save</property> <property name="label" translatable="yes">_Save</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<signal name="activate" handler="on_save1_activate"/> <signal name="activate" handler="on_save_activate"/>
<accelerator key="S" modifiers="GDK_CONTROL_MASK" signal="activate"/> <accelerator key="S" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image"> <child internal-child="image">
...@@ -380,7 +380,7 @@ ...@@ -380,7 +380,7 @@
<property name="visible_horizontal">True</property> <property name="visible_horizontal">True</property>
<property name="visible_vertical">True</property> <property name="visible_vertical">True</property>
<property name="is_important">False</property> <property name="is_important">False</property>
<signal name="clicked" handler="on_save_clicked"/> <signal name="clicked" handler="on_save_activate"/>
</widget> </widget>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册