Checking in moonshot-identity-dialog.c, since it gets compiled incorrectly on Centos 6
[moonshot-ui.git] / src / moonshot-identity-dialog.c
1 /* moonshot-identity-dialog.c generated by valac 0.10.4, the Vala compiler
2  * generated from moonshot-identity-dialog.vala, do not modify */
3
4 /*
5  * Copyright (c) 2016, JANET(UK)
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  *
12  * 1. Redistributions of source code must retain the above copyright
13  *    notice, this list of conditions and the following disclaimer.
14  *
15  * 2. Redistributions in binary form must reproduce the above copyright
16  *    notice, this list of conditions and the following disclaimer in the
17  *    documentation and/or other materials provided with the distribution.
18  *
19  * 3. Neither the name of JANET(UK) nor the names of its contributors
20  *    may be used to endorse or promote products derived from this software
21  *    without specific prior written permission.
22  *
23  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
24  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
27  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33  * SUCH DAMAGE.
34 */
35
36 #include <glib.h>
37 #include <glib-object.h>
38 #include <stdlib.h>
39 #include <string.h>
40 #include <gtk/gtk.h>
41 #include <gee.h>
42 #include <gdk/gdk.h>
43 #include <glib/gi18n-lib.h>
44 #include <float.h>
45 #include <math.h>
46 #include <atk/atk.h>
47 #include <gio/gio.h>
48
49
50 #define TYPE_IDENTITY_DIALOG (identity_dialog_get_type ())
51 #define IDENTITY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_DIALOG, IdentityDialog))
52 #define IDENTITY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_DIALOG, IdentityDialogClass))
53 #define IS_IDENTITY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_DIALOG))
54 #define IS_IDENTITY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_DIALOG))
55 #define IDENTITY_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_DIALOG, IdentityDialogClass))
56
57 typedef struct _IdentityDialog IdentityDialog;
58 typedef struct _IdentityDialogClass IdentityDialogClass;
59 typedef struct _IdentityDialogPrivate IdentityDialogPrivate;
60
61 #define TYPE_ID_CARD (id_card_get_type ())
62 #define ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD, IdCard))
63 #define ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD, IdCardClass))
64 #define IS_ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD))
65 #define IS_ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD))
66 #define ID_CARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD, IdCardClass))
67
68 typedef struct _IdCard IdCard;
69 typedef struct _IdCardClass IdCardClass;
70
71 #define TYPE_MOONSHOT_LOGGER (moonshot_logger_get_type ())
72 #define MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLogger))
73 #define MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
74 #define IS_MOONSHOT_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_LOGGER))
75 #define IS_MOONSHOT_LOGGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_LOGGER))
76 #define MOONSHOT_LOGGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_LOGGER, MoonshotLoggerClass))
77
78 typedef struct _MoonshotLogger MoonshotLogger;
79 typedef struct _MoonshotLoggerClass MoonshotLoggerClass;
80 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
81
82 #define TYPE_IDENTITY_MANAGER_VIEW (identity_manager_view_get_type ())
83 #define IDENTITY_MANAGER_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerView))
84 #define IDENTITY_MANAGER_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerViewClass))
85 #define IS_IDENTITY_MANAGER_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_MANAGER_VIEW))
86 #define IS_IDENTITY_MANAGER_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_MANAGER_VIEW))
87 #define IDENTITY_MANAGER_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerViewClass))
88
89 typedef struct _IdentityManagerView IdentityManagerView;
90 typedef struct _IdentityManagerViewClass IdentityManagerViewClass;
91 #define _g_free0(var) (var = (g_free (var), NULL))
92
93 #define TYPE_TRUST_ANCHOR (trust_anchor_get_type ())
94 #define TRUST_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRUST_ANCHOR, TrustAnchor))
95 #define TRUST_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRUST_ANCHOR, TrustAnchorClass))
96 #define IS_TRUST_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRUST_ANCHOR))
97 #define IS_TRUST_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRUST_ANCHOR))
98 #define TRUST_ANCHOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRUST_ANCHOR, TrustAnchorClass))
99
100 typedef struct _TrustAnchor TrustAnchor;
101 typedef struct _TrustAnchorClass TrustAnchorClass;
102 #define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
103
104 #define TRUST_ANCHOR_TYPE_TRUST_ANCHOR_TYPE (trust_anchor_trust_anchor_type_get_type ())
105 typedef struct _Block3Data Block3Data;
106 typedef struct _Block5Data Block5Data;
107 typedef struct _Block4Data Block4Data;
108 #define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))
109 #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
110
111 struct _IdentityDialog {
112         GtkDialog parent_instance;
113         IdentityDialogPrivate * priv;
114         gboolean complete;
115         gboolean clear_trust_anchor;
116 };
117
118 struct _IdentityDialogClass {
119         GtkDialogClass parent_class;
120 };
121
122 struct _IdentityDialogPrivate {
123         GtkEntry* displayname_entry;
124         GtkLabel* displayname_label;
125         GtkEntry* realm_entry;
126         GtkLabel* realm_label;
127         GtkEntry* username_entry;
128         GtkLabel* username_label;
129         GtkEntry* password_entry;
130         GtkLabel* password_label;
131         GtkCheckButton* remember_checkbutton;
132         GtkLabel* message_label;
133         IdCard* card;
134         GeeArrayList* services;
135         GtkLabel* selected_item;
136 };
137
138 typedef enum  {
139         TRUST_ANCHOR_TRUST_ANCHOR_TYPE_EMPTY,
140         TRUST_ANCHOR_TRUST_ANCHOR_TYPE_CA_CERT,
141         TRUST_ANCHOR_TRUST_ANCHOR_TYPE_SERVER_CERT
142 } TrustAnchorTrustAnchorType;
143
144 struct _Block3Data {
145         int _ref_count_;
146         IdentityDialog * self;
147         gint ncolumns;
148         char* ta_label_prefix;
149         char* none;
150         GtkLabel* ta_label;
151         GtkAttachOptions fill_and_expand;
152         GtkTable* ta_table;
153         IdCard* id;
154 };
155
156 struct _Block5Data {
157         int _ref_count_;
158         Block4Data * _data4_;
159         GtkLabel* label;
160 };
161
162 struct _Block4Data {
163         int _ref_count_;
164         IdentityDialog * self;
165         GtkButton* remove_button;
166         GtkTable* services_table;
167 };
168
169
170 extern char* export_directory;
171 char* export_directory = NULL;
172 static GdkColor identity_dialog_white;
173 static GdkColor identity_dialog_white = {0};
174 static GdkColor identity_dialog_selected_color;
175 static GdkColor identity_dialog_selected_color = {0};
176 static MoonshotLogger* identity_dialog_logger;
177 static MoonshotLogger* identity_dialog_logger = NULL;
178 static gpointer identity_dialog_parent_class = NULL;
179
180 #define CANCEL GTK_STOCK_CANCEL
181 GType identity_dialog_get_type (void) G_GNUC_CONST;
182 GType id_card_get_type (void) G_GNUC_CONST;
183 #define IDENTITY_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_IDENTITY_DIALOG, IdentityDialogPrivate))
184 enum  {
185         IDENTITY_DIALOG_DUMMY_PROPERTY,
186         IDENTITY_DIALOG_DISPLAY_NAME,
187         IDENTITY_DIALOG_ISSUER,
188         IDENTITY_DIALOG_USERNAME,
189         IDENTITY_DIALOG_PASSWORD,
190         IDENTITY_DIALOG_STORE_PASSWORD
191 };
192 void make_color (guint16 red, guint16 green, guint16 blue, GdkColor* result);
193 GType moonshot_logger_get_type (void) G_GNUC_CONST;
194 MoonshotLogger* get_logger (const char* name);
195 #define IDENTITY_DIALOG_displayname_labeltext _ ("Display Name")
196 #define IDENTITY_DIALOG_realm_labeltext _ ("Realm")
197 #define IDENTITY_DIALOG_username_labeltext _ ("Username")
198 #define IDENTITY_DIALOG_password_labeltext _ ("Password")
199 void identity_dialog_clear_password (IdentityDialog* self);
200 void clear_password_entry (GtkEntry* entry);
201 GeeArrayList* identity_dialog_get_services (IdentityDialog* self);
202 GType identity_manager_view_get_type (void) G_GNUC_CONST;
203 IdentityDialog* identity_dialog_new (IdentityManagerView* parent);
204 IdentityDialog* identity_dialog_construct (GType object_type, IdentityManagerView* parent);
205 IdentityDialog* identity_dialog_new_with_idcard (IdCard* a_card, const char* title, IdentityManagerView* parent);
206 IdentityDialog* identity_dialog_construct_with_idcard (GType object_type, IdCard* a_card, const char* title, IdentityManagerView* parent);
207 IdCard* id_card_new (void);
208 IdCard* id_card_construct (GType object_type);
209 const char* id_card_get_display_name (IdCard* self);
210 const char* id_card_get_issuer (IdCard* self);
211 const char* id_card_get_username (IdCard* self);
212 gboolean id_card_get_store_password (IdCard* self);
213 const char* id_card_get_password (IdCard* self);
214 void set_atk_relation (GtkWidget* widget, GtkWidget* target_widget, AtkRelationType relationship);
215 static void identity_dialog_add_as_vbox (GtkBox* content_area, GtkLabel* label, GtkEntry* entry);
216 static void identity_dialog_on_response (IdentityDialog* self, GtkDialog* source, gint response_id);
217 static void _identity_dialog_on_response_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self);
218 GeeArrayList* id_card_get_services (IdCard* self);
219 static GtkWidget* identity_dialog_make_trust_anchor_box (IdentityDialog* self, IdCard* id);
220 static GtkVBox* identity_dialog_make_services_vbox (IdentityDialog* self);
221 gboolean id_card_is_no_identity (IdCard* self);
222 static void _lambda9_ (IdentityDialog* self);
223 void moonshot_logger_trace (MoonshotLogger* self, const char* message, GError* e);
224 static void __lambda9__gtk_object_destroy (GtkObject* _sender, gpointer self);
225 void set_bg_color (GtkWidget* w);
226 GType trust_anchor_get_type (void) G_GNUC_CONST;
227 TrustAnchor* id_card_get_trust_anchor (IdCard* self);
228 gboolean trust_anchor_is_empty (TrustAnchor* self);
229 static void _lambda5_ (GtkButton* w, Block3Data* _data3_);
230 gboolean warning_dialog_confirm (GtkWindow* parent, const char* message, const char* dialog_name);
231 static void __lambda5__gtk_button_clicked (GtkButton* _sender, gpointer self);
232 const char* trust_anchor_get_datetime_added (TrustAnchor* self);
233 GType trust_anchor_trust_anchor_type_get_type (void) G_GNUC_CONST;
234 TrustAnchorTrustAnchorType trust_anchor_get_anchor_type (TrustAnchor* self);
235 GtkWidget* make_ta_fingerprint_widget (const char* server_cert, const char* label_text);
236 const char* trust_anchor_get_server_cert (TrustAnchor* self);
237 static void _lambda6_ (GtkButton* w, Block3Data* _data3_);
238 static void identity_dialog_export_certificate (IdentityDialog* self, IdCard* id);
239 static void __lambda6__gtk_button_clicked (GtkButton* _sender, gpointer self);
240 const char* trust_anchor_get_subject (TrustAnchor* self);
241 const char* trust_anchor_get_subject_alt (TrustAnchor* self);
242 char* trust_anchor_get_expiration_date (TrustAnchor* self, char** err_out);
243 static Block3Data* block3_data_ref (Block3Data* _data3_);
244 static void block3_data_unref (Block3Data* _data3_);
245 static char* identity_dialog_update_preamble (const char* preamble);
246 static char* identity_dialog_update_message (const char* old_message, const char* new_item);
247 static void identity_dialog_check_field (const char* field, GtkLabel* label, const char* fieldname, char** preamble, char** message);
248 static gboolean identity_dialog_check_fields (IdentityDialog* self);
249 gboolean identity_dialog_get_store_password (IdentityDialog* self);
250 const char* identity_dialog_get_password (IdentityDialog* self);
251 const char* identity_dialog_get_display_name (IdentityDialog* self);
252 const char* identity_dialog_get_username (IdentityDialog* self);
253 const char* identity_dialog_get_issuer (IdentityDialog* self);
254 static gboolean _lambda7_ (Block5Data* _data5_);
255 static gboolean __lambda7__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
256 static Block5Data* block5_data_ref (Block5Data* _data5_);
257 static void block5_data_unref (Block5Data* _data5_);
258 static void _lambda8_ (GtkButton* remove_button, Block4Data* _data4_);
259 static void __lambda8__gtk_button_clicked (GtkButton* _sender, gpointer self);
260 static Block4Data* block4_data_ref (Block4Data* _data4_);
261 static void block4_data_unref (Block4Data* _data4_);
262 const char* trust_anchor_get_ca_cert (TrustAnchor* self);
263 static void identity_dialog_finalize (GObject* obj);
264 static void identity_dialog_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
265 static int _vala_strcmp0 (const char * str1, const char * str2);
266
267
268
269 /**
270      * Don't leave passwords in memory longer than necessary.
271      * This may not actually erase the password data bytes, but it seems to be the best we can do.
272      */
273 #line 103 "moonshot-identity-dialog.vala"
274 void identity_dialog_clear_password (IdentityDialog* self) {
275 #line 103 "moonshot-identity-dialog.vala"
276         g_return_if_fail (self != NULL);
277 #line 104 "moonshot-identity-dialog.vala"
278         clear_password_entry (self->priv->password_entry);
279 #line 280 "moonshot-identity-dialog.c"
280 }
281
282
283 static gpointer _g_object_ref0 (gpointer self) {
284         return self ? g_object_ref (self) : NULL;
285 }
286
287
288 #line 107 "moonshot-identity-dialog.vala"
289 GeeArrayList* identity_dialog_get_services (IdentityDialog* self) {
290 #line 291 "moonshot-identity-dialog.c"
291         GeeArrayList* result = NULL;
292 #line 107 "moonshot-identity-dialog.vala"
293         g_return_val_if_fail (self != NULL, NULL);
294 #line 295 "moonshot-identity-dialog.c"
295         result = _g_object_ref0 (self->priv->services);
296 #line 109 "moonshot-identity-dialog.vala"
297         return result;
298 #line 299 "moonshot-identity-dialog.c"
299 }
300
301
302 #line 112 "moonshot-identity-dialog.vala"
303 IdentityDialog* identity_dialog_construct (GType object_type, IdentityManagerView* parent) {
304 #line 305 "moonshot-identity-dialog.c"
305         IdentityDialog * self = NULL;
306 #line 112 "moonshot-identity-dialog.vala"
307         g_return_val_if_fail (parent != NULL, NULL);
308 #line 114 "moonshot-identity-dialog.vala"
309         self = (IdentityDialog*) identity_dialog_construct_with_idcard (object_type, NULL, _ ("Add ID Card"), parent);
310 #line 311 "moonshot-identity-dialog.c"
311         return self;
312 }
313
314
315 #line 112 "moonshot-identity-dialog.vala"
316 IdentityDialog* identity_dialog_new (IdentityManagerView* parent) {
317 #line 112 "moonshot-identity-dialog.vala"
318         return identity_dialog_construct (TYPE_IDENTITY_DIALOG, parent);
319 #line 320 "moonshot-identity-dialog.c"
320 }
321
322
323 #line 1212 "glib-2.0.vapi"
324 static const char* string_to_string (const char* self) {
325 #line 326 "moonshot-identity-dialog.c"
326         const char* result = NULL;
327 #line 1212 "glib-2.0.vapi"
328         g_return_val_if_fail (self != NULL, NULL);
329 #line 330 "moonshot-identity-dialog.c"
330         result = self;
331 #line 1213 "glib-2.0.vapi"
332         return result;
333 #line 334 "moonshot-identity-dialog.c"
334 }
335
336
337 #line 393 "moonshot-identity-dialog.vala"
338 static void _identity_dialog_on_response_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self) {
339 #line 340 "moonshot-identity-dialog.c"
340         identity_dialog_on_response (self, _sender, response_id);
341 }
342
343
344 #line 209 "moonshot-identity-dialog.vala"
345 static void _lambda9_ (IdentityDialog* self) {
346 #line 210 "moonshot-identity-dialog.vala"
347         moonshot_logger_trace (identity_dialog_logger, "Destroying IdentityDialog; clearing its password.", NULL);
348 #line 211 "moonshot-identity-dialog.vala"
349         identity_dialog_clear_password (self);
350 #line 351 "moonshot-identity-dialog.c"
351 }
352
353
354 #line 209 "moonshot-identity-dialog.vala"
355 static void __lambda9__gtk_object_destroy (GtkObject* _sender, gpointer self) {
356 #line 357 "moonshot-identity-dialog.c"
357         _lambda9_ (self);
358 }
359
360
361 #line 117 "moonshot-identity-dialog.vala"
362 IdentityDialog* identity_dialog_construct_with_idcard (GType object_type, IdCard* a_card, const char* title, IdentityManagerView* parent) {
363 #line 364 "moonshot-identity-dialog.c"
364         IdentityDialog * self;
365         gboolean is_new_card;
366         IdCard* _tmp0_;
367         IdCard* _tmp2_;
368         GtkBox* content_area;
369         char* _tmp3_;
370         GtkLabel* _tmp4_;
371         GtkEntry* _tmp5_;
372         char* _tmp6_;
373         GtkLabel* _tmp7_;
374         GtkEntry* _tmp8_;
375         char* _tmp9_;
376         GtkLabel* _tmp10_;
377         GtkEntry* _tmp11_;
378         char* _tmp12_;
379         GtkLabel* _tmp13_;
380         GtkCheckButton* _tmp14_;
381         GtkEntry* _tmp15_;
382         GtkLabel* _tmp16_;
383         GtkHBox* remember_hbox;
384         GtkHBox* _tmp17_;
385         GeeArrayList* _tmp18_;
386 #line 117 "moonshot-identity-dialog.vala"
387         g_return_val_if_fail (title != NULL, NULL);
388 #line 117 "moonshot-identity-dialog.vala"
389         g_return_val_if_fail (parent != NULL, NULL);
390 #line 391 "moonshot-identity-dialog.c"
391         self = g_object_newv (object_type, 0, NULL);
392 #line 119 "moonshot-identity-dialog.vala"
393         is_new_card = FALSE;
394 #line 120 "moonshot-identity-dialog.vala"
395         if (a_card == NULL) {
396 #line 122 "moonshot-identity-dialog.vala"
397                 is_new_card = TRUE;
398 #line 399 "moonshot-identity-dialog.c"
399         }
400 #line 125 "moonshot-identity-dialog.vala"
401         _tmp0_ = _g_object_ref0 (a_card);
402 #line 125 "moonshot-identity-dialog.vala"
403         if (_tmp0_ == NULL) {
404 #line 405 "moonshot-identity-dialog.c"
405                 IdCard* _tmp1_;
406 #line 125 "moonshot-identity-dialog.vala"
407                 _tmp0_ = (_tmp1_ = id_card_new (), _g_object_unref0 (_tmp0_), _tmp1_);
408 #line 409 "moonshot-identity-dialog.c"
409         }
410 #line 125 "moonshot-identity-dialog.vala"
411         self->priv->card = (_tmp2_ = _g_object_ref0 (_tmp0_), _g_object_unref0 (self->priv->card), _tmp2_);
412 #line 126 "moonshot-identity-dialog.vala"
413         gtk_window_set_title ((GtkWindow*) self, title);
414 #line 127 "moonshot-identity-dialog.vala"
415         gtk_window_set_modal ((GtkWindow*) self, TRUE);
416 #line 128 "moonshot-identity-dialog.vala"
417         gtk_window_set_transient_for ((GtkWindow*) self, (GtkWindow*) parent);
418 #line 130 "moonshot-identity-dialog.vala"
419         gtk_dialog_add_buttons ((GtkDialog*) self, CANCEL, GTK_RESPONSE_CANCEL, _ ("OK"), GTK_RESPONSE_OK, NULL);
420 #line 131 "moonshot-identity-dialog.vala"
421         content_area = _g_object_ref0 (GTK_BOX (gtk_dialog_get_content_area ((GtkDialog*) self)));
422 #line 133 "moonshot-identity-dialog.vala"
423         self->priv->displayname_label = (_tmp4_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp3_ = g_strconcat (string_to_string (IDENTITY_DIALOG_displayname_labeltext), ":", NULL))), _g_object_unref0 (self->priv->displayname_label), _tmp4_);
424 #line 425 "moonshot-identity-dialog.c"
425         _g_free0 (_tmp3_);
426 #line 134 "moonshot-identity-dialog.vala"
427         gtk_misc_set_alignment ((GtkMisc*) self->priv->displayname_label, (float) 0, (float) 0.5);
428 #line 135 "moonshot-identity-dialog.vala"
429         self->priv->displayname_entry = (_tmp5_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), _g_object_unref0 (self->priv->displayname_entry), _tmp5_);
430 #line 136 "moonshot-identity-dialog.vala"
431         gtk_entry_set_text (self->priv->displayname_entry, id_card_get_display_name (self->priv->card));
432 #line 137 "moonshot-identity-dialog.vala"
433         gtk_entry_set_width_chars (self->priv->displayname_entry, 40);
434 #line 139 "moonshot-identity-dialog.vala"
435         self->priv->realm_label = (_tmp7_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp6_ = g_strconcat (string_to_string (IDENTITY_DIALOG_realm_labeltext), ":", NULL))), _g_object_unref0 (self->priv->realm_label), _tmp7_);
436 #line 437 "moonshot-identity-dialog.c"
437         _g_free0 (_tmp6_);
438 #line 140 "moonshot-identity-dialog.vala"
439         gtk_misc_set_alignment ((GtkMisc*) self->priv->realm_label, (float) 0, (float) 0.5);
440 #line 141 "moonshot-identity-dialog.vala"
441         self->priv->realm_entry = (_tmp8_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), _g_object_unref0 (self->priv->realm_entry), _tmp8_);
442 #line 142 "moonshot-identity-dialog.vala"
443         gtk_entry_set_text (self->priv->realm_entry, id_card_get_issuer (self->priv->card));
444 #line 143 "moonshot-identity-dialog.vala"
445         gtk_entry_set_width_chars (self->priv->realm_entry, 60);
446 #line 145 "moonshot-identity-dialog.vala"
447         self->priv->username_label = (_tmp10_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp9_ = g_strconcat (string_to_string (IDENTITY_DIALOG_username_labeltext), ":", NULL))), _g_object_unref0 (self->priv->username_label), _tmp10_);
448 #line 449 "moonshot-identity-dialog.c"
449         _g_free0 (_tmp9_);
450 #line 146 "moonshot-identity-dialog.vala"
451         gtk_misc_set_alignment ((GtkMisc*) self->priv->username_label, (float) 0, (float) 0.5);
452 #line 147 "moonshot-identity-dialog.vala"
453         self->priv->username_entry = (_tmp11_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), _g_object_unref0 (self->priv->username_entry), _tmp11_);
454 #line 148 "moonshot-identity-dialog.vala"
455         gtk_entry_set_text (self->priv->username_entry, id_card_get_username (self->priv->card));
456 #line 149 "moonshot-identity-dialog.vala"
457         gtk_entry_set_width_chars (self->priv->username_entry, 40);
458 #line 151 "moonshot-identity-dialog.vala"
459         self->priv->password_label = (_tmp13_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp12_ = g_strconcat (string_to_string (IDENTITY_DIALOG_password_labeltext), ":", NULL))), _g_object_unref0 (self->priv->password_label), _tmp13_);
460 #line 461 "moonshot-identity-dialog.c"
461         _g_free0 (_tmp12_);
462 #line 152 "moonshot-identity-dialog.vala"
463         gtk_misc_set_alignment ((GtkMisc*) self->priv->password_label, (float) 0, (float) 0.5);
464 #line 154 "moonshot-identity-dialog.vala"
465         self->priv->remember_checkbutton = (_tmp14_ = g_object_ref_sink ((GtkCheckButton*) gtk_check_button_new_with_label (_ ("Remember password"))), _g_object_unref0 (self->priv->remember_checkbutton), _tmp14_);
466 #line 155 "moonshot-identity-dialog.vala"
467         gtk_toggle_button_set_active ((GtkToggleButton*) self->priv->remember_checkbutton, id_card_get_store_password (self->priv->card));
468 #line 157 "moonshot-identity-dialog.vala"
469         self->priv->password_entry = (_tmp15_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), _g_object_unref0 (self->priv->password_entry), _tmp15_);
470 #line 158 "moonshot-identity-dialog.vala"
471         gtk_entry_set_invisible_char (self->priv->password_entry, (gunichar) '*');
472 #line 159 "moonshot-identity-dialog.vala"
473         gtk_entry_set_visibility (self->priv->password_entry, FALSE);
474 #line 160 "moonshot-identity-dialog.vala"
475         gtk_entry_set_width_chars (self->priv->password_entry, 40);
476 #line 161 "moonshot-identity-dialog.vala"
477         gtk_entry_set_text (self->priv->password_entry, id_card_get_password (self->priv->card));
478 #line 163 "moonshot-identity-dialog.vala"
479         self->priv->message_label = (_tmp16_ = g_object_ref_sink ((GtkLabel*) gtk_label_new ("")), _g_object_unref0 (self->priv->message_label), _tmp16_);
480 #line 164 "moonshot-identity-dialog.vala"
481         gtk_widget_set_visible ((GtkWidget*) self->priv->message_label, FALSE);
482 #line 166 "moonshot-identity-dialog.vala"
483         set_atk_relation ((GtkWidget*) self->priv->displayname_label, (GtkWidget*) self->priv->displayname_entry, ATK_RELATION_LABEL_FOR);
484 #line 167 "moonshot-identity-dialog.vala"
485         set_atk_relation ((GtkWidget*) self->priv->realm_label, (GtkWidget*) self->priv->realm_entry, ATK_RELATION_LABEL_FOR);
486 #line 168 "moonshot-identity-dialog.vala"
487         set_atk_relation ((GtkWidget*) self->priv->username_label, (GtkWidget*) self->priv->username_entry, ATK_RELATION_LABEL_FOR);
488 #line 169 "moonshot-identity-dialog.vala"
489         set_atk_relation ((GtkWidget*) self->priv->password_label, (GtkWidget*) self->priv->password_entry, ATK_RELATION_LABEL_FOR);
490 #line 171 "moonshot-identity-dialog.vala"
491         gtk_box_pack_start (content_area, (GtkWidget*) self->priv->message_label, FALSE, FALSE, (guint) 6);
492 #line 172 "moonshot-identity-dialog.vala"
493         identity_dialog_add_as_vbox (content_area, self->priv->displayname_label, self->priv->displayname_entry);
494 #line 173 "moonshot-identity-dialog.vala"
495         identity_dialog_add_as_vbox (content_area, self->priv->username_label, self->priv->username_entry);
496 #line 174 "moonshot-identity-dialog.vala"
497         identity_dialog_add_as_vbox (content_area, self->priv->realm_label, self->priv->realm_entry);
498 #line 175 "moonshot-identity-dialog.vala"
499         identity_dialog_add_as_vbox (content_area, self->priv->password_label, self->priv->password_entry);
500 #line 177 "moonshot-identity-dialog.vala"
501         remember_hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 40));
502 #line 178 "moonshot-identity-dialog.vala"
503         gtk_box_pack_start ((GtkBox*) remember_hbox, (GtkWidget*) (_tmp17_ = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 0))), FALSE, FALSE, (guint) 0);
504 #line 505 "moonshot-identity-dialog.c"
505         _g_object_unref0 (_tmp17_);
506 #line 179 "moonshot-identity-dialog.vala"
507         gtk_box_pack_start ((GtkBox*) remember_hbox, (GtkWidget*) self->priv->remember_checkbutton, FALSE, FALSE, (guint) 0);
508 #line 180 "moonshot-identity-dialog.vala"
509         gtk_box_pack_start (content_area, (GtkWidget*) remember_hbox, FALSE, FALSE, (guint) 2);
510 #line 182 "moonshot-identity-dialog.vala"
511         g_signal_connect_object ((GtkDialog*) self, "response", (GCallback) _identity_dialog_on_response_gtk_dialog_response, self, 0);
512 #line 183 "moonshot-identity-dialog.vala"
513         gtk_container_set_border_width ((GtkContainer*) content_area, (guint) 6);
514 #line 185 "moonshot-identity-dialog.vala"
515         self->priv->services = (_tmp18_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL), _g_object_unref0 (self->priv->services), _tmp18_);
516 #line 186 "moonshot-identity-dialog.vala"
517         gee_abstract_collection_add_all ((GeeAbstractCollection*) self->priv->services, (GeeCollection*) id_card_get_services (self->priv->card));
518 #line 188 "moonshot-identity-dialog.vala"
519         if (!is_new_card) {
520 #line 521 "moonshot-identity-dialog.c"
521                 GtkWidget* trust_anchor_box;
522                 GtkVBox* services_vbox;
523                 GtkAlignment* services_vbox_bottom_spacer;
524 #line 190 "moonshot-identity-dialog.vala"
525                 trust_anchor_box = identity_dialog_make_trust_anchor_box (self, self->priv->card);
526 #line 191 "moonshot-identity-dialog.vala"
527                 gtk_box_pack_start (content_area, trust_anchor_box, FALSE, FALSE, (guint) 15);
528 #line 193 "moonshot-identity-dialog.vala"
529                 services_vbox = identity_dialog_make_services_vbox (self);
530 #line 194 "moonshot-identity-dialog.vala"
531                 gtk_box_pack_start (content_area, (GtkWidget*) services_vbox, TRUE, TRUE, 0);
532 #line 195 "moonshot-identity-dialog.vala"
533                 services_vbox_bottom_spacer = g_object_ref_sink ((GtkAlignment*) gtk_alignment_new ((float) 0, (float) 0, (float) 0, (float) 0));
534 #line 196 "moonshot-identity-dialog.vala"
535                 gtk_widget_set_size_request ((GtkWidget*) services_vbox_bottom_spacer, 0, 12);
536 #line 197 "moonshot-identity-dialog.vala"
537                 gtk_box_pack_start (content_area, (GtkWidget*) services_vbox_bottom_spacer, FALSE, FALSE, (guint) 0);
538 #line 539 "moonshot-identity-dialog.c"
539                 _g_object_unref0 (services_vbox_bottom_spacer);
540                 _g_object_unref0 (services_vbox);
541                 _g_object_unref0 (trust_anchor_box);
542         }
543 #line 200 "moonshot-identity-dialog.vala"
544         if (id_card_is_no_identity (self->priv->card)) {
545 #line 202 "moonshot-identity-dialog.vala"
546                 gtk_widget_set_sensitive ((GtkWidget*) self->priv->displayname_entry, FALSE);
547 #line 203 "moonshot-identity-dialog.vala"
548                 gtk_widget_set_sensitive ((GtkWidget*) self->priv->realm_entry, FALSE);
549 #line 204 "moonshot-identity-dialog.vala"
550                 gtk_widget_set_sensitive ((GtkWidget*) self->priv->username_entry, FALSE);
551 #line 205 "moonshot-identity-dialog.vala"
552                 gtk_widget_set_sensitive ((GtkWidget*) self->priv->password_entry, FALSE);
553 #line 206 "moonshot-identity-dialog.vala"
554                 gtk_widget_set_sensitive ((GtkWidget*) self->priv->remember_checkbutton, FALSE);
555 #line 556 "moonshot-identity-dialog.c"
556         }
557 #line 209 "moonshot-identity-dialog.vala"
558         g_signal_connect_object ((GtkObject*) self, "destroy", (GCallback) __lambda9__gtk_object_destroy, self, 0);
559 #line 215 "moonshot-identity-dialog.vala"
560         gtk_container_set_border_width ((GtkContainer*) self, (guint) 6);
561 #line 216 "moonshot-identity-dialog.vala"
562         gtk_window_set_resizable ((GtkWindow*) self, FALSE);
563 #line 217 "moonshot-identity-dialog.vala"
564         set_bg_color ((GtkWidget*) self);
565 #line 218 "moonshot-identity-dialog.vala"
566         gtk_widget_show_all ((GtkWidget*) self);
567 #line 568 "moonshot-identity-dialog.c"
568         _g_object_unref0 (remember_hbox);
569         _g_object_unref0 (content_area);
570         _g_object_unref0 (_tmp0_);
571         return self;
572 }
573
574
575 #line 117 "moonshot-identity-dialog.vala"
576 IdentityDialog* identity_dialog_new_with_idcard (IdCard* a_card, const char* title, IdentityManagerView* parent) {
577 #line 117 "moonshot-identity-dialog.vala"
578         return identity_dialog_construct_with_idcard (TYPE_IDENTITY_DIALOG, a_card, title, parent);
579 #line 580 "moonshot-identity-dialog.c"
580 }
581
582
583 #line 248 "moonshot-identity-dialog.vala"
584 static void _lambda5_ (GtkButton* w, Block3Data* _data3_) {
585 #line 586 "moonshot-identity-dialog.c"
586         IdentityDialog * self;
587         char* _tmp0_;
588         char* _tmp1_;
589         char* _tmp2_;
590         char* _tmp3_;
591         gboolean _tmp4_;
592         gboolean _result_;
593         self = _data3_->self;
594 #line 248 "moonshot-identity-dialog.vala"
595         g_return_if_fail (w != NULL);
596 #line 249 "moonshot-identity-dialog.vala"
597         _result_ = (_tmp4_ = warning_dialog_confirm ((GtkWindow*) self, _tmp3_ = g_strconcat (_tmp2_ = g_markup_printf_escaped (_tmp1_ = g_strconcat (_tmp0_ = g_strconcat ("<span font-weight='heavy'>", _ ("You are about to clear the trust anchor fingerprint for '%s'."), NULL), "</span>", NULL), id_card_get_display_name (_data3_->id)), _ ("\n\nAre you sure you want to do this?"), NULL), "clear_trust_anchor"), _g_free0 (_tmp3_), _g_free0 (_tmp2_), _g_free0 (_tmp1_), _g_free0 (_tmp0_), _tmp4_);
598 #line 258 "moonshot-identity-dialog.vala"
599         if (_result_) {
600 #line 601 "moonshot-identity-dialog.c"
601                 GList* children;
602                 char* _tmp5_;
603 #line 260 "moonshot-identity-dialog.vala"
604                 self->clear_trust_anchor = TRUE;
605 #line 265 "moonshot-identity-dialog.vala"
606                 children = gtk_container_get_children ((GtkContainer*) _data3_->ta_table);
607 #line 608 "moonshot-identity-dialog.c"
608                 {
609                         GList* child_collection;
610                         GList* child_it;
611 #line 266 "moonshot-identity-dialog.vala"
612                         child_collection = children;
613 #line 614 "moonshot-identity-dialog.c"
614                         for (child_it = child_collection; child_it != NULL; child_it = child_it->next) {
615                                 GtkWidget* child;
616 #line 266 "moonshot-identity-dialog.vala"
617                                 child = (GtkWidget*) child_it->data;
618 #line 619 "moonshot-identity-dialog.c"
619                                 {
620 #line 267 "moonshot-identity-dialog.vala"
621                                         gtk_container_remove ((GtkContainer*) _data3_->ta_table, child);
622 #line 623 "moonshot-identity-dialog.c"
623                                 }
624                         }
625                 }
626 #line 270 "moonshot-identity-dialog.vala"
627                 gtk_table_resize (_data3_->ta_table, (guint) 1, (guint) _data3_->ncolumns);
628 #line 271 "moonshot-identity-dialog.vala"
629                 gtk_label_set_text (_data3_->ta_label, _tmp5_ = g_strconcat (_data3_->ta_label_prefix, _data3_->none, NULL));
630 #line 631 "moonshot-identity-dialog.c"
631                 _g_free0 (_tmp5_);
632 #line 272 "moonshot-identity-dialog.vala"
633                 gtk_table_attach (_data3_->ta_table, (GtkWidget*) _data3_->ta_label, (guint) 0, (guint) 1, (guint) 0, (guint) 1, _data3_->fill_and_expand, _data3_->fill_and_expand, (guint) 0, (guint) 0);
634 #line 635 "moonshot-identity-dialog.c"
635                 _g_list_free0 (children);
636         }
637 }
638
639
640 #line 248 "moonshot-identity-dialog.vala"
641 static void __lambda5__gtk_button_clicked (GtkButton* _sender, gpointer self) {
642 #line 643 "moonshot-identity-dialog.c"
643         _lambda5_ (_sender, self);
644 }
645
646
647 #line 296 "moonshot-identity-dialog.vala"
648 static void _lambda6_ (GtkButton* w, Block3Data* _data3_) {
649 #line 650 "moonshot-identity-dialog.c"
650         IdentityDialog * self;
651         self = _data3_->self;
652 #line 296 "moonshot-identity-dialog.vala"
653         g_return_if_fail (w != NULL);
654 #line 296 "moonshot-identity-dialog.vala"
655         identity_dialog_export_certificate (self, _data3_->id);
656 #line 657 "moonshot-identity-dialog.c"
657 }
658
659
660 #line 296 "moonshot-identity-dialog.vala"
661 static void __lambda6__gtk_button_clicked (GtkButton* _sender, gpointer self) {
662 #line 663 "moonshot-identity-dialog.c"
663         _lambda6_ (_sender, self);
664 }
665
666
667 static Block3Data* block3_data_ref (Block3Data* _data3_) {
668         g_atomic_int_inc (&_data3_->_ref_count_);
669         return _data3_;
670 }
671
672
673 static void block3_data_unref (Block3Data* _data3_) {
674         if (g_atomic_int_dec_and_test (&_data3_->_ref_count_)) {
675                 _g_object_unref0 (_data3_->self);
676                 _g_object_unref0 (_data3_->ta_table);
677                 _g_object_unref0 (_data3_->ta_label);
678                 _g_free0 (_data3_->none);
679                 _g_free0 (_data3_->ta_label_prefix);
680                 _g_object_unref0 (_data3_->id);
681                 g_slice_free (Block3Data, _data3_);
682         }
683 }
684
685
686 #line 221 "moonshot-identity-dialog.vala"
687 static GtkWidget* identity_dialog_make_trust_anchor_box (IdentityDialog* self, IdCard* id) {
688 #line 689 "moonshot-identity-dialog.c"
689         GtkWidget* result = NULL;
690         Block3Data* _data3_;
691         gint nrows;
692         GtkHBox* trust_anchor_box;
693         const char* _tmp0_;
694         char* _tmp1_;
695         GtkLabel* _tmp2_;
696         GtkAttachOptions fill;
697         gint row;
698         GtkButton* ta_clear_button;
699         char* _tmp3_;
700         GtkLabel* _tmp4_;
701         GtkLabel* added_label;
702 #line 221 "moonshot-identity-dialog.vala"
703         g_return_val_if_fail (self != NULL, NULL);
704 #line 221 "moonshot-identity-dialog.vala"
705         g_return_val_if_fail (id != NULL, NULL);
706 #line 707 "moonshot-identity-dialog.c"
707         _data3_ = g_slice_new0 (Block3Data);
708         _data3_->_ref_count_ = 1;
709         _data3_->self = g_object_ref (self);
710         _data3_->id = _g_object_ref0 (id);
711 #line 224 "moonshot-identity-dialog.vala"
712         nrows = 7;
713 #line 714 "moonshot-identity-dialog.c"
714         _data3_->ncolumns = 2;
715         _data3_->ta_label_prefix = g_strdup (_ ("Trust anchor: "));
716         _data3_->none = g_strdup (_ ("None"));
717 #line 229 "moonshot-identity-dialog.vala"
718         trust_anchor_box = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 0));
719 #line 720 "moonshot-identity-dialog.c"
720         _tmp0_ = NULL;
721 #line 232 "moonshot-identity-dialog.vala"
722         if (trust_anchor_is_empty (id_card_get_trust_anchor (_data3_->id))) {
723 #line 232 "moonshot-identity-dialog.vala"
724                 _tmp0_ = _data3_->none;
725 #line 726 "moonshot-identity-dialog.c"
726         } else {
727 #line 232 "moonshot-identity-dialog.vala"
728                 _tmp0_ = _ ("Enterprise provisioned");
729 #line 730 "moonshot-identity-dialog.c"
730         }
731         _data3_->ta_label = (_tmp2_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp1_ = g_strconcat (_data3_->ta_label_prefix, _tmp0_, NULL))), _g_free0 (_tmp1_), _tmp2_);
732 #line 233 "moonshot-identity-dialog.vala"
733         gtk_misc_set_alignment ((GtkMisc*) _data3_->ta_label, (float) 0, 0.5f);
734 #line 235 "moonshot-identity-dialog.vala"
735         if (trust_anchor_is_empty (id_card_get_trust_anchor (_data3_->id))) {
736 #line 236 "moonshot-identity-dialog.vala"
737                 gtk_box_pack_start ((GtkBox*) trust_anchor_box, (GtkWidget*) _data3_->ta_label, FALSE, FALSE, (guint) 0);
738 #line 739 "moonshot-identity-dialog.c"
739                 result = (GtkWidget*) trust_anchor_box;
740                 block3_data_unref (_data3_);
741 #line 237 "moonshot-identity-dialog.vala"
742                 return result;
743 #line 744 "moonshot-identity-dialog.c"
744         }
745         _data3_->fill_and_expand = GTK_EXPAND | GTK_FILL;
746 #line 242 "moonshot-identity-dialog.vala"
747         fill = GTK_FILL;
748 #line 749 "moonshot-identity-dialog.c"
749         _data3_->ta_table = g_object_ref_sink ((GtkTable*) gtk_table_new ((guint) nrows, (guint) _data3_->ncolumns, FALSE));
750 #line 245 "moonshot-identity-dialog.vala"
751         row = 0;
752 #line 247 "moonshot-identity-dialog.vala"
753         ta_clear_button = g_object_ref_sink ((GtkButton*) gtk_button_new_with_label (_ ("Clear Trust Anchor")));
754 #line 248 "moonshot-identity-dialog.vala"
755         g_signal_connect_data (ta_clear_button, "clicked", (GCallback) __lambda5__gtk_button_clicked, block3_data_ref (_data3_), (GClosureNotify) block3_data_unref, 0);
756 #line 279 "moonshot-identity-dialog.vala"
757         gtk_table_attach (_data3_->ta_table, (GtkWidget*) _data3_->ta_label, (guint) 0, (guint) 1, (guint) row, (guint) (row + 1), _data3_->fill_and_expand, _data3_->fill_and_expand, (guint) 0, (guint) 0);
758 #line 280 "moonshot-identity-dialog.vala"
759         gtk_table_attach (_data3_->ta_table, (GtkWidget*) ta_clear_button, (guint) 1, (guint) 2, (guint) row, (guint) (row + 1), fill, fill, (guint) 0, (guint) 0);
760 #line 281 "moonshot-identity-dialog.vala"
761         row++;
762 #line 283 "moonshot-identity-dialog.vala"
763         added_label = (_tmp4_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ (_tmp3_ = g_strconcat ("Added: ", trust_anchor_get_datetime_added (id_card_get_trust_anchor (_data3_->id)), NULL)))), _g_free0 (_tmp3_), _tmp4_);
764 #line 284 "moonshot-identity-dialog.vala"
765         gtk_misc_set_alignment ((GtkMisc*) added_label, (float) 0, 0.5f);
766 #line 285 "moonshot-identity-dialog.vala"
767         gtk_table_attach (_data3_->ta_table, (GtkWidget*) added_label, (guint) 0, (guint) 1, (guint) row, (guint) (row + 1), _data3_->fill_and_expand, _data3_->fill_and_expand, (guint) 20, (guint) 5);
768 #line 286 "moonshot-identity-dialog.vala"
769         row++;
770 #line 288 "moonshot-identity-dialog.vala"
771         if (trust_anchor_get_anchor_type (id_card_get_trust_anchor (_data3_->id)) == TRUST_ANCHOR_TRUST_ANCHOR_TYPE_SERVER_CERT) {
772 #line 773 "moonshot-identity-dialog.c"
773                 GtkWidget* fingerprint;
774 #line 289 "moonshot-identity-dialog.vala"
775                 fingerprint = make_ta_fingerprint_widget (trust_anchor_get_server_cert (id_card_get_trust_anchor (_data3_->id)), NULL);
776 #line 290 "moonshot-identity-dialog.vala"
777                 gtk_table_attach (_data3_->ta_table, fingerprint, (guint) 0, (guint) 2, (guint) row, (guint) (row + 2), _data3_->fill_and_expand, _data3_->fill_and_expand, (guint) 5, (guint) 5);
778 #line 779 "moonshot-identity-dialog.c"
779                 _g_object_unref0 (fingerprint);
780         } else {
781                 GtkLabel* ca_cert_label;
782                 GtkButton* export_button;
783                 char* _tmp9_;
784                 char* _tmp10_;
785                 GtkLabel* _tmp11_;
786                 GtkLabel* expiration_label;
787                 GtkLabel* constraint_label;
788 #line 293 "moonshot-identity-dialog.vala"
789                 ca_cert_label = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("CA Certificate:")));
790 #line 294 "moonshot-identity-dialog.vala"
791                 gtk_misc_set_alignment ((GtkMisc*) ca_cert_label, (float) 0, 0.5f);
792 #line 295 "moonshot-identity-dialog.vala"
793                 export_button = g_object_ref_sink ((GtkButton*) gtk_button_new_with_label (_ ("Export Certificate")));
794 #line 296 "moonshot-identity-dialog.vala"
795                 g_signal_connect_data (export_button, "clicked", (GCallback) __lambda6__gtk_button_clicked, block3_data_ref (_data3_), (GClosureNotify) block3_data_unref, 0);
796 #line 298 "moonshot-identity-dialog.vala"
797                 gtk_table_attach (_data3_->ta_table, (GtkWidget*) ca_cert_label, (guint) 0, (guint) 1, (guint) row, (guint) (row + 1), _data3_->fill_and_expand, _data3_->fill_and_expand, (guint) 20, (guint) 0);
798 #line 299 "moonshot-identity-dialog.vala"
799                 gtk_table_attach (_data3_->ta_table, (GtkWidget*) export_button, (guint) 1, (guint) 2, (guint) row, (guint) (row + 1), fill, fill, (guint) 0, (guint) 0);
800 #line 300 "moonshot-identity-dialog.vala"
801                 row++;
802 #line 302 "moonshot-identity-dialog.vala"
803                 if (_vala_strcmp0 (trust_anchor_get_subject (id_card_get_trust_anchor (_data3_->id)), "") != 0) {
804 #line 805 "moonshot-identity-dialog.c"
805                         char* _tmp5_;
806                         GtkLabel* _tmp6_;
807                         GtkLabel* subject_label;
808 #line 303 "moonshot-identity-dialog.vala"
809                         subject_label = (_tmp6_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp5_ = g_strconcat (_ ("Subject: "), trust_anchor_get_subject (id_card_get_trust_anchor (_data3_->id)), NULL))), _g_free0 (_tmp5_), _tmp6_);
810 #line 304 "moonshot-identity-dialog.vala"
811                         gtk_misc_set_alignment ((GtkMisc*) subject_label, (float) 0, 0.5f);
812 #line 305 "moonshot-identity-dialog.vala"
813                         gtk_table_attach (_data3_->ta_table, (GtkWidget*) subject_label, (guint) 0, (guint) 1, (guint) row, (guint) (row + 1), _data3_->fill_and_expand, _data3_->fill_and_expand, (guint) 40, (guint) 5);
814 #line 306 "moonshot-identity-dialog.vala"
815                         row++;
816 #line 817 "moonshot-identity-dialog.c"
817                         _g_object_unref0 (subject_label);
818                 }
819 #line 309 "moonshot-identity-dialog.vala"
820                 if (_vala_strcmp0 (trust_anchor_get_subject_alt (id_card_get_trust_anchor (_data3_->id)), "") != 0) {
821 #line 822 "moonshot-identity-dialog.c"
822                         char* _tmp7_;
823                         GtkLabel* _tmp8_;
824                         GtkLabel* subject_alt_label;
825 #line 310 "moonshot-identity-dialog.vala"
826                         subject_alt_label = (_tmp8_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp7_ = g_strconcat (_ ("Subject-Alt: "), trust_anchor_get_subject_alt (id_card_get_trust_anchor (_data3_->id)), NULL))), _g_free0 (_tmp7_), _tmp8_);
827 #line 311 "moonshot-identity-dialog.vala"
828                         gtk_misc_set_alignment ((GtkMisc*) subject_alt_label, (float) 0, 0.5f);
829 #line 312 "moonshot-identity-dialog.vala"
830                         gtk_table_attach (_data3_->ta_table, (GtkWidget*) subject_alt_label, (guint) 0, (guint) 1, (guint) row, (guint) (row + 1), _data3_->fill_and_expand, _data3_->fill_and_expand, (guint) 40, (guint) 5);
831 #line 313 "moonshot-identity-dialog.vala"
832                         row++;
833 #line 834 "moonshot-identity-dialog.c"
834                         _g_object_unref0 (subject_alt_label);
835                 }
836 #line 316 "moonshot-identity-dialog.vala"
837                 expiration_label = (_tmp11_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp10_ = g_strconcat (_ ("Expiration date: "), _tmp9_ = trust_anchor_get_expiration_date (id_card_get_trust_anchor (_data3_->id), NULL), NULL))), _g_free0 (_tmp10_), _g_free0 (_tmp9_), _tmp11_);
838 #line 317 "moonshot-identity-dialog.vala"
839                 gtk_misc_set_alignment ((GtkMisc*) expiration_label, (float) 0, 0.5f);
840 #line 318 "moonshot-identity-dialog.vala"
841                 gtk_table_attach (_data3_->ta_table, (GtkWidget*) expiration_label, (guint) 0, (guint) 1, (guint) row, (guint) (row + 1), _data3_->fill_and_expand, _data3_->fill_and_expand, (guint) 40, (guint) 5);
842 #line 319 "moonshot-identity-dialog.vala"
843                 row++;
844 #line 322 "moonshot-identity-dialog.vala"
845                 constraint_label = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Constraint: ")));
846 #line 323 "moonshot-identity-dialog.vala"
847                 gtk_misc_set_alignment ((GtkMisc*) constraint_label, (float) 0, 0.5f);
848 #line 324 "moonshot-identity-dialog.vala"
849                 gtk_table_attach (_data3_->ta_table, (GtkWidget*) constraint_label, (guint) 0, (guint) 1, (guint) row, (guint) (row + 1), _data3_->fill_and_expand, _data3_->fill_and_expand, (guint) 20, (guint) 0);
850 #line 325 "moonshot-identity-dialog.vala"
851                 row++;
852 #line 853 "moonshot-identity-dialog.c"
853                 _g_object_unref0 (constraint_label);
854                 _g_object_unref0 (expiration_label);
855                 _g_object_unref0 (export_button);
856                 _g_object_unref0 (ca_cert_label);
857         }
858 #line 328 "moonshot-identity-dialog.vala"
859         gtk_box_pack_start ((GtkBox*) trust_anchor_box, (GtkWidget*) _data3_->ta_table, FALSE, FALSE, (guint) 0);
860 #line 861 "moonshot-identity-dialog.c"
861         result = (GtkWidget*) trust_anchor_box;
862         _g_object_unref0 (added_label);
863         _g_object_unref0 (ta_clear_button);
864         block3_data_unref (_data3_);
865 #line 329 "moonshot-identity-dialog.vala"
866         return result;
867 #line 868 "moonshot-identity-dialog.c"
868 }
869
870
871 #line 332 "moonshot-identity-dialog.vala"
872 static void identity_dialog_add_as_vbox (GtkBox* content_area, GtkLabel* label, GtkEntry* entry) {
873 #line 874 "moonshot-identity-dialog.c"
874         GtkVBox* vbox;
875         GtkHBox* hbox;
876 #line 332 "moonshot-identity-dialog.vala"
877         g_return_if_fail (content_area != NULL);
878 #line 332 "moonshot-identity-dialog.vala"
879         g_return_if_fail (label != NULL);
880 #line 332 "moonshot-identity-dialog.vala"
881         g_return_if_fail (entry != NULL);
882 #line 334 "moonshot-identity-dialog.vala"
883         vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 2));
884 #line 336 "moonshot-identity-dialog.vala"
885         gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) label, FALSE, FALSE, (guint) 0);
886 #line 337 "moonshot-identity-dialog.vala"
887         gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) entry, FALSE, FALSE, (guint) 0);
888 #line 340 "moonshot-identity-dialog.vala"
889         hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 0));
890 #line 341 "moonshot-identity-dialog.vala"
891         gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) vbox, FALSE, FALSE, (guint) 0);
892 #line 342 "moonshot-identity-dialog.vala"
893         gtk_box_pack_start (content_area, (GtkWidget*) hbox, FALSE, FALSE, (guint) 6);
894 #line 895 "moonshot-identity-dialog.c"
895         _g_object_unref0 (hbox);
896         _g_object_unref0 (vbox);
897 }
898
899
900 #line 345 "moonshot-identity-dialog.vala"
901 static char* identity_dialog_update_preamble (const char* preamble) {
902 #line 903 "moonshot-identity-dialog.c"
903         char* result = NULL;
904 #line 345 "moonshot-identity-dialog.vala"
905         g_return_val_if_fail (preamble != NULL, NULL);
906 #line 347 "moonshot-identity-dialog.vala"
907         if (_vala_strcmp0 (preamble, "") == 0) {
908 #line 909 "moonshot-identity-dialog.c"
909                 result = g_strdup (_ ("Missing required field: "));
910 #line 348 "moonshot-identity-dialog.vala"
911                 return result;
912 #line 913 "moonshot-identity-dialog.c"
913         }
914         result = g_strdup (_ ("Missing required fields: "));
915 #line 349 "moonshot-identity-dialog.vala"
916         return result;
917 #line 918 "moonshot-identity-dialog.c"
918 }
919
920
921 #line 352 "moonshot-identity-dialog.vala"
922 static char* identity_dialog_update_message (const char* old_message, const char* new_item) {
923 #line 924 "moonshot-identity-dialog.c"
924         char* result = NULL;
925         char* message;
926 #line 352 "moonshot-identity-dialog.vala"
927         g_return_val_if_fail (old_message != NULL, NULL);
928 #line 352 "moonshot-identity-dialog.vala"
929         g_return_val_if_fail (new_item != NULL, NULL);
930 #line 931 "moonshot-identity-dialog.c"
931         message = NULL;
932 #line 355 "moonshot-identity-dialog.vala"
933         if (_vala_strcmp0 (old_message, "") == 0) {
934 #line 935 "moonshot-identity-dialog.c"
935                 char* _tmp0_;
936 #line 356 "moonshot-identity-dialog.vala"
937                 message = (_tmp0_ = g_strdup (new_item), _g_free0 (message), _tmp0_);
938 #line 939 "moonshot-identity-dialog.c"
939         } else {
940                 char* _tmp1_;
941                 char* _tmp2_;
942 #line 358 "moonshot-identity-dialog.vala"
943                 message = (_tmp2_ = g_strconcat (_tmp1_ = g_strconcat (old_message, ", ", NULL), new_item, NULL), _g_free0 (message), _tmp2_);
944 #line 945 "moonshot-identity-dialog.c"
945                 _g_free0 (_tmp1_);
946         }
947         result = message;
948 #line 359 "moonshot-identity-dialog.vala"
949         return result;
950 #line 951 "moonshot-identity-dialog.c"
951 }
952
953
954 #line 362 "moonshot-identity-dialog.vala"
955 static void identity_dialog_check_field (const char* field, GtkLabel* label, const char* fieldname, char** preamble, char** message) {
956 #line 957 "moonshot-identity-dialog.c"
957         char* _tmp1_;
958         char* _tmp2_;
959         char* _tmp3_;
960 #line 362 "moonshot-identity-dialog.vala"
961         g_return_if_fail (field != NULL);
962 #line 362 "moonshot-identity-dialog.vala"
963         g_return_if_fail (label != NULL);
964 #line 362 "moonshot-identity-dialog.vala"
965         g_return_if_fail (fieldname != NULL);
966 #line 362 "moonshot-identity-dialog.vala"
967         g_return_if_fail (preamble != NULL);
968 #line 362 "moonshot-identity-dialog.vala"
969         g_return_if_fail (message != NULL);
970 #line 364 "moonshot-identity-dialog.vala"
971         if (_vala_strcmp0 (field, "") != 0) {
972 #line 973 "moonshot-identity-dialog.c"
973                 char* _tmp0_;
974 #line 365 "moonshot-identity-dialog.vala"
975                 gtk_label_set_markup (label, _tmp0_ = g_strconcat (string_to_string (fieldname), ":", NULL));
976 #line 977 "moonshot-identity-dialog.c"
977                 _g_free0 (_tmp0_);
978 #line 366 "moonshot-identity-dialog.vala"
979                 return;
980 #line 981 "moonshot-identity-dialog.c"
981         }
982 #line 368 "moonshot-identity-dialog.vala"
983         gtk_label_set_markup (label, _tmp1_ = g_strconcat ("<span foreground=\"red\">", string_to_string (fieldname), ":</span>", NULL));
984 #line 985 "moonshot-identity-dialog.c"
985         _g_free0 (_tmp1_);
986 #line 369 "moonshot-identity-dialog.vala"
987         *preamble = (_tmp2_ = identity_dialog_update_preamble (*preamble), _g_free0 (*preamble), _tmp2_);
988 #line 370 "moonshot-identity-dialog.vala"
989         *message = (_tmp3_ = identity_dialog_update_message (*message, fieldname), _g_free0 (*message), _tmp3_);
990 #line 991 "moonshot-identity-dialog.c"
991 }
992
993
994 #line 373 "moonshot-identity-dialog.vala"
995 static gboolean identity_dialog_check_fields (IdentityDialog* self) {
996 #line 997 "moonshot-identity-dialog.c"
997         gboolean result = FALSE;
998         char* preamble;
999         char* message;
1000         const char* _tmp0_;
1001         char* password_test;
1002 #line 373 "moonshot-identity-dialog.vala"
1003         g_return_val_if_fail (self != NULL, FALSE);
1004 #line 375 "moonshot-identity-dialog.vala"
1005         preamble = g_strdup ("");
1006 #line 376 "moonshot-identity-dialog.vala"
1007         message = g_strdup ("");
1008 #line 1009 "moonshot-identity-dialog.c"
1009         _tmp0_ = NULL;
1010 #line 377 "moonshot-identity-dialog.vala"
1011         if (identity_dialog_get_store_password (self)) {
1012 #line 377 "moonshot-identity-dialog.vala"
1013                 _tmp0_ = identity_dialog_get_password (self);
1014 #line 1015 "moonshot-identity-dialog.c"
1015         } else {
1016 #line 377 "moonshot-identity-dialog.vala"
1017                 _tmp0_ = "not required";
1018 #line 1019 "moonshot-identity-dialog.c"
1019         }
1020 #line 377 "moonshot-identity-dialog.vala"
1021         password_test = g_strdup (_tmp0_);
1022 #line 378 "moonshot-identity-dialog.vala"
1023         if (!id_card_is_no_identity (self->priv->card)) {
1024 #line 380 "moonshot-identity-dialog.vala"
1025                 identity_dialog_check_field (identity_dialog_get_display_name (self), self->priv->displayname_label, IDENTITY_DIALOG_displayname_labeltext, &preamble, &message);
1026 #line 381 "moonshot-identity-dialog.vala"
1027                 identity_dialog_check_field (identity_dialog_get_username (self), self->priv->username_label, IDENTITY_DIALOG_username_labeltext, &preamble, &message);
1028 #line 382 "moonshot-identity-dialog.vala"
1029                 identity_dialog_check_field (identity_dialog_get_issuer (self), self->priv->realm_label, IDENTITY_DIALOG_realm_labeltext, &preamble, &message);
1030 #line 383 "moonshot-identity-dialog.vala"
1031                 identity_dialog_check_field (password_test, self->priv->password_label, IDENTITY_DIALOG_password_labeltext, &preamble, &message);
1032 #line 1033 "moonshot-identity-dialog.c"
1033         }
1034 #line 385 "moonshot-identity-dialog.vala"
1035         if (_vala_strcmp0 (message, "") != 0) {
1036 #line 1037 "moonshot-identity-dialog.c"
1037                 char* _tmp1_;
1038 #line 386 "moonshot-identity-dialog.vala"
1039                 gtk_widget_set_visible ((GtkWidget*) self->priv->message_label, TRUE);
1040 #line 387 "moonshot-identity-dialog.vala"
1041                 gtk_label_set_markup (self->priv->message_label, _tmp1_ = g_strconcat ("<span foreground=\"red\">", string_to_string (preamble), string_to_string (message), "</span>", NULL));
1042 #line 1043 "moonshot-identity-dialog.c"
1043                 _g_free0 (_tmp1_);
1044                 result = FALSE;
1045                 _g_free0 (password_test);
1046                 _g_free0 (message);
1047                 _g_free0 (preamble);
1048 #line 388 "moonshot-identity-dialog.vala"
1049                 return result;
1050 #line 1051 "moonshot-identity-dialog.c"
1051         }
1052         result = TRUE;
1053         _g_free0 (password_test);
1054         _g_free0 (message);
1055         _g_free0 (preamble);
1056 #line 390 "moonshot-identity-dialog.vala"
1057         return result;
1058 #line 1059 "moonshot-identity-dialog.c"
1059 }
1060
1061
1062 #line 393 "moonshot-identity-dialog.vala"
1063 static void identity_dialog_on_response (IdentityDialog* self, GtkDialog* source, gint response_id) {
1064 #line 393 "moonshot-identity-dialog.vala"
1065         g_return_if_fail (self != NULL);
1066 #line 393 "moonshot-identity-dialog.vala"
1067         g_return_if_fail (source != NULL);
1068 #line 395 "moonshot-identity-dialog.vala"
1069         switch (response_id) {
1070 #line 1071 "moonshot-identity-dialog.c"
1071                 case GTK_RESPONSE_OK:
1072                 {
1073 #line 397 "moonshot-identity-dialog.vala"
1074                         self->complete = identity_dialog_check_fields (self);
1075 #line 398 "moonshot-identity-dialog.vala"
1076                         break;
1077 #line 1078 "moonshot-identity-dialog.c"
1078                 }
1079                 case GTK_RESPONSE_CANCEL:
1080                 {
1081 #line 400 "moonshot-identity-dialog.vala"
1082                         self->complete = TRUE;
1083 #line 401 "moonshot-identity-dialog.vala"
1084                         break;
1085 #line 1086 "moonshot-identity-dialog.c"
1086                 }
1087         }
1088 }
1089
1090
1091 #line 461 "moonshot-identity-dialog.vala"
1092 static gboolean _lambda7_ (Block5Data* _data5_) {
1093 #line 1094 "moonshot-identity-dialog.c"
1094         Block4Data* _data4_;
1095         IdentityDialog * self;
1096         gboolean result = FALSE;
1097         GtkStateType state;
1098         GEnumValue* _tmp0_;
1099         char* _tmp1_;
1100         char* _tmp2_;
1101         char* _tmp3_;
1102         char* _tmp4_;
1103         _data4_ = _data5_->_data4_;
1104         self = _data4_->self;
1105 #line 463 "moonshot-identity-dialog.vala"
1106         state = gtk_widget_get_state ((GtkWidget*) _data5_->label);
1107 #line 464 "moonshot-identity-dialog.vala"
1108         moonshot_logger_trace (identity_dialog_logger, _tmp4_ = g_strconcat (_tmp2_ = g_strconcat (_tmp1_ = g_strconcat ("button_press_callback: Label state=", (_tmp0_ = g_enum_get_value (g_type_class_ref (GTK_TYPE_STATE_TYPE), (int) state), (_tmp0_ != NULL) ? _tmp0_->value_name : NULL), NULL), " setting bg to ", NULL), _tmp3_ = gdk_color_to_string (&identity_dialog_white), NULL), NULL);
1109 #line 1110 "moonshot-identity-dialog.c"
1110         _g_free0 (_tmp4_);
1111         _g_free0 (_tmp3_);
1112         _g_free0 (_tmp2_);
1113         _g_free0 (_tmp1_);
1114 #line 466 "moonshot-identity-dialog.vala"
1115         if (self->priv->selected_item == _data5_->label) {
1116 #line 1117 "moonshot-identity-dialog.c"
1117                 GtkLabel* _tmp5_;
1118 #line 469 "moonshot-identity-dialog.vala"
1119                 gtk_widget_modify_bg ((GtkWidget*) gtk_widget_get_parent ((GtkWidget*) self->priv->selected_item), state, &identity_dialog_white);
1120 #line 470 "moonshot-identity-dialog.vala"
1121                 self->priv->selected_item = (_tmp5_ = NULL, _g_object_unref0 (self->priv->selected_item), _tmp5_);
1122 #line 471 "moonshot-identity-dialog.vala"
1123                 gtk_widget_set_sensitive ((GtkWidget*) _data4_->remove_button, FALSE);
1124 #line 1125 "moonshot-identity-dialog.c"
1125         } else {
1126                 GtkLabel* _tmp7_;
1127 #line 475 "moonshot-identity-dialog.vala"
1128                 if (self->priv->selected_item != NULL) {
1129 #line 1130 "moonshot-identity-dialog.c"
1130                         GtkLabel* _tmp6_;
1131 #line 478 "moonshot-identity-dialog.vala"
1132                         gtk_widget_modify_bg ((GtkWidget*) gtk_widget_get_parent ((GtkWidget*) self->priv->selected_item), state, &identity_dialog_white);
1133 #line 479 "moonshot-identity-dialog.vala"
1134                         self->priv->selected_item = (_tmp6_ = NULL, _g_object_unref0 (self->priv->selected_item), _tmp6_);
1135 #line 1136 "moonshot-identity-dialog.c"
1136                 }
1137 #line 483 "moonshot-identity-dialog.vala"
1138                 self->priv->selected_item = (_tmp7_ = _g_object_ref0 (_data5_->label), _g_object_unref0 (self->priv->selected_item), _tmp7_);
1139 #line 484 "moonshot-identity-dialog.vala"
1140                 gtk_widget_modify_bg ((GtkWidget*) gtk_widget_get_parent ((GtkWidget*) self->priv->selected_item), state, &identity_dialog_selected_color);
1141 #line 485 "moonshot-identity-dialog.vala"
1142                 gtk_widget_set_sensitive ((GtkWidget*) _data4_->remove_button, TRUE);
1143 #line 1144 "moonshot-identity-dialog.c"
1144         }
1145         result = FALSE;
1146 #line 487 "moonshot-identity-dialog.vala"
1147         return result;
1148 #line 1149 "moonshot-identity-dialog.c"
1149 }
1150
1151
1152 #line 461 "moonshot-identity-dialog.vala"
1153 static gboolean __lambda7__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
1154 #line 1155 "moonshot-identity-dialog.c"
1155         gboolean result;
1156         result = _lambda7_ (self);
1157         return result;
1158 }
1159
1160
1161 static Block5Data* block5_data_ref (Block5Data* _data5_) {
1162         g_atomic_int_inc (&_data5_->_ref_count_);
1163         return _data5_;
1164 }
1165
1166
1167 static void block5_data_unref (Block5Data* _data5_) {
1168         if (g_atomic_int_dec_and_test (&_data5_->_ref_count_)) {
1169                 block4_data_unref (_data5_->_data4_);
1170                 _g_object_unref0 (_data5_->label);
1171                 g_slice_free (Block5Data, _data5_);
1172         }
1173 }
1174
1175
1176 #line 494 "moonshot-identity-dialog.vala"
1177 static void _lambda8_ (GtkButton* remove_button, Block4Data* _data4_) {
1178 #line 1179 "moonshot-identity-dialog.c"
1179         IdentityDialog * self;
1180         char* _tmp0_;
1181         char* _tmp1_;
1182         char* _tmp2_;
1183         char* _tmp3_;
1184         gboolean _tmp4_;
1185         gboolean _result_;
1186         self = _data4_->self;
1187 #line 494 "moonshot-identity-dialog.vala"
1188         g_return_if_fail (remove_button != NULL);
1189 #line 496 "moonshot-identity-dialog.vala"
1190         _result_ = (_tmp4_ = warning_dialog_confirm ((GtkWindow*) self, _tmp3_ = g_strconcat (_tmp2_ = g_markup_printf_escaped (_tmp1_ = g_strconcat (_tmp0_ = g_strconcat ("<span font-weight='heavy'>", _ ("You are about to remove the service\n'%s'."), NULL), "</span>", NULL), gtk_label_get_label (self->priv->selected_item)), _ ("\n\nAre you sure you want to do this?"), NULL), "delete_service"), _g_free0 (_tmp3_), _g_free0 (_tmp2_), _g_free0 (_tmp1_), _g_free0 (_tmp0_), _tmp4_);
1191 #line 505 "moonshot-identity-dialog.vala"
1192         if (_result_) {
1193 #line 507 "moonshot-identity-dialog.vala"
1194                 if (self->priv->card != NULL) {
1195 #line 1196 "moonshot-identity-dialog.c"
1196                         GtkLabel* _tmp5_;
1197 #line 508 "moonshot-identity-dialog.vala"
1198                         gee_abstract_collection_remove ((GeeAbstractCollection*) self->priv->services, gtk_label_get_label (self->priv->selected_item));
1199 #line 509 "moonshot-identity-dialog.vala"
1200                         gtk_container_remove ((GtkContainer*) _data4_->services_table, (GtkWidget*) gtk_widget_get_parent ((GtkWidget*) self->priv->selected_item));
1201 #line 510 "moonshot-identity-dialog.vala"
1202                         self->priv->selected_item = (_tmp5_ = NULL, _g_object_unref0 (self->priv->selected_item), _tmp5_);
1203 #line 511 "moonshot-identity-dialog.vala"
1204                         gtk_widget_set_sensitive ((GtkWidget*) remove_button, FALSE);
1205 #line 1206 "moonshot-identity-dialog.c"
1206                 }
1207         }
1208 }
1209
1210
1211 #line 494 "moonshot-identity-dialog.vala"
1212 static void __lambda8__gtk_button_clicked (GtkButton* _sender, gpointer self) {
1213 #line 1214 "moonshot-identity-dialog.c"
1214         _lambda8_ (_sender, self);
1215 }
1216
1217
1218 static Block4Data* block4_data_ref (Block4Data* _data4_) {
1219         g_atomic_int_inc (&_data4_->_ref_count_);
1220         return _data4_;
1221 }
1222
1223
1224 static void block4_data_unref (Block4Data* _data4_) {
1225         if (g_atomic_int_dec_and_test (&_data4_->_ref_count_)) {
1226                 _g_object_unref0 (_data4_->self);
1227                 _g_object_unref0 (_data4_->services_table);
1228                 _g_object_unref0 (_data4_->remove_button);
1229                 g_slice_free (Block4Data, _data4_);
1230         }
1231 }
1232
1233
1234 #line 405 "moonshot-identity-dialog.vala"
1235 static GtkVBox* identity_dialog_make_services_vbox (IdentityDialog* self) {
1236 #line 1237 "moonshot-identity-dialog.c"
1237         GtkVBox* result = NULL;
1238         Block4Data* _data4_;
1239         GtkAlignment* services_vbox_alignment;
1240         GtkScrolledWindow* services_vscroll;
1241         GtkHBox* table_button_hbox;
1242         GtkVBox* fixed_height;
1243         GtkEventBox* table_bg;
1244         GtkLabel* services_vbox_title;
1245         GtkVBox* services_vbox;
1246         gint i;
1247 #line 405 "moonshot-identity-dialog.vala"
1248         g_return_val_if_fail (self != NULL, NULL);
1249 #line 1250 "moonshot-identity-dialog.c"
1250         _data4_ = g_slice_new0 (Block4Data);
1251         _data4_->_ref_count_ = 1;
1252         _data4_->self = g_object_ref (self);
1253 #line 407 "moonshot-identity-dialog.vala"
1254         moonshot_logger_trace (identity_dialog_logger, "make_services_vbox", NULL);
1255 #line 409 "moonshot-identity-dialog.vala"
1256         services_vbox_alignment = g_object_ref_sink ((GtkAlignment*) gtk_alignment_new ((float) 0, (float) 0, (float) 1, (float) 0));
1257 #line 410 "moonshot-identity-dialog.vala"
1258         services_vscroll = g_object_ref_sink ((GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL));
1259 #line 411 "moonshot-identity-dialog.vala"
1260         gtk_scrolled_window_set_policy (services_vscroll, GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
1261 #line 412 "moonshot-identity-dialog.vala"
1262         gtk_scrolled_window_set_shadow_type (services_vscroll, GTK_SHADOW_IN);
1263 #line 413 "moonshot-identity-dialog.vala"
1264         gtk_widget_set_size_request ((GtkWidget*) services_vscroll, 0, 60);
1265 #line 414 "moonshot-identity-dialog.vala"
1266         gtk_scrolled_window_add_with_viewport (services_vscroll, (GtkWidget*) services_vbox_alignment);
1267 #line 1268 "moonshot-identity-dialog.c"
1268         _data4_->remove_button = g_object_ref_sink ((GtkButton*) gtk_button_new_from_stock (GTK_STOCK_REMOVE));
1269 #line 421 "moonshot-identity-dialog.vala"
1270         gtk_widget_set_sensitive ((GtkWidget*) _data4_->remove_button, FALSE);
1271 #line 1272 "moonshot-identity-dialog.c"
1272         _data4_->services_table = g_object_ref_sink ((GtkTable*) gtk_table_new ((guint) gee_collection_get_size ((GeeCollection*) id_card_get_services (self->priv->card)), (guint) 1, FALSE));
1273 #line 425 "moonshot-identity-dialog.vala"
1274         gtk_table_set_row_spacings (_data4_->services_table, (guint) 1);
1275 #line 426 "moonshot-identity-dialog.vala"
1276         gtk_table_set_col_spacings (_data4_->services_table, (guint) 0);
1277 #line 427 "moonshot-identity-dialog.vala"
1278         set_bg_color ((GtkWidget*) _data4_->services_table);
1279 #line 429 "moonshot-identity-dialog.vala"
1280         table_button_hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 6));
1281 #line 430 "moonshot-identity-dialog.vala"
1282         gtk_box_pack_start ((GtkBox*) table_button_hbox, (GtkWidget*) services_vscroll, TRUE, TRUE, (guint) 4);
1283 #line 433 "moonshot-identity-dialog.vala"
1284         fixed_height = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 0));
1285 #line 434 "moonshot-identity-dialog.vala"
1286         gtk_box_pack_start ((GtkBox*) fixed_height, (GtkWidget*) _data4_->remove_button, FALSE, FALSE, (guint) 0);
1287 #line 435 "moonshot-identity-dialog.vala"
1288         gtk_box_pack_start ((GtkBox*) table_button_hbox, (GtkWidget*) fixed_height, FALSE, FALSE, (guint) 0);
1289 #line 439 "moonshot-identity-dialog.vala"
1290         table_bg = g_object_ref_sink ((GtkEventBox*) gtk_event_box_new ());
1291 #line 440 "moonshot-identity-dialog.vala"
1292         set_bg_color ((GtkWidget*) table_bg);
1293 #line 441 "moonshot-identity-dialog.vala"
1294         gtk_container_add ((GtkContainer*) table_bg, (GtkWidget*) _data4_->services_table);
1295 #line 442 "moonshot-identity-dialog.vala"
1296         gtk_container_add ((GtkContainer*) services_vbox_alignment, (GtkWidget*) table_bg);
1297 #line 444 "moonshot-identity-dialog.vala"
1298         services_vbox_title = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Services:")));
1299 #line 445 "moonshot-identity-dialog.vala"
1300         gtk_misc_set_alignment ((GtkMisc*) services_vbox_title, (float) 0, 0.5f);
1301 #line 447 "moonshot-identity-dialog.vala"
1302         services_vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 6));
1303 #line 448 "moonshot-identity-dialog.vala"
1304         gtk_box_pack_start ((GtkBox*) services_vbox, (GtkWidget*) services_vbox_title, FALSE, FALSE, (guint) 0);
1305 #line 449 "moonshot-identity-dialog.vala"
1306         gtk_box_pack_start ((GtkBox*) services_vbox, (GtkWidget*) table_button_hbox, TRUE, TRUE, (guint) 0);
1307 #line 451 "moonshot-identity-dialog.vala"
1308         i = 0;
1309 #line 1310 "moonshot-identity-dialog.c"
1310         {
1311                 GeeIterator* _service_it;
1312 #line 452 "moonshot-identity-dialog.vala"
1313                 _service_it = gee_abstract_collection_iterator ((GeeAbstractCollection*) self->priv->services);
1314 #line 452 "moonshot-identity-dialog.vala"
1315                 while (TRUE) {
1316 #line 1317 "moonshot-identity-dialog.c"
1317                         Block5Data* _data5_;
1318                         char* service;
1319                         GtkEventBox* event_box;
1320                         _data5_ = g_slice_new0 (Block5Data);
1321                         _data5_->_ref_count_ = 1;
1322                         _data5_->_data4_ = block4_data_ref (_data4_);
1323 #line 452 "moonshot-identity-dialog.vala"
1324                         if (!gee_iterator_next (_service_it)) {
1325 #line 1326 "moonshot-identity-dialog.c"
1326                                 block5_data_unref (_data5_);
1327 #line 452 "moonshot-identity-dialog.vala"
1328                                 break;
1329 #line 1330 "moonshot-identity-dialog.c"
1330                         }
1331 #line 452 "moonshot-identity-dialog.vala"
1332                         service = (char*) gee_iterator_get (_service_it);
1333 #line 1334 "moonshot-identity-dialog.c"
1334                         _data5_->label = g_object_ref_sink ((GtkLabel*) gtk_label_new (service));
1335 #line 455 "moonshot-identity-dialog.vala"
1336                         gtk_misc_set_alignment ((GtkMisc*) _data5_->label, (float) 0, (float) 0);
1337 #line 456 "moonshot-identity-dialog.vala"
1338                         g_object_set ((GtkMisc*) _data5_->label, "xpad", 3, NULL);
1339 #line 458 "moonshot-identity-dialog.vala"
1340                         event_box = g_object_ref_sink ((GtkEventBox*) gtk_event_box_new ());
1341 #line 459 "moonshot-identity-dialog.vala"
1342                         gtk_widget_modify_bg ((GtkWidget*) event_box, GTK_STATE_NORMAL, &identity_dialog_white);
1343 #line 460 "moonshot-identity-dialog.vala"
1344                         gtk_container_add ((GtkContainer*) event_box, (GtkWidget*) _data5_->label);
1345 #line 461 "moonshot-identity-dialog.vala"
1346                         g_signal_connect_data ((GtkWidget*) event_box, "button-press-event", (GCallback) __lambda7__gtk_widget_button_press_event, block5_data_ref (_data5_), (GClosureNotify) block5_data_unref, 0);
1347 #line 490 "moonshot-identity-dialog.vala"
1348                         gtk_table_attach_defaults (_data4_->services_table, (GtkWidget*) event_box, (guint) 0, (guint) 1, (guint) i, (guint) (i + 1));
1349 #line 491 "moonshot-identity-dialog.vala"
1350                         i++;
1351 #line 1352 "moonshot-identity-dialog.c"
1352                         _g_object_unref0 (event_box);
1353                         _g_free0 (service);
1354                         block5_data_unref (_data5_);
1355                 }
1356                 _g_object_unref0 (_service_it);
1357         }
1358 #line 494 "moonshot-identity-dialog.vala"
1359         g_signal_connect_data (_data4_->remove_button, "clicked", (GCallback) __lambda8__gtk_button_clicked, block4_data_ref (_data4_), (GClosureNotify) block4_data_unref, 0);
1360 #line 1361 "moonshot-identity-dialog.c"
1361         result = services_vbox;
1362         _g_object_unref0 (services_vbox_title);
1363         _g_object_unref0 (table_bg);
1364         _g_object_unref0 (fixed_height);
1365         _g_object_unref0 (table_button_hbox);
1366         _g_object_unref0 (services_vscroll);
1367         _g_object_unref0 (services_vbox_alignment);
1368         block4_data_unref (_data4_);
1369 #line 517 "moonshot-identity-dialog.vala"
1370         return result;
1371 #line 1372 "moonshot-identity-dialog.c"
1372 }
1373
1374
1375 #line 1181 "glib-2.0.vapi"
1376 static char* string_replace (const char* self, const char* old, const char* replacement) {
1377 #line 1378 "moonshot-identity-dialog.c"
1378         char* result = NULL;
1379         GError * _inner_error_ = NULL;
1380 #line 1181 "glib-2.0.vapi"
1381         g_return_val_if_fail (self != NULL, NULL);
1382 #line 1181 "glib-2.0.vapi"
1383         g_return_val_if_fail (old != NULL, NULL);
1384 #line 1181 "glib-2.0.vapi"
1385         g_return_val_if_fail (replacement != NULL, NULL);
1386 #line 1387 "moonshot-identity-dialog.c"
1387         {
1388                 char* _tmp0_;
1389                 GRegex* _tmp1_;
1390                 GRegex* regex;
1391                 char* _tmp2_;
1392 #line 1183 "glib-2.0.vapi"
1393                 regex = (_tmp1_ = g_regex_new (_tmp0_ = g_regex_escape_string (old, -1), 0, 0, &_inner_error_), _g_free0 (_tmp0_), _tmp1_);
1394 #line 1395 "moonshot-identity-dialog.c"
1395                 if (_inner_error_ != NULL) {
1396                         if (_inner_error_->domain == G_REGEX_ERROR) {
1397                                 goto __catch9_g_regex_error;
1398                         }
1399                         g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
1400                         g_clear_error (&_inner_error_);
1401                         return NULL;
1402                 }
1403 #line 1184 "glib-2.0.vapi"
1404                 _tmp2_ = g_regex_replace_literal (regex, self, (gssize) (-1), 0, replacement, 0, &_inner_error_);
1405 #line 1406 "moonshot-identity-dialog.c"
1406                 if (_inner_error_ != NULL) {
1407                         _g_regex_unref0 (regex);
1408                         if (_inner_error_->domain == G_REGEX_ERROR) {
1409                                 goto __catch9_g_regex_error;
1410                         }
1411                         _g_regex_unref0 (regex);
1412                         g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
1413                         g_clear_error (&_inner_error_);
1414                         return NULL;
1415                 }
1416                 result = _tmp2_;
1417                 _g_regex_unref0 (regex);
1418 #line 1184 "glib-2.0.vapi"
1419                 return result;
1420 #line 1421 "moonshot-identity-dialog.c"
1421         }
1422         goto __finally9;
1423         __catch9_g_regex_error:
1424         {
1425                 GError * e;
1426                 e = _inner_error_;
1427                 _inner_error_ = NULL;
1428                 {
1429 #line 1186 "glib-2.0.vapi"
1430                         g_assert_not_reached ();
1431 #line 1432 "moonshot-identity-dialog.c"
1432                         _g_error_free0 (e);
1433                 }
1434         }
1435         __finally9:
1436         if (_inner_error_ != NULL) {
1437                 g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
1438                 g_clear_error (&_inner_error_);
1439                 return NULL;
1440         }
1441 }
1442
1443
1444 static glong string_get_length (const char* self) {
1445         glong result;
1446         g_return_val_if_fail (self != NULL, 0L);
1447         result = g_utf8_strlen (self, (gssize) (-1));
1448 #line 1194 "glib-2.0.vapi"
1449         return result;
1450 #line 1451 "moonshot-identity-dialog.c"
1451 }
1452
1453
1454 #line 1126 "glib-2.0.vapi"
1455 static char* string_slice (const char* self, glong start, glong end) {
1456 #line 1457 "moonshot-identity-dialog.c"
1457         char* result = NULL;
1458         glong string_length;
1459         gboolean _tmp0_ = FALSE;
1460         gboolean _tmp1_ = FALSE;
1461         const char* start_string;
1462 #line 1126 "glib-2.0.vapi"
1463         g_return_val_if_fail (self != NULL, NULL);
1464 #line 1127 "glib-2.0.vapi"
1465         string_length = string_get_length (self);
1466 #line 1128 "glib-2.0.vapi"
1467         if (start < 0) {
1468 #line 1129 "glib-2.0.vapi"
1469                 start = string_length + start;
1470 #line 1471 "moonshot-identity-dialog.c"
1471         }
1472 #line 1131 "glib-2.0.vapi"
1473         if (end < 0) {
1474 #line 1132 "glib-2.0.vapi"
1475                 end = string_length + end;
1476 #line 1477 "moonshot-identity-dialog.c"
1477         }
1478 #line 1134 "glib-2.0.vapi"
1479         if (start >= 0) {
1480 #line 1134 "glib-2.0.vapi"
1481                 _tmp0_ = start <= string_length;
1482 #line 1483 "moonshot-identity-dialog.c"
1483         } else {
1484 #line 1134 "glib-2.0.vapi"
1485                 _tmp0_ = FALSE;
1486 #line 1487 "moonshot-identity-dialog.c"
1487         }
1488 #line 1134 "glib-2.0.vapi"
1489         g_return_val_if_fail (_tmp0_, NULL);
1490 #line 1135 "glib-2.0.vapi"
1491         if (end >= 0) {
1492 #line 1135 "glib-2.0.vapi"
1493                 _tmp1_ = end <= string_length;
1494 #line 1495 "moonshot-identity-dialog.c"
1495         } else {
1496 #line 1135 "glib-2.0.vapi"
1497                 _tmp1_ = FALSE;
1498 #line 1499 "moonshot-identity-dialog.c"
1499         }
1500 #line 1135 "glib-2.0.vapi"
1501         g_return_val_if_fail (_tmp1_, NULL);
1502 #line 1136 "glib-2.0.vapi"
1503         g_return_val_if_fail (start <= end, NULL);
1504 #line 1137 "glib-2.0.vapi"
1505         start_string = g_utf8_offset_to_pointer (self, start);
1506 #line 1507 "moonshot-identity-dialog.c"
1507         result = g_strndup (start_string, ((gchar*) g_utf8_offset_to_pointer (start_string, end - start)) - ((gchar*) start_string));
1508 #line 1138 "glib-2.0.vapi"
1509         return result;
1510 #line 1511 "moonshot-identity-dialog.c"
1511 }
1512
1513
1514 static guint8* string_get_data (const char* self, int* result_length1) {
1515         guint8* result;
1516         gint res_length1;
1517         gint _res_size_;
1518         guint8* _tmp0_;
1519         guint8* res;
1520         guint8* _tmp1_;
1521         g_return_val_if_fail (self != NULL, NULL);
1522         res = (_tmp0_ = (guint8*) self, res_length1 = -1, _res_size_ = res_length1, _tmp0_);
1523 #line 1200 "glib-2.0.vapi"
1524         res_length1 = (gint) strlen (self);
1525 #line 1527 "moonshot-identity-dialog.c"
1526         result = (_tmp1_ = res, *result_length1 = res_length1, _tmp1_);
1527 #line 1201 "glib-2.0.vapi"
1528         return result;
1529 #line 1531 "moonshot-identity-dialog.c"
1530 }
1531
1532
1533 #line 520 "moonshot-identity-dialog.vala"
1534 static void identity_dialog_export_certificate (IdentityDialog* self, IdCard* id) {
1535 #line 1537 "moonshot-identity-dialog.c"
1536         GtkFileChooserDialog* dialog;
1537         char* _tmp0_;
1538         char* _tmp1_;
1539         char* default_filename;
1540         GError * _inner_error_ = NULL;
1541 #line 520 "moonshot-identity-dialog.vala"
1542         g_return_if_fail (self != NULL);
1543 #line 520 "moonshot-identity-dialog.vala"
1544         g_return_if_fail (id != NULL);
1545 #line 522 "moonshot-identity-dialog.vala"
1546         dialog = g_object_ref_sink ((GtkFileChooserDialog*) gtk_file_chooser_dialog_new ("Save File", (GtkWindow*) self, GTK_FILE_CHOOSER_ACTION_SAVE, _ ("Cancel"), GTK_RESPONSE_CANCEL, _ ("Save"), GTK_RESPONSE_ACCEPT, NULL, NULL));
1547 #line 528 "moonshot-identity-dialog.vala"
1548         gtk_file_chooser_set_do_overwrite_confirmation ((GtkFileChooser*) dialog, TRUE);
1549 #line 529 "moonshot-identity-dialog.vala"
1550         if (export_directory != NULL) {
1551 #line 530 "moonshot-identity-dialog.vala"
1552                 gtk_file_chooser_set_current_folder ((GtkFileChooser*) dialog, export_directory);
1553 #line 1555 "moonshot-identity-dialog.c"
1554         }
1555 #line 534 "moonshot-identity-dialog.vala"
1556         default_filename = (_tmp1_ = string_replace (_tmp0_ = g_strconcat (id_card_get_display_name (id), ".pem", NULL), G_DIR_SEPARATOR_S, "_"), _g_free0 (_tmp0_), _tmp1_);
1557 #line 535 "moonshot-identity-dialog.vala"
1558         gtk_file_chooser_set_current_name ((GtkFileChooser*) dialog, default_filename);
1559 #line 536 "moonshot-identity-dialog.vala"
1560         if (gtk_dialog_run ((GtkDialog*) dialog) == GTK_RESPONSE_ACCEPT) {
1561 #line 1563 "moonshot-identity-dialog.c"
1562                 char* CERT_HEADER;
1563                 char* CERT_FOOTER;
1564                 char* cert;
1565                 char* newcert;
1566                 char* _tmp7_;
1567                 char* filename;
1568                 GFile* file;
1569                 GFileOutputStream* stream;
1570                 gint _tmp8_;
1571                 GFile* _tmp9_;
1572                 char* _tmp10_;
1573 #line 542 "moonshot-identity-dialog.vala"
1574                 CERT_HEADER = g_strdup ("-----BEGIN CERTIFICATE-----\n");
1575 #line 543 "moonshot-identity-dialog.vala"
1576                 CERT_FOOTER = g_strdup ("\n-----END CERTIFICATE-----\n");
1577 #line 546 "moonshot-identity-dialog.vala"
1578                 cert = string_replace (trust_anchor_get_ca_cert (id_card_get_trust_anchor (id)), "\n", "");
1579 #line 549 "moonshot-identity-dialog.vala"
1580                 newcert = g_strdup (CERT_HEADER);
1581 #line 550 "moonshot-identity-dialog.vala"
1582                 while (TRUE) {
1583 #line 1585 "moonshot-identity-dialog.c"
1584                         char* _tmp2_;
1585                         char* _tmp3_;
1586                         char* _tmp4_;
1587                         char* _tmp5_;
1588 #line 550 "moonshot-identity-dialog.vala"
1589                         if (!(string_get_length (cert) > 63)) {
1590 #line 550 "moonshot-identity-dialog.vala"
1591                                 break;
1592 #line 1594 "moonshot-identity-dialog.c"
1593                         }
1594 #line 551 "moonshot-identity-dialog.vala"
1595                         newcert = (_tmp3_ = g_strconcat (newcert, _tmp2_ = string_slice (cert, (glong) 0, (glong) 64), NULL), _g_free0 (newcert), _tmp3_);
1596 #line 1598 "moonshot-identity-dialog.c"
1597                         _g_free0 (_tmp2_);
1598 #line 552 "moonshot-identity-dialog.vala"
1599                         newcert = (_tmp4_ = g_strconcat (newcert, "\n", NULL), _g_free0 (newcert), _tmp4_);
1600 #line 553 "moonshot-identity-dialog.vala"
1601                         cert = (_tmp5_ = string_slice (cert, (glong) 64, string_get_length (cert)), _g_free0 (cert), _tmp5_);
1602 #line 1604 "moonshot-identity-dialog.c"
1603                 }
1604 #line 555 "moonshot-identity-dialog.vala"
1605                 if (string_get_length (cert) > 0) {
1606 #line 1608 "moonshot-identity-dialog.c"
1607                         char* _tmp6_;
1608 #line 556 "moonshot-identity-dialog.vala"
1609                         newcert = (_tmp6_ = g_strconcat (newcert, cert, NULL), _g_free0 (newcert), _tmp6_);
1610 #line 1612 "moonshot-identity-dialog.c"
1611                 }
1612 #line 558 "moonshot-identity-dialog.vala"
1613                 newcert = (_tmp7_ = g_strconcat (newcert, CERT_FOOTER, NULL), _g_free0 (newcert), _tmp7_);
1614 #line 560 "moonshot-identity-dialog.vala"
1615                 filename = gtk_file_chooser_get_filename ((GtkFileChooser*) dialog);
1616 #line 561 "moonshot-identity-dialog.vala"
1617                 file = g_file_new_for_path (filename);
1618 #line 562 "moonshot-identity-dialog.vala"
1619                 stream = g_file_replace (file, NULL, FALSE, G_FILE_CREATE_PRIVATE, NULL, &_inner_error_);
1620 #line 1622 "moonshot-identity-dialog.c"
1621                 if (_inner_error_ != NULL) {
1622                         _g_object_unref0 (file);
1623                         _g_free0 (filename);
1624                         _g_free0 (newcert);
1625                         _g_free0 (cert);
1626                         _g_free0 (CERT_FOOTER);
1627                         _g_free0 (CERT_HEADER);
1628                         _g_free0 (default_filename);
1629                         _g_object_unref0 (dialog);
1630                         g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
1631                         g_clear_error (&_inner_error_);
1632                         return;
1633                 }
1634 #line 567 "moonshot-identity-dialog.vala"
1635                 g_output_stream_write ((GOutputStream*) stream, string_get_data (newcert, &_tmp8_), (gsize) string_get_length (newcert), NULL, &_inner_error_);
1636 #line 1638 "moonshot-identity-dialog.c"
1637                 if (_inner_error_ != NULL) {
1638                         _g_object_unref0 (stream);
1639                         _g_object_unref0 (file);
1640                         _g_free0 (filename);
1641                         _g_free0 (newcert);
1642                         _g_free0 (cert);
1643                         _g_free0 (CERT_FOOTER);
1644                         _g_free0 (CERT_HEADER);
1645                         _g_free0 (default_filename);
1646                         _g_object_unref0 (dialog);
1647                         g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
1648                         g_clear_error (&_inner_error_);
1649                         return;
1650                 }
1651 #line 570 "moonshot-identity-dialog.vala"
1652                 export_directory = (_tmp10_ = g_file_get_path (_tmp9_ = g_file_get_parent (file)), _g_free0 (export_directory), _tmp10_);
1653 #line 1655 "moonshot-identity-dialog.c"
1654                 _g_object_unref0 (_tmp9_);
1655                 _g_object_unref0 (stream);
1656                 _g_object_unref0 (file);
1657                 _g_free0 (filename);
1658                 _g_free0 (newcert);
1659                 _g_free0 (cert);
1660                 _g_free0 (CERT_FOOTER);
1661                 _g_free0 (CERT_HEADER);
1662         }
1663 #line 572 "moonshot-identity-dialog.vala"
1664         gtk_object_destroy ((GtkObject*) dialog);
1665 #line 1667 "moonshot-identity-dialog.c"
1666         _g_free0 (default_filename);
1667         _g_object_unref0 (dialog);
1668 }
1669
1670
1671 const char* identity_dialog_get_display_name (IdentityDialog* self) {
1672         const char* result;
1673         g_return_val_if_fail (self != NULL, NULL);
1674         result = gtk_entry_get_text (self->priv->displayname_entry);
1675 #line 80 "moonshot-identity-dialog.vala"
1676         return result;
1677 #line 1679 "moonshot-identity-dialog.c"
1678 }
1679
1680
1681 const char* identity_dialog_get_issuer (IdentityDialog* self) {
1682         const char* result;
1683         g_return_val_if_fail (self != NULL, NULL);
1684         result = gtk_entry_get_text (self->priv->realm_entry);
1685 #line 84 "moonshot-identity-dialog.vala"
1686         return result;
1687 #line 1689 "moonshot-identity-dialog.c"
1688 }
1689
1690
1691 const char* identity_dialog_get_username (IdentityDialog* self) {
1692         const char* result;
1693         g_return_val_if_fail (self != NULL, NULL);
1694         result = gtk_entry_get_text (self->priv->username_entry);
1695 #line 88 "moonshot-identity-dialog.vala"
1696         return result;
1697 #line 1699 "moonshot-identity-dialog.c"
1698 }
1699
1700
1701 const char* identity_dialog_get_password (IdentityDialog* self) {
1702         const char* result;
1703         g_return_val_if_fail (self != NULL, NULL);
1704         result = gtk_entry_get_text (self->priv->password_entry);
1705 #line 92 "moonshot-identity-dialog.vala"
1706         return result;
1707 #line 1709 "moonshot-identity-dialog.c"
1708 }
1709
1710
1711 gboolean identity_dialog_get_store_password (IdentityDialog* self) {
1712         gboolean result;
1713         g_return_val_if_fail (self != NULL, FALSE);
1714         result = gtk_toggle_button_get_active ((GtkToggleButton*) self->priv->remember_checkbutton);
1715 #line 96 "moonshot-identity-dialog.vala"
1716         return result;
1717 #line 1719 "moonshot-identity-dialog.c"
1718 }
1719
1720
1721 static void identity_dialog_class_init (IdentityDialogClass * klass) {
1722         GdkColor _tmp0_ = {0};
1723         GdkColor _tmp1_ = {0};
1724         identity_dialog_parent_class = g_type_class_peek_parent (klass);
1725         g_type_class_add_private (klass, sizeof (IdentityDialogPrivate));
1726         G_OBJECT_CLASS (klass)->get_property = identity_dialog_get_property;
1727         G_OBJECT_CLASS (klass)->finalize = identity_dialog_finalize;
1728         g_object_class_install_property (G_OBJECT_CLASS (klass), IDENTITY_DIALOG_DISPLAY_NAME, g_param_spec_string ("display-name", "display-name", "display-name", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
1729         g_object_class_install_property (G_OBJECT_CLASS (klass), IDENTITY_DIALOG_ISSUER, g_param_spec_string ("issuer", "issuer", "issuer", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
1730         g_object_class_install_property (G_OBJECT_CLASS (klass), IDENTITY_DIALOG_USERNAME, g_param_spec_string ("username", "username", "username", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
1731         g_object_class_install_property (G_OBJECT_CLASS (klass), IDENTITY_DIALOG_PASSWORD, g_param_spec_string ("password", "password", "password", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
1732         g_object_class_install_property (G_OBJECT_CLASS (klass), IDENTITY_DIALOG_STORE_PASSWORD, g_param_spec_boolean ("store-password", "store-password", "store-password", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
1733         identity_dialog_white = (make_color ((guint16) 65535, (guint16) 65535, (guint16) 65535, &_tmp0_), _tmp0_);
1734         identity_dialog_selected_color = (make_color ((guint16) (0xd9 << 8), (guint16) (0xf7 << 8), (guint16) 65535, &_tmp1_), _tmp1_);
1735         identity_dialog_logger = get_logger ("IdentityDialog");
1736 }
1737
1738
1739 static void identity_dialog_instance_init (IdentityDialog * self) {
1740         self->priv = IDENTITY_DIALOG_GET_PRIVATE (self);
1741         self->priv->selected_item = NULL;
1742         self->clear_trust_anchor = FALSE;
1743 }
1744
1745
1746 static void identity_dialog_finalize (GObject* obj) {
1747         IdentityDialog * self;
1748         self = IDENTITY_DIALOG (obj);
1749         _g_object_unref0 (self->priv->displayname_entry);
1750         _g_object_unref0 (self->priv->displayname_label);
1751         _g_object_unref0 (self->priv->realm_entry);
1752         _g_object_unref0 (self->priv->realm_label);
1753         _g_object_unref0 (self->priv->username_entry);
1754         _g_object_unref0 (self->priv->username_label);
1755         _g_object_unref0 (self->priv->password_entry);
1756         _g_object_unref0 (self->priv->password_label);
1757         _g_object_unref0 (self->priv->remember_checkbutton);
1758         _g_object_unref0 (self->priv->message_label);
1759         _g_object_unref0 (self->priv->card);
1760         _g_object_unref0 (self->priv->services);
1761         _g_object_unref0 (self->priv->selected_item);
1762         G_OBJECT_CLASS (identity_dialog_parent_class)->finalize (obj);
1763 }
1764
1765
1766 GType identity_dialog_get_type (void) {
1767         static volatile gsize identity_dialog_type_id__volatile = 0;
1768         if (g_once_init_enter (&identity_dialog_type_id__volatile)) {
1769                 static const GTypeInfo g_define_type_info = { sizeof (IdentityDialogClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) identity_dialog_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (IdentityDialog), 0, (GInstanceInitFunc) identity_dialog_instance_init, NULL };
1770                 GType identity_dialog_type_id;
1771                 identity_dialog_type_id = g_type_register_static (GTK_TYPE_DIALOG, "IdentityDialog", &g_define_type_info, 0);
1772                 g_once_init_leave (&identity_dialog_type_id__volatile, identity_dialog_type_id);
1773         }
1774         return identity_dialog_type_id__volatile;
1775 }
1776
1777
1778 static void identity_dialog_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
1779         IdentityDialog * self;
1780         self = IDENTITY_DIALOG (object);
1781         switch (property_id) {
1782                 case IDENTITY_DIALOG_DISPLAY_NAME:
1783                 g_value_set_string (value, identity_dialog_get_display_name (self));
1784                 break;
1785                 case IDENTITY_DIALOG_ISSUER:
1786                 g_value_set_string (value, identity_dialog_get_issuer (self));
1787                 break;
1788                 case IDENTITY_DIALOG_USERNAME:
1789                 g_value_set_string (value, identity_dialog_get_username (self));
1790                 break;
1791                 case IDENTITY_DIALOG_PASSWORD:
1792                 g_value_set_string (value, identity_dialog_get_password (self));
1793                 break;
1794                 case IDENTITY_DIALOG_STORE_PASSWORD:
1795                 g_value_set_boolean (value, identity_dialog_get_store_password (self));
1796                 break;
1797                 default:
1798                 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
1799                 break;
1800         }
1801 }
1802
1803
1804 static int _vala_strcmp0 (const char * str1, const char * str2) {
1805         if (str1 == NULL) {
1806                 return -(str1 != str2);
1807         }
1808         if (str2 == NULL) {
1809                 return str1 != str2;
1810         }
1811         return strcmp (str1, str2);
1812 }
1813
1814
1815
1816