[seahorse] common: Port SeahorseDeleteDialog to vala



commit 9b9aee2b719ee1b35d52a840262225509ca855d4
Author: Stef Walter <stefw gnome org>
Date:   Tue Jun 18 22:01:30 2013 +0200

    common: Port SeahorseDeleteDialog to vala

 common/Makefile.am                   |    1 +
 common/delete-dialog.vala            |  115 ++++++++++++++
 common/deleter.vala                  |    2 +-
 gkr/seahorse-gkr-actions.c           |    1 -
 gkr/seahorse-gkr-item-deleter.c      |    2 +-
 gkr/seahorse-gkr-keyring-deleter.c   |    2 +-
 libseahorse/Makefile.am              |    1 -
 libseahorse/seahorse-delete-dialog.c |  279 ----------------------------------
 libseahorse/seahorse-delete-dialog.h |   63 --------
 pgp/seahorse-gpgme-key-deleter.c     |    2 +-
 pgp/seahorse-gpgme-secret-deleter.c  |    2 +-
 pgp/seahorse-pgp-actions.c           |    1 -
 pgp/seahorse-pgp-key-properties.c    |    1 -
 pkcs11/seahorse-pkcs11-deleter.c     |    2 +-
 pkcs11/seahorse-pkcs11-key-deleter.c |    2 +-
 ssh/seahorse-ssh-actions.c           |    2 +-
 ssh/seahorse-ssh-deleter.c           |    2 +-
 17 files changed, 125 insertions(+), 355 deletions(-)
---
diff --git a/common/Makefile.am b/common/Makefile.am
index e99efb7..4223327 100644
--- a/common/Makefile.am
+++ b/common/Makefile.am
@@ -9,6 +9,7 @@ noinst_LTLIBRARIES = libcommon.la
 libcommon_la_SOURCES = \
        backend.vala \
        deletable.vala \
+       delete-dialog.vala \
        deleter.vala \
        exportable.vala \
        exporter.vala \
diff --git a/common/delete-dialog.vala b/common/delete-dialog.vala
new file mode 100644
index 0000000..2881a5d
--- /dev/null
+++ b/common/delete-dialog.vala
@@ -0,0 +1,115 @@
+/*
+ * Seahorse
+ *
+ * Copyright (C) 2011 Collabora Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * Author: Stef Walter <stefw collabora co uk>
+ */
+
+namespace Seahorse {
+
+public class DeleteDialog : Gtk.MessageDialog {
+       private Gtk.ToggleButton _check;
+       private bool _check_require;
+
+       [Notify]
+       public string? check_label {
+               get {
+                       if (_check.get_visible())
+                               return _check.get_label();
+                       return null;
+               }
+               set {
+                       if (value == null) {
+                               _check.hide();
+                               value = "";
+                       } else {
+                               _check.show();
+                       }
+                       _check.set_label(value);
+               }
+       }
+
+       [Notify]
+       public bool check_value {
+               get {
+                       if (_check.get_visible())
+                               return _check.get_active();
+                       return false;
+               }
+               set {
+                       _check.set_active(value);
+               }
+       }
+
+       [Notify]
+       public bool check_require {
+               get {
+                       return _check_require;
+               }
+               set {
+                       _check_require = value;
+                       update_response_buttons();
+               }
+       }
+
+       [CCode (type = "GtkDialog*")]
+       public DeleteDialog(Gtk.Window? parent,
+                           string format,
+                           ...) {
+               GLib.Object(
+                       message_type: Gtk.MessageType.QUESTION,
+                       transient_for: parent,
+                       text: format.vprintf(va_list())
+               );
+       }
+
+       construct {
+               set_modal(true);
+               set_destroy_with_parent(true);
+
+               _check = new Gtk.CheckButton();
+               ((Gtk.Container)get_message_area()).add(_check);
+               _check.toggled.connect((toggle) => {
+                       update_response_buttons();
+               });
+
+               var cancel = new Gtk.Button.from_stock(Gtk.Stock.CANCEL);
+               add_action_widget(cancel, Gtk.ResponseType.CANCEL);
+               cancel.show();
+
+               var delet = new Gtk.Button.from_stock(Gtk.Stock.DELETE);
+               add_action_widget(delet, Gtk.ResponseType.OK);
+               delet.show();
+       }
+
+       private void update_response_buttons() {
+               set_response_sensitive(Gtk.ResponseType.OK,
+                                      !_check_require || _check.get_active());
+       }
+
+       public static bool prompt (Gtk.Window? parent, string text) {
+               Gtk.Dialog? dialog = new DeleteDialog(parent, "%s", text);
+               var response = dialog.run();
+               dialog.destroy();
+               return (response == Gtk.ResponseType.OK);
+       }
+
+}
+
+}
diff --git a/common/deleter.vala b/common/deleter.vala
index 6048086..16e7057 100644
--- a/common/deleter.vala
+++ b/common/deleter.vala
@@ -25,7 +25,7 @@
 namespace Seahorse {
 
 public abstract class Deleter : GLib.Object {
-       public abstract unowned Gtk.Dialog create_confirm(Gtk.Window? parent);
+       public abstract Gtk.Dialog create_confirm(Gtk.Window? parent);
 
        public abstract unowned GLib.List<weak GLib.Object> get_objects();
 
diff --git a/gkr/seahorse-gkr-actions.c b/gkr/seahorse-gkr-actions.c
index c7f4d55..35ca9f0 100644
--- a/gkr/seahorse-gkr-actions.c
+++ b/gkr/seahorse-gkr-actions.c
@@ -31,7 +31,6 @@
 #include "seahorse-action.h"
 #include "seahorse-actions.h"
 #include "seahorse-common.h"
-#include "seahorse-delete-dialog.h"
 #include "seahorse-object-list.h"
 #include "seahorse-progress.h"
 #include "seahorse-util.h"
diff --git a/gkr/seahorse-gkr-item-deleter.c b/gkr/seahorse-gkr-item-deleter.c
index 0edf19c..c4550ba 100644
--- a/gkr/seahorse-gkr-item-deleter.c
+++ b/gkr/seahorse-gkr-item-deleter.c
@@ -26,7 +26,7 @@
 #include "seahorse-gkr-backend.h"
 #include "seahorse-gkr-item-deleter.h"
 
-#include "seahorse-delete-dialog.h"
+#include "seahorse-common.h"
 #include "seahorse-object.h"
 
 #include <glib/gi18n.h>
diff --git a/gkr/seahorse-gkr-keyring-deleter.c b/gkr/seahorse-gkr-keyring-deleter.c
index 026170f..a8ce921 100644
--- a/gkr/seahorse-gkr-keyring-deleter.c
+++ b/gkr/seahorse-gkr-keyring-deleter.c
@@ -26,7 +26,7 @@
 #include "seahorse-gkr-backend.h"
 #include "seahorse-gkr-keyring-deleter.h"
 
-#include "seahorse-delete-dialog.h"
+#include "seahorse-common.h"
 
 #include <glib/gi18n.h>
 
diff --git a/libseahorse/Makefile.am b/libseahorse/Makefile.am
index f554bcc..5edabf3 100644
--- a/libseahorse/Makefile.am
+++ b/libseahorse/Makefile.am
@@ -50,7 +50,6 @@ libseahorse_la_SOURCES = \
        seahorse-catalog.c seahorse-catalog.h \
        seahorse-collection.c seahorse-collection.h \
        seahorse-debug.c seahorse-debug.h \
-       seahorse-delete-dialog.c seahorse-delete-dialog.h \
        seahorse-icons.c seahorse-icons.h \
        seahorse-interaction.c seahorse-interaction.h \
        seahorse-key-manager-store.c seahorse-key-manager-store.h \
diff --git a/pgp/seahorse-gpgme-key-deleter.c b/pgp/seahorse-gpgme-key-deleter.c
index 57b46c0..b16450f 100644
--- a/pgp/seahorse-gpgme-key-deleter.c
+++ b/pgp/seahorse-gpgme-key-deleter.c
@@ -27,7 +27,7 @@
 #include "seahorse-gpgme-key-deleter.h"
 #include "seahorse-gpgme-key-op.h"
 
-#include "seahorse-delete-dialog.h"
+#include "seahorse-common.h"
 
 #include <glib/gi18n.h>
 
diff --git a/pgp/seahorse-gpgme-secret-deleter.c b/pgp/seahorse-gpgme-secret-deleter.c
index 48b75c1..52a7147 100644
--- a/pgp/seahorse-gpgme-secret-deleter.c
+++ b/pgp/seahorse-gpgme-secret-deleter.c
@@ -27,7 +27,7 @@
 #include "seahorse-gpgme-key-op.h"
 #include "seahorse-gpgme-secret-deleter.h"
 
-#include "seahorse-delete-dialog.h"
+#include "seahorse-common.h"
 
 #include <glib/gi18n.h>
 
diff --git a/pgp/seahorse-pgp-actions.c b/pgp/seahorse-pgp-actions.c
index 60e59dc..c298f23 100644
--- a/pgp/seahorse-pgp-actions.c
+++ b/pgp/seahorse-pgp-actions.c
@@ -37,7 +37,6 @@
 #include "seahorse-action.h"
 #include "seahorse-actions.h"
 #include "seahorse-common.h"
-#include "seahorse-delete-dialog.h"
 #include "seahorse-object.h"
 #include "seahorse-object-list.h"
 #include "seahorse-util.h"
diff --git a/pgp/seahorse-pgp-key-properties.c b/pgp/seahorse-pgp-key-properties.c
index cf9e38a..d5a301f 100644
--- a/pgp/seahorse-pgp-key-properties.c
+++ b/pgp/seahorse-pgp-key-properties.c
@@ -32,7 +32,6 @@
 
 #include "seahorse-bind.h"
 #include "seahorse-common.h"
-#include "seahorse-delete-dialog.h"
 #include "seahorse-icons.h"
 #include "seahorse-object.h"
 #include "seahorse-object-model.h"
diff --git a/pkcs11/seahorse-pkcs11-deleter.c b/pkcs11/seahorse-pkcs11-deleter.c
index 549c82e..b2458fa 100644
--- a/pkcs11/seahorse-pkcs11-deleter.c
+++ b/pkcs11/seahorse-pkcs11-deleter.c
@@ -26,7 +26,7 @@
 #include "seahorse-pkcs11-deleter.h"
 #include "seahorse-token.h"
 
-#include "seahorse-delete-dialog.h"
+#include "seahorse-common.h"
 
 #include <gck/gck.h>
 
diff --git a/pkcs11/seahorse-pkcs11-key-deleter.c b/pkcs11/seahorse-pkcs11-key-deleter.c
index 007d09e..d16ec18 100644
--- a/pkcs11/seahorse-pkcs11-key-deleter.c
+++ b/pkcs11/seahorse-pkcs11-key-deleter.c
@@ -29,7 +29,7 @@
 #include "seahorse-private-key.h"
 #include "seahorse-token.h"
 
-#include "seahorse-delete-dialog.h"
+#include "seahorse-common.h"
 
 #include <gck/gck.h>
 
diff --git a/ssh/seahorse-ssh-actions.c b/ssh/seahorse-ssh-actions.c
index 3ea813b..cfe5b6d 100644
--- a/ssh/seahorse-ssh-actions.c
+++ b/ssh/seahorse-ssh-actions.c
@@ -29,7 +29,7 @@
 
 #include "seahorse-action.h"
 #include "seahorse-actions.h"
-#include "seahorse-delete-dialog.h"
+#include "seahorse-common.h"
 #include "seahorse-object.h"
 #include "seahorse-object-list.h"
 #include "seahorse-util.h"
diff --git a/ssh/seahorse-ssh-deleter.c b/ssh/seahorse-ssh-deleter.c
index 4568fa4..851e91a 100644
--- a/ssh/seahorse-ssh-deleter.c
+++ b/ssh/seahorse-ssh-deleter.c
@@ -27,7 +27,7 @@
 #include "seahorse-ssh-deleter.h"
 #include "seahorse-ssh-operation.h"
 
-#include "seahorse-delete-dialog.h"
+#include "seahorse-common.h"
 
 #include <glib/gi18n.h>
 


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