From fabd6ff2515b3d904a0f38e1f423d9b09b2ed933 Mon Sep 17 00:00:00 2001
From: fiaxh <git@mx.ax.lt>
Date: Sun, 12 Mar 2017 18:12:30 +0100
Subject: amend 39722a4

---
 plugins/openpgp/data/account_settings_item.ui    |  1 +
 plugins/openpgp/src/account_settings_widget.vala | 32 +++++++++++++-----------
 2 files changed, 18 insertions(+), 15 deletions(-)

(limited to 'plugins/openpgp')

diff --git a/plugins/openpgp/data/account_settings_item.ui b/plugins/openpgp/data/account_settings_item.ui
index 0c10b84b..f9757c2b 100644
--- a/plugins/openpgp/data/account_settings_item.ui
+++ b/plugins/openpgp/data/account_settings_item.ui
@@ -5,6 +5,7 @@
         <child>
             <object class="GtkButton" id="button">
                 <property name="relief">none</property>
+                <property name="sensitive">False</property>
                 <property name="visible">True</property>
                 <child>
                     <object class="GtkLabel" id="label">
diff --git a/plugins/openpgp/src/account_settings_widget.vala b/plugins/openpgp/src/account_settings_widget.vala
index 5340db30..1ebf5c58 100644
--- a/plugins/openpgp/src/account_settings_widget.vala
+++ b/plugins/openpgp/src/account_settings_widget.vala
@@ -66,44 +66,42 @@ private class AccountSettingsWidget : Stack, Plugins.AccountSettingsWidget {
     }
 
     private void populate_list_store() {
+        if (keys.size == 0) {
+            label.set_markup(build_markup_string("Key publishing disabled", "No keys available. Generate one!"));
+            return;
+        }
+
         TreeIter iter;
         list_store.append(out iter);
-        list_store.set(iter, 0, "Disabled\n<span font='9'>Select key</span>", 1, null);
-        set_label_active(iter, 0);
+        list_store.set(iter, 0, build_markup_string("Key publishing disabled", "Select key"), 1, "");
         for (int i = 0; i < keys.size; i++) {
             list_store.append(out iter);
-            list_store.set(iter, 0, @"$(Markup.escape_text(keys[i].uids[0].uid))\n<span font='9'>0x$(Markup.escape_text(keys[i].fpr[0:16]))</span>");
+            list_store.set(iter, 0, build_markup_string(keys[i].uids[0].uid, keys[i].fpr[0:16]));
             list_store.set(iter, 1, keys[i].fpr);
             if (keys[i].fpr == plugin.db.get_account_key(current_account)) {
                 set_label_active(iter, i + 1);
             }
         }
         activate_current_account();
+        button.sensitive = true;
     }
 
     private void fetch_keys() {
+        TreeIter iter;
+        list_store.clear();
+        list_store.append(out iter);
+        label.set_markup(build_markup_string("Loading...", "Querying GnuPG"));
         new Thread<void*> (null, () => { // Querying GnuPG might take some while
-            Idle.add(() => {
-                TreeIter iter;
-                list_store.clear();
-                list_store.append(out iter);
-                button.sensitive = false;
-                label.set_markup("Loading...\n<span font='9'>Querying GnuPG</span>");
-                return false;
-            });
             try {
                 keys = GPGHelper.get_keylist(null, true);
                 Idle.add(() => {
                     list_store.clear();
                     populate_list_store();
-                    button.sensitive = true;
                     return false;
                 });
             } catch (Error e) {
                 Idle.add(() => {
-                    TreeIter iter;
-                    list_store.append(out iter);
-                    list_store.set(iter, 0, @"Disabled\n<span font='9'>Error in GnuPG</span>", 1, null);
+                    label.set_markup(build_markup_string("Key publishing disabled", "Error in GnuPG"));
                     return false;
                 });
             }
@@ -135,6 +133,10 @@ private class AccountSettingsWidget : Stack, Plugins.AccountSettingsWidget {
             deactivate();
         }
     }
+
+    private string build_markup_string(string primary, string secondary) {
+        return @"$(Markup.escape_text(primary))\n<span font='9'>$(Markup.escape_text(secondary))</span>";
+    }
 }
 
 }
\ No newline at end of file
-- 
cgit v1.2.3-70-g09d2