[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r25224 - in gnunet-gtk: contrib src/setup
From: |
gnunet |
Subject: |
[GNUnet-SVN] r25224 - in gnunet-gtk: contrib src/setup |
Date: |
Tue, 4 Dec 2012 14:33:16 +0100 |
Author: grothoff
Date: 2012-12-04 14:33:16 +0100 (Tue, 04 Dec 2012)
New Revision: 25224
Modified:
gnunet-gtk/contrib/Makefile.am
gnunet-gtk/contrib/gnunet_setup_gns_edit_aaaa.glade
gnunet-gtk/contrib/gnunet_setup_gns_edit_cname.glade
gnunet-gtk/contrib/gnunet_setup_gns_edit_leho.glade
gnunet-gtk/contrib/gnunet_setup_gns_edit_mx.glade
gnunet-gtk/contrib/gnunet_setup_gns_edit_ns.glade
gnunet-gtk/contrib/gnunet_setup_gns_edit_pkey.glade
gnunet-gtk/contrib/gnunet_setup_gns_edit_ptr.glade
gnunet-gtk/contrib/gnunet_setup_gns_edit_soa.glade
gnunet-gtk/contrib/gnunet_setup_gns_edit_srv.glade
gnunet-gtk/contrib/gnunet_setup_gns_edit_txt.glade
gnunet-gtk/contrib/gnunet_setup_gns_edit_vpn.glade
gnunet-gtk/src/setup/gnunet-setup-gns-edit.c
gnunet-gtk/src/setup/gnunet-setup-gns-edit.h
gnunet-gtk/src/setup/gnunet-setup-gns.c
Log:
-adding custom dialogs for a few simple record types
Modified: gnunet-gtk/contrib/Makefile.am
===================================================================
--- gnunet-gtk/contrib/Makefile.am 2012-12-04 13:16:26 UTC (rev 25223)
+++ gnunet-gtk/contrib/Makefile.am 2012-12-04 13:33:16 UTC (rev 25224)
@@ -62,9 +62,9 @@
gnunet_setup_gns_edit_pkey.glade \
gnunet_setup_gns_edit_leho.glade \
gnunet_setup_gns_edit_srv.glade \
- gnunet_setup_gns_edit_vpn.glade \
- gnunet_setup_gns_edit_pseu.glade
+ gnunet_setup_gns_edit_vpn.glade
+
install-data-local:
$(mkinstalldirs) $(DESTDIR)$(pkgpixdir)
$(mkinstalldirs) $(DESTDIR)$(pkgpixdir)/flags
Modified: gnunet-gtk/contrib/gnunet_setup_gns_edit_aaaa.glade
===================================================================
--- gnunet-gtk/contrib/gnunet_setup_gns_edit_aaaa.glade 2012-12-04 13:16:26 UTC
(rev 25223)
+++ gnunet-gtk/contrib/gnunet_setup_gns_edit_aaaa.glade 2012-12-04 13:33:16 UTC
(rev 25224)
@@ -24,7 +24,7 @@
<property name="window_position">center-on-parent</property>
<property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
- <signal name="response" handler="GNS_edit_a_dialog_response_cb"
swapped="no"/>
+ <signal name="response" handler="GNS_edit_aaaa_dialog_response_cb"
swapped="no"/>
<child internal-child="vbox">
<object class="GtkVBox" id="edit_dialog_vbox">
<property name="visible">True</property>
@@ -206,7 +206,7 @@
<property
name="secondary_icon_activatable">False</property>
<property name="primary_icon_sensitive">True</property>
<property
name="secondary_icon_sensitive">True</property>
- <signal name="changed"
handler="GNS_edit_dialog_a_entry_changed_cb" swapped="no"/>
+ <signal name="changed"
handler="GNS_edit_dialog_aaaa_entry_changed_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
Modified: gnunet-gtk/contrib/gnunet_setup_gns_edit_cname.glade
===================================================================
--- gnunet-gtk/contrib/gnunet_setup_gns_edit_cname.glade 2012-12-04
13:16:26 UTC (rev 25223)
+++ gnunet-gtk/contrib/gnunet_setup_gns_edit_cname.glade 2012-12-04
13:33:16 UTC (rev 25224)
@@ -24,7 +24,7 @@
<property name="window_position">center-on-parent</property>
<property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
- <signal name="response" handler="GNS_edit_a_dialog_response_cb"
swapped="no"/>
+ <signal name="response" handler="GNS_edit_cname_dialog_response_cb"
swapped="no"/>
<child internal-child="vbox">
<object class="GtkVBox" id="edit_dialog_vbox">
<property name="visible">True</property>
@@ -200,13 +200,13 @@
<property name="can_focus">True</property>
<property name="has_focus">True</property>
<property name="tooltip_text" translatable="yes">Enter
the name for which this name is an alias.</property>
- <property name="max_length">15</property>
+ <property name="max_length">253</property>
<property name="invisible_char">●</property>
<property
name="primary_icon_activatable">False</property>
<property
name="secondary_icon_activatable">False</property>
<property name="primary_icon_sensitive">True</property>
<property
name="secondary_icon_sensitive">True</property>
- <signal name="changed"
handler="GNS_edit_dialog_a_entry_changed_cb" swapped="no"/>
+ <signal name="changed"
handler="GNS_edit_dialog_cname_entry_changed_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
Modified: gnunet-gtk/contrib/gnunet_setup_gns_edit_leho.glade
===================================================================
--- gnunet-gtk/contrib/gnunet_setup_gns_edit_leho.glade 2012-12-04 13:16:26 UTC
(rev 25223)
+++ gnunet-gtk/contrib/gnunet_setup_gns_edit_leho.glade 2012-12-04 13:33:16 UTC
(rev 25224)
@@ -63,7 +63,7 @@
<property name="window_position">center-on-parent</property>
<property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
- <signal name="response" handler="GNS_edit_a_dialog_response_cb"
swapped="no"/>
+ <signal name="response" handler="GNS_edit_leho_dialog_response_cb"
swapped="no"/>
<child internal-child="vbox">
<object class="GtkVBox" id="edit_dialog_vbox">
<property name="visible">True</property>
@@ -245,7 +245,7 @@
<property
name="secondary_icon_activatable">False</property>
<property name="primary_icon_sensitive">True</property>
<property
name="secondary_icon_sensitive">True</property>
- <signal name="changed"
handler="GNS_edit_dialog_a_entry_changed_cb" swapped="no"/>
+ <signal name="changed"
handler="GNS_edit_dialog_leho_entry_changed_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
Modified: gnunet-gtk/contrib/gnunet_setup_gns_edit_mx.glade
===================================================================
--- gnunet-gtk/contrib/gnunet_setup_gns_edit_mx.glade 2012-12-04 13:16:26 UTC
(rev 25223)
+++ gnunet-gtk/contrib/gnunet_setup_gns_edit_mx.glade 2012-12-04 13:33:16 UTC
(rev 25224)
@@ -63,7 +63,7 @@
<property name="window_position">center-on-parent</property>
<property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
- <signal name="response" handler="GNS_edit_a_dialog_response_cb"
swapped="no"/>
+ <signal name="response" handler="GNS_edit_mx_dialog_response_cb"
swapped="no"/>
<child internal-child="vbox">
<object class="GtkVBox" id="edit_dialog_vbox">
<property name="visible">True</property>
@@ -239,13 +239,13 @@
<property name="can_focus">True</property>
<property name="has_focus">True</property>
<property name="tooltip_text" translatable="yes">Enter
the hostname of the mail server here</property>
- <property name="max_length">15</property>
+ <property name="max_length">253</property>
<property name="invisible_char">●</property>
<property
name="primary_icon_activatable">False</property>
<property
name="secondary_icon_activatable">False</property>
<property name="primary_icon_sensitive">True</property>
<property
name="secondary_icon_sensitive">True</property>
- <signal name="changed"
handler="GNS_edit_dialog_a_entry_changed_cb" swapped="no"/>
+ <signal name="changed"
handler="GNS_edit_dialog_mx_entry_changed_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
Modified: gnunet-gtk/contrib/gnunet_setup_gns_edit_ns.glade
===================================================================
--- gnunet-gtk/contrib/gnunet_setup_gns_edit_ns.glade 2012-12-04 13:16:26 UTC
(rev 25223)
+++ gnunet-gtk/contrib/gnunet_setup_gns_edit_ns.glade 2012-12-04 13:33:16 UTC
(rev 25224)
@@ -63,7 +63,7 @@
<property name="window_position">center-on-parent</property>
<property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
- <signal name="response" handler="GNS_edit_a_dialog_response_cb"
swapped="no"/>
+ <signal name="response" handler="GNS_edit_ns_dialog_response_cb"
swapped="no"/>
<child internal-child="vbox">
<object class="GtkVBox" id="edit_dialog_vbox">
<property name="visible">True</property>
@@ -245,7 +245,7 @@
<property
name="secondary_icon_activatable">False</property>
<property name="primary_icon_sensitive">True</property>
<property
name="secondary_icon_sensitive">True</property>
- <signal name="changed"
handler="GNS_edit_dialog_a_entry_changed_cb" swapped="no"/>
+ <signal name="changed"
handler="GNS_edit_dialog_ns_entry_changed_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
Modified: gnunet-gtk/contrib/gnunet_setup_gns_edit_pkey.glade
===================================================================
--- gnunet-gtk/contrib/gnunet_setup_gns_edit_pkey.glade 2012-12-04 13:16:26 UTC
(rev 25223)
+++ gnunet-gtk/contrib/gnunet_setup_gns_edit_pkey.glade 2012-12-04 13:33:16 UTC
(rev 25224)
@@ -63,7 +63,7 @@
<property name="window_position">center-on-parent</property>
<property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
- <signal name="response" handler="GNS_edit_a_dialog_response_cb"
swapped="no"/>
+ <signal name="response" handler="GNS_edit_pkey_dialog_response_cb"
swapped="no"/>
<child internal-child="vbox">
<object class="GtkVBox" id="edit_dialog_vbox">
<property name="visible">True</property>
@@ -245,7 +245,7 @@
<property
name="secondary_icon_activatable">False</property>
<property name="primary_icon_sensitive">True</property>
<property
name="secondary_icon_sensitive">True</property>
- <signal name="changed"
handler="GNS_edit_dialog_a_entry_changed_cb" swapped="no"/>
+ <signal name="changed"
handler="GNS_edit_dialog_pkey_entry_changed_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -258,7 +258,7 @@
</object>
</child>
<child type="label">
- <object class="GtkLabel" id="edit_dialog_a_label">
+ <object class="GtkLabel" id="edit_dialog_pkey_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes"><b>GADS
authority for the subzone (PKEY)</b></property>
Modified: gnunet-gtk/contrib/gnunet_setup_gns_edit_ptr.glade
===================================================================
--- gnunet-gtk/contrib/gnunet_setup_gns_edit_ptr.glade 2012-12-04 13:16:26 UTC
(rev 25223)
+++ gnunet-gtk/contrib/gnunet_setup_gns_edit_ptr.glade 2012-12-04 13:33:16 UTC
(rev 25224)
@@ -63,7 +63,7 @@
<property name="window_position">center-on-parent</property>
<property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
- <signal name="response" handler="GNS_edit_a_dialog_response_cb"
swapped="no"/>
+ <signal name="response" handler="GNS_edit_ptr_dialog_response_cb"
swapped="no"/>
<child internal-child="vbox">
<object class="GtkVBox" id="edit_dialog_vbox">
<property name="visible">True</property>
@@ -245,7 +245,7 @@
<property
name="secondary_icon_activatable">False</property>
<property name="primary_icon_sensitive">True</property>
<property
name="secondary_icon_sensitive">True</property>
- <signal name="changed"
handler="GNS_edit_dialog_a_entry_changed_cb" swapped="no"/>
+ <signal name="changed"
handler="GNS_edit_dialog_ptr_entry_changed_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
Modified: gnunet-gtk/contrib/gnunet_setup_gns_edit_soa.glade
===================================================================
--- gnunet-gtk/contrib/gnunet_setup_gns_edit_soa.glade 2012-12-04 13:16:26 UTC
(rev 25223)
+++ gnunet-gtk/contrib/gnunet_setup_gns_edit_soa.glade 2012-12-04 13:33:16 UTC
(rev 25224)
@@ -92,7 +92,7 @@
<property name="window_position">center-on-parent</property>
<property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
- <signal name="response" handler="GNS_edit_a_dialog_response_cb"
swapped="no"/>
+ <signal name="response" handler="GNS_edit_soa_dialog_response_cb"
swapped="no"/>
<child internal-child="vbox">
<object class="GtkVBox" id="edit_dialog_vbox">
<property name="visible">True</property>
Modified: gnunet-gtk/contrib/gnunet_setup_gns_edit_srv.glade
===================================================================
--- gnunet-gtk/contrib/gnunet_setup_gns_edit_srv.glade 2012-12-04 13:16:26 UTC
(rev 25223)
+++ gnunet-gtk/contrib/gnunet_setup_gns_edit_srv.glade 2012-12-04 13:33:16 UTC
(rev 25224)
@@ -78,7 +78,7 @@
<property name="window_position">center-on-parent</property>
<property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
- <signal name="response" handler="GNS_edit_a_dialog_response_cb"
swapped="no"/>
+ <signal name="response" handler="GNS_edit_srv_dialog_response_cb"
swapped="no"/>
<child internal-child="vbox">
<object class="GtkVBox" id="edit_dialog_vbox">
<property name="visible">True</property>
Modified: gnunet-gtk/contrib/gnunet_setup_gns_edit_txt.glade
===================================================================
--- gnunet-gtk/contrib/gnunet_setup_gns_edit_txt.glade 2012-12-04 13:16:26 UTC
(rev 25223)
+++ gnunet-gtk/contrib/gnunet_setup_gns_edit_txt.glade 2012-12-04 13:33:16 UTC
(rev 25224)
@@ -63,7 +63,7 @@
<property name="window_position">center-on-parent</property>
<property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
- <signal name="response" handler="GNS_edit_a_dialog_response_cb"
swapped="no"/>
+ <signal name="response" handler="GNS_edit_txt_dialog_response_cb"
swapped="no"/>
<child internal-child="vbox">
<object class="GtkVBox" id="edit_dialog_vbox">
<property name="visible">True</property>
@@ -245,7 +245,7 @@
<property
name="secondary_icon_activatable">False</property>
<property name="primary_icon_sensitive">True</property>
<property
name="secondary_icon_sensitive">True</property>
- <signal name="changed"
handler="GNS_edit_dialog_a_entry_changed_cb" swapped="no"/>
+ <signal name="changed"
handler="GNS_edit_dialog_txt_entry_changed_cb" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
Modified: gnunet-gtk/contrib/gnunet_setup_gns_edit_vpn.glade
===================================================================
--- gnunet-gtk/contrib/gnunet_setup_gns_edit_vpn.glade 2012-12-04 13:16:26 UTC
(rev 25223)
+++ gnunet-gtk/contrib/gnunet_setup_gns_edit_vpn.glade 2012-12-04 13:33:16 UTC
(rev 25224)
@@ -63,7 +63,7 @@
<property name="window_position">center-on-parent</property>
<property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
- <signal name="response" handler="GNS_edit_a_dialog_response_cb"
swapped="no"/>
+ <signal name="response" handler="GNS_edit_vpn_dialog_response_cb"
swapped="no"/>
<child internal-child="vbox">
<object class="GtkVBox" id="edit_dialog_vbox">
<property name="visible">True</property>
Modified: gnunet-gtk/src/setup/gnunet-setup-gns-edit.c
===================================================================
--- gnunet-gtk/src/setup/gnunet-setup-gns-edit.c 2012-12-04 13:16:26 UTC
(rev 25223)
+++ gnunet-gtk/src/setup/gnunet-setup-gns-edit.c 2012-12-04 13:33:16 UTC
(rev 25224)
@@ -567,4 +567,785 @@
}
+/* ************************ AAAA records *********************** */
+
+/**
+ * Check validity of the value in the edit dialog for AAAA-records.
+ * Then call the shared validity check if the result is OK.
+ *
+ * @param edc edit dialog context
+ */
+static void
+edit_dialog_aaaa_validity_check (struct EditDialogContext *edc)
+{
+ GtkEditable *entry;
+ const gchar *preedit;
+ struct in6_addr v6;
+
+ entry = GTK_EDITABLE (gtk_builder_get_object (edc->builder,
+ "edit_dialog_aaaa_entry")),
+ preedit = gtk_editable_get_chars (entry, 0, -1);
+ if ( (NULL == preedit) ||
+ (1 != inet_pton (AF_INET6, preedit, &v6)) )
+ {
+ edit_dialog_disable_save (edc);
+ return;
+ }
+ edit_dialog_check_save (edc);
+}
+
+
+/**
+ * Editing dialog was closed, get the data and call the
+ * continuation.
+ *
+ * @param dialog editing dialog
+ * @param user_data the 'struct EditDialogContext'
+ */
+void
+GNS_edit_aaaa_dialog_response_cb (GtkDialog *dialog,
+ gint response_id,
+ gpointer user_data)
+{
+ struct EditDialogContext *edc = user_data;
+ GtkEntry *entry;
+ const gchar *value;
+
+ if (GTK_RESPONSE_OK == response_id)
+ {
+ edit_dialog_putes_common_elements (edc);
+ entry = GTK_ENTRY (gtk_builder_get_object (edc->builder,
+ "edit_dialog_aaaa_entry"));
+ value = gtk_entry_get_text (entry);
+ g_free (edc->n_value);
+ edc->n_value = g_strdup (value);
+ }
+ gtk_widget_destroy (GTK_WIDGET (edc->dialog));
+ g_object_unref (edc->builder);
+ edc->builder = NULL;
+ edc->cont (edc, response_id);
+}
+
+
+/**
+ * The user has edited the AAAA record value. Enable/disable 'save'
+ * button depending on the validity of the value.
+ *
+ * @param entry editing widget
+ * @param preedit new value
+ * @param user_data the 'struct EditDialogContext' of the dialog
+ */
+void
+GNS_edit_dialog_aaaa_entry_changed_cb (GtkEditable *entry,
+ gpointer user_data)
+{
+ struct EditDialogContext *edc = user_data;
+
+ edit_dialog_a_validity_check (edc);
+}
+
+
+/**
+ * Run an GNS Edit dialog for an 'AAAA' Record.
+ *
+ * @param cont continuation to call when done
+ * @param edc editing context to use
+ */
+void
+GNS_edit_dialog_aaaa (struct EditDialogContext *edc)
+{
+ edc->builder = GNUNET_GTK_get_new_builder
("gnunet_setup_gns_edit_aaaa.glade",
+ edc);
+ if (NULL == edc->builder)
+ {
+ GNUNET_break (0);
+ edc->cont (edc, GTK_RESPONSE_CANCEL); /* treat as 'cancel' */
+ return;
+ }
+ if (GNUNET_YES ==
+ edc->old_record_in_namestore)
+ {
+ /* set AAAA record */
+ gtk_entry_set_text (GTK_ENTRY (gtk_builder_get_object (edc->builder,
+
"edit_dialog_aaaa_entry")),
+ edc->n_value);
+ }
+ edc->validator = &edit_dialog_aaaa_validity_check;
+ edc->dialog = GTK_DIALOG (gtk_builder_get_object (edc->builder,
+ "edit_aaaa_dialog"));
+ run_edit_dialog (edc);
+}
+
+
+/* ************************ CNAME records *********************** */
+
+/**
+ * Check validity of the value in the edit dialog for AAAA-records.
+ * Then call the shared validity check if the result is OK.
+ *
+ * @param edc edit dialog context
+ */
+static void
+edit_dialog_cname_validity_check (struct EditDialogContext *edc)
+{
+ GtkEditable *entry;
+ const gchar *preedit;
+
+ entry = GTK_EDITABLE (gtk_builder_get_object (edc->builder,
+ "edit_dialog_cname_entry")),
+ preedit = gtk_editable_get_chars (entry, 0, -1);
+ if ( (NULL == preedit) ||
+ (GNUNET_OK != GNUNET_DNSPARSER_check_name (preedit)) )
+ {
+ edit_dialog_disable_save (edc);
+ return;
+ }
+ edit_dialog_check_save (edc);
+}
+
+
+/**
+ * Editing dialog was closed, get the data and call the
+ * continuation.
+ *
+ * @param dialog editing dialog
+ * @param user_data the 'struct EditDialogContext'
+ */
+void
+GNS_edit_cname_dialog_response_cb (GtkDialog *dialog,
+ gint response_id,
+ gpointer user_data)
+{
+ struct EditDialogContext *edc = user_data;
+ GtkEntry *entry;
+ const gchar *value;
+
+ if (GTK_RESPONSE_OK == response_id)
+ {
+ edit_dialog_putes_common_elements (edc);
+ entry = GTK_ENTRY (gtk_builder_get_object (edc->builder,
+ "edit_dialog_cname_entry"));
+ value = gtk_entry_get_text (entry);
+ g_free (edc->n_value);
+ edc->n_value = g_strdup (value);
+ }
+ gtk_widget_destroy (GTK_WIDGET (edc->dialog));
+ g_object_unref (edc->builder);
+ edc->builder = NULL;
+ edc->cont (edc, response_id);
+}
+
+
+/**
+ * The user has edited the CNAME record value. Enable/disable 'save'
+ * button depending on the validity of the value.
+ *
+ * @param entry editing widget
+ * @param preedit new value
+ * @param user_data the 'struct EditDialogContext' of the dialog
+ */
+void
+GNS_edit_dialog_cname_entry_changed_cb (GtkEditable *entry,
+ gpointer user_data)
+{
+ struct EditDialogContext *edc = user_data;
+
+ edit_dialog_cname_validity_check (edc);
+}
+
+
+/**
+ * Run an GNS Edit dialog for an 'CNAME' Record.
+ *
+ * @param cont continuation to call when done
+ * @param edc editing context to use
+ */
+void
+GNS_edit_dialog_cname (struct EditDialogContext *edc)
+{
+ edc->builder = GNUNET_GTK_get_new_builder
("gnunet_setup_gns_edit_cname.glade",
+ edc);
+ if (NULL == edc->builder)
+ {
+ GNUNET_break (0);
+ edc->cont (edc, GTK_RESPONSE_CANCEL); /* treat as 'cancel' */
+ return;
+ }
+ if (GNUNET_YES ==
+ edc->old_record_in_namestore)
+ {
+ /* set CNAME record */
+ gtk_entry_set_text (GTK_ENTRY (gtk_builder_get_object (edc->builder,
+
"edit_dialog_cname_entry")),
+ edc->n_value);
+ }
+ edc->validator = &edit_dialog_cname_validity_check;
+ edc->dialog = GTK_DIALOG (gtk_builder_get_object (edc->builder,
+ "edit_cname_dialog"));
+ run_edit_dialog (edc);
+}
+
+
+/* ************************ LEHO records *********************** */
+
+/**
+ * Check validity of the value in the edit dialog for LEHO-records.
+ * Then call the shared validity check if the result is OK.
+ *
+ * @param edc edit dialog context
+ */
+static void
+edit_dialog_leho_validity_check (struct EditDialogContext *edc)
+{
+ GtkEditable *entry;
+ const gchar *preedit;
+
+ entry = GTK_EDITABLE (gtk_builder_get_object (edc->builder,
+ "edit_dialog_leho_entry")),
+ preedit = gtk_editable_get_chars (entry, 0, -1);
+ if ( (NULL == preedit) ||
+ (GNUNET_OK != GNUNET_DNSPARSER_check_name (preedit)) )
+ {
+ edit_dialog_disable_save (edc);
+ return;
+ }
+ edit_dialog_check_save (edc);
+}
+
+
+/**
+ * Editing dialog was closed, get the data and call the
+ * continuation.
+ *
+ * @param dialog editing dialog
+ * @param user_data the 'struct EditDialogContext'
+ */
+void
+GNS_edit_leho_dialog_response_cb (GtkDialog *dialog,
+ gint response_id,
+ gpointer user_data)
+{
+ struct EditDialogContext *edc = user_data;
+ GtkEntry *entry;
+ const gchar *value;
+
+ if (GTK_RESPONSE_OK == response_id)
+ {
+ edit_dialog_putes_common_elements (edc);
+ entry = GTK_ENTRY (gtk_builder_get_object (edc->builder,
+ "edit_dialog_leho_entry"));
+ value = gtk_entry_get_text (entry);
+ g_free (edc->n_value);
+ edc->n_value = g_strdup (value);
+ }
+ gtk_widget_destroy (GTK_WIDGET (edc->dialog));
+ g_object_unref (edc->builder);
+ edc->builder = NULL;
+ edc->cont (edc, response_id);
+}
+
+
+/**
+ * The user has edited the LEHO record value. Enable/disable 'save'
+ * button depending on the validity of the value.
+ *
+ * @param entry editing widget
+ * @param preedit new value
+ * @param user_data the 'struct EditDialogContext' of the dialog
+ */
+void
+GNS_edit_dialog_leho_entry_changed_cb (GtkEditable *entry,
+ gpointer user_data)
+{
+ struct EditDialogContext *edc = user_data;
+
+ edit_dialog_leho_validity_check (edc);
+}
+
+
+/**
+ * Run an GNS Edit dialog for an 'LEHO' Record.
+ *
+ * @param cont continuation to call when done
+ * @param edc editing context to use
+ */
+void
+GNS_edit_dialog_leho (struct EditDialogContext *edc)
+{
+ edc->builder = GNUNET_GTK_get_new_builder
("gnunet_setup_gns_edit_leho.glade",
+ edc);
+ if (NULL == edc->builder)
+ {
+ GNUNET_break (0);
+ edc->cont (edc, GTK_RESPONSE_CANCEL); /* treat as 'cancel' */
+ return;
+ }
+ if (GNUNET_YES ==
+ edc->old_record_in_namestore)
+ {
+ /* set LEHO record */
+ gtk_entry_set_text (GTK_ENTRY (gtk_builder_get_object (edc->builder,
+
"edit_dialog_leho_entry")),
+ edc->n_value);
+ }
+ edc->validator = &edit_dialog_leho_validity_check;
+ edc->dialog = GTK_DIALOG (gtk_builder_get_object (edc->builder,
+ "edit_leho_dialog"));
+ run_edit_dialog (edc);
+}
+
+
+/* ************************ MX records *********************** */
+
+/**
+ * Check validity of the value in the edit dialog for MX-records.
+ * Then call the shared validity check if the result is OK.
+ *
+ * @param edc edit dialog context
+ */
+static void
+edit_dialog_mx_validity_check (struct EditDialogContext *edc)
+{
+ GtkEditable *entry;
+ const gchar *preedit;
+
+ entry = GTK_EDITABLE (gtk_builder_get_object (edc->builder,
+ "edit_dialog_mx_entry")),
+ preedit = gtk_editable_get_chars (entry, 0, -1);
+ if ( (NULL == preedit) ||
+ (GNUNET_OK != GNUNET_DNSPARSER_check_name (preedit)) )
+ {
+ edit_dialog_disable_save (edc);
+ return;
+ }
+ edit_dialog_check_save (edc);
+}
+
+
+/**
+ * Editing dialog was closed, get the data and call the
+ * continuation.
+ *
+ * @param dialog editing dialog
+ * @param user_data the 'struct EditDialogContext'
+ */
+void
+GNS_edit_mx_dialog_response_cb (GtkDialog *dialog,
+ gint response_id,
+ gpointer user_data)
+{
+ struct EditDialogContext *edc = user_data;
+ GtkEntry *entry;
+ const gchar *value;
+ char *result;
+ unsigned int distance;
+
+ if (GTK_RESPONSE_OK == response_id)
+ {
+ edit_dialog_putes_common_elements (edc);
+ entry = GTK_ENTRY (gtk_builder_get_object (edc->builder,
+ "edit_dialog_mx_entry"));
+ value = gtk_entry_get_text (entry);
+ distance = gtk_spin_button_get_value (GTK_SPIN_BUTTON
(gtk_builder_get_object (edc->builder,
+
"edit_dialog_mx_distance_spinbutton")));
+ g_free (edc->n_value);
+ GNUNET_asprintf (&result,
+ "%hu,%s",
+ distance,
+ value);
+ edc->n_value = g_strdup (result);
+ GNUNET_free (result);
+ }
+ gtk_widget_destroy (GTK_WIDGET (edc->dialog));
+ g_object_unref (edc->builder);
+ edc->builder = NULL;
+ edc->cont (edc, response_id);
+}
+
+
+/**
+ * The user has edited the MX record value. Enable/disable 'save'
+ * button depending on the validity of the value.
+ *
+ * @param entry editing widget
+ * @param preedit new value
+ * @param user_data the 'struct EditDialogContext' of the dialog
+ */
+void
+GNS_edit_dialog_mx_entry_changed_cb (GtkEditable *entry,
+ gpointer user_data)
+{
+ struct EditDialogContext *edc = user_data;
+
+ edit_dialog_mx_validity_check (edc);
+}
+
+
+/**
+ * Run an GNS Edit dialog for an 'MX' Record.
+ *
+ * @param cont continuation to call when done
+ * @param edc editing context to use
+ */
+void
+GNS_edit_dialog_mx (struct EditDialogContext *edc)
+{
+ uint16_t mx_pref;
+ char result[253 + 1];
+
+ edc->builder = GNUNET_GTK_get_new_builder ("gnunet_setup_gns_edit_mx.glade",
+ edc);
+ if (NULL == edc->builder)
+ {
+ GNUNET_break (0);
+ edc->cont (edc, GTK_RESPONSE_CANCEL); /* treat as 'cancel' */
+ return;
+ }
+ if (GNUNET_YES ==
+ edc->old_record_in_namestore)
+ {
+ if (2 != SSCANF(edc->n_value,
+ "%hu,%253s", &mx_pref, result))
+ {
+ GNUNET_break (0);
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ _("Unable to parse MX record `%s'\n"),
+ edc->n_value);
+ }
+ else
+ {
+ gtk_entry_set_text (GTK_ENTRY (gtk_builder_get_object (edc->builder,
+
"edit_dialog_mx_entry")),
+ result);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (gtk_builder_get_object
(edc->builder,
+
"edit_dialog_mx_distance_spinbutton")),
+ mx_pref);
+ }
+ }
+ edc->validator = &edit_dialog_mx_validity_check;
+ edc->dialog = GTK_DIALOG (gtk_builder_get_object (edc->builder,
+ "edit_mx_dialog"));
+ run_edit_dialog (edc);
+}
+
+
+/* ************************ NS records *********************** */
+
+/**
+ * Check validity of the value in the edit dialog for NS-records.
+ * Then call the shared validity check if the result is OK.
+ *
+ * @param edc edit dialog context
+ */
+static void
+edit_dialog_ns_validity_check (struct EditDialogContext *edc)
+{
+ GtkEditable *entry;
+ const gchar *preedit;
+
+ entry = GTK_EDITABLE (gtk_builder_get_object (edc->builder,
+ "edit_dialog_ns_entry")),
+ preedit = gtk_editable_get_chars (entry, 0, -1);
+ if ( (NULL == preedit) ||
+ (GNUNET_OK != GNUNET_DNSPARSER_check_name (preedit)) )
+ {
+ edit_dialog_disable_save (edc);
+ return;
+ }
+ edit_dialog_check_save (edc);
+}
+
+
+/**
+ * Editing dialog was closed, get the data and call the
+ * continuation.
+ *
+ * @param dialog editing dialog
+ * @param user_data the 'struct EditDialogContext'
+ */
+void
+GNS_edit_ns_dialog_response_cb (GtkDialog *dialog,
+ gint response_id,
+ gpointer user_data)
+{
+ struct EditDialogContext *edc = user_data;
+ GtkEntry *entry;
+ const gchar *value;
+
+ if (GTK_RESPONSE_OK == response_id)
+ {
+ edit_dialog_putes_common_elements (edc);
+ entry = GTK_ENTRY (gtk_builder_get_object (edc->builder,
+ "edit_dialog_ns_entry"));
+ value = gtk_entry_get_text (entry);
+ g_free (edc->n_value);
+ edc->n_value = g_strdup (value);
+ }
+ gtk_widget_destroy (GTK_WIDGET (edc->dialog));
+ g_object_unref (edc->builder);
+ edc->builder = NULL;
+ edc->cont (edc, response_id);
+}
+
+
+/**
+ * The user has edited the NS record value. Enable/disable 'save'
+ * button depending on the validity of the value.
+ *
+ * @param entry editing widget
+ * @param preedit new value
+ * @param user_data the 'struct EditDialogContext' of the dialog
+ */
+void
+GNS_edit_dialog_ns_entry_changed_cb (GtkEditable *entry,
+ gpointer user_data)
+{
+ struct EditDialogContext *edc = user_data;
+
+ edit_dialog_ns_validity_check (edc);
+}
+
+
+/**
+ * Run an GNS Edit dialog for an 'NS' Record.
+ *
+ * @param cont continuation to call when done
+ * @param edc editing context to use
+ */
+void
+GNS_edit_dialog_ns (struct EditDialogContext *edc)
+{
+ edc->builder = GNUNET_GTK_get_new_builder ("gnunet_setup_gns_edit_ns.glade",
+ edc);
+ if (NULL == edc->builder)
+ {
+ GNUNET_break (0);
+ edc->cont (edc, GTK_RESPONSE_CANCEL); /* treat as 'cancel' */
+ return;
+ }
+ if (GNUNET_YES ==
+ edc->old_record_in_namestore)
+ {
+ /* set NS record */
+ gtk_entry_set_text (GTK_ENTRY (gtk_builder_get_object (edc->builder,
+
"edit_dialog_ns_entry")),
+ edc->n_value);
+ }
+ edc->validator = &edit_dialog_ns_validity_check;
+ edc->dialog = GTK_DIALOG (gtk_builder_get_object (edc->builder,
+ "edit_ns_dialog"));
+ run_edit_dialog (edc);
+}
+
+
+
+/* ************************ PTR records *********************** */
+
+/**
+ * Check validity of the value in the edit dialog for PTR-records.
+ * Then call the shared validity check if the result is OK.
+ *
+ * @param edc edit dialog context
+ */
+static void
+edit_dialog_ptr_validity_check (struct EditDialogContext *edc)
+{
+ GtkEditable *entry;
+ const gchar *preedit;
+
+ entry = GTK_EDITABLE (gtk_builder_get_object (edc->builder,
+ "edit_dialog_ptr_entry")),
+ preedit = gtk_editable_get_chars (entry, 0, -1);
+ if ( (NULL == preedit) ||
+ (GNUNET_OK != GNUNET_DNSPARSER_check_name (preedit)) )
+ {
+ edit_dialog_disable_save (edc);
+ return;
+ }
+ edit_dialog_check_save (edc);
+}
+
+
+/**
+ * Editing dialog was closed, get the data and call the
+ * continuation.
+ *
+ * @param dialog editing dialog
+ * @param user_data the 'struct EditDialogContext'
+ */
+void
+GNS_edit_ptr_dialog_response_cb (GtkDialog *dialog,
+ gint response_id,
+ gpointer user_data)
+{
+ struct EditDialogContext *edc = user_data;
+ GtkEntry *entry;
+ const gchar *value;
+
+ if (GTK_RESPONSE_OK == response_id)
+ {
+ edit_dialog_putes_common_elements (edc);
+ entry = GTK_ENTRY (gtk_builder_get_object (edc->builder,
+ "edit_dialog_ptr_entry"));
+ value = gtk_entry_get_text (entry);
+ g_free (edc->n_value);
+ edc->n_value = g_strdup (value);
+ }
+ gtk_widget_destroy (GTK_WIDGET (edc->dialog));
+ g_object_unref (edc->builder);
+ edc->builder = NULL;
+ edc->cont (edc, response_id);
+}
+
+
+/**
+ * The user has edited the PTR record value. Enable/disable 'save'
+ * button depending on the validity of the value.
+ *
+ * @param entry editing widget
+ * @param preedit new value
+ * @param user_data the 'struct EditDialogContext' of the dialog
+ */
+void
+GNS_edit_dialog_ptr_entry_changed_cb (GtkEditable *entry,
+ gpointer user_data)
+{
+ struct EditDialogContext *edc = user_data;
+
+ edit_dialog_ptr_validity_check (edc);
+}
+
+
+/**
+ * Run an GNS Edit dialog for an 'PTR' Record.
+ *
+ * @param cont continuation to call when done
+ * @param edc editing context to use
+ */
+void
+GNS_edit_dialog_ptr (struct EditDialogContext *edc)
+{
+ edc->builder = GNUNET_GTK_get_new_builder ("gnunet_setup_gns_edit_ptr.glade",
+ edc);
+ if (NULL == edc->builder)
+ {
+ GNUNET_break (0);
+ edc->cont (edc, GTK_RESPONSE_CANCEL); /* treat as 'cancel' */
+ return;
+ }
+ if (GNUNET_YES ==
+ edc->old_record_in_namestore)
+ {
+ /* set PTR record */
+ gtk_entry_set_text (GTK_ENTRY (gtk_builder_get_object (edc->builder,
+
"edit_dialog_ptr_entry")),
+ edc->n_value);
+ }
+ edc->validator = &edit_dialog_ptr_validity_check;
+ edc->dialog = GTK_DIALOG (gtk_builder_get_object (edc->builder,
+ "edit_ptr_dialog"));
+ run_edit_dialog (edc);
+}
+
+
+/* ************************ TXT records *********************** */
+
+/**
+ * Check validity of the value in the edit dialog for TXT-records.
+ * Then call the shared validity check if the result is OK.
+ *
+ * @param edc edit dialog context
+ */
+static void
+edit_dialog_txt_validity_check (struct EditDialogContext *edc)
+{
+ edit_dialog_check_save (edc);
+}
+
+
+/**
+ * Editing dialog was closed, get the data and call the
+ * continuation.
+ *
+ * @param dialog editing dialog
+ * @param user_data the 'struct EditDialogContext'
+ */
+void
+GNS_edit_txt_dialog_response_cb (GtkDialog *dialog,
+ gint response_id,
+ gpointer user_data)
+{
+ struct EditDialogContext *edc = user_data;
+ GtkEntry *entry;
+ const gchar *value;
+
+ if (GTK_RESPONSE_OK == response_id)
+ {
+ edit_dialog_putes_common_elements (edc);
+ entry = GTK_ENTRY (gtk_builder_get_object (edc->builder,
+ "edit_dialog_txt_entry"));
+ value = gtk_entry_get_text (entry);
+ g_free (edc->n_value);
+ edc->n_value = g_strdup (value);
+ }
+ gtk_widget_destroy (GTK_WIDGET (edc->dialog));
+ g_object_unref (edc->builder);
+ edc->builder = NULL;
+ edc->cont (edc, response_id);
+}
+
+
+/**
+ * The user has edited the TXT record value. Enable/disable 'save'
+ * button depending on the validity of the value.
+ *
+ * @param entry editing widget
+ * @param preedit new value
+ * @param user_data the 'struct EditDialogContext' of the dialog
+ */
+void
+GNS_edit_dialog_txt_entry_changed_cb (GtkEditable *entry,
+ gpointer user_data)
+{
+ struct EditDialogContext *edc = user_data;
+
+ edit_dialog_txt_validity_check (edc);
+}
+
+
+/**
+ * Run an GNS Edit dialog for an 'TXT' Record.
+ *
+ * @param cont continuation to call when done
+ * @param edc editing context to use
+ */
+void
+GNS_edit_dialog_txt (struct EditDialogContext *edc)
+{
+ edc->builder = GNUNET_GTK_get_new_builder ("gnunet_setup_gns_edit_txt.glade",
+ edc);
+ if (NULL == edc->builder)
+ {
+ GNUNET_break (0);
+ edc->cont (edc, GTK_RESPONSE_CANCEL); /* treat as 'cancel' */
+ return;
+ }
+ if (GNUNET_YES ==
+ edc->old_record_in_namestore)
+ {
+ /* set TXT record */
+ gtk_entry_set_text (GTK_ENTRY (gtk_builder_get_object (edc->builder,
+
"edit_dialog_txt_entry")),
+ edc->n_value);
+ }
+ edc->validator = &edit_dialog_txt_validity_check;
+ edc->dialog = GTK_DIALOG (gtk_builder_get_object (edc->builder,
+ "edit_txt_dialog"));
+ run_edit_dialog (edc);
+}
+
+
+
+
+
/* end of gnunet-setup-gns-edit.c */
Modified: gnunet-gtk/src/setup/gnunet-setup-gns-edit.h
===================================================================
--- gnunet-gtk/src/setup/gnunet-setup-gns-edit.h 2012-12-04 13:16:26 UTC
(rev 25223)
+++ gnunet-gtk/src/setup/gnunet-setup-gns-edit.h 2012-12-04 13:33:16 UTC
(rev 25224)
@@ -174,4 +174,74 @@
GNS_edit_dialog_a (struct EditDialogContext *edc);
+/**
+ * Run an GNS Edit dialog for an 'AAAA' Record.
+ *
+ * @param cont continuation to call when done
+ * @param edc editing context to use
+ */
+void
+GNS_edit_dialog_aaaa (struct EditDialogContext *edc);
+
+
+/**
+ * Run an GNS Edit dialog for an 'CNAME' Record.
+ *
+ * @param cont continuation to call when done
+ * @param edc editing context to use
+ */
+void
+GNS_edit_dialog_cname (struct EditDialogContext *edc);
+
+
+/**
+ * Run an GNS Edit dialog for an 'LEHO' Record.
+ *
+ * @param cont continuation to call when done
+ * @param edc editing context to use
+ */
+void
+GNS_edit_dialog_leho (struct EditDialogContext *edc);
+
+
+/**
+ * Run an GNS Edit dialog for an 'MX' Record.
+ *
+ * @param cont continuation to call when done
+ * @param edc editing context to use
+ */
+void
+GNS_edit_dialog_mx (struct EditDialogContext *edc);
+
+
+/**
+ * Run an GNS Edit dialog for an 'NS' Record.
+ *
+ * @param cont continuation to call when done
+ * @param edc editing context to use
+ */
+void
+GNS_edit_dialog_ns (struct EditDialogContext *edc);
+
+
+/**
+ * Run an GNS Edit dialog for an 'PTR' Record.
+ *
+ * @param cont continuation to call when done
+ * @param edc editing context to use
+ */
+void
+GNS_edit_dialog_ptr (struct EditDialogContext *edc);
+
+
+/**
+ * Run an GNS Edit dialog for an 'TXT' Record.
+ *
+ * @param cont continuation to call when done
+ * @param edc editing context to use
+ */
+void
+GNS_edit_dialog_txt (struct EditDialogContext *edc);
+
+
#endif
Modified: gnunet-gtk/src/setup/gnunet-setup-gns.c
===================================================================
--- gnunet-gtk/src/setup/gnunet-setup-gns.c 2012-12-04 13:16:26 UTC (rev
25223)
+++ gnunet-gtk/src/setup/gnunet-setup-gns.c 2012-12-04 13:33:16 UTC (rev
25224)
@@ -1424,16 +1424,30 @@
GNS_edit_dialog_a (edc);
break;
case GNUNET_DNSPARSER_TYPE_NS:
+ GNS_edit_dialog_ns (edc);
+ break;
case GNUNET_DNSPARSER_TYPE_CNAME:
- case GNUNET_DNSPARSER_TYPE_SOA:
+ GNS_edit_dialog_cname (edc);
+ break;
case GNUNET_DNSPARSER_TYPE_PTR:
+ GNS_edit_dialog_ptr (edc);
+ break;
case GNUNET_DNSPARSER_TYPE_MX:
+ GNS_edit_dialog_mx (edc);
+ break;
case GNUNET_DNSPARSER_TYPE_TXT:
+ GNS_edit_dialog_txt (edc);
+ break;
case GNUNET_DNSPARSER_TYPE_AAAA:
+ GNS_edit_dialog_aaaa (edc);
+ break;
+ case GNUNET_NAMESTORE_TYPE_LEHO:
+ GNS_edit_dialog_leho (edc);
+ break;
+ case GNUNET_DNSPARSER_TYPE_SOA:
case GNUNET_DNSPARSER_TYPE_SRV:
case GNUNET_DNSPARSER_TYPE_TLSA:
case GNUNET_NAMESTORE_TYPE_PKEY:
- case GNUNET_NAMESTORE_TYPE_LEHO:
case GNUNET_NAMESTORE_TYPE_VPN:
GNUNET_break (0); /* FIXME - implement (#2465) */
edc->cont (edc, GTK_RESPONSE_CANCEL); /* treat as 'cancel' */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r25224 - in gnunet-gtk: contrib src/setup,
gnunet <=