QGIS API Documentation 3.99.0-Master (e9821da5c6b)
Loading...
Searching...
No Matches
qgsauthcerttrustpolicycombobox.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgsauthcerttrustpolicycombobox.cpp
3 ---------------------
4 begin : May 02, 2015
5 copyright : (C) 2015 by Boundless Spatial, Inc. USA
6 author : Larry Shaffer
7 email : lshaffer at boundlessgeo dot com
8 ***************************************************************************
9 * *
10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License as published by *
12 * the Free Software Foundation; either version 2 of the License, or *
13 * (at your option) any later version. *
14 * *
15 ***************************************************************************/
16
18
19#include "qgsapplication.h"
20#include "qgsauthcertutils.h"
21#include "qgsauthguiutils.h"
22#include "qgsauthmanager.h"
23#include "qgslogger.h"
24
25#include <QLineEdit>
26#include <QString>
27
28#include "moc_qgsauthcerttrustpolicycombobox.cpp"
29
30using namespace Qt::StringLiterals;
31
33 : QComboBox( parent )
34{
35 QList<QPair<QgsAuthCertUtils::CertTrustPolicy, QString>> policies;
36 policies << qMakePair( QgsAuthCertUtils::DefaultTrust, defaultTrustText( defaultpolicy ) )
37 << qMakePair( QgsAuthCertUtils::Trusted, QgsAuthCertUtils::getCertTrustName( QgsAuthCertUtils::Trusted ) )
38 << qMakePair( QgsAuthCertUtils::Untrusted, QgsAuthCertUtils::getCertTrustName( QgsAuthCertUtils::Untrusted ) );
39
40 for ( int i = 0; i < policies.size(); i++ )
41 {
42 const QgsAuthCertUtils::CertTrustPolicy polcy = policies.at( i ).first;
43 const QString name = policies.at( i ).second;
44 addItem( name, QVariant( static_cast<int>( polcy ) ) );
45 }
46
47 setItemData( 1, QgsAuthGuiUtils::greenColor(), Qt::ForegroundRole );
48 setItemData( 2, QgsAuthGuiUtils::redColor(), Qt::ForegroundRole );
49
50 // for styling closed state of combobox
51 // setEditable( true );
52 // lineEdit()->setReadOnly( true );
53
54 connect( this, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsAuthCertTrustPolicyComboBox::highlightCurrentIndex );
55
56 setTrustPolicy( policy );
57 setDefaultTrustPolicy( defaultpolicy );
58}
59
64
69
71{
72 const int idx = findData( QVariant( static_cast<int>( policy ) ) );
73 setCurrentIndex( idx == -1 ? 0 : idx );
74}
75
77{
78 const int idx = findData( QVariant( static_cast<int>( QgsAuthCertUtils::DefaultTrust ) ) );
79 setItemText( idx, defaultTrustText( defaultpolicy ) );
80}
81
82void QgsAuthCertTrustPolicyComboBox::highlightCurrentIndex( int indx )
83{
84 const QgsAuthCertUtils::CertTrustPolicy policy = ( QgsAuthCertUtils::CertTrustPolicy ) itemData( indx ).toInt();
85 QString ss;
86
87 // TODO: why are these widget state selectors backwards?
88 switch ( policy )
89 {
91 // ss = QgsAuthCertUtils::greenTextStyleSheet( "QLineEdit" );
92 ss = QgsAuthGuiUtils::greenTextStyleSheet( u"QComboBox:open"_s ) + "\nQComboBox:!open{}";
93 break;
95 // ss = QgsAuthCertUtils::redTextStyleSheet( "QLineEdit" );
96 ss = QgsAuthGuiUtils::redTextStyleSheet( u"QComboBox:open"_s ) + "\nQComboBox:!open{}";
97 break;
99 default:
100 break;
101 }
102 QgsDebugMsgLevel( u"Set Stylesheet to : %1"_s.arg( ss ), 2 );
103 // lineEdit()->setStyleSheet( ss );
104 setStyleSheet( ss );
105}
106
107const QString QgsAuthCertTrustPolicyComboBox::defaultTrustText( QgsAuthCertUtils::CertTrustPolicy defaultpolicy )
108{
109 if ( defaultpolicy == QgsAuthCertUtils::DefaultTrust )
110 {
111 if ( !QgsApplication::authManager()->isDisabled() )
112 {
114 }
115 else
116 {
117 defaultpolicy = QgsAuthCertUtils::Trusted;
118 }
119 }
120 return u"%1 (%2)"_s
121 .arg( QgsAuthCertUtils::getCertTrustName( QgsAuthCertUtils::DefaultTrust ), QgsAuthCertUtils::getCertTrustName( defaultpolicy ) );
122}
static QgsAuthManager * authManager()
Returns the application's authentication manager instance.
QgsAuthCertUtils::CertTrustPolicy trustPolicyForIndex(int indx)
Gets trust policy for a given index of combobox.
QgsAuthCertUtils::CertTrustPolicy trustPolicy()
Gets currently set trust policy.
void setDefaultTrustPolicy(QgsAuthCertUtils::CertTrustPolicy defaultpolicy)
Sets default trust policy.
void setTrustPolicy(QgsAuthCertUtils::CertTrustPolicy policy)
Sets current trust policy.
QgsAuthCertTrustPolicyComboBox(QWidget *parent=nullptr, QgsAuthCertUtils::CertTrustPolicy policy=QgsAuthCertUtils::DefaultTrust, QgsAuthCertUtils::CertTrustPolicy defaultpolicy=QgsAuthCertUtils::DefaultTrust)
Construct a combo box for defining certificate trust policy.
CertTrustPolicy
Type of certificate trust policy.
static QString greenTextStyleSheet(const QString &selector="*")
Green text stylesheet representing valid, trusted, etc. certificate.
static QColor greenColor()
Green color representing valid, trusted, etc. certificate.
static QString redTextStyleSheet(const QString &selector="*")
Red text stylesheet representing invalid, untrusted, etc. certificate.
static QColor redColor()
Red color representing invalid, untrusted, etc. certificate.
QgsAuthCertUtils::CertTrustPolicy defaultCertTrustPolicy()
Gets the default certificate trust policy preferred by user.
#define QgsDebugMsgLevel(str, level)
Definition qgslogger.h:63