aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2021-08-23 08:20:19 +0000
committerSaturneric <[email protected]>2021-08-23 08:20:19 +0000
commitbe69cccea41c17214631529cd265476d31dc3406 (patch)
treed8d36c2a85b5d3ab89f2ce011b7b5ff3294bf1dc
parentFunctions addition and improvement; (diff)
downloadGpgFrontend-be69cccea41c17214631529cd265476d31dc3406.tar.gz
GpgFrontend-be69cccea41c17214631529cd265476d31dc3406.zip
Improve the automatic key exchange function; fix some known problems;
Diffstat (limited to '')
-rw-r--r--include/gpg/GpgContext.h9
-rw-r--r--include/server/BaseAPI.h2
-rw-r--r--resource/ts/gpgfrontend_en_us.ts221
-rw-r--r--resource/ts/gpgfrontend_es.ts221
-rw-r--r--resource/ts/gpgfrontend_fr.ts221
-rw-r--r--resource/ts/gpgfrontend_ru.ts221
-rw-r--r--resource/ts/gpgfrontend_zh_cn.ts221
-rw-r--r--src/advance/UnknownSignersChecker.cpp18
-rw-r--r--src/gpg/gpg_context/GpgContext.cpp30
-rw-r--r--src/gpg/gpg_context/GpgContextBasicOpera.cpp4
-rw-r--r--src/gpg/gpg_context/GpgContextKeyOpera.cpp25
-rw-r--r--src/gpg/result_analyse/EncryptResultAnalyse.cpp2
-rw-r--r--src/gpg/result_analyse/SignResultAnalyse.cpp4
-rw-r--r--src/gpg/result_analyse/VerifyResultAnalyse.cpp20
-rw-r--r--src/server/ComUtils.cpp11
-rw-r--r--src/server/api/PubkeyUploader.cpp38
-rw-r--r--src/ui/keypair_details/KeyUIDSignDialog.cpp3
-rw-r--r--src/ui/main_window/MainWindowSlotFunction.cpp35
-rw-r--r--src/ui/settings/SettingsGeneral.cpp12
19 files changed, 737 insertions, 581 deletions
diff --git a/include/gpg/GpgContext.h b/include/gpg/GpgContext.h
index fd9983bf..e6e81626 100644
--- a/include/gpg/GpgContext.h
+++ b/include/gpg/GpgContext.h
@@ -109,11 +109,12 @@ namespace GpgME {
bool exportSecretKey(const GpgKey &key, QByteArray *outBuffer);
- void getSigners(QVector<GpgKey> &signer);
+ void getSigners(QVector<GpgKey> &signer, gpgme_ctx_t ctx);
- void setSigners(const QVector<GpgKey> &keys);
+ static void setSigners(const QVector<GpgKey> &keys, gpgme_ctx_t ctx);
- bool signKey(const GpgKey &target, const QString &uid, const QDateTime *expires);
+ bool signKey(const GpgKey &target, const QVector<GpgKey> &keys, const QString &uid,
+ const QDateTime *expires);
bool revSign(const GpgKey &key, const GpgKeySignature &signature);
@@ -201,6 +202,8 @@ namespace GpgME {
QMap<QString, GpgKey *> mKeyMap;
+ gpgme_ctx_t create_ctx();
+
static gpgme_error_t readToBuffer(gpgme_data_t dataIn, QByteArray *outBuffer);
void fetch_keys();
diff --git a/include/server/BaseAPI.h b/include/server/BaseAPI.h
index 20d7e7e9..4843413d 100644
--- a/include/server/BaseAPI.h
+++ b/include/server/BaseAPI.h
@@ -36,7 +36,7 @@ public:
explicit BaseAPI(ComUtils::ServiceType serviceType);
- ~BaseAPI() override;
+ virtual ~BaseAPI();
void start();
diff --git a/resource/ts/gpgfrontend_en_us.ts b/resource/ts/gpgfrontend_en_us.ts
index a5f7be5a..9adfc9a4 100644
--- a/resource/ts/gpgfrontend_en_us.ts
+++ b/resource/ts/gpgfrontend_en_us.ts
@@ -481,100 +481,100 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="56"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="52"/>
<source>Save Checked Keys</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="59"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="55"/>
<source>Save checked private keys on exit and restore them on next start.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="68"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="64"/>
<source>Confirm drag&apos;n&apos;drop key import</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="71"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="67"/>
<source>Import files dropped on the keylist without confirmation.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="78"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="74"/>
<source>Language</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="87"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="83"/>
<source>&lt;b&gt;NOTE: &lt;/b&gt; GpgFrontend will restart automatically if you change the language!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="96"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="92"/>
<source>Own key</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="100"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="96"/>
<source>Get Service Token</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="101"/>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="230"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="97"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="234"/>
<source>No Service Token Found</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="107"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="103"/>
<source>&lt;none&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="124"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="120"/>
<source>Key pair for synchronization and identity authentication</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="248"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="252"/>
<source>Invalid Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="249"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="253"/>
<source>Own Key can not be None while getting service token.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="261"/>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="332"/>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="348"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="265"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="336"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="353"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="262"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="266"/>
<source>Key Not Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="332"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="337"/>
<source>The communication content with the server does not meet the requirements</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="345"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="350"/>
<source>Notice</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="346"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="351"/>
<source>Succeed in getting service token</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="348"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="353"/>
<source>There is a problem with the communication with the server</source>
<translation type="unfinished"></translation>
</message>
@@ -2041,22 +2041,22 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="100"/>
+ <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="99"/>
<source>Unsuccessful Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="101"/>
+ <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="100"/>
<source>Signature operation failed for UID </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="108"/>
+ <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="107"/>
<source>Operation Complete</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="109"/>
+ <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="108"/>
<source>The signature operation of the UID is complete</source>
<translation type="unfinished"></translation>
</message>
@@ -2169,8 +2169,8 @@
<location filename="../../src/ui/main_window/MainWindowServerSlotFunction.cpp" line="126"/>
<location filename="../../src/ui/main_window/MainWindowServerSlotFunction.cpp" line="218"/>
<location filename="../../src/ui/main_window/MainWindowServerSlotFunction.cpp" line="231"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="513"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="529"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="525"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="541"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
@@ -2205,6 +2205,7 @@
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="150"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="226"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="409"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="375"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
@@ -2220,8 +2221,8 @@
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="62"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="239"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="422"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="44"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="125"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="45"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="126"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="298"/>
<source>No Key Selected</source>
<translation type="unfinished"></translation>
@@ -2229,15 +2230,15 @@
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="69"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="246"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="51"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="132"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="52"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="133"/>
<source>Invalid Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="70"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="247"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="52"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="53"/>
<source>The selected key contains a key that does not actually have a encrypt usage.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -2245,15 +2246,15 @@
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="71"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="248"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="436"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="53"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="134"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="54"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="135"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="312"/>
<source>&lt;br/&gt;For example the Following Key: &lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="91"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="71"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="72"/>
<source>Encrypting</source>
<translation type="unfinished"></translation>
</message>
@@ -2269,7 +2270,7 @@
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="268"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="150"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="151"/>
<source>Signing</source>
<translation type="unfinished"></translation>
</message>
@@ -2290,7 +2291,7 @@
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="353"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="258"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="259"/>
<source>Verifying</source>
<translation type="unfinished"></translation>
</message>
@@ -2339,7 +2340,7 @@
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="551"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="456"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="461"/>
<source>Decrypting and Verifying</source>
<translation type="unfinished"></translation>
</message>
@@ -2402,76 +2403,81 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="102"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="403"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="103"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="408"/>
<source>Function Disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="103"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="404"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="104"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="409"/>
<source>Please go to the settings interface to enable and configure this function.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="133"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="134"/>
<source>The selected key contains a key that does not actually have a signature usage.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="185"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="186"/>
<source>Notice</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="185"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="186"/>
<source>Short Crypto Text only supports Decrypt &amp; Verify.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="199"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="200"/>
<source>Decrypting</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="410"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="376"/>
+ <source>Automatic public key exchange failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="415"/>
<source>Service Token Empty</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="411"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="416"/>
<source>Please go to the settings interface to set Own Key and get Service Token.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="513"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="529"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="525"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="541"/>
<source>Key Not Found.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="560"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="572"/>
<source>Outdated Version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="561"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="573"/>
<source>This version(%1) is out of date, please update the latest version in time. </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="563"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="570"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="575"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="582"/>
<source>You can download the latest version(%1) on Github Releases Page.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="567"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="579"/>
<source>Unreleased Version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="568"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="580"/>
<source>This version(%1) has not been officially released and is not recommended for use in a production environment. &lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -2999,14 +3005,14 @@
<context>
<name>PubkeyGetter</name>
<message>
- <location filename="../../src/server/PubkeyGetter.cpp" line="79"/>
- <location filename="../../src/server/PubkeyGetter.cpp" line="103"/>
+ <location filename="../../src/server/api/PubkeyGetter.cpp" line="66"/>
+ <location filename="../../src/server/api/PubkeyGetter.cpp" line="90"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/server/PubkeyGetter.cpp" line="80"/>
- <location filename="../../src/server/PubkeyGetter.cpp" line="104"/>
+ <location filename="../../src/server/api/PubkeyGetter.cpp" line="67"/>
+ <location filename="../../src/server/api/PubkeyGetter.cpp" line="91"/>
<source>The communication content with the server does not meet the requirements</source>
<translation type="unfinished"></translation>
</message>
@@ -3014,22 +3020,22 @@
<context>
<name>PubkeyUploader</name>
<message>
- <location filename="../../src/server/PubkeyUploader.cpp" line="94"/>
+ <location filename="../../src/server/api/PubkeyUploader.cpp" line="95"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/server/PubkeyUploader.cpp" line="95"/>
+ <location filename="../../src/server/api/PubkeyUploader.cpp" line="96"/>
<source>The communication content with the server does not meet the requirements</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/server/PubkeyUploader.cpp" line="102"/>
+ <location filename="../../src/server/api/PubkeyUploader.cpp" line="103"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/server/PubkeyUploader.cpp" line="103"/>
+ <location filename="../../src/server/api/PubkeyUploader.cpp" line="104"/>
<source>Partial failure of automatic pubkey exchange</source>
<translation type="unfinished"></translation>
</message>
@@ -3042,102 +3048,102 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="63"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="61"/>
<source>One or More Bad Signatures.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="68"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="66"/>
<source>A </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="70"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="68"/>
<source>Good </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="73"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="71"/>
<source>Bad </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="76"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="74"/>
<source>Expired </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="79"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="77"/>
<source>Missing Key&apos;s </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="82"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="80"/>
<source>Revoked Key&apos;s </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="85"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="83"/>
<source>Expired Key&apos;s </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="88"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="86"/>
<source>Missing CRL&apos;s </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="92"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="90"/>
<source>Signature Fully Valid.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="94"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="92"/>
<source>Signature NOT Fully Valid.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="102"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="100"/>
<source>Key is NOT present with ID 0x</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="109"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="107"/>
<source>A signature could NOT be verified due to a Missing Key
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="113"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="111"/>
<source>A signature is valid but the key used to verify the signature has been revoked
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="121"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="119"/>
<source>A signature is valid but expired
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="128"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="126"/>
<source>A signature is valid but the key used to verify the signature has expired.
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="135"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="133"/>
<source>There was some other error which prevented the signature verification.
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="141"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="139"/>
<source>Error for key with fingerprint </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="154"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="152"/>
<source>Signed By: </source>
<translation type="unfinished"></translation>
</message>
@@ -3379,68 +3385,68 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="45"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="47"/>
<source> Sign Mode: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="47"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="49"/>
<source>Normal</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="49"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="51"/>
<source>Clear</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="51"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="53"/>
<source>Detach</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="57"/>
<location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="59"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="61"/>
<source> Signer: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="59"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="61"/>
<source>&lt;unknown&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="61"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="63"/>
<source> Public Key Algo: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="62"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="64"/>
<source> Hash Algo: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="63"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="65"/>
<source> Date &amp; Time: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="73"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="75"/>
<source>Invalid Signers: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="77"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="79"/>
<source>[&gt;] Signer: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="78"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="80"/>
<source> Fingerprint: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="79"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="81"/>
<source> Reason: </source>
<translation type="unfinished"></translation>
</message>
@@ -3590,6 +3596,19 @@
</message>
</context>
<context>
+ <name>UnknownSignersChecker</name>
+ <message>
+ <location filename="../../src/advance/UnknownSignersChecker.cpp" line="69"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/advance/UnknownSignersChecker.cpp" line="70"/>
+ <source>Automatic public key exchange failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>UpdateTab</name>
<message>
<location filename="../../src/ui/help/AboutDialog.cpp" line="129"/>
@@ -3798,22 +3817,22 @@
<context>
<name>VerifyResultAnalyse</name>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="33"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="31"/>
<source>[#] Verify Operation </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="36"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="34"/>
<source>[Success]</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="38"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="36"/>
<source>[Failed] </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="166"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="158"/>
<source>&lt;Unknown&gt;</source>
<translation type="unfinished"></translation>
</message>
diff --git a/resource/ts/gpgfrontend_es.ts b/resource/ts/gpgfrontend_es.ts
index 2b366319..866ccad0 100644
--- a/resource/ts/gpgfrontend_es.ts
+++ b/resource/ts/gpgfrontend_es.ts
@@ -481,100 +481,100 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="56"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="52"/>
<source>Save Checked Keys</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="59"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="55"/>
<source>Save checked private keys on exit and restore them on next start.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="68"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="64"/>
<source>Confirm drag&apos;n&apos;drop key import</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="71"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="67"/>
<source>Import files dropped on the keylist without confirmation.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="78"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="74"/>
<source>Language</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="87"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="83"/>
<source>&lt;b&gt;NOTE: &lt;/b&gt; GpgFrontend will restart automatically if you change the language!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="96"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="92"/>
<source>Own key</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="100"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="96"/>
<source>Get Service Token</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="101"/>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="230"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="97"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="234"/>
<source>No Service Token Found</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="107"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="103"/>
<source>&lt;none&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="124"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="120"/>
<source>Key pair for synchronization and identity authentication</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="248"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="252"/>
<source>Invalid Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="249"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="253"/>
<source>Own Key can not be None while getting service token.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="261"/>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="332"/>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="348"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="265"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="336"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="353"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="262"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="266"/>
<source>Key Not Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="332"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="337"/>
<source>The communication content with the server does not meet the requirements</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="345"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="350"/>
<source>Notice</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="346"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="351"/>
<source>Succeed in getting service token</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="348"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="353"/>
<source>There is a problem with the communication with the server</source>
<translation type="unfinished"></translation>
</message>
@@ -2041,22 +2041,22 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="100"/>
+ <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="99"/>
<source>Unsuccessful Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="101"/>
+ <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="100"/>
<source>Signature operation failed for UID </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="108"/>
+ <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="107"/>
<source>Operation Complete</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="109"/>
+ <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="108"/>
<source>The signature operation of the UID is complete</source>
<translation type="unfinished"></translation>
</message>
@@ -2169,8 +2169,8 @@
<location filename="../../src/ui/main_window/MainWindowServerSlotFunction.cpp" line="126"/>
<location filename="../../src/ui/main_window/MainWindowServerSlotFunction.cpp" line="218"/>
<location filename="../../src/ui/main_window/MainWindowServerSlotFunction.cpp" line="231"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="513"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="529"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="525"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="541"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
@@ -2205,6 +2205,7 @@
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="150"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="226"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="409"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="375"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
@@ -2220,8 +2221,8 @@
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="62"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="239"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="422"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="44"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="125"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="45"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="126"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="298"/>
<source>No Key Selected</source>
<translation type="unfinished"></translation>
@@ -2229,15 +2230,15 @@
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="69"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="246"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="51"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="132"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="52"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="133"/>
<source>Invalid Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="70"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="247"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="52"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="53"/>
<source>The selected key contains a key that does not actually have a encrypt usage.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -2245,15 +2246,15 @@
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="71"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="248"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="436"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="53"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="134"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="54"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="135"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="312"/>
<source>&lt;br/&gt;For example the Following Key: &lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="91"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="71"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="72"/>
<source>Encrypting</source>
<translation type="unfinished"></translation>
</message>
@@ -2269,7 +2270,7 @@
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="268"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="150"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="151"/>
<source>Signing</source>
<translation type="unfinished"></translation>
</message>
@@ -2290,7 +2291,7 @@
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="353"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="258"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="259"/>
<source>Verifying</source>
<translation type="unfinished"></translation>
</message>
@@ -2339,7 +2340,7 @@
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="551"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="456"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="461"/>
<source>Decrypting and Verifying</source>
<translation type="unfinished"></translation>
</message>
@@ -2402,76 +2403,81 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="102"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="403"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="103"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="408"/>
<source>Function Disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="103"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="404"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="104"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="409"/>
<source>Please go to the settings interface to enable and configure this function.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="133"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="134"/>
<source>The selected key contains a key that does not actually have a signature usage.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="185"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="186"/>
<source>Notice</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="185"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="186"/>
<source>Short Crypto Text only supports Decrypt &amp; Verify.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="199"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="200"/>
<source>Decrypting</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="410"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="376"/>
+ <source>Automatic public key exchange failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="415"/>
<source>Service Token Empty</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="411"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="416"/>
<source>Please go to the settings interface to set Own Key and get Service Token.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="513"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="529"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="525"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="541"/>
<source>Key Not Found.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="560"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="572"/>
<source>Outdated Version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="561"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="573"/>
<source>This version(%1) is out of date, please update the latest version in time. </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="563"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="570"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="575"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="582"/>
<source>You can download the latest version(%1) on Github Releases Page.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="567"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="579"/>
<source>Unreleased Version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="568"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="580"/>
<source>This version(%1) has not been officially released and is not recommended for use in a production environment. &lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -2999,14 +3005,14 @@
<context>
<name>PubkeyGetter</name>
<message>
- <location filename="../../src/server/PubkeyGetter.cpp" line="79"/>
- <location filename="../../src/server/PubkeyGetter.cpp" line="103"/>
+ <location filename="../../src/server/api/PubkeyGetter.cpp" line="66"/>
+ <location filename="../../src/server/api/PubkeyGetter.cpp" line="90"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/server/PubkeyGetter.cpp" line="80"/>
- <location filename="../../src/server/PubkeyGetter.cpp" line="104"/>
+ <location filename="../../src/server/api/PubkeyGetter.cpp" line="67"/>
+ <location filename="../../src/server/api/PubkeyGetter.cpp" line="91"/>
<source>The communication content with the server does not meet the requirements</source>
<translation type="unfinished"></translation>
</message>
@@ -3014,22 +3020,22 @@
<context>
<name>PubkeyUploader</name>
<message>
- <location filename="../../src/server/PubkeyUploader.cpp" line="94"/>
+ <location filename="../../src/server/api/PubkeyUploader.cpp" line="95"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/server/PubkeyUploader.cpp" line="95"/>
+ <location filename="../../src/server/api/PubkeyUploader.cpp" line="96"/>
<source>The communication content with the server does not meet the requirements</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/server/PubkeyUploader.cpp" line="102"/>
+ <location filename="../../src/server/api/PubkeyUploader.cpp" line="103"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/server/PubkeyUploader.cpp" line="103"/>
+ <location filename="../../src/server/api/PubkeyUploader.cpp" line="104"/>
<source>Partial failure of automatic pubkey exchange</source>
<translation type="unfinished"></translation>
</message>
@@ -3042,102 +3048,102 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="63"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="61"/>
<source>One or More Bad Signatures.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="68"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="66"/>
<source>A </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="70"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="68"/>
<source>Good </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="73"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="71"/>
<source>Bad </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="76"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="74"/>
<source>Expired </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="79"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="77"/>
<source>Missing Key&apos;s </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="82"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="80"/>
<source>Revoked Key&apos;s </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="85"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="83"/>
<source>Expired Key&apos;s </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="88"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="86"/>
<source>Missing CRL&apos;s </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="92"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="90"/>
<source>Signature Fully Valid.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="94"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="92"/>
<source>Signature NOT Fully Valid.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="102"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="100"/>
<source>Key is NOT present with ID 0x</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="109"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="107"/>
<source>A signature could NOT be verified due to a Missing Key
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="113"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="111"/>
<source>A signature is valid but the key used to verify the signature has been revoked
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="121"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="119"/>
<source>A signature is valid but expired
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="128"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="126"/>
<source>A signature is valid but the key used to verify the signature has expired.
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="135"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="133"/>
<source>There was some other error which prevented the signature verification.
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="141"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="139"/>
<source>Error for key with fingerprint </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="154"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="152"/>
<source>Signed By: </source>
<translation type="unfinished"></translation>
</message>
@@ -3379,68 +3385,68 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="45"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="47"/>
<source> Sign Mode: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="47"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="49"/>
<source>Normal</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="49"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="51"/>
<source>Clear</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="51"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="53"/>
<source>Detach</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="57"/>
<location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="59"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="61"/>
<source> Signer: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="59"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="61"/>
<source>&lt;unknown&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="61"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="63"/>
<source> Public Key Algo: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="62"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="64"/>
<source> Hash Algo: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="63"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="65"/>
<source> Date &amp; Time: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="73"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="75"/>
<source>Invalid Signers: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="77"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="79"/>
<source>[&gt;] Signer: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="78"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="80"/>
<source> Fingerprint: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="79"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="81"/>
<source> Reason: </source>
<translation type="unfinished"></translation>
</message>
@@ -3590,6 +3596,19 @@
</message>
</context>
<context>
+ <name>UnknownSignersChecker</name>
+ <message>
+ <location filename="../../src/advance/UnknownSignersChecker.cpp" line="69"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/advance/UnknownSignersChecker.cpp" line="70"/>
+ <source>Automatic public key exchange failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>UpdateTab</name>
<message>
<location filename="../../src/ui/help/AboutDialog.cpp" line="129"/>
@@ -3798,22 +3817,22 @@
<context>
<name>VerifyResultAnalyse</name>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="33"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="31"/>
<source>[#] Verify Operation </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="36"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="34"/>
<source>[Success]</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="38"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="36"/>
<source>[Failed] </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="166"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="158"/>
<source>&lt;Unknown&gt;</source>
<translation type="unfinished"></translation>
</message>
diff --git a/resource/ts/gpgfrontend_fr.ts b/resource/ts/gpgfrontend_fr.ts
index 81b7ab11..8522c9be 100644
--- a/resource/ts/gpgfrontend_fr.ts
+++ b/resource/ts/gpgfrontend_fr.ts
@@ -481,100 +481,100 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="56"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="52"/>
<source>Save Checked Keys</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="59"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="55"/>
<source>Save checked private keys on exit and restore them on next start.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="68"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="64"/>
<source>Confirm drag&apos;n&apos;drop key import</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="71"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="67"/>
<source>Import files dropped on the keylist without confirmation.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="78"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="74"/>
<source>Language</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="87"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="83"/>
<source>&lt;b&gt;NOTE: &lt;/b&gt; GpgFrontend will restart automatically if you change the language!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="96"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="92"/>
<source>Own key</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="100"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="96"/>
<source>Get Service Token</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="101"/>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="230"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="97"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="234"/>
<source>No Service Token Found</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="107"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="103"/>
<source>&lt;none&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="124"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="120"/>
<source>Key pair for synchronization and identity authentication</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="248"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="252"/>
<source>Invalid Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="249"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="253"/>
<source>Own Key can not be None while getting service token.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="261"/>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="332"/>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="348"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="265"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="336"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="353"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="262"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="266"/>
<source>Key Not Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="332"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="337"/>
<source>The communication content with the server does not meet the requirements</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="345"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="350"/>
<source>Notice</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="346"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="351"/>
<source>Succeed in getting service token</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="348"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="353"/>
<source>There is a problem with the communication with the server</source>
<translation type="unfinished"></translation>
</message>
@@ -2041,22 +2041,22 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="100"/>
+ <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="99"/>
<source>Unsuccessful Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="101"/>
+ <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="100"/>
<source>Signature operation failed for UID </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="108"/>
+ <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="107"/>
<source>Operation Complete</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="109"/>
+ <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="108"/>
<source>The signature operation of the UID is complete</source>
<translation type="unfinished"></translation>
</message>
@@ -2169,8 +2169,8 @@
<location filename="../../src/ui/main_window/MainWindowServerSlotFunction.cpp" line="126"/>
<location filename="../../src/ui/main_window/MainWindowServerSlotFunction.cpp" line="218"/>
<location filename="../../src/ui/main_window/MainWindowServerSlotFunction.cpp" line="231"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="513"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="529"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="525"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="541"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
@@ -2205,6 +2205,7 @@
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="150"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="226"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="409"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="375"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
@@ -2220,8 +2221,8 @@
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="62"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="239"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="422"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="44"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="125"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="45"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="126"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="298"/>
<source>No Key Selected</source>
<translation type="unfinished"></translation>
@@ -2229,15 +2230,15 @@
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="69"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="246"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="51"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="132"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="52"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="133"/>
<source>Invalid Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="70"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="247"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="52"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="53"/>
<source>The selected key contains a key that does not actually have a encrypt usage.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -2245,15 +2246,15 @@
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="71"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="248"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="436"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="53"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="134"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="54"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="135"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="312"/>
<source>&lt;br/&gt;For example the Following Key: &lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="91"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="71"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="72"/>
<source>Encrypting</source>
<translation type="unfinished"></translation>
</message>
@@ -2269,7 +2270,7 @@
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="268"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="150"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="151"/>
<source>Signing</source>
<translation type="unfinished"></translation>
</message>
@@ -2290,7 +2291,7 @@
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="353"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="258"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="259"/>
<source>Verifying</source>
<translation type="unfinished"></translation>
</message>
@@ -2339,7 +2340,7 @@
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="551"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="456"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="461"/>
<source>Decrypting and Verifying</source>
<translation type="unfinished"></translation>
</message>
@@ -2402,76 +2403,81 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="102"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="403"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="103"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="408"/>
<source>Function Disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="103"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="404"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="104"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="409"/>
<source>Please go to the settings interface to enable and configure this function.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="133"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="134"/>
<source>The selected key contains a key that does not actually have a signature usage.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="185"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="186"/>
<source>Notice</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="185"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="186"/>
<source>Short Crypto Text only supports Decrypt &amp; Verify.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="199"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="200"/>
<source>Decrypting</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="410"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="376"/>
+ <source>Automatic public key exchange failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="415"/>
<source>Service Token Empty</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="411"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="416"/>
<source>Please go to the settings interface to set Own Key and get Service Token.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="513"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="529"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="525"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="541"/>
<source>Key Not Found.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="560"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="572"/>
<source>Outdated Version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="561"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="573"/>
<source>This version(%1) is out of date, please update the latest version in time. </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="563"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="570"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="575"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="582"/>
<source>You can download the latest version(%1) on Github Releases Page.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="567"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="579"/>
<source>Unreleased Version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="568"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="580"/>
<source>This version(%1) has not been officially released and is not recommended for use in a production environment. &lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -2999,14 +3005,14 @@
<context>
<name>PubkeyGetter</name>
<message>
- <location filename="../../src/server/PubkeyGetter.cpp" line="79"/>
- <location filename="../../src/server/PubkeyGetter.cpp" line="103"/>
+ <location filename="../../src/server/api/PubkeyGetter.cpp" line="66"/>
+ <location filename="../../src/server/api/PubkeyGetter.cpp" line="90"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/server/PubkeyGetter.cpp" line="80"/>
- <location filename="../../src/server/PubkeyGetter.cpp" line="104"/>
+ <location filename="../../src/server/api/PubkeyGetter.cpp" line="67"/>
+ <location filename="../../src/server/api/PubkeyGetter.cpp" line="91"/>
<source>The communication content with the server does not meet the requirements</source>
<translation type="unfinished"></translation>
</message>
@@ -3014,22 +3020,22 @@
<context>
<name>PubkeyUploader</name>
<message>
- <location filename="../../src/server/PubkeyUploader.cpp" line="94"/>
+ <location filename="../../src/server/api/PubkeyUploader.cpp" line="95"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/server/PubkeyUploader.cpp" line="95"/>
+ <location filename="../../src/server/api/PubkeyUploader.cpp" line="96"/>
<source>The communication content with the server does not meet the requirements</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/server/PubkeyUploader.cpp" line="102"/>
+ <location filename="../../src/server/api/PubkeyUploader.cpp" line="103"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/server/PubkeyUploader.cpp" line="103"/>
+ <location filename="../../src/server/api/PubkeyUploader.cpp" line="104"/>
<source>Partial failure of automatic pubkey exchange</source>
<translation type="unfinished"></translation>
</message>
@@ -3042,102 +3048,102 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="63"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="61"/>
<source>One or More Bad Signatures.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="68"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="66"/>
<source>A </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="70"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="68"/>
<source>Good </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="73"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="71"/>
<source>Bad </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="76"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="74"/>
<source>Expired </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="79"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="77"/>
<source>Missing Key&apos;s </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="82"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="80"/>
<source>Revoked Key&apos;s </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="85"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="83"/>
<source>Expired Key&apos;s </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="88"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="86"/>
<source>Missing CRL&apos;s </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="92"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="90"/>
<source>Signature Fully Valid.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="94"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="92"/>
<source>Signature NOT Fully Valid.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="102"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="100"/>
<source>Key is NOT present with ID 0x</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="109"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="107"/>
<source>A signature could NOT be verified due to a Missing Key
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="113"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="111"/>
<source>A signature is valid but the key used to verify the signature has been revoked
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="121"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="119"/>
<source>A signature is valid but expired
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="128"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="126"/>
<source>A signature is valid but the key used to verify the signature has expired.
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="135"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="133"/>
<source>There was some other error which prevented the signature verification.
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="141"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="139"/>
<source>Error for key with fingerprint </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="154"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="152"/>
<source>Signed By: </source>
<translation type="unfinished"></translation>
</message>
@@ -3379,68 +3385,68 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="45"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="47"/>
<source> Sign Mode: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="47"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="49"/>
<source>Normal</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="49"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="51"/>
<source>Clear</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="51"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="53"/>
<source>Detach</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="57"/>
<location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="59"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="61"/>
<source> Signer: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="59"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="61"/>
<source>&lt;unknown&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="61"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="63"/>
<source> Public Key Algo: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="62"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="64"/>
<source> Hash Algo: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="63"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="65"/>
<source> Date &amp; Time: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="73"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="75"/>
<source>Invalid Signers: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="77"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="79"/>
<source>[&gt;] Signer: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="78"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="80"/>
<source> Fingerprint: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="79"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="81"/>
<source> Reason: </source>
<translation type="unfinished"></translation>
</message>
@@ -3590,6 +3596,19 @@
</message>
</context>
<context>
+ <name>UnknownSignersChecker</name>
+ <message>
+ <location filename="../../src/advance/UnknownSignersChecker.cpp" line="69"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/advance/UnknownSignersChecker.cpp" line="70"/>
+ <source>Automatic public key exchange failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>UpdateTab</name>
<message>
<location filename="../../src/ui/help/AboutDialog.cpp" line="129"/>
@@ -3798,22 +3817,22 @@
<context>
<name>VerifyResultAnalyse</name>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="33"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="31"/>
<source>[#] Verify Operation </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="36"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="34"/>
<source>[Success]</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="38"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="36"/>
<source>[Failed] </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="166"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="158"/>
<source>&lt;Unknown&gt;</source>
<translation type="unfinished"></translation>
</message>
diff --git a/resource/ts/gpgfrontend_ru.ts b/resource/ts/gpgfrontend_ru.ts
index dd2c7406..a37303ef 100644
--- a/resource/ts/gpgfrontend_ru.ts
+++ b/resource/ts/gpgfrontend_ru.ts
@@ -481,100 +481,100 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="56"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="52"/>
<source>Save Checked Keys</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="59"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="55"/>
<source>Save checked private keys on exit and restore them on next start.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="68"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="64"/>
<source>Confirm drag&apos;n&apos;drop key import</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="71"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="67"/>
<source>Import files dropped on the keylist without confirmation.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="78"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="74"/>
<source>Language</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="87"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="83"/>
<source>&lt;b&gt;NOTE: &lt;/b&gt; GpgFrontend will restart automatically if you change the language!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="96"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="92"/>
<source>Own key</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="100"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="96"/>
<source>Get Service Token</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="101"/>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="230"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="97"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="234"/>
<source>No Service Token Found</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="107"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="103"/>
<source>&lt;none&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="124"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="120"/>
<source>Key pair for synchronization and identity authentication</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="248"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="252"/>
<source>Invalid Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="249"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="253"/>
<source>Own Key can not be None while getting service token.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="261"/>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="332"/>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="348"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="265"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="336"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="353"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="262"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="266"/>
<source>Key Not Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="332"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="337"/>
<source>The communication content with the server does not meet the requirements</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="345"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="350"/>
<source>Notice</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="346"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="351"/>
<source>Succeed in getting service token</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="348"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="353"/>
<source>There is a problem with the communication with the server</source>
<translation type="unfinished"></translation>
</message>
@@ -2041,22 +2041,22 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="100"/>
+ <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="99"/>
<source>Unsuccessful Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="101"/>
+ <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="100"/>
<source>Signature operation failed for UID </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="108"/>
+ <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="107"/>
<source>Operation Complete</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="109"/>
+ <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="108"/>
<source>The signature operation of the UID is complete</source>
<translation type="unfinished"></translation>
</message>
@@ -2169,8 +2169,8 @@
<location filename="../../src/ui/main_window/MainWindowServerSlotFunction.cpp" line="126"/>
<location filename="../../src/ui/main_window/MainWindowServerSlotFunction.cpp" line="218"/>
<location filename="../../src/ui/main_window/MainWindowServerSlotFunction.cpp" line="231"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="513"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="529"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="525"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="541"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
@@ -2205,6 +2205,7 @@
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="150"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="226"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="409"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="375"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
@@ -2220,8 +2221,8 @@
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="62"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="239"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="422"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="44"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="125"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="45"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="126"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="298"/>
<source>No Key Selected</source>
<translation type="unfinished"></translation>
@@ -2229,15 +2230,15 @@
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="69"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="246"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="51"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="132"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="52"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="133"/>
<source>Invalid Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="70"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="247"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="52"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="53"/>
<source>The selected key contains a key that does not actually have a encrypt usage.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -2245,15 +2246,15 @@
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="71"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="248"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="436"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="53"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="134"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="54"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="135"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="312"/>
<source>&lt;br/&gt;For example the Following Key: &lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="91"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="71"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="72"/>
<source>Encrypting</source>
<translation type="unfinished"></translation>
</message>
@@ -2269,7 +2270,7 @@
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="268"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="150"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="151"/>
<source>Signing</source>
<translation type="unfinished"></translation>
</message>
@@ -2290,7 +2291,7 @@
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="353"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="258"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="259"/>
<source>Verifying</source>
<translation type="unfinished"></translation>
</message>
@@ -2339,7 +2340,7 @@
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="551"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="456"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="461"/>
<source>Decrypting and Verifying</source>
<translation type="unfinished"></translation>
</message>
@@ -2402,76 +2403,81 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="102"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="403"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="103"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="408"/>
<source>Function Disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="103"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="404"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="104"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="409"/>
<source>Please go to the settings interface to enable and configure this function.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="133"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="134"/>
<source>The selected key contains a key that does not actually have a signature usage.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="185"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="186"/>
<source>Notice</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="185"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="186"/>
<source>Short Crypto Text only supports Decrypt &amp; Verify.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="199"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="200"/>
<source>Decrypting</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="410"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="376"/>
+ <source>Automatic public key exchange failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="415"/>
<source>Service Token Empty</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="411"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="416"/>
<source>Please go to the settings interface to set Own Key and get Service Token.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="513"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="529"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="525"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="541"/>
<source>Key Not Found.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="560"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="572"/>
<source>Outdated Version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="561"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="573"/>
<source>This version(%1) is out of date, please update the latest version in time. </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="563"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="570"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="575"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="582"/>
<source>You can download the latest version(%1) on Github Releases Page.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="567"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="579"/>
<source>Unreleased Version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="568"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="580"/>
<source>This version(%1) has not been officially released and is not recommended for use in a production environment. &lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -2999,14 +3005,14 @@
<context>
<name>PubkeyGetter</name>
<message>
- <location filename="../../src/server/PubkeyGetter.cpp" line="79"/>
- <location filename="../../src/server/PubkeyGetter.cpp" line="103"/>
+ <location filename="../../src/server/api/PubkeyGetter.cpp" line="66"/>
+ <location filename="../../src/server/api/PubkeyGetter.cpp" line="90"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/server/PubkeyGetter.cpp" line="80"/>
- <location filename="../../src/server/PubkeyGetter.cpp" line="104"/>
+ <location filename="../../src/server/api/PubkeyGetter.cpp" line="67"/>
+ <location filename="../../src/server/api/PubkeyGetter.cpp" line="91"/>
<source>The communication content with the server does not meet the requirements</source>
<translation type="unfinished"></translation>
</message>
@@ -3014,22 +3020,22 @@
<context>
<name>PubkeyUploader</name>
<message>
- <location filename="../../src/server/PubkeyUploader.cpp" line="94"/>
+ <location filename="../../src/server/api/PubkeyUploader.cpp" line="95"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/server/PubkeyUploader.cpp" line="95"/>
+ <location filename="../../src/server/api/PubkeyUploader.cpp" line="96"/>
<source>The communication content with the server does not meet the requirements</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/server/PubkeyUploader.cpp" line="102"/>
+ <location filename="../../src/server/api/PubkeyUploader.cpp" line="103"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/server/PubkeyUploader.cpp" line="103"/>
+ <location filename="../../src/server/api/PubkeyUploader.cpp" line="104"/>
<source>Partial failure of automatic pubkey exchange</source>
<translation type="unfinished"></translation>
</message>
@@ -3042,102 +3048,102 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="63"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="61"/>
<source>One or More Bad Signatures.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="68"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="66"/>
<source>A </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="70"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="68"/>
<source>Good </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="73"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="71"/>
<source>Bad </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="76"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="74"/>
<source>Expired </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="79"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="77"/>
<source>Missing Key&apos;s </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="82"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="80"/>
<source>Revoked Key&apos;s </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="85"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="83"/>
<source>Expired Key&apos;s </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="88"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="86"/>
<source>Missing CRL&apos;s </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="92"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="90"/>
<source>Signature Fully Valid.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="94"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="92"/>
<source>Signature NOT Fully Valid.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="102"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="100"/>
<source>Key is NOT present with ID 0x</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="109"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="107"/>
<source>A signature could NOT be verified due to a Missing Key
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="113"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="111"/>
<source>A signature is valid but the key used to verify the signature has been revoked
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="121"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="119"/>
<source>A signature is valid but expired
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="128"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="126"/>
<source>A signature is valid but the key used to verify the signature has expired.
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="135"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="133"/>
<source>There was some other error which prevented the signature verification.
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="141"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="139"/>
<source>Error for key with fingerprint </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="154"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="152"/>
<source>Signed By: </source>
<translation type="unfinished"></translation>
</message>
@@ -3379,68 +3385,68 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="45"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="47"/>
<source> Sign Mode: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="47"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="49"/>
<source>Normal</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="49"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="51"/>
<source>Clear</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="51"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="53"/>
<source>Detach</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="57"/>
<location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="59"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="61"/>
<source> Signer: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="59"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="61"/>
<source>&lt;unknown&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="61"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="63"/>
<source> Public Key Algo: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="62"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="64"/>
<source> Hash Algo: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="63"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="65"/>
<source> Date &amp; Time: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="73"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="75"/>
<source>Invalid Signers: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="77"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="79"/>
<source>[&gt;] Signer: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="78"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="80"/>
<source> Fingerprint: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="79"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="81"/>
<source> Reason: </source>
<translation type="unfinished"></translation>
</message>
@@ -3590,6 +3596,19 @@
</message>
</context>
<context>
+ <name>UnknownSignersChecker</name>
+ <message>
+ <location filename="../../src/advance/UnknownSignersChecker.cpp" line="69"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/advance/UnknownSignersChecker.cpp" line="70"/>
+ <source>Automatic public key exchange failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>UpdateTab</name>
<message>
<location filename="../../src/ui/help/AboutDialog.cpp" line="129"/>
@@ -3798,22 +3817,22 @@
<context>
<name>VerifyResultAnalyse</name>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="33"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="31"/>
<source>[#] Verify Operation </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="36"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="34"/>
<source>[Success]</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="38"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="36"/>
<source>[Failed] </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="166"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="158"/>
<source>&lt;Unknown&gt;</source>
<translation type="unfinished"></translation>
</message>
diff --git a/resource/ts/gpgfrontend_zh_cn.ts b/resource/ts/gpgfrontend_zh_cn.ts
index a81b6e2b..61728942 100644
--- a/resource/ts/gpgfrontend_zh_cn.ts
+++ b/resource/ts/gpgfrontend_zh_cn.ts
@@ -481,100 +481,100 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="56"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="52"/>
<source>Save Checked Keys</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="59"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="55"/>
<source>Save checked private keys on exit and restore them on next start.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="68"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="64"/>
<source>Confirm drag&apos;n&apos;drop key import</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="71"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="67"/>
<source>Import files dropped on the keylist without confirmation.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="78"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="74"/>
<source>Language</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="87"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="83"/>
<source>&lt;b&gt;NOTE: &lt;/b&gt; GpgFrontend will restart automatically if you change the language!</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="96"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="92"/>
<source>Own key</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="100"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="96"/>
<source>Get Service Token</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="101"/>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="230"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="97"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="234"/>
<source>No Service Token Found</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="107"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="103"/>
<source>&lt;none&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="124"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="120"/>
<source>Key pair for synchronization and identity authentication</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="248"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="252"/>
<source>Invalid Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="249"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="253"/>
<source>Own Key can not be None while getting service token.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="261"/>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="332"/>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="348"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="265"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="336"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="353"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="262"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="266"/>
<source>Key Not Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="332"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="337"/>
<source>The communication content with the server does not meet the requirements</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="345"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="350"/>
<source>Notice</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="346"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="351"/>
<source>Succeed in getting service token</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="348"/>
+ <location filename="../../src/ui/settings/SettingsGeneral.cpp" line="353"/>
<source>There is a problem with the communication with the server</source>
<translation type="unfinished"></translation>
</message>
@@ -2041,22 +2041,22 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="100"/>
+ <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="99"/>
<source>Unsuccessful Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="101"/>
+ <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="100"/>
<source>Signature operation failed for UID </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="108"/>
+ <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="107"/>
<source>Operation Complete</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="109"/>
+ <location filename="../../src/ui/keypair_details/KeyUIDSignDialog.cpp" line="108"/>
<source>The signature operation of the UID is complete</source>
<translation type="unfinished"></translation>
</message>
@@ -2169,8 +2169,8 @@
<location filename="../../src/ui/main_window/MainWindowServerSlotFunction.cpp" line="126"/>
<location filename="../../src/ui/main_window/MainWindowServerSlotFunction.cpp" line="218"/>
<location filename="../../src/ui/main_window/MainWindowServerSlotFunction.cpp" line="231"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="513"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="529"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="525"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="541"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
@@ -2205,6 +2205,7 @@
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="150"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="226"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="409"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="375"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
@@ -2220,8 +2221,8 @@
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="62"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="239"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="422"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="44"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="125"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="45"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="126"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="298"/>
<source>No Key Selected</source>
<translation type="unfinished"></translation>
@@ -2229,15 +2230,15 @@
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="69"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="246"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="51"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="132"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="52"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="133"/>
<source>Invalid Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="70"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="247"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="52"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="53"/>
<source>The selected key contains a key that does not actually have a encrypt usage.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -2245,15 +2246,15 @@
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="71"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="248"/>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="436"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="53"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="134"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="54"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="135"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="312"/>
<source>&lt;br/&gt;For example the Following Key: &lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="91"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="71"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="72"/>
<source>Encrypting</source>
<translation type="unfinished"></translation>
</message>
@@ -2269,7 +2270,7 @@
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="268"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="150"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="151"/>
<source>Signing</source>
<translation type="unfinished"></translation>
</message>
@@ -2290,7 +2291,7 @@
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="353"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="258"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="259"/>
<source>Verifying</source>
<translation type="unfinished"></translation>
</message>
@@ -2339,7 +2340,7 @@
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowFileSlotFunction.cpp" line="551"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="456"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="461"/>
<source>Decrypting and Verifying</source>
<translation type="unfinished"></translation>
</message>
@@ -2402,76 +2403,81 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="102"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="403"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="103"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="408"/>
<source>Function Disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="103"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="404"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="104"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="409"/>
<source>Please go to the settings interface to enable and configure this function.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="133"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="134"/>
<source>The selected key contains a key that does not actually have a signature usage.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="185"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="186"/>
<source>Notice</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="185"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="186"/>
<source>Short Crypto Text only supports Decrypt &amp; Verify.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="199"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="200"/>
<source>Decrypting</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="410"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="376"/>
+ <source>Automatic public key exchange failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="415"/>
<source>Service Token Empty</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="411"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="416"/>
<source>Please go to the settings interface to set Own Key and get Service Token.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="513"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="529"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="525"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="541"/>
<source>Key Not Found.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="560"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="572"/>
<source>Outdated Version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="561"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="573"/>
<source>This version(%1) is out of date, please update the latest version in time. </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="563"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="570"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="575"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="582"/>
<source>You can download the latest version(%1) on Github Releases Page.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="567"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="579"/>
<source>Unreleased Version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="568"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="580"/>
<source>This version(%1) has not been officially released and is not recommended for use in a production environment. &lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -2999,14 +3005,14 @@
<context>
<name>PubkeyGetter</name>
<message>
- <location filename="../../src/server/PubkeyGetter.cpp" line="79"/>
- <location filename="../../src/server/PubkeyGetter.cpp" line="103"/>
+ <location filename="../../src/server/api/PubkeyGetter.cpp" line="66"/>
+ <location filename="../../src/server/api/PubkeyGetter.cpp" line="90"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/server/PubkeyGetter.cpp" line="80"/>
- <location filename="../../src/server/PubkeyGetter.cpp" line="104"/>
+ <location filename="../../src/server/api/PubkeyGetter.cpp" line="67"/>
+ <location filename="../../src/server/api/PubkeyGetter.cpp" line="91"/>
<source>The communication content with the server does not meet the requirements</source>
<translation type="unfinished"></translation>
</message>
@@ -3014,22 +3020,22 @@
<context>
<name>PubkeyUploader</name>
<message>
- <location filename="../../src/server/PubkeyUploader.cpp" line="94"/>
+ <location filename="../../src/server/api/PubkeyUploader.cpp" line="95"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/server/PubkeyUploader.cpp" line="95"/>
+ <location filename="../../src/server/api/PubkeyUploader.cpp" line="96"/>
<source>The communication content with the server does not meet the requirements</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/server/PubkeyUploader.cpp" line="102"/>
+ <location filename="../../src/server/api/PubkeyUploader.cpp" line="103"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/server/PubkeyUploader.cpp" line="103"/>
+ <location filename="../../src/server/api/PubkeyUploader.cpp" line="104"/>
<source>Partial failure of automatic pubkey exchange</source>
<translation type="unfinished"></translation>
</message>
@@ -3042,102 +3048,102 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="63"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="61"/>
<source>One or More Bad Signatures.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="68"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="66"/>
<source>A </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="70"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="68"/>
<source>Good </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="73"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="71"/>
<source>Bad </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="76"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="74"/>
<source>Expired </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="79"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="77"/>
<source>Missing Key&apos;s </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="82"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="80"/>
<source>Revoked Key&apos;s </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="85"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="83"/>
<source>Expired Key&apos;s </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="88"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="86"/>
<source>Missing CRL&apos;s </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="92"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="90"/>
<source>Signature Fully Valid.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="94"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="92"/>
<source>Signature NOT Fully Valid.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="102"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="100"/>
<source>Key is NOT present with ID 0x</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="109"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="107"/>
<source>A signature could NOT be verified due to a Missing Key
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="113"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="111"/>
<source>A signature is valid but the key used to verify the signature has been revoked
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="121"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="119"/>
<source>A signature is valid but expired
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="128"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="126"/>
<source>A signature is valid but the key used to verify the signature has expired.
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="135"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="133"/>
<source>There was some other error which prevented the signature verification.
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="141"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="139"/>
<source>Error for key with fingerprint </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="154"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="152"/>
<source>Signed By: </source>
<translation type="unfinished"></translation>
</message>
@@ -3379,68 +3385,68 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="45"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="47"/>
<source> Sign Mode: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="47"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="49"/>
<source>Normal</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="49"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="51"/>
<source>Clear</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="51"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="53"/>
<source>Detach</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="57"/>
<location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="59"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="61"/>
<source> Signer: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="59"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="61"/>
<source>&lt;unknown&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="61"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="63"/>
<source> Public Key Algo: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="62"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="64"/>
<source> Hash Algo: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="63"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="65"/>
<source> Date &amp; Time: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="73"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="75"/>
<source>Invalid Signers: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="77"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="79"/>
<source>[&gt;] Signer: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="78"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="80"/>
<source> Fingerprint: </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="79"/>
+ <location filename="../../src/gpg/result_analyse/SignResultAnalyse.cpp" line="81"/>
<source> Reason: </source>
<translation type="unfinished"></translation>
</message>
@@ -3590,6 +3596,19 @@
</message>
</context>
<context>
+ <name>UnknownSignersChecker</name>
+ <message>
+ <location filename="../../src/advance/UnknownSignersChecker.cpp" line="69"/>
+ <source>Warning</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/advance/UnknownSignersChecker.cpp" line="70"/>
+ <source>Automatic public key exchange failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>UpdateTab</name>
<message>
<location filename="../../src/ui/help/AboutDialog.cpp" line="129"/>
@@ -3798,22 +3817,22 @@
<context>
<name>VerifyResultAnalyse</name>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="33"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="31"/>
<source>[#] Verify Operation </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="36"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="34"/>
<source>[Success]</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="38"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="36"/>
<source>[Failed] </source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="166"/>
+ <location filename="../../src/gpg/result_analyse/VerifyResultAnalyse.cpp" line="158"/>
<source>&lt;Unknown&gt;</source>
<translation type="unfinished"></translation>
</message>
diff --git a/src/advance/UnknownSignersChecker.cpp b/src/advance/UnknownSignersChecker.cpp
index 30f9341f..69897e31 100644
--- a/src/advance/UnknownSignersChecker.cpp
+++ b/src/advance/UnknownSignersChecker.cpp
@@ -23,7 +23,6 @@
*/
#include "advance/UnknownSignersChecker.h"
-#include "server/api/PubkeyGetter.h"
UnknownSignersChecker::UnknownSignersChecker(GpgME::GpgContext *ctx, gpgme_verify_result_t result) :
@@ -47,7 +46,7 @@ void UnknownSignersChecker::start() {
check_signer(sign);
break;
case GPG_ERR_NO_PUBKEY:
- break;
+
case GPG_ERR_CERT_REVOKED:
case GPG_ERR_SIG_EXPIRED:
case GPG_ERR_KEY_EXPIRED:
@@ -62,20 +61,19 @@ void UnknownSignersChecker::start() {
sign = sign->next;
}
- auto pubkeyGetter = PubkeyGetter(mCtx, unknownFprs);
- pubkeyGetter.start();
- if (!pubkeyGetter.result()) {
- QMessageBox::warning(nullptr,
- tr("Warning"),
- tr("Automatic public key exchange failed."));
+ if(!unknownFprs.isEmpty()) {
+ auto pubkeyGetter = PubkeyGetter(mCtx, unknownFprs);
+ pubkeyGetter.start();
+ if (!pubkeyGetter.result()) {
+
+ }
}
}
void UnknownSignersChecker::check_signer(gpgme_signature_t sign) {
auto key = mCtx->getKeyByFpr(sign->fpr);
-
- if (settings.value("advanced/autoPubkeyExchange").toBool() && !key.good) {
+ if (!key.good) {
qDebug() << "Find Unknown FingerPrint " << sign->fpr;
unknownFprs.append(sign->fpr);
}
diff --git a/src/gpg/gpg_context/GpgContext.cpp b/src/gpg/gpg_context/GpgContext.cpp
index f7bbbe37..8b12b302 100644
--- a/src/gpg/gpg_context/GpgContext.cpp
+++ b/src/gpg/gpg_context/GpgContext.cpp
@@ -260,11 +260,12 @@ namespace GpgME {
auto *gpgProcess = new QProcess(&looper);
gpgProcess->setProcessChannelMode(QProcess::MergedChannels);
connect(gpgProcess, qOverload<int, QProcess::ExitStatus>(&QProcess::finished), &looper, &QEventLoop::quit);
- connect(gpgProcess, qOverload<int, QProcess::ExitStatus>(&QProcess::finished), dialog, &WaitingDialog::deleteLater);
+ connect(gpgProcess, qOverload<int, QProcess::ExitStatus>(&QProcess::finished), dialog,
+ &WaitingDialog::deleteLater);
connect(gpgProcess, &QProcess::errorOccurred, []() -> void { qDebug("Error in Process"); });
connect(gpgProcess, &QProcess::errorOccurred, &looper, &QEventLoop::quit);
connect(gpgProcess, &QProcess::started, []() -> void { qDebug() << "Gpg Process Started Success"; });
- connect(gpgProcess, &QProcess::readyReadStandardOutput, [interactFunc, gpgProcess]() {
+ connect(gpgProcess, &QProcess::readyReadStandardOutput, [interactFunc, gpgProcess]() {
qDebug() << "Function Called";
interactFunc(gpgProcess);
});
@@ -330,11 +331,11 @@ namespace GpgME {
return mKeyList;
}
- void GpgContext::getSigners(QVector<GpgKey> &signer) {
- auto count = gpgme_signers_count(mCtx);
+ void GpgContext::getSigners(QVector<GpgKey> &signer, gpgme_ctx_t ctx) {
+ auto count = gpgme_signers_count(ctx);
signer.clear();
for (auto i = 0; i < count; i++) {
- auto key = gpgme_signers_enum(mCtx, i);
+ auto key = gpgme_signers_enum(ctx, i);
auto it = mKeyMap.find(key->subkeys->keyid);
if (it == mKeyMap.end()) {
qDebug() << "Inconsistent state";
@@ -345,15 +346,15 @@ namespace GpgME {
}
}
- void GpgContext::setSigners(const QVector<GpgKey> &keys) {
- gpgme_signers_clear(mCtx);
+ void GpgContext::setSigners(const QVector<GpgKey> &keys, gpgme_ctx_t ctx) {
+ gpgme_signers_clear(ctx);
for (const auto &key : keys) {
if (checkIfKeyCanSign(key)) {
- auto gpgmeError = gpgme_signers_add(mCtx, key.key_refer);
+ auto gpgmeError = gpgme_signers_add(ctx, key.key_refer);
checkErr(gpgmeError);
}
}
- if (keys.length() != gpgme_signers_count(mCtx)) {
+ if (keys.length() != gpgme_signers_count(ctx)) {
qDebug() << "No All Keys Added";
}
}
@@ -397,4 +398,15 @@ namespace GpgME {
}
}
+ gpgme_ctx_t GpgME::GpgContext::create_ctx() {
+ gpgme_ctx_t ctx;
+ err = gpgme_new(&ctx);
+ checkErr(err);
+
+ gpgme_set_armor(ctx, 1);
+ gpgme_set_passphrase_cb(ctx, passphraseCb, this);
+ return ctx;
+ }
+
+
}
diff --git a/src/gpg/gpg_context/GpgContextBasicOpera.cpp b/src/gpg/gpg_context/GpgContextBasicOpera.cpp
index f368a6b4..8872acfe 100644
--- a/src/gpg/gpg_context/GpgContextBasicOpera.cpp
+++ b/src/gpg/gpg_context/GpgContextBasicOpera.cpp
@@ -166,7 +166,7 @@ gpg_error_t GpgME::GpgContext::sign(const QVector<GpgKey> &keys, const QByteArra
}
// Set Singers of this opera
- setSigners(keys);
+ setSigners(keys, mCtx);
gpgmeError = gpgme_data_new_from_mem(&dataIn, inBuffer.data(), inBuffer.size(), 1);
checkErr(gpgmeError);
@@ -228,7 +228,7 @@ GpgME::GpgContext::encryptSign(QVector<GpgKey> &keys, QVector<GpgKey> &signers,
gpgme_data_t data_in = nullptr, data_out = nullptr;
outBuffer->resize(0);
- setSigners(signers);
+ setSigners(signers, mCtx);
//gpgme_encrypt_result_t e_result;
gpgme_key_t recipients[keys.count() + 1];
diff --git a/src/gpg/gpg_context/GpgContextKeyOpera.cpp b/src/gpg/gpg_context/GpgContextKeyOpera.cpp
index 5ead0629..4fa2e8c5 100644
--- a/src/gpg/gpg_context/GpgContextKeyOpera.cpp
+++ b/src/gpg/gpg_context/GpgContextKeyOpera.cpp
@@ -115,19 +115,29 @@ bool GpgME::GpgContext::exportKeys(QStringList *uidList, QByteArray *outBuffer)
return false;
}
+ // Alleviate another crash problem caused by an unknown array out-of-bounds access
+ gpgme_ctx_t ctx = create_ctx();
+
for (int i = 0; i < uidList->count(); i++) {
err = gpgme_data_new(&dataOut);
checkErr(err);
- err = gpgme_op_export(mCtx, uidList->at(i).toUtf8().constData(), 0, dataOut);
+ err = gpgme_op_export(ctx, uidList->at(i).toUtf8().constData(), 0, dataOut);
checkErr(err);
read_bytes = gpgme_data_seek(dataOut, 0, SEEK_END);
+ qDebug() << "exportKeys read_bytes" << read_bytes;
+
err = readToBuffer(dataOut, outBuffer);
checkErr(err);
gpgme_data_release(dataOut);
}
+
+ qDebug() << "outBuffer" << *outBuffer;
+
+ gpgme_release(ctx);
+
return true;
}
@@ -188,19 +198,13 @@ void GpgME::GpgContext::fetch_keys() {
return;
}
- qDebug() << "Operate KeyList End";
-
gpgmeError = gpgme_op_keylist_end(mCtx);
if (gpg_err_code(gpgmeError) != GPG_ERR_NO_ERROR) {
checkErr(gpgmeError);
return;
}
- gpgmeError = gpgme_op_keylist_end(mCtx);
- if (gpg_err_code(gpgmeError) != GPG_ERR_NO_ERROR) {
- checkErr(gpgmeError);
- return;
- }
+ qDebug() << "Operate KeyList End";
mKeyList = keys;
}
@@ -343,7 +347,10 @@ bool GpgME::GpgContext::exportSecretKey(const GpgKey &key, QByteArray *outBuffer
* @param expires expire date and time of the signature
* @return if successful
*/
-bool GpgME::GpgContext::signKey(const GpgKey &target, const QString &uid, const QDateTime *expires) {
+bool GpgME::GpgContext::signKey(const GpgKey &target, const QVector<GpgKey> &keys, const QString &uid,
+ const QDateTime *expires) {
+
+ setSigners(keys, mCtx);
unsigned int flags = 0;
diff --git a/src/gpg/result_analyse/EncryptResultAnalyse.cpp b/src/gpg/result_analyse/EncryptResultAnalyse.cpp
index 55f2cb9f..1ba685c9 100644
--- a/src/gpg/result_analyse/EncryptResultAnalyse.cpp
+++ b/src/gpg/result_analyse/EncryptResultAnalyse.cpp
@@ -26,6 +26,8 @@
EncryptResultAnalyse::EncryptResultAnalyse(gpgme_error_t error, gpgme_encrypt_result_t result) {
+ qDebug() << "Start Encrypt Result Analyse";
+
stream << "[#] Encrypt Operation ";
if(gpgme_err_code(error) == GPG_ERR_NO_ERROR)
diff --git a/src/gpg/result_analyse/SignResultAnalyse.cpp b/src/gpg/result_analyse/SignResultAnalyse.cpp
index d50017c0..bac16021 100644
--- a/src/gpg/result_analyse/SignResultAnalyse.cpp
+++ b/src/gpg/result_analyse/SignResultAnalyse.cpp
@@ -26,6 +26,8 @@
SignResultAnalyse::SignResultAnalyse(GpgME::GpgContext *ctx, gpgme_error_t error, gpgme_sign_result_t result) {
+ qDebug() << "Start Sign Result Analyse";
+
stream << tr("[#] Sign Operation ");
if (gpgme_err_code(error) == GPG_ERR_NO_ERROR)
@@ -42,6 +44,8 @@ SignResultAnalyse::SignResultAnalyse(GpgME::GpgContext *ctx, gpgme_error_t error
while (new_sign != nullptr) {
stream << tr("[>] New Signature: ") << Qt::endl;
+ qDebug() << "Signers Fingerprint: " << new_sign->fpr;
+
stream << tr(" Sign Mode: ");
if (new_sign->type == GPGME_SIG_MODE_NORMAL)
stream << tr("Normal");
diff --git a/src/gpg/result_analyse/VerifyResultAnalyse.cpp b/src/gpg/result_analyse/VerifyResultAnalyse.cpp
index 816e889c..75e07d33 100644
--- a/src/gpg/result_analyse/VerifyResultAnalyse.cpp
+++ b/src/gpg/result_analyse/VerifyResultAnalyse.cpp
@@ -28,6 +28,8 @@
VerifyResultAnalyse::VerifyResultAnalyse(GpgME::GpgContext *ctx, gpgme_error_t error, gpgme_verify_result_t result)
: mCtx(ctx) {
+ qDebug() << "Verify Result Analyse Started";
+
stream << tr("[#] Verify Operation ");
if (gpgme_err_code(error) == GPG_ERR_NO_ERROR)
@@ -89,13 +91,11 @@ VerifyResultAnalyse::VerifyResultAnalyse(GpgME::GpgContext *ctx, gpgme_error_t e
if (sign->summary & GPGME_SIGSUM_VALID) {
stream << QApplication::tr("Signature Fully Valid.") << Qt::endl;
} else {
- stream << QApplication::tr("Signature NOT Fully Valid.") << Qt::endl;
+ stream << QApplication::tr("Signature Not Fully Valid.") << Qt::endl;
}
if (!(sign->status & GPGME_SIGSUM_KEY_MISSING)) {
- if (!printSigner(stream, sign)) {
- setStatus(0);
- }
+ if (!printSigner(stream, sign)) setStatus(0);
} else {
stream << QApplication::tr("Key is NOT present with ID 0x") << QString(sign->fpr) << Qt::endl;
}
@@ -149,20 +149,20 @@ VerifyResultAnalyse::VerifyResultAnalyse(GpgME::GpgContext *ctx, gpgme_error_t e
bool VerifyResultAnalyse::printSigner(QTextStream &stream, gpgme_signature_t sign) {
bool keyFound = true;
- stream << QApplication::tr("Signed By: ");
auto key = mCtx->getKeyByFpr(sign->fpr);
key = mCtx->getKeyByFpr(sign->fpr);
if (!key.good) {
- stream << tr("<Unknown>");
+ stream << tr(" Signed By: ") << tr("<unknown>") << Qt::endl;
setStatus(0);
keyFound = false;
+ } else {
+ stream << tr(" Signed By: ") << key.uids.first().uid << Qt::endl;
}
- stream << key.name;
- if (!key.email.isEmpty()) {
- stream << "<" << key.email << ">";
- }
+ stream << tr(" Public Key Algo: ") << gpgme_pubkey_algo_name(sign->pubkey_algo) << Qt::endl;
+ stream << tr(" Hash Algo: ") << gpgme_hash_algo_name(sign->hash_algo) << Qt::endl;
+ stream << tr(" Date & Time: ") << QDateTime::fromTime_t(sign->timestamp).toString() << Qt::endl;
stream << Qt::endl;
return keyFound;
} \ No newline at end of file
diff --git a/src/server/ComUtils.cpp b/src/server/ComUtils.cpp
index bd4072f1..6fce493f 100644
--- a/src/server/ComUtils.cpp
+++ b/src/server/ComUtils.cpp
@@ -160,7 +160,16 @@ QByteArray ComUtils::getSignStringBase64(GpgME::GpgContext *ctx, const QString &
QVector<GpgKey> keys{key};
QByteArray outSignText;
auto signData = str.toUtf8();
- ctx->sign(keys, signData, &outSignText, GPGME_SIG_MODE_NORMAL);
+
+ // The use of multi-threading brings an improvement in UI smoothness
+ gpgme_error_t error;
+ auto thread = QThread::create([&]() {
+ error = ctx->sign(keys, signData, &outSignText, GPGME_SIG_MODE_NORMAL);
+ });
+ thread->start();
+ while (thread->isRunning()) QApplication::processEvents();
+ thread->deleteLater();
+
return outSignText.toBase64();
}
diff --git a/src/server/api/PubkeyUploader.cpp b/src/server/api/PubkeyUploader.cpp
index 8051dab7..e1c62aeb 100644
--- a/src/server/api/PubkeyUploader.cpp
+++ b/src/server/api/PubkeyUploader.cpp
@@ -32,37 +32,49 @@ PubkeyUploader::PubkeyUploader(GpgME::GpgContext *ctx, const QVector<GpgKey> &ke
void PubkeyUploader::construct_json() {
document.SetArray();
QStringList keyIds;
+ QCryptographicHash shaGen(QCryptographicHash::Sha256);
- rapidjson::Document::AllocatorType &allocator = document.GetAllocator();
+ auto &allocator = document.GetAllocator();
+ QVector<QByteArray> keysData;
for (const auto &key : mKeys) {
- rapidjson::Value publicKeyObj, pubkey, sha, signedFpr;
-
QByteArray keyDataBuf;
keyIds << key.id;
- mCtx->exportKeys(&keyIds, &keyDataBuf);
- QCryptographicHash shaGen(QCryptographicHash::Sha256);
- shaGen.addData(keyDataBuf);
+ // The use of multi-threading brings an improvement in UI smoothness
+ gpgme_error_t error;
+ auto thread = QThread::create([&]() {
+ error = mCtx->exportKeys(&keyIds, &keyDataBuf);
+ });
+ thread->start();
+ while (thread->isRunning()) QApplication::processEvents();
+ thread->deleteLater();
+ keysData.push_back(keyDataBuf);
+ keyIds.clear();
+ }
+ int index = 0;
+ for (const auto &keyData : keysData) {
+ rapidjson::Value publicKeyObj, pubkey, sha, signedFpr;
+
+ shaGen.addData(keyData);
auto shaStr = shaGen.result().toHex();
+ shaGen.reset();
- auto signFprStr = ComUtils::getSignStringBase64(mCtx, key.fpr, key);
+ auto signFprStr = ComUtils::getSignStringBase64(mCtx, mKeys[index].fpr, mKeys[index]);
qDebug() << "signFprStr" << signFprStr;
- pubkey.SetString(keyDataBuf.constData(), keyDataBuf.count());
-
- sha.SetString(shaStr.constData(), shaStr.count());
- signedFpr.SetString(signFprStr.constData(), signFprStr.count());
+ pubkey.SetString(keyData.data(), keyData.count(), allocator);
+ sha.SetString(shaStr.data(), shaStr.count(), allocator);
+ signedFpr.SetString(signFprStr.data(), signFprStr.count(), allocator);
publicKeyObj.SetObject();
-
publicKeyObj.AddMember("publicKey", pubkey, allocator);
publicKeyObj.AddMember("sha", sha, allocator);
publicKeyObj.AddMember("signedFpr", signedFpr, allocator);
document.PushBack(publicKeyObj, allocator);
- keyIds.clear();
+ index++;
}
}
diff --git a/src/ui/keypair_details/KeyUIDSignDialog.cpp b/src/ui/keypair_details/KeyUIDSignDialog.cpp
index f112ea25..9232cfce 100644
--- a/src/ui/keypair_details/KeyUIDSignDialog.cpp
+++ b/src/ui/keypair_details/KeyUIDSignDialog.cpp
@@ -89,13 +89,12 @@ void KeyUIDSignDialog::slotSignKey(bool clicked) {
// Set Signers
QVector<GpgKey> keys;
mKeyList->getCheckedKeys(keys);
- mCtx->setSigners(keys);
const auto expires = expiresEdit->dateTime();
for(const auto &uid : mUids) {
// Sign For mKey
- if (!mCtx->signKey(mKey, uid.uid, &expires)) {
+ if (!mCtx->signKey(mKey, keys, uid.uid, &expires)) {
QMessageBox::critical(nullptr,
tr("Unsuccessful Operation"),
QString(tr("Signature operation failed for UID ") + "%1")
diff --git a/src/ui/main_window/MainWindowSlotFunction.cpp b/src/ui/main_window/MainWindowSlotFunction.cpp
index 3d1d6f77..7c740595 100644
--- a/src/ui/main_window/MainWindowSlotFunction.cpp
+++ b/src/ui/main_window/MainWindowSlotFunction.cpp
@@ -287,7 +287,6 @@ void MainWindow::slotVerify() {
void MainWindow::slotEncryptSign() {
-
if (edit->tabCount() == 0) return;
if (edit->slotCurPageTextEdit() != nullptr) {
@@ -372,9 +371,7 @@ void MainWindow::slotEncryptSign() {
auto pubkeyUploader = PubkeyUploader(mCtx, signerKeys);
pubkeyUploader.start();
if(!pubkeyUploader.result()) {
- QMessageBox::warning(nullptr,
- tr("Warning"),
- tr("Automatic public key exchange failed."));
+
}
}
@@ -385,6 +382,8 @@ void MainWindow::slotEncryptSign() {
edit->slotFillTextEditWithText(*tmp2);
}
+ qDebug() << "Start Analyse Result";
+
auto resultAnalyseEncr = new EncryptResultAnalyse(error, encr_result);
auto resultAnalyseSign = new SignResultAnalyse(mCtx, error, sign_result);
int status = std::min(resultAnalyseEncr->getStatus(), resultAnalyseSign->getStatus());
@@ -452,6 +451,21 @@ void MainWindow::slotDecryptVerify() {
gpgme_decrypt_result_t d_result = nullptr;
gpgme_verify_result_t v_result = nullptr;
+ auto *dialog = new WaitingDialog(tr("Decrypting and Verifying"), this);
+
+ // Automatically import public keys that are not stored locally
+ if(settings.value("advanced/autoPubkeyExchange").toBool()) {
+ gpgme_verify_result_t tmp_v_result = nullptr;
+ auto thread = QThread::create([&]() {
+ mCtx->verify(&text, nullptr, &tmp_v_result);
+ });
+ thread->start();
+ while (thread->isRunning()) QApplication::processEvents();
+ auto* checker = new UnknownSignersChecker(mCtx, tmp_v_result);
+ checker->start();
+ checker->deleteLater();
+ }
+
gpgme_error_t error;
auto thread = QThread::create([&]() {
error = mCtx->decryptVerify(text, decrypted, &d_result, &v_result);
@@ -459,20 +473,14 @@ void MainWindow::slotDecryptVerify() {
connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
thread->start();
- auto *dialog = new WaitingDialog(tr("Decrypting and Verifying"), this);
while (thread->isRunning()) {
QApplication::processEvents();
}
- // Automatically import public keys that are not stored locally
- if(settings.value("advanced/autoPubkeyExchange").toBool()) {
- auto* checker = new UnknownSignersChecker(mCtx, v_result);
- checker->start();
- checker->deleteLater();
- }
-
dialog->close();
+ qDebug() << "Start Analyse Result";
+
infoBoard->associateTextEdit(edit->curTextPage());
if (gpgme_err_code(error) == GPG_ERR_NO_ERROR)
@@ -498,6 +506,9 @@ void MainWindow::slotDecryptVerify() {
}
delete resultAnalyseDecrypt;
delete resultAnalyseVerify;
+
+ qDebug() << "End Analyse Result";
+
} else if (edit->slotCurPageFileTreeView() != nullptr) {
this->slotFileDecryptVerify();
}
diff --git a/src/ui/settings/SettingsGeneral.cpp b/src/ui/settings/SettingsGeneral.cpp
index 0e9d9de7..b4372506 100644
--- a/src/ui/settings/SettingsGeneral.cpp
+++ b/src/ui/settings/SettingsGeneral.cpp
@@ -43,10 +43,6 @@ 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);
@@ -161,9 +157,16 @@ void GeneralTab::setSettings() {
}
for (const auto &s : serverList)
serverSelectBox->addItem(s);
+
+ qDebug() << "currentGpgfrontendServer" << settings.value("general/currentGpgfrontendServer").toString();
serverSelectBox->setCurrentText(settings.value("general/currentGpgfrontendServer",
"service.gpgfrontend.pub").toString());
+ connect(serverSelectBox, QOverload<const QString &>::of(&QComboBox::currentTextChanged),
+ this, [&](const QString &current) -> void {
+ settings.setValue("general/currentGpgfrontendServer", current);
+ });
+
// Language setting
QString langKey = settings.value("int/lang").toString();
QString langValue = lang.value(langKey);
@@ -201,6 +204,7 @@ void GeneralTab::applySettings() {
settings.setValue("keys/saveKeyChecked",
saveCheckedKeysCheckBox->isChecked());
+ qDebug() << "serverSelectBox currentText" << serverSelectBox->currentText();
settings.setValue("general/currentGpgfrontendServer",
serverSelectBox->currentText());