aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--include/gpg/GpgConstants.h1
-rwxr-xr-xinclude/ui/SettingsDialog.h5
-rw-r--r--resource/css/default.qss25
-rw-r--r--src/gpg/GpgConstants.cpp1
-rw-r--r--src/ui/keypair_details/KeyPairSubkeyTab.cpp3
-rw-r--r--src/ui/main_window/MainWindowSlotFunction.cpp9
-rw-r--r--src/ui/settings/SettingsDialog.cpp4
-rw-r--r--src/ui/settings/SettingsGeneral.cpp7
-rw-r--r--src/ui/settings/SettingsKeyServer.cpp108
-rw-r--r--src/ui/settings/SettingsSendMail.cpp52
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 &current) -> 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();
}