+ /* Create the window, if necessary: */
+ if (!(self->signature_dialog)) {
+ self->signature_dialog = GTK_WIDGET (modest_signature_editor_dialog_new ());
+
+ gboolean use_signature = FALSE;
+ gchar *signature = modest_account_mgr_get_signature(self->account_manager, self->account_name,
+ &use_signature);
+ const gchar* account_title = gtk_entry_get_text (GTK_ENTRY (self->entry_account_title));
+ modest_signature_editor_dialog_set_settings (
+ MODEST_SIGNATURE_EDITOR_DIALOG (self->signature_dialog),
+ use_signature, signature, account_title);
+ g_free (signature);
+ signature = NULL;
+ }
+
+ /* Show the window: */
+ gtk_window_set_transient_for (GTK_WINDOW (self->signature_dialog), GTK_WINDOW (self));
+ gtk_window_set_modal (GTK_WINDOW (self->signature_dialog), TRUE);
+ const gint response = gtk_dialog_run (GTK_DIALOG (self->signature_dialog));
+ gtk_widget_hide (self->signature_dialog);
+ if (response != GTK_RESPONSE_OK) {
+ /* Destroy the widget now, and its data: */
+ gtk_widget_destroy (self->signature_dialog);
+ self->signature_dialog = NULL;
+ }
+ else {
+ /* Mark modified, so we use the dialog's data later: */
+ self->modified = TRUE;
+ }