File indexing completed on 2024-12-29 04:52:23
0001 /* 0002 SPDX-FileCopyrightText: 2014-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "cryptostateindicatorwidget.h" 0008 #include <MessageCore/ColorUtil> 0009 0010 #include <KLocalizedString> 0011 0012 #include <QHBoxLayout> 0013 #include <QLabel> 0014 0015 CryptoStateIndicatorWidget::CryptoStateIndicatorWidget(QWidget *parent) 0016 : QWidget(parent) 0017 , mSignatureStateIndicator(new QLabel(this)) 0018 , mEncryptionStateIndicator(new QLabel(this)) 0019 { 0020 auto hbox = new QHBoxLayout(this); 0021 hbox->setContentsMargins({}); 0022 mSignatureStateIndicator->setAlignment(Qt::AlignHCenter); 0023 mSignatureStateIndicator->setTextFormat(Qt::PlainText); 0024 mSignatureStateIndicator->setContentsMargins(4, 4, 4, 4); 0025 hbox->addWidget(mSignatureStateIndicator); 0026 mSignatureStateIndicator->setObjectName(QLatin1StringView("signatureindicator")); 0027 QPalette p(mSignatureStateIndicator->palette()); 0028 p.setColor(QPalette::Window, MessageCore::ColorUtil::self()->pgpSignedTrustedMessageColor()); 0029 p.setColor(QPalette::Text, MessageCore::ColorUtil::self()->pgpSignedTrustedTextColor()); 0030 mSignatureStateIndicator->setPalette(p); 0031 mSignatureStateIndicator->setAutoFillBackground(true); 0032 0033 mEncryptionStateIndicator->setAlignment(Qt::AlignHCenter); 0034 mEncryptionStateIndicator->setTextFormat(Qt::PlainText); 0035 mEncryptionStateIndicator->setContentsMargins(4, 4, 4, 4); 0036 hbox->addWidget(mEncryptionStateIndicator); 0037 p = mEncryptionStateIndicator->palette(); 0038 p.setColor(QPalette::Window, MessageCore::ColorUtil::self()->pgpEncryptedMessageColor()); 0039 p.setColor(QPalette::Text, MessageCore::ColorUtil::self()->pgpEncryptedTextColor()); 0040 mEncryptionStateIndicator->setPalette(p); 0041 mEncryptionStateIndicator->setAutoFillBackground(true); 0042 mEncryptionStateIndicator->setObjectName(QLatin1StringView("encryptionindicator")); 0043 hide(); 0044 } 0045 0046 CryptoStateIndicatorWidget::~CryptoStateIndicatorWidget() = default; 0047 0048 void CryptoStateIndicatorWidget::setShowAlwaysIndicator(bool status) 0049 { 0050 if (mShowAlwaysIndicator != status) { 0051 mShowAlwaysIndicator = status; 0052 updateShowAlwaysIndicator(); 0053 } 0054 } 0055 0056 void CryptoStateIndicatorWidget::updateShowAlwaysIndicator() 0057 { 0058 if (mShowAlwaysIndicator) { 0059 mSignatureStateIndicator->setVisible(mIsSign); 0060 mEncryptionStateIndicator->setVisible(mIsEncrypted); 0061 if (mIsSign || mIsEncrypted) { 0062 show(); 0063 } else { 0064 hide(); 0065 } 0066 } else { 0067 mSignatureStateIndicator->setVisible(false); 0068 mEncryptionStateIndicator->setVisible(false); 0069 hide(); 0070 } 0071 } 0072 0073 void CryptoStateIndicatorWidget::updateSignatureAndEncrypionStateIndicators(bool isSign, bool isEncrypted) 0074 { 0075 mIsEncrypted = isEncrypted; 0076 mIsSign = isSign; 0077 0078 mSignatureStateIndicator->setText(isSign ? i18n("Message will be signed") : i18n("Message will not be signed")); 0079 mEncryptionStateIndicator->setText(isEncrypted ? i18n("Message will be encrypted") : i18n("Message will not be encrypted")); 0080 updateShowAlwaysIndicator(); 0081 } 0082 0083 #include "moc_cryptostateindicatorwidget.cpp"