about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/command/cmd_funcs.c14
-rw-r--r--src/ui/console.c13
2 files changed, 19 insertions, 8 deletions
diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c
index 29c8a29a..81293c15 100644
--- a/src/command/cmd_funcs.c
+++ b/src/command/cmd_funcs.c
@@ -9039,7 +9039,18 @@ gboolean
 cmd_omemo_qrcode(ProfWin* window, const char* const command, gchar** args)
 {
 #ifdef HAVE_OMEMO
-    cons_show_omemo_qrcode("some text from me");
+    if (connection_get_status() != JABBER_CONNECTED) {
+        cons_show("You must be connected with an account to load OMEMO information.");
+        return TRUE;
+    }
+
+    if (!omemo_loaded()) {
+        win_println(window, THEME_DEFAULT, "!", "You have not generated or loaded a cryptographic materials, use '/omemo gen'");
+        return TRUE;
+    }
+
+    char* fingerprint = omemo_own_fingerprint(TRUE);
+    cons_show_omemo_qrcode(fingerprint);
     return TRUE;
 #else
     cons_show("This version of Profanity has not been built with OMEMO support enabled");
@@ -9767,3 +9778,4 @@ cmd_mood(ProfWin* window, const char* const command, gchar** args)
     }
     return TRUE;
 }
+
diff --git a/src/ui/console.c b/src/ui/console.c
index ae1f796d..e0b0fa4d 100644
--- a/src/ui/console.c
+++ b/src/ui/console.c
@@ -878,18 +878,16 @@ cons_show_omemo_qrcode(const char* const text)
 
     ProfWin* console = wins_get_console();
 
+    char buf[(width * 4) + 1];
+    memset(buf, 0, sizeof buf);
     for (size_t y = 0; y < width; y+=ZOOM_SIZE) {
-        //size_t y_index = y * width;
         for (size_t x = 0; x < width; x+=ZOOM_SIZE) {
-            if (x==0) {
-                win_print(console, THEME_DEFAULT, "", "%s", (*data & 1) ? "A" : "B");
-            } else {
-                win_append(console, THEME_DEFAULT, "", "%s", (*data & 1) ? "A" : "B");
-            }
+            strcat(buf, (*data & 1) ? "\u2588\u2588" : "\u2800\u2800");
 
             data++;
         }
-        win_println(console, THEME_DEFAULT, "", "");
+        win_println(console, THEME_DEFAULT, "", "%s", buf);
+        memset(buf, 0, sizeof buf);
     }
 
     QRcode_free(qrcode);
@@ -2928,3 +2926,4 @@ cons_remove_alert(ProfWin* window)
     g_list_free_full(item, g_free);
     free(win_name);
 }
+