diff options
Diffstat (limited to '')
-rw-r--r-- | include/gpg/GpgConstants.h | 1 | ||||
-rwxr-xr-x | include/ui/SettingsDialog.h | 5 | ||||
-rw-r--r-- | resource/css/default.qss | 25 | ||||
-rw-r--r-- | src/gpg/GpgConstants.cpp | 1 | ||||
-rw-r--r-- | src/ui/keypair_details/KeyPairSubkeyTab.cpp | 3 | ||||
-rw-r--r-- | src/ui/main_window/MainWindowSlotFunction.cpp | 9 | ||||
-rw-r--r-- | src/ui/settings/SettingsDialog.cpp | 4 | ||||
-rw-r--r-- | src/ui/settings/SettingsGeneral.cpp | 7 | ||||
-rw-r--r-- | src/ui/settings/SettingsKeyServer.cpp | 108 | ||||
-rw-r--r-- | src/ui/settings/SettingsSendMail.cpp | 52 |
10 files changed, 158 insertions, 57 deletions
diff --git a/include/gpg/GpgConstants.h b/include/gpg/GpgConstants.h index 64286ca4..61037170 100644 --- a/include/gpg/GpgConstants.h +++ b/include/gpg/GpgConstants.h @@ -37,6 +37,7 @@ public: static const char *PGP_SIGNED_END; static const char *PGP_SIGNATURE_BEGIN; static const char *PGP_SIGNATURE_END; + static const char *GPG_FRONTEND_SHORT_CRYPTO_HEAD; }; #endif // CONSTANTS_H diff --git a/include/ui/SettingsDialog.h b/include/ui/SettingsDialog.h index 2f289a4c..577c4379 100755 --- a/include/ui/SettingsDialog.h +++ b/include/ui/SettingsDialog.h @@ -157,14 +157,17 @@ private: QString appPath; QSettings settings; - QComboBox *comboBox; QLineEdit *newKeyServerEdit; + QTableWidget *keyServerTable; + QStringList keyServerStrList; private slots: void addKeyServer(); + void refreshTable(); + signals: void signalRestartNeeded(bool needed); diff --git a/resource/css/default.qss b/resource/css/default.qss index 3f640647..f1d0ebf8 100644 --- a/resource/css/default.qss +++ b/resource/css/default.qss @@ -229,6 +229,17 @@ QLineEdit } +QLineEdit::disabled +{ + background-color: #D3D3D3; + color : #276678; + border: 1px solid #1d1d1d; + padding-left: 6px; + height: 20px; + border-radius: 4px; + +} + /*-----QPlainTExtEdit-----*/ QPlainTextEdit @@ -281,7 +292,7 @@ QComboBox QComboBox::disabled { - background-color: #F6F5F5; + background-color: #D3D3D3; color: #656565; border-color: #051a39; @@ -336,6 +347,14 @@ QSpinBox border-radius: 4px; } +QSpinBox::disabled +{ + background-color: #D3D3D3; + color: #656565; + border-color: #051a39; + +} + QSpinBox::up-button { background-color: #276678; @@ -588,7 +607,7 @@ QGroupBox::title { background-color: #D3E0EA; border: 1px solid #276678; - color: #FFFFFF; + color: #276678; subcontrol-position: top left; subcontrol-origin: margin; padding: 3px; @@ -904,7 +923,7 @@ QListView::item:hover { QCheckBox { background-color: transparent; - color: #fff; + color: #276678; border: none; } diff --git a/src/gpg/GpgConstants.cpp b/src/gpg/GpgConstants.cpp index 1ed06182..601cbef5 100644 --- a/src/gpg/GpgConstants.cpp +++ b/src/gpg/GpgConstants.cpp @@ -30,4 +30,5 @@ const char *GpgConstants::PGP_SIGNED_BEGIN = "-----BEGIN PGP SIGNED MESSAGE----- const char *GpgConstants::PGP_SIGNED_END = "-----END PGP SIGNATURE-----"; const char *GpgConstants::PGP_SIGNATURE_BEGIN = "-----BEGIN PGP SIGNATURE-----"; const char *GpgConstants::PGP_SIGNATURE_END = "-----END PGP SIGNATURE-----"; +const char *GpgConstants::GPG_FRONTEND_SHORT_CRYPTO_HEAD = "[GpgFrontend_ShortCrypto]://"; diff --git a/src/ui/keypair_details/KeyPairSubkeyTab.cpp b/src/ui/keypair_details/KeyPairSubkeyTab.cpp index 74b52284..6a924394 100644 --- a/src/ui/keypair_details/KeyPairSubkeyTab.cpp +++ b/src/ui/keypair_details/KeyPairSubkeyTab.cpp @@ -132,9 +132,8 @@ void KeyPairSubkeyTab::slotRefreshSubkeyList() { this->buffered_subkeys.clear(); for(const auto &subkeys : mKey.subKeys) { - if(subkeys.disabled || subkeys.revoked) { + if(subkeys.disabled || subkeys.revoked) continue; - } this->buffered_subkeys.push_back(&subkeys); } diff --git a/src/ui/main_window/MainWindowSlotFunction.cpp b/src/ui/main_window/MainWindowSlotFunction.cpp index 7c35725f..ac998f3d 100644 --- a/src/ui/main_window/MainWindowSlotFunction.cpp +++ b/src/ui/main_window/MainWindowSlotFunction.cpp @@ -179,6 +179,11 @@ void MainWindow::slotDecrypt() { QByteArray text = edit->curTextPage()->toPlainText().toUtf8(); GpgME::GpgContext::preventNoDataErr(&text); + if (text.trimmed().startsWith(GpgConstants::GPG_FRONTEND_SHORT_CRYPTO_HEAD)) { + QMessageBox::critical(this, tr("Notice"), tr("Short Crypto Text only supports Decrypt & Verify.")); + return; + } + gpgme_decrypt_result_t result = nullptr; gpgme_error_t error; @@ -328,8 +333,6 @@ void MainWindow::slotEncryptSign() { gpgme_encrypt_result_t encr_result = nullptr; gpgme_sign_result_t sign_result = nullptr; - gpgme_decrypt_result_t result = nullptr; - gpgme_error_t error; auto thread = QThread::create([&]() { error = mCtx->encryptSign(keys, edit->curTextPage()->toPlainText().toUtf8(), tmp, &encr_result, @@ -403,7 +406,7 @@ void MainWindow::slotDecryptVerify() { QString plainText = edit->curTextPage()->toPlainText(); - if (plainText.trimmed().startsWith("[GpgFrontend_ShortCrypto]://")) { + if (plainText.trimmed().startsWith(GpgConstants::GPG_FRONTEND_SHORT_CRYPTO_HEAD)) { auto cryptoText = getCryptText(plainText); if (!cryptoText.isEmpty()) { plainText = cryptoText; diff --git a/src/ui/settings/SettingsDialog.cpp b/src/ui/settings/SettingsDialog.cpp index f107dbbc..360fc854 100644 --- a/src/ui/settings/SettingsDialog.cpp +++ b/src/ui/settings/SettingsDialog.cpp @@ -51,7 +51,9 @@ SettingsDialog::SettingsDialog(GpgME::GpgContext *ctx, QWidget *parent) auto *mainLayout = new QVBoxLayout; mainLayout->addWidget(tabWidget); + mainLayout->stretch(0); mainLayout->addWidget(buttonBox); + mainLayout->stretch(0); setLayout(mainLayout); setWindowTitle(tr("Settings")); @@ -72,7 +74,7 @@ SettingsDialog::SettingsDialog(GpgME::GpgContext *ctx, QWidget *parent) connect(this, SIGNAL(signalRestartNeeded(bool)), parent, SLOT(slotSetRestartNeeded(bool))); - this->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); + this->resize(640, 640); this->show(); } diff --git a/src/ui/settings/SettingsGeneral.cpp b/src/ui/settings/SettingsGeneral.cpp index ede15182..c0e3d75f 100644 --- a/src/ui/settings/SettingsGeneral.cpp +++ b/src/ui/settings/SettingsGeneral.cpp @@ -45,6 +45,11 @@ GeneralTab::GeneralTab(GpgME::GpgContext *ctx, QWidget *parent) serverBoxLayout->addWidget(serverSelectBox); serverBoxLayout->addWidget(new QLabel( tr("Server that provides short key and key exchange services"))); + connect(serverSelectBox, QOverload<const QString&>::of(&QComboBox::currentTextChanged), + this, [&](const QString ¤t) -> void { + settings.setValue("general/currentGpgfrontendServer", current); + }); + serverBox->setLayout(serverBoxLayout); /***************************************** @@ -306,6 +311,8 @@ void GeneralTab::slotGetServiceToken() { // Auto update settings settings.setValue("general/serviceToken", serviceToken); serviceTokenLabel->setText(serviceToken); + QMessageBox::information(this, tr("Notice"), + tr("Succeed in getting service token")); } else { QMessageBox::critical(this, tr("Error"), tr("There is a problem with the communication with the server")); } diff --git a/src/ui/settings/SettingsKeyServer.cpp b/src/ui/settings/SettingsKeyServer.cpp index ade33a46..b49eb9e0 100644 --- a/src/ui/settings/SettingsKeyServer.cpp +++ b/src/ui/settings/SettingsKeyServer.cpp @@ -25,27 +25,41 @@ #include "ui/SettingsDialog.h" KeyserverTab::KeyserverTab(QWidget *parent) -: QWidget(parent), appPath(qApp->applicationDirPath()), -settings(RESOURCE_DIR(appPath) + "/conf/gpgfrontend.ini", - QSettings::IniFormat) { + : QWidget(parent), appPath(qApp->applicationDirPath()), + settings(RESOURCE_DIR(appPath) + "/conf/gpgfrontend.ini", + QSettings::IniFormat) { - auto keyServerList = settings.value("keyserver/keyServerList").toStringList(); + auto generalGroupBox = new QGroupBox(tr("General")); + auto generalLayout = new QVBoxLayout(); + + keyServerTable = new QTableWidget(); + keyServerTable->setColumnCount(3); + keyServerTable->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); + keyServerTable->horizontalHeader()->setStretchLastSection(false); + keyServerTable->verticalHeader()->hide(); + keyServerTable->setShowGrid(false); + keyServerTable->sortByColumn(0, Qt::AscendingOrder); + keyServerTable->setSelectionBehavior(QAbstractItemView::SelectRows); + keyServerTable->setSelectionMode(QAbstractItemView::SingleSelection); + + // tableitems not editable + keyServerTable->setEditTriggers(QAbstractItemView::NoEditTriggers); + // no focus (rectangle around tableitems) + // may be it should focus on whole row + keyServerTable->setFocusPolicy(Qt::NoFocus); + keyServerTable->setAlternatingRowColors(true); + + QStringList labels; + labels << tr("No.") << tr("Address") << tr("Available"); + keyServerTable->setHorizontalHeaderLabels(labels); auto *mainLayout = new QVBoxLayout(this); + auto *label = new QLabel(tr("Default Key Server for Import:")); - auto *label = new QLabel(tr("Default Key Server for import:")); comboBox = new QComboBox; comboBox->setEditable(false); comboBox->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - for (const auto &keyServer : keyServerList) { - comboBox->addItem(keyServer); - qDebug() << "KeyserverTab Get ListItemText" << keyServer; - } - - comboBox->setCurrentText( - settings.value("keyserver/defaultKeyServer").toString()); - auto *addKeyServerBox = new QWidget(this); auto *addKeyServerLayout = new QHBoxLayout(addKeyServerBox); auto *http = new QLabel("URL: "); @@ -56,13 +70,20 @@ settings(RESOURCE_DIR(appPath) + "/conf/gpgfrontend.ini", addKeyServerLayout->addWidget(newKeyServerEdit); addKeyServerLayout->addWidget(newKeyServerButton); - mainLayout->addWidget(label); - mainLayout->addWidget(comboBox); - mainLayout->addWidget(addKeyServerBox); - mainLayout->addStretch(1); + generalLayout->addWidget(label); + generalLayout->addWidget(comboBox); + generalLayout->addWidget(keyServerTable); + generalLayout->addWidget(addKeyServerBox); + generalLayout->addStretch(0); + + generalGroupBox->setLayout(generalLayout); + mainLayout->addWidget(generalGroupBox); + mainLayout->addStretch(0); + setLayout(mainLayout); // Read keylist from ini-file and fill it into combobox setSettings(); + refreshTable(); } /********************************** @@ -71,24 +92,29 @@ settings(RESOURCE_DIR(appPath) + "/conf/gpgfrontend.ini", * appropriately **********************************/ void KeyserverTab::setSettings() { - auto *keyServerList = new QStringList(); - for (int i = 0; i < comboBox->count(); i++) { - keyServerList->append(comboBox->itemText(i)); - qDebug() << "KeyserverTab ListItemText" << comboBox->itemText(i); + + keyServerStrList = settings.value("keyserver/keyServerList").toStringList(); + + for (const auto &keyServer : keyServerStrList) { + comboBox->addItem(keyServer); + qDebug() << "KeyserverTab Get ListItemText" << keyServer; } - settings.setValue("keyserver/keyServerList", *keyServerList); - delete keyServerList; - settings.setValue("keyserver/defaultKeyServer", comboBox->currentText()); + + comboBox->setCurrentText( + settings.value("keyserver/defaultKeyServer").toString()); + } void KeyserverTab::addKeyServer() { + QString targetUrl; if (newKeyServerEdit->text().startsWith("http://") || - newKeyServerEdit->text().startsWith("https://")) { - comboBox->addItem(newKeyServerEdit->text()); - } else { - comboBox->addItem("http://" + newKeyServerEdit->text()); - } - comboBox->setCurrentIndex(comboBox->count() - 1); + newKeyServerEdit->text().startsWith("https://")) + targetUrl = newKeyServerEdit->text(); + else + targetUrl = "http://" + newKeyServerEdit->text(); + keyServerStrList.append(targetUrl); + comboBox->addItem(targetUrl); + refreshTable(); } /*********************************** @@ -96,5 +122,27 @@ void KeyserverTab::addKeyServer() { * write them to settings-file *************************************/ void KeyserverTab::applySettings() { + settings.setValue("keyserver/keyServerList", keyServerStrList); settings.setValue("keyserver/defaultKeyServer", comboBox->currentText()); } + +void KeyserverTab::refreshTable() { + + qDebug() << "Start Refreshing Key Server Table"; + + keyServerTable->setRowCount(keyServerStrList.size()); + + int index = 0; + for (const auto &server : keyServerStrList) { + auto *tmp1 = new QTableWidgetItem(QString::number(index)); + tmp1->setTextAlignment(Qt::AlignCenter); + keyServerTable->setItem(index, 0, tmp1); + auto *tmp2 = new QTableWidgetItem(server); + tmp2->setTextAlignment(Qt::AlignCenter); + keyServerTable->setItem(index, 1, tmp2); + auto *tmp3 = new QTableWidgetItem(""); + tmp3->setTextAlignment(Qt::AlignCenter); + keyServerTable->setItem(index, 2, tmp3); + index++; + } +} diff --git a/src/ui/settings/SettingsSendMail.cpp b/src/ui/settings/SettingsSendMail.cpp index 4c80dc89..a5e3274f 100644 --- a/src/ui/settings/SettingsSendMail.cpp +++ b/src/ui/settings/SettingsSendMail.cpp @@ -50,28 +50,46 @@ SendMailTab::SendMailTab(QWidget *parent) defaultSender = new QLineEdit();; checkConnectionButton = new QPushButton(tr("Check Connection")); - auto layout = new QGridLayout(); - layout->addWidget(enableCheckBox, 0, 0); - layout->addWidget(new QLabel(tr("SMTP Address")), 1, 0); - layout->addWidget(smtpAddress, 1, 1, 1, 4); - layout->addWidget(new QLabel(tr("Username")), 2, 0); - layout->addWidget(username, 2, 1, 1, 4); - layout->addWidget(new QLabel(tr("Password")), 3, 0); - layout->addWidget(password, 3, 1, 1, 4); - layout->addWidget(new QLabel(tr("Port")), 4, 0); - layout->addWidget(portSpin, 4, 1, 1, 1); - layout->addWidget(new QLabel(tr("Connection Security")), 5, 0); - layout->addWidget(connectionTypeComboBox, 5, 1, 1, 1); - - layout->addWidget(new QLabel(tr("Default Sender")), 6, 0); - layout->addWidget(defaultSender, 6, 1, 1, 4); - layout->addWidget(checkConnectionButton, 7, 0); + auto generalGroupBox = new QGroupBox(tr("General")); + auto connectGroupBox = new QGroupBox(tr("Connection")); + auto preferenceGroupBox = new QGroupBox(tr("Preference")); + + auto generalLayout = new QGridLayout(); + generalLayout->addWidget(enableCheckBox); + + auto connectLayout = new QGridLayout(); + connectLayout->addWidget(new QLabel(tr("SMTP Address")), 1, 0); + connectLayout->addWidget(smtpAddress, 1, 1, 1, 4); + connectLayout->addWidget(new QLabel(tr("Username")), 2, 0); + connectLayout->addWidget(username, 2, 1, 1, 4); + connectLayout->addWidget(new QLabel(tr("Password")), 3, 0); + connectLayout->addWidget(password, 3, 1, 1, 4); + connectLayout->addWidget(new QLabel(tr("Port")), 4, 0); + connectLayout->addWidget(portSpin, 4, 1, 1, 1); + connectLayout->addWidget(new QLabel(tr("Connection Security")), 5, 0); + connectLayout->addWidget(connectionTypeComboBox, 5, 1, 1, 1); + connectLayout->addWidget(checkConnectionButton, 6, 0); + + auto preferenceLayout = new QGridLayout(); + + preferenceLayout->addWidget(new QLabel(tr("Default Sender")), 0, 0); + preferenceLayout->addWidget(defaultSender, 0, 1, 1, 4); + + generalGroupBox->setLayout(generalLayout); + connectGroupBox->setLayout(connectLayout); + preferenceGroupBox->setLayout(preferenceLayout); + + auto vBox = new QVBoxLayout(); + vBox->addWidget(generalGroupBox); + vBox->addWidget(connectGroupBox); + vBox->addWidget(preferenceGroupBox); + vBox->addStretch(0); connect(enableCheckBox, SIGNAL(stateChanged(int)), this, SLOT(slotCheckBoxSetEnableDisable(int))); connect(checkConnectionButton, SIGNAL(clicked(bool)), this, SLOT(slotCheckConnection())); - this->setLayout(layout); + this->setLayout(vBox); setSettings(); } |