[libnma] cert-chooser: add NMA_CERT_CHOOSER_FLAG_NO_PASSWORDS



commit 12d3830264524cb8b68475a003663e77512e618a
Author: Lubomir Rintel <lkundrak v3 sk>
Date:   Mon Jan 17 09:21:43 2022 +0100

    cert-chooser: add NMA_CERT_CHOOSER_FLAG_NO_PASSWORDS
    
    Some VPN plugins want certificates, but not support password protected
    ones.
    
    https://gitlab.gnome.org/GNOME/libnma/-/merge_requests/20

 src/nma-cert-chooser.c   | 11 ++++++++++-
 src/nma-cert-chooser.h   | 10 ++++++----
 src/tests/cert-chooser.c |  4 ++++
 3 files changed, 20 insertions(+), 5 deletions(-)
---
diff --git a/src/nma-cert-chooser.c b/src/nma-cert-chooser.c
index ca4f336f..37c4533d 100644
--- a/src/nma-cert-chooser.c
+++ b/src/nma-cert-chooser.c
@@ -932,6 +932,14 @@ constructed (GObject *object)
                if (priv->flags & NMA_CERT_CHOOSER_FLAG_CERT)
                        gtk_widget_hide (priv->show_password);
        }
+
+       if (priv->flags & NMA_CERT_CHOOSER_FLAG_NO_PASSWORDS) {
+               gtk_widget_hide (priv->cert_password);
+               gtk_widget_hide (priv->cert_password_label);
+               gtk_widget_hide (priv->key_password);
+               gtk_widget_hide (priv->key_password_label);
+               gtk_widget_hide (priv->show_password);
+       }
 }
 
 static void
@@ -1006,7 +1014,8 @@ nma_cert_chooser_class_init (NMACertChooserClass *klass)
                                                    NMA_CERT_CHOOSER_FLAG_NONE,
                                                      NMA_CERT_CHOOSER_FLAG_CERT
                                                    | NMA_CERT_CHOOSER_FLAG_PASSWORDS
-                                                   | NMA_CERT_CHOOSER_FLAG_PEM,
+                                                   | NMA_CERT_CHOOSER_FLAG_PEM
+                                                   | NMA_CERT_CHOOSER_FLAG_NO_PASSWORDS,
                                                    NMA_CERT_CHOOSER_FLAG_NONE,
                                                      G_PARAM_WRITABLE
                                                    | G_PARAM_CONSTRUCT_ONLY
diff --git a/src/nma-cert-chooser.h b/src/nma-cert-chooser.h
index c4c0ad54..7e4c23f1 100644
--- a/src/nma-cert-chooser.h
+++ b/src/nma-cert-chooser.h
@@ -22,6 +22,7 @@ G_BEGIN_DECLS
  * @NMA_CERT_CHOOSER_FLAG_CERT: Only pick a certificate, not a key
  * @NMA_CERT_CHOOSER_FLAG_PASSWORDS: Hide all controls but the secrets entries
  * @NMA_CERT_CHOOSER_FLAG_PEM: Ensure the chooser only selects regular PEM files
+ * @NMA_CERT_CHOOSER_FLAG_NO_PASSWORDS: Do not show password entries (Since: 1.8.34)
  *
  * Flags that controls what is the certificate chooser button able to pick.
  * Currently only local files are supported, but might be extended to use URIs,
@@ -31,10 +32,11 @@ G_BEGIN_DECLS
  */
 NMA_AVAILABLE_IN_1_8
 typedef enum {
-       NMA_CERT_CHOOSER_FLAG_NONE      = 0x0,
-       NMA_CERT_CHOOSER_FLAG_CERT      = 0x1,
-       NMA_CERT_CHOOSER_FLAG_PASSWORDS = 0x2,
-       NMA_CERT_CHOOSER_FLAG_PEM       = 0x4,
+       NMA_CERT_CHOOSER_FLAG_NONE         = 0x0,
+       NMA_CERT_CHOOSER_FLAG_CERT         = 0x1,
+       NMA_CERT_CHOOSER_FLAG_PASSWORDS    = 0x2,
+       NMA_CERT_CHOOSER_FLAG_PEM          = 0x4,
+       NMA_CERT_CHOOSER_FLAG_NO_PASSWORDS = 0x8,
 } NMACertChooserFlags;
 
 #define NMA_TYPE_CERT_CHOOSER                   (nma_cert_chooser_get_type ())
diff --git a/src/tests/cert-chooser.c b/src/tests/cert-chooser.c
index 5ee251b7..c5e5649d 100644
--- a/src/tests/cert-chooser.c
+++ b/src/tests/cert-chooser.c
@@ -72,6 +72,10 @@ main (int argc, char *argv[])
        gtk_widget_show (widget);
        gtk_box_append (content, widget);
 
+       widget = nma_cert_chooser_new ("FLAG_NO_PASSWORDS", NMA_CERT_CHOOSER_FLAG_NO_PASSWORDS);
+       gtk_widget_show (widget);
+       gtk_box_append (content, widget);
+
        loop = g_main_loop_new (NULL, FALSE);
        g_signal_connect_swapped (dialog, "response", G_CALLBACK (g_main_loop_quit), loop);
 


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