gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r3386 - in GNUnet: . src/setup/gtk


From: grothoff
Subject: [GNUnet-SVN] r3386 - in GNUnet: . src/setup/gtk
Date: Sun, 10 Sep 2006 16:47:13 -0700 (PDT)

Author: grothoff
Date: 2006-09-10 16:47:10 -0700 (Sun, 10 Sep 2006)
New Revision: 3386

Modified:
   GNUnet/src/setup/gtk/Makefile.am
   GNUnet/src/setup/gtk/about.c
   GNUnet/src/setup/gtk/gconf.c
   GNUnet/src/setup/gtk/gnunet-setup.glade
   GNUnet/todo
Log:
gnunet-setup gtk save

Modified: GNUnet/src/setup/gtk/Makefile.am
===================================================================
--- GNUnet/src/setup/gtk/Makefile.am    2006-09-10 23:23:24 UTC (rev 3385)
+++ GNUnet/src/setup/gtk/Makefile.am    2006-09-10 23:47:10 UTC (rev 3386)
@@ -20,7 +20,6 @@
 
 libgnunetsetup_gtk_la_SOURCES = \
  about.c \
- save.c \
  gconf.c gconf.h \
  glade_support.h glade_support.c 
 # wizard_gtk.c wizard_gtk.h

Modified: GNUnet/src/setup/gtk/about.c
===================================================================
--- GNUnet/src/setup/gtk/about.c        2006-09-10 23:23:24 UTC (rev 3385)
+++ GNUnet/src/setup/gtk/about.c        2006-09-10 23:47:10 UTC (rev 3386)
@@ -32,8 +32,8 @@
 /**
  * This displays an about window
  */
-void on_about1_activatesetup_gtk(GtkWidget * dummy,
-                                gpointer data) {
+void on_aboutButton_activatesetup_gtk(GtkWidget * dummy,
+                                     gpointer data) {
   GtkWidget * ad;
   GladeXML * axml;
 

Modified: GNUnet/src/setup/gtk/gconf.c
===================================================================
--- GNUnet/src/setup/gtk/gconf.c        2006-09-10 23:23:24 UTC (rev 3385)
+++ GNUnet/src/setup/gtk/gconf.c        2006-09-10 23:47:10 UTC (rev 3386)
@@ -22,9 +22,6 @@
  * @file setup/gtk/gconf.c
  * @author Nils Durner
  * @author Christian Grothoff
- *
- * TODO:
- * - process save configuration event
  */
 
 #include "gnunet_setup_lib.h"
@@ -62,6 +59,8 @@
 
 static struct GE_Context * ectx;
 
+static const char * cfg_filename;
+
 static void addToTree(GtkTreeStore * model,
                      GtkTreeIter * parent,
                      struct GNS_Tree * pos) {
@@ -351,9 +350,6 @@
   updateTreeModel(gns);
 }
 
-
-
-
 static void initTreeView(struct GNS_Context * gns) {
   GtkWidget * treeView;
   GtkTreeViewColumn * column;
@@ -451,6 +447,76 @@
 }
 
 
+/**
+ * User requested save manually.  Save configuration.
+ */
+void on_saveButton_activatesetup_gtk() {
+  GtkWidget * dialog;
+  
+  if (0 == GC_write_configuration(cfg,
+                                 cfg_filename)) {    
+    dialog = gtk_message_dialog_new(NULL,
+                                   GTK_DIALOG_MODAL,
+                                   GTK_MESSAGE_INFO,
+                                   GTK_BUTTONS_OK,
+                                   _("Configuration saved."));
+    gtk_dialog_run(GTK_DIALOG(dialog));
+    gtk_widget_destroy(dialog);
+   } else {
+    dialog = gtk_message_dialog_new(NULL,
+                                   GTK_DIALOG_MODAL,
+                                   GTK_MESSAGE_ERROR,
+                                   GTK_BUTTONS_OK,
+                                   _("Failed to save configuration."));
+    gtk_dialog_run(GTK_DIALOG(dialog));
+    gtk_widget_destroy(dialog);
+  }
+}
+
+
+/**
+ * User clicked to close window.  Check if configuration
+ * needs saving and possibly save configuration or do not
+ * exit.
+ *
+ * @return TRUE to NOT exit (i.e. user hits cancel on save YES/NO/CANCEL).
+ */
+gboolean on_main_window_delete_eventsetup_gtk() {
+  GtkWidget * dialog;
+  gint ret;
+
+  if (GC_test_dirty(cfg)) {
+    dialog = gtk_message_dialog_new(NULL,
+                                   GTK_DIALOG_MODAL,
+                                   GTK_MESSAGE_QUESTION,
+                                   GTK_BUTTONS_YES_NO,
+                                   _("Configuration changed. Save?"));
+    ret = gtk_dialog_run(GTK_DIALOG(dialog));
+    gtk_widget_destroy(dialog);
+    switch (ret) {
+    case GTK_RESPONSE_YES:
+      GC_write_configuration(cfg,
+                            cfg_filename);
+      return FALSE;
+    case GTK_RESPONSE_NO:
+      return FALSE;
+    case GTK_RESPONSE_CANCEL:      
+    default:
+      return TRUE;
+    }
+  }
+  return FALSE;
+}
+
+/**
+ * We're really exiting.  Final cleanup code (in GTK).
+ */
+void gtk_main_quitsetup_gtk() {
+  gtk_main_quit();
+}
+
+
+
 int gconf_main_post_init(struct PluginHandle * self,
                         struct GE_Context * e,
                         struct GC_Configuration * c,
@@ -461,6 +527,7 @@
 
   cfg = c;
   ectx = e;
+  cfg_filename = filename;
   no_model = gtk_list_store_new(1,
                                G_TYPE_STRING);
   setLibrary(self);

Modified: GNUnet/src/setup/gtk/gnunet-setup.glade
===================================================================
--- GNUnet/src/setup/gtk/gnunet-setup.glade     2006-09-10 23:23:24 UTC (rev 
3385)
+++ GNUnet/src/setup/gtk/gnunet-setup.glade     2006-09-10 23:47:10 UTC (rev 
3386)
@@ -1963,253 +1963,6 @@
   </child>
 </widget>
 
-<widget class="GtkWindow" id="msgSave">
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">Question</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_CENTER</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-
-  <child>
-    <widget class="GtkVBox" id="vbox16">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child>
-       <widget class="GtkHBox" id="hbox65">
-         <property name="visible">True</property>
-         <property name="homogeneous">False</property>
-         <property name="spacing">0</property>
-
-         <child>
-           <widget class="GtkImage" id="image75">
-             <property name="visible">True</property>
-             <property name="stock">gtk-dialog-question</property>
-             <property name="icon_size">4</property>
-             <property name="xalign">0.5</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">15</property>
-           </widget>
-           <packing>
-             <property name="padding">15</property>
-             <property name="expand">False</property>
-             <property name="fill">True</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkLabel" id="label96">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">Do you want to save 
your settings?</property>
-             <property name="use_underline">False</property>
-             <property name="use_markup">False</property>
-             <property name="justify">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap">True</property>
-             <property name="selectable">False</property>
-             <property name="xalign">0.5</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">15</property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-             <property name="width_chars">-1</property>
-             <property name="single_line_mode">False</property>
-             <property name="angle">0</property>
-           </widget>
-           <packing>
-             <property name="padding">5</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">True</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkHSeparator" id="hseparator1">
-         <property name="visible">True</property>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkHButtonBox" id="hbuttonbox6">
-         <property name="visible">True</property>
-         <property name="layout_style">GTK_BUTTONBOX_END</property>
-         <property name="spacing">0</property>
-
-         <child>
-           <widget class="GtkButton" id="saveYes">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="label" translatable="yes">Yes</property>
-             <property name="use_underline">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="on_saveYes_clicked" 
object="msgSave" last_modification_time="Thu, 14 Apr 2005 19:30:39 GMT"/>
-           </widget>
-         </child>
-
-         <child>
-           <widget class="GtkButton" id="saveNo">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="label" translatable="yes">No</property>
-             <property name="use_underline">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="on_saveNo_clicked" 
object="msgSave" last_modification_time="Thu, 14 Apr 2005 19:30:31 GMT"/>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkWindow" id="msgSaveFailed">
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">Error</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_CENTER</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-
-  <child>
-    <widget class="GtkVBox" id="vbox17">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child>
-       <widget class="GtkHBox" id="hbox67">
-         <property name="visible">True</property>
-         <property name="homogeneous">False</property>
-         <property name="spacing">0</property>
-
-         <child>
-           <widget class="GtkImage" id="image77">
-             <property name="visible">True</property>
-             <property name="stock">gtk-dialog-error</property>
-             <property name="icon_size">4</property>
-             <property name="xalign">0.5</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">15</property>
-           </widget>
-           <packing>
-             <property name="padding">15</property>
-             <property name="expand">False</property>
-             <property name="fill">True</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkLabel" id="label98">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">Unable to save 
configuration!</property>
-             <property name="use_underline">False</property>
-             <property name="use_markup">False</property>
-             <property name="justify">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap">True</property>
-             <property name="selectable">False</property>
-             <property name="xalign">0.5</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">15</property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-             <property name="width_chars">-1</property>
-             <property name="single_line_mode">False</property>
-             <property name="angle">0</property>
-           </widget>
-           <packing>
-             <property name="padding">5</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">True</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkHSeparator" id="hseparator6">
-         <property name="visible">True</property>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkHButtonBox" id="hbuttonbox7">
-         <property name="visible">True</property>
-         <property name="layout_style">GTK_BUTTONBOX_END</property>
-         <property name="spacing">0</property>
-
-         <child>
-           <widget class="GtkButton" id="button1">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="label" translatable="yes">OK</property>
-             <property name="use_underline">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="do_destroy_window" 
object="msgSaveFailed" last_modification_time="Sun, 14 May 2006 09:46:52 GMT"/>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
 <widget class="GtkWindow" id="assi_step4">
   <property name="width_request">450</property>
   <property name="height_request">350</property>
@@ -2691,123 +2444,6 @@
   </child>
 </widget>
 
-<widget class="GtkWindow" id="msgUpdateFailed">
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">Error</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_CENTER</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-
-  <child>
-    <widget class="GtkVBox" id="vbox20">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child>
-       <widget class="GtkHBox" id="hbox79">
-         <property name="visible">True</property>
-         <property name="homogeneous">False</property>
-         <property name="spacing">0</property>
-
-         <child>
-           <widget class="GtkImage" id="image85">
-             <property name="visible">True</property>
-             <property name="stock">gtk-dialog-error</property>
-             <property name="icon_size">4</property>
-             <property name="xalign">0.5</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">15</property>
-           </widget>
-           <packing>
-             <property name="padding">15</property>
-             <property name="expand">False</property>
-             <property name="fill">True</property>
-           </packing>
-         </child>
-
-         <child>
-           <widget class="GtkLabel" id="label112">
-             <property name="visible">True</property>
-             <property name="label" translatable="yes">gnunet-update 
failed!</property>
-             <property name="use_underline">False</property>
-             <property name="use_markup">False</property>
-             <property name="justify">GTK_JUSTIFY_LEFT</property>
-             <property name="wrap">True</property>
-             <property name="selectable">False</property>
-             <property name="xalign">0.5</property>
-             <property name="yalign">0.5</property>
-             <property name="xpad">0</property>
-             <property name="ypad">15</property>
-             <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-             <property name="width_chars">-1</property>
-             <property name="single_line_mode">False</property>
-             <property name="angle">0</property>
-           </widget>
-           <packing>
-             <property name="padding">5</property>
-             <property name="expand">False</property>
-             <property name="fill">False</property>
-           </packing>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">True</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkHSeparator" id="hseparator8">
-         <property name="visible">True</property>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-
-      <child>
-       <widget class="GtkHButtonBox" id="hbuttonbox9">
-         <property name="visible">True</property>
-         <property name="layout_style">GTK_BUTTONBOX_END</property>
-         <property name="spacing">0</property>
-
-         <child>
-           <widget class="GtkButton" id="button2">
-             <property name="visible">True</property>
-             <property name="can_default">True</property>
-             <property name="can_focus">True</property>
-             <property name="label" translatable="yes">OK</property>
-             <property name="use_underline">True</property>
-             <property name="relief">GTK_RELIEF_NORMAL</property>
-             <property name="focus_on_click">True</property>
-             <signal name="clicked" handler="do_destroy_window" 
object="msgUpdateFailed" last_modification_time="Sun, 14 May 2006 09:46:41 
GMT"/>
-           </widget>
-         </child>
-       </widget>
-       <packing>
-         <property name="padding">0</property>
-         <property name="expand">False</property>
-         <property name="fill">True</property>
-       </packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
 <widget class="GtkWindow" id="setupWindow">
   <property name="visible">True</property>
   <property name="can_focus">True</property>
@@ -2838,58 +2474,41 @@
       <property name="spacing">0</property>
 
       <child>
-       <widget class="GtkMenuBar" id="menubar1">
+       <widget class="GtkHButtonBox" id="topHButtonBox">
          <property name="visible">True</property>
-         <property name="pack_direction">GTK_PACK_DIRECTION_LTR</property>
-         <property 
name="child_pack_direction">GTK_PACK_DIRECTION_LTR</property>
+         <property name="layout_style">GTK_BUTTONBOX_EDGE</property>
+         <property name="spacing">0</property>
 
          <child>
-           <widget class="GtkImageMenuItem" id="save1">
+           <widget class="GtkButton" id="saveButton">
              <property name="visible">True</property>
-             <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"/>
-             <accelerator key="S" modifiers="GDK_CONTROL_MASK" 
signal="activate"/>
-
-             <child internal-child="image">
-               <widget class="GtkImage" id="image119">
-                 <property name="visible">True</property>
-                 <property name="stock">gtk-save</property>
-                 <property name="icon_size">1</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-               </widget>
-             </child>
+             <property name="tooltip" translatable="yes">Save 
configuration</property>
+             <property name="can_default">True</property>
+             <property name="can_focus">True</property>
+             <property name="label">gtk-save</property>
+             <property name="use_stock">True</property>
+             <property name="relief">GTK_RELIEF_NORMAL</property>
+             <property name="focus_on_click">True</property>
+             <signal name="clicked" handler="on_saveButton_activate" 
last_modification_time="Mon, 11 Sep 2006 00:15:51 GMT"/>
            </widget>
          </child>
 
          <child>
-           <widget class="GtkImageMenuItem" id="about1">
+           <widget class="GtkButton" id="aboutButton">
              <property name="visible">True</property>
-             <property name="label" translatable="yes">_About</property>
-             <property name="use_underline">True</property>
-             <signal name="activate" handler="on_about1_activate" 
last_modification_time="Fri, 15 Nov 2002 20:26:30 GMT"/>
-             <accelerator key="A" modifiers="GDK_CONTROL_MASK" 
signal="activate"/>
-
-             <child internal-child="image">
-               <widget class="GtkImage" id="image120">
-                 <property name="visible">True</property>
-                 <property name="stock">gtk-about</property>
-                 <property name="icon_size">1</property>
-                 <property name="xalign">0.5</property>
-                 <property name="yalign">0.5</property>
-                 <property name="xpad">0</property>
-                 <property name="ypad">0</property>
-               </widget>
-             </child>
+             <property name="tooltip" translatable="yes">Show copyright 
information for gnunet-setup.</property>
+             <property name="can_default">True</property>
+             <property name="can_focus">True</property>
+             <property name="label">gtk-about</property>
+             <property name="use_stock">True</property>
+             <property name="relief">GTK_RELIEF_NORMAL</property>
+             <property name="focus_on_click">True</property>
+             <signal name="clicked" handler="on_aboutButton_activate" 
last_modification_time="Mon, 11 Sep 2006 00:16:02 GMT"/>
            </widget>
          </child>
        </widget>
        <packing>
-         <property name="padding">0</property>
+         <property name="padding">1</property>
          <property name="expand">False</property>
          <property name="fill">False</property>
        </packing>

Modified: GNUnet/todo
===================================================================
--- GNUnet/todo 2006-09-10 23:23:24 UTC (rev 3385)
+++ GNUnet/todo 2006-09-10 23:47:10 UTC (rev 3386)
@@ -56,7 +56,6 @@
       - testbed
   * setup:
     + gtk config
-      - save
       - memory leaks
     + gtk wizard
     + ncurses wizard





reply via email to

[Prev in Thread] Current Thread [Next in Thread]