aboutsummaryrefslogtreecommitdiff
path: root/src/setup/gnunet-setup-gns-edit.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/setup/gnunet-setup-gns-edit.c')
-rw-r--r--src/setup/gnunet-setup-gns-edit.c112
1 files changed, 112 insertions, 0 deletions
diff --git a/src/setup/gnunet-setup-gns-edit.c b/src/setup/gnunet-setup-gns-edit.c
index 683eaf6b..3286f7b4 100644
--- a/src/setup/gnunet-setup-gns-edit.c
+++ b/src/setup/gnunet-setup-gns-edit.c
@@ -24,6 +24,101 @@
24 */ 24 */
25#include "gnunet-setup-gns-edit.h" 25#include "gnunet-setup-gns-edit.h"
26 26
27
28/**
29 * Initialize widgets of the edit dialog that are the same regardless of
30 * the type of the record.
31 *
32 * @param edc dialog context
33 */
34static void
35edit_dialog_setup_common_elements (struct EditDialogContext *edc)
36{
37 if (GNUNET_YES !=
38 edc->old_record_in_namestore)
39 {
40 gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder,
41 "edit_dialog_delete_button")));
42 gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (edc->builder,
43 "edit_dialog_save_button")),
44 FALSE);
45 }
46 gtk_entry_set_text (GTK_ENTRY (gtk_builder_get_object (edc->builder,
47 "edit_dialog_name_entry")),
48 edc->n_new_name);
49 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object (edc->builder,
50 "edit_dialog_options_public_checkbutton")),
51 edc->n_public);
52 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object (edc->builder,
53 "edit_dialog_options_shadow_checkbutton")),
54 edc->n_is_shadow);
55 if (GNUNET_TIME_UNIT_FOREVER_REL.rel_value == edc->n_exp_time)
56 {
57 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object (edc->builder,
58 "edit_dialog_expiration_never_radiobutton")),
59 TRUE);
60 gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder,
61 "edit_dialog_expiration_absolute_calendar")));
62 gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder,
63 "edit_dialog_expiration_absolute_hbox")));
64 gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder,
65 "edit_dialog_expiration_relative_combobox")));
66 }
67 else
68 {
69 if (edc->n_is_relative)
70 {
71 struct GNUNET_TIME_Relative rt;
72
73 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object (edc->builder,
74 "edit_dialog_expiration_relative_radiobutton")),
75 TRUE);
76 gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder,
77 "edit_dialog_expiration_relative_combobox")));
78 rt.rel_value = edc->n_exp_time;
79 gtk_entry_set_text (GTK_ENTRY (gtk_builder_get_object (edc->builder,
80 "edit_dialog_expiration_relative_combobox")),
81 GNUNET_STRINGS_relative_time_to_string (rt, GNUNET_NO));
82
83 }
84 else
85 {
86 struct GNUNET_TIME_Absolute at;
87 time_t tp;
88 struct tm *ymd;
89 GtkCalendar *cal;
90
91 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object (edc->builder,
92 "edit_dialog_expiration_absolute_radiobutton")),
93 TRUE);
94 gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder,
95 "edit_dialog_expiration_absolute_calendar")));
96 gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder,
97 "edit_dialog_expiration_absolute_hbox")));
98 at.abs_value = edc->n_exp_time;
99 tp = (time_t) (at.abs_value / 1000LL); /* convert to seconds */
100 ymd = gmtime (&tp);
101 cal = GTK_CALENDAR (gtk_builder_get_object (edc->builder,
102 "edit_dialog_expiration_absolute_calendar"));
103 gtk_calendar_select_month (cal,
104 ymd->tm_mon,
105 ymd->tm_year + 1900);
106 gtk_calendar_mark_day (cal,
107 ymd->tm_mday);
108 gtk_spin_button_set_value (GTK_SPIN_BUTTON (gtk_builder_get_object (edc->builder,
109 "edit_dialog_expiration_absolute_hours_spinbutton")),
110 (double) ymd->tm_hour);
111 gtk_spin_button_set_value (GTK_SPIN_BUTTON (gtk_builder_get_object (edc->builder,
112 "edit_dialog_expiration_absolute_minutes_spinbutton")),
113 (double) ymd->tm_min);
114 gtk_spin_button_set_value (GTK_SPIN_BUTTON (gtk_builder_get_object (edc->builder,
115 "edit_dialog_expiration_absolute_seconds_spinbutton")),
116 (double) ymd->tm_sec);
117 }
118 }
119}
120
121
27/** 122/**
28 * Run an GNS Edit dialog for an 'A' Record. 123 * Run an GNS Edit dialog for an 'A' Record.
29 * 124 *
@@ -33,6 +128,23 @@
33void 128void
34GNS_edit_dialog_a (struct EditDialogContext *edc) 129GNS_edit_dialog_a (struct EditDialogContext *edc)
35{ 130{
131 GtkDialog *dialog;
132
133 edc->builder = GNUNET_GTK_get_new_builder ("gnunet_setup_gns_edit_a.glade",
134 edc);
135 if (NULL == edc->builder)
136 {
137 GNUNET_break (0);
138 edc->cont (edc, GTK_RESPONSE_CANCEL); /* treat as 'cancel' */
139 return;
140 }
141 edit_dialog_setup_common_elements (edc);
142 dialog = GTK_DIALOG (gtk_builder_get_object (edc->builder,
143 "edit_a_dialog"));
144 gtk_dialog_set_default_response (GTK_DIALOG (dialog),
145 GTK_RESPONSE_OK);
146 gtk_window_present (GTK_WINDOW (dialog));
147
36 GNUNET_break (0); /* not implemented */ 148 GNUNET_break (0); /* not implemented */
37 edc->cont (edc, GTK_RESPONSE_CANCEL); /* treat as 'cancel' */ 149 edc->cont (edc, GTK_RESPONSE_CANCEL); /* treat as 'cancel' */
38} 150}