Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0a0c502c94af0491ab454ad6d216c7a6fda8362b
Commit:     0a0c502c94af0491ab454ad6d216c7a6fda8362b
Parent:     3b354c557c7a6fcac099b3a20b308853fe596183
Author:     Karsten Wiese <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 13 00:34:09 2006 -0800
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Wed Dec 13 09:05:48 2006 -0800

    [PATCH] kconfig: set gconf's save-widget's sensitivity according to 
.config's changed state
    
    Clean up a little.
    
    Signed-off-by: Karsten Wiese <[EMAIL PROTECTED]>
    Cc: Sam Ravnborg <[EMAIL PROTECTED]>
    Cc: Roman Zippel <[EMAIL PROTECTED]>
    Acked-by: Randy Dunlap <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 scripts/kconfig/gconf.c     |   35 ++++++++++++++++++-----------------
 scripts/kconfig/gconf.glade |    4 ++--
 2 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/scripts/kconfig/gconf.c b/scripts/kconfig/gconf.c
index 7b0d3a9..61d8166 100644
--- a/scripts/kconfig/gconf.c
+++ b/scripts/kconfig/gconf.c
@@ -38,8 +38,6 @@ static gboolean show_all = FALSE;
 static gboolean show_debug = FALSE;
 static gboolean resizeable = FALSE;
 
-static gboolean config_changed = FALSE;
-
 static char nohelp_text[] =
     N_("Sorry, no help available for this option yet.\n");
 
@@ -50,6 +48,8 @@ GtkWidget *text_w = NULL;
 GtkWidget *hpaned = NULL;
 GtkWidget *vpaned = NULL;
 GtkWidget *back_btn = NULL;
+GtkWidget *save_btn = NULL;
+GtkWidget *save_menu_item = NULL;
 
 GtkTextTag *tag1, *tag2;
 GdkColor color;
@@ -75,7 +75,7 @@ static void display_tree_part(void);
 static void update_tree(struct menu *src, GtkTreeIter * dst);
 static void set_node(GtkTreeIter * node, struct menu *menu, gchar ** row);
 static gchar **fill_row(struct menu *menu);
-
+static void conf_changed(void);
 
 /* Helping/Debugging Functions */
 
@@ -224,6 +224,10 @@ void init_main_window(const gchar * glade_file)
        gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget,
                                       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);
        widget = glade_xml_get_widget(xml, "toolbar1");
 
@@ -512,14 +516,14 @@ static void text_insert_msg(const char *title, const char 
*message)
 
 /* 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,
                                 gpointer user_data)
 {
        GtkWidget *dialog, *label;
        gint result;
 
-       if (config_changed == FALSE)
+       if (!conf_get_changed())
                return FALSE;
 
        dialog = gtk_dialog_new_with_buttons(_("Warning !"),
@@ -543,7 +547,7 @@ gboolean on_window1_delete_event(GtkWidget * widget, 
GdkEvent * event,
        result = gtk_dialog_run(GTK_DIALOG(dialog));
        switch (result) {
        case GTK_RESPONSE_YES:
-               on_save1_activate(NULL, NULL);
+               on_save_activate(NULL, NULL);
                return FALSE;
        case GTK_RESPONSE_NO:
                return FALSE;
@@ -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))
                text_insert_msg(_("Error"), _("Unable to save configuration 
!"));
-
-       config_changed = FALSE;
 }
 
 
@@ -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)
 {
        view_mode = SINGLE_VIEW;
@@ -899,7 +895,6 @@ static void renderer_edited(GtkCellRendererText * cell,
 
        sym_set_string_value(sym, new_def);
 
-       config_changed = TRUE;
        update_tree(&rootmenu, NULL);
 
        gtk_tree_path_free(path);
@@ -930,7 +925,6 @@ static void change_sym_value(struct menu *menu, gint col)
                if (!sym_tristate_within_range(sym, newval))
                        newval = yes;
                sym_set_tristate_value(sym, newval);
-               config_changed = TRUE;
                if (view_mode == FULL_VIEW)
                        update_tree(&rootmenu, NULL);
                else if (view_mode == SPLIT_VIEW) {
@@ -1633,3 +1627,10 @@ int main(int ac, char *av[])
 
        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);
+}
diff --git a/scripts/kconfig/gconf.glade b/scripts/kconfig/gconf.glade
index f8744ed..803233f 100644
--- a/scripts/kconfig/gconf.glade
+++ b/scripts/kconfig/gconf.glade
@@ -70,7 +70,7 @@
                      <property name="tooltip" translatable="yes">Save the 
config in .config</property>
                      <property name="label" translatable="yes">_Save</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"/>
 
                      <child internal-child="image">
@@ -380,7 +380,7 @@
                  <property name="visible_horizontal">True</property>
                  <property name="visible_vertical">True</property>
                  <property name="is_important">False</property>
-                 <signal name="clicked" handler="on_save_clicked"/>
+                 <signal name="clicked" handler="on_save_activate"/>
                </widget>
                <packing>
                  <property name="expand">False</property>
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to