[gnome-keysign: 5/16] send: show an infobar with the signature import result



commit 78e813103444a0a6e06bea3a7a6c5b3071996a39
Author: RyuzakiKK <aasonykk gmail com>
Date:   Sat Mar 2 10:29:04 2019 +0100

    send: show an infobar with the signature import result

 keysign/keylistwidget.py |  1 +
 keysign/send.py          | 22 ++++++++++++++++++++++
 keysign/send.ui          |  2 +-
 3 files changed, 24 insertions(+), 1 deletion(-)
---
diff --git a/keysign/keylistwidget.py b/keysign/keylistwidget.py
index f9c853e..86a8719 100755
--- a/keysign/keylistwidget.py
+++ b/keysign/keylistwidget.py
@@ -139,6 +139,7 @@ class KeyListWidget(Gtk.HBox):
         self.ib = builder.get_object('infobar_internet')
         fix_infobar(self.ib)
         self.label_ib = builder.get_object('label_internet')
+        self.image_ib = builder.get_object('image_ib')
 
         if len(list(keys)) <= 0:
             infobar = builder.get_object("infobar")
diff --git a/keysign/send.py b/keysign/send.py
index b1bdb07..90b5c2f 100644
--- a/keysign/send.py
+++ b/keysign/send.py
@@ -108,6 +108,11 @@ class SendApp:
         self.label.drag_dest_add_uri_targets()
 
     def on_drag_data_received(self, widget, drag_context, x, y, data, info, time):
+        if self.notify is not None:
+            log.debug("We are trying to send a key, no imports at this stage")
+            return
+
+        self.klw.ib.hide()
         filename = data.get_text()
         # If we don't have a filename it means that the user maybe dropped
         # an attachment or an entire email.
@@ -124,8 +129,10 @@ class SendApp:
         try:
             for signature in signatures:
                 gpgmeh.import_signature(signature)
+            self.signature_imported()
         except errors.GPGMEError as e:
             log.error(e)
+            self.signature_import_error()
 
     @inlineCallbacks
     def on_key_activated(self, widget, key):
@@ -188,16 +195,31 @@ class SendApp:
             self.show_result(success, message)
 
     def slow_connection(self):
+        self.klw.image_ib.set_from_icon_name(Gtk.STOCK_DIALOG_WARNING, Gtk.IconSize.BUTTON)
         self.klw.label_ib.set_label(_("Still trying to get a connection to the Internet. "
                                       "It appears to be slow or unavailable."))
         self.klw.ib.show()
         log.info("Slow Internet connection")
 
     def no_connection(self):
+        self.klw.image_ib.set_from_icon_name(Gtk.STOCK_DIALOG_WARNING, Gtk.IconSize.BUTTON)
         self.klw.label_ib.set_label(_("There isn't an Internet connection!"))
         self.klw.ib.show()
         log.info("No Internet connection")
 
+    def signature_imported(self):
+        self.klw.image_ib.set_from_icon_name(Gtk.STOCK_OK, Gtk.IconSize.BUTTON)
+        self.klw.label_ib.set_label(_("The signature has been successfully imported!"))
+        self.klw.ib.show()
+        log.info("Signature imported")
+
+    def signature_import_error(self):
+        self.klw.image_ib.set_from_icon_name(Gtk.STOCK_DIALOG_ERROR, Gtk.IconSize.BUTTON)
+        self.klw.label_ib.set_label(_("An error occurred while trying to import the signature.\n"
+                                      "Please double check the correctness of the chosen signature."))
+        self.klw.ib.show()
+        log.info("Signature import error")
+
     def create_keypresent(self, discovery_code, discovery_data):
         self._deactivate_timer()
         log.info("Use this for discovering the other key: %r", discovery_data)
diff --git a/keysign/send.ui b/keysign/send.ui
index b7cf5de..7610c0d 100644
--- a/keysign/send.ui
+++ b/keysign/send.ui
@@ -141,7 +141,7 @@ Please use, e.g. Seahorse to create one.</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkImage">
+                      <object class="GtkImage" id="image_ib">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="stock">gtk-dialog-warning</property>


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