aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2021-07-19 10:03:21 +0000
committerSaturneric <[email protected]>2021-07-19 10:03:21 +0000
commit3d8c8f3c4550d88d1bb16bda003c88fc69e6acc5 (patch)
tree84a2ccc18a1d1b6e536b6090841b5aeae617298f
parentImprove the function of sending mail; (diff)
downloadGpgFrontend-3d8c8f3c4550d88d1bb16bda003c88fc69e6acc5.tar.gz
GpgFrontend-3d8c8f3c4550d88d1bb16bda003c88fc69e6acc5.zip
Improved and Modified.
Diffstat (limited to '')
-rw-r--r--include/gpg/GpgContext.h19
-rw-r--r--include/ui/keypair_details/KeyPairDetailTab.h2
-rw-r--r--include/ui/widgets/FilePage.h5
-rw-r--r--resource/ts/gpg_frontend_fr.ts268
-rw-r--r--resource/ts/gpg_frontend_ru.ts268
-rw-r--r--resource/ts/gpgfrontend_en_us.ts268
-rw-r--r--resource/ts/gpgfrontend_zh_chs.ts268
-rw-r--r--resource/ts/gpgfrontend_zh_cht.ts268
-rw-r--r--src/gpg/GpgContext.cpp73
-rw-r--r--src/ui/help/AboutDialog.cpp7
-rw-r--r--src/ui/help/VersionCheckThread.cpp5
-rw-r--r--src/ui/keypair_details/KeyPairDetailTab.cpp30
-rw-r--r--src/ui/main_window/MainWindowSlotFunction.cpp2
-rw-r--r--src/ui/widgets/FilePage.cpp33
-rw-r--r--src/ui/widgets/TextEdit.cpp2
15 files changed, 860 insertions, 658 deletions
diff --git a/include/gpg/GpgContext.h b/include/gpg/GpgContext.h
index a2812b4e..fc4d8692 100644
--- a/include/gpg/GpgContext.h
+++ b/include/gpg/GpgContext.h
@@ -71,7 +71,7 @@ namespace GpgME {
~GpgContext() override;
- bool isGood() const;
+ [[nodiscard]] bool isGood() const;
GpgImportInformation importKey(QByteArray inBuffer);
@@ -115,7 +115,7 @@ namespace GpgME {
gpg_error_t
sign(const QVector<GpgKey> &keys, const QByteArray &inBuffer, QByteArray *outBuffer, bool detached = false,
- gpgme_sign_result_t* result = nullptr);
+ gpgme_sign_result_t *result = nullptr);
bool addUID(const GpgKey &key, const GpgUID &uid);
@@ -125,6 +125,8 @@ namespace GpgME {
bool setExpire(const GpgKey &key, const GpgSubKey *subkey, QDateTime *expires);
+ QProcess * generateRevokeCert(const GpgKey &key, const QString &outputFileName);
+
static bool checkIfKeyCanSign(const GpgKey &key);
static bool checkIfKeyCanCert(const GpgKey &key);
@@ -133,6 +135,7 @@ namespace GpgME {
static bool checkIfKeyCanEncr(const GpgKey &key);
+
/**
* @details If text contains PGP-message, put a linebreak before the message,
* so that gpgme can decrypt correctly
@@ -143,7 +146,7 @@ namespace GpgME {
GpgKey getKeyByFpr(const QString &fpr);
- const GpgKey & getKeyById(const QString &id);
+ const GpgKey &getKeyById(const QString &id);
static QString gpgErrString(gpgme_error_t err);
@@ -173,7 +176,7 @@ namespace GpgME {
void slotRefreshKeyList();
- void slotUpdateKeyList(const QString& key_id);
+ void slotUpdateKeyList(const QString &key_id);
private:
gpgme_ctx_t mCtx{};
@@ -204,11 +207,11 @@ namespace GpgME {
const char *passphrase_info,
int last_was_bad, int fd);
- void executeGpgCommand(const QStringList &arguments,
- QByteArray *stdOut,
- QByteArray *stdErr);
+ QProcess * executeGpgCommand(const QStringList &arguments,
+ QByteArray *stdOut,
+ QByteArray *stdErr, const std::function<void(QProcess *)> &interactFunc);
- QString gpgBin;
+ QString gpgExec;
QString gpgKeys;
};
} // namespace GpgME
diff --git a/include/ui/keypair_details/KeyPairDetailTab.h b/include/ui/keypair_details/KeyPairDetailTab.h
index 6d041f97..068849bf 100644
--- a/include/ui/keypair_details/KeyPairDetailTab.h
+++ b/include/ui/keypair_details/KeyPairDetailTab.h
@@ -64,6 +64,8 @@ private slots:
void slotUpdateKeyToServer();
+ void slotGenRevokeCert();
+
private:
QString *keyid; /** The id of the key the details should be shown for */
diff --git a/include/ui/widgets/FilePage.h b/include/ui/widgets/FilePage.h
index 3d2c8e72..45d638fa 100644
--- a/include/ui/widgets/FilePage.h
+++ b/include/ui/widgets/FilePage.h
@@ -57,6 +57,10 @@ private slots:
void onCustomContextMenu(const QPoint &point);
+protected:
+
+ void keyPressEvent(QKeyEvent *event) override;
+
private:
@@ -64,6 +68,7 @@ private:
QTreeView *dirTreeView;
QLineEdit *pathEdit;
QString mPath;
+ QString selectedPath;
QPushButton *upLevelButton;
QPushButton *goPathButton;
diff --git a/resource/ts/gpg_frontend_fr.ts b/resource/ts/gpg_frontend_fr.ts
index 66a85393..7c6f4a85 100644
--- a/resource/ts/gpg_frontend_fr.ts
+++ b/resource/ts/gpg_frontend_fr.ts
@@ -294,52 +294,52 @@
<context>
<name>FilePage</name>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="155"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="161"/>
<source>Open</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="157"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="163"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="159"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="165"/>
<source>Encrypt and Sign</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="161"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="167"/>
<source>Decrypt and Verify</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="163"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="169"/>
<source>Only Sign</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="165"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="171"/>
<source>Only Verify</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="216"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="222"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="217"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="223"/>
<source>Are you sure you want to delete it?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="227"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="233"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="228"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="234"/>
<source>Unable to delete the file or folder.</source>
<translation type="unfinished"></translation>
</message>
@@ -413,32 +413,32 @@
<context>
<name>GpgME::GpgContext</name>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="525"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="528"/>
<source>Wrong password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="533"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="536"/>
<source>Enter Password for</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="537"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="540"/>
<source>Enter Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="692"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="700"/>
<source>Key Selection</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="692"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="700"/>
<source>No Private Key Selected</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="732"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="740"/>
<source>Error in signing:</source>
<translation type="unfinished"></translation>
</message>
@@ -1364,66 +1364,81 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="143"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="144"/>
<source>Key Server Operation (Pubkey)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="164"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="147"/>
+ <source>Generate Revoke Certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="172"/>
<source>Warning: The Master Key has expired.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="167"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="175"/>
<source>Warning: The Master Key has been revoked</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="191"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="199"/>
<source>Exporting private Key</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="192"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="200"/>
<source>&lt;h3&gt;You are about to export your &lt;font color=&quot;red&quot;&gt;PRIVATE KEY&lt;/font&gt;!&lt;/h3&gt;
This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALLY want to export your PRIVATE KEY?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="209"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="217"/>
<source>Export Key To File</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="210"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="218"/>
<source>Key Files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="213"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="221"/>
<source>Export Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="213"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="221"/>
<source>Couldn&apos;t open %1 for writing</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="283"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="291"/>
<source>Never Expire</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="303"/>
- <source>Upload Key Pair</source>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="311"/>
+ <source>Upload Key Pair to Key Server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="305"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="313"/>
<source>Update Key Pair</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="336"/>
+ <source>Generate revocation certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="338"/>
+ <source>Revocation Certificates</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>KeyPairSubkeyTab</name>
@@ -1960,24 +1975,24 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="38"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="117"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="286"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="512"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="689"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="872"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="525"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="702"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="885"/>
<source>No Key Selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="45"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="124"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="519"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="696"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="532"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="709"/>
<source>Invalid Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="46"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="520"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="697"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="533"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="710"/>
<source>The selected key contains a key that does not actually have a encrypt usage.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -1985,25 +2000,27 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="47"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="126"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="300"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="521"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="698"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="886"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="534"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="711"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="899"/>
<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/MainWindowSlotFunction.cpp" line="65"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="541"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="554"/>
<source>Encrypting</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="94"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="368"/>
<source>Function Disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="95"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="369"/>
<source>Please go to the settings interface to enable and configure this function.</source>
<translation type="unfinished"></translation>
</message>
@@ -2014,7 +2031,7 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="142"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="718"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="731"/>
<source>Signing</source>
<translation type="unfinished"></translation>
</message>
@@ -2025,177 +2042,177 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="246"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="803"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="816"/>
<source>Verifying</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="298"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="884"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="897"/>
<source>Invalid KeyPair</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="299"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="885"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="898"/>
<source>The selected keypair cannot be used for signing and encryption at the same time.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="310"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="317"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="896"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="903"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="909"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="916"/>
<source>Incomplete Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="311"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="897"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="910"/>
<source>None of the selected key pairs can provide the encryption function.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="318"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="904"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="917"/>
<source>None of the selected key pairs can provide the signature function.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="335"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="923"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="936"/>
<source>Encrypting and Signing</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="388"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1001"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="401"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1014"/>
<source>Decrypting and Verifying</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="486"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="490"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="494"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="564"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="499"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="503"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="507"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="577"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="581"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="585"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="646"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="662"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="666"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="670"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="744"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="776"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="781"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="785"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="833"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="590"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="594"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="598"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="659"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="675"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="679"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="683"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="757"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="789"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="794"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="798"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="846"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="850"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="854"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="951"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="963"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="967"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="971"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1033"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="859"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="863"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="867"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="964"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="976"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="980"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="984"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1046"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="486"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="577"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="662"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="846"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="499"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="590"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="675"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="859"/>
<source>Select a file before doing it.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="490"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="581"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="666"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="850"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="967"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="503"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="594"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="679"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="863"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="980"/>
<source>No permission to read this file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="494"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="585"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="670"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="854"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="971"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="507"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="598"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="683"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="867"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="984"/>
<source>No permission to create file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="499"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="600"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="676"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="859"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="512"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="613"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="689"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="872"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="500"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="601"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="677"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="860"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="513"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="614"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="690"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="873"/>
<source>The target file already exists, do you need to overwrite it?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="564"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="646"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="744"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="833"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="951"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1033"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="577"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="659"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="757"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="846"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="964"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1046"/>
<source>An error occurred during operation.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="777"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="790"/>
<source>Please select the appropriate target file or signature file. Ensure that both are in this directory.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="781"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="794"/>
<source>No permission to read target file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="785"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="798"/>
<source>No permission to read signature file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="963"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="976"/>
<source>Select a file(.gpg/.asc) before doing it.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1069"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1082"/>
<source>Outdated Version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1070"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1083"/>
<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="1072"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1079"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1085"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1092"/>
<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="1076"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1089"/>
<source>Unreleased Version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1077"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1090"/>
<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>
@@ -2864,58 +2881,58 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="83"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="86"/>
<source> Recipient cannot be empty
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="85"/>
- <source> Recipient&apos;s Email Address is invalid
+ <location filename="../../src/ui/SendMailDialog.cpp" line="91"/>
+ <source> One or more Recipient&apos;s Email Address is invalid
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="88"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="97"/>
<source> Sender cannot be empty
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="90"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="99"/>
<source> Sender&apos;s Email Address is invalid
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="143"/>
- <location filename="../../src/ui/SendMailDialog.cpp" line="148"/>
- <location filename="../../src/ui/SendMailDialog.cpp" line="153"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="155"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="160"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="165"/>
<source>Fail</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="143"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="155"/>
<source>Fail to Connect SMTP Server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="148"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="160"/>
<source>Fail to Login into SMTP Server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="153"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="165"/>
<source>Fail to Send Mail to SMTP Server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="159"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="171"/>
<source>Success</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="159"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="171"/>
<source>Succeed in Sending Mail to SMTP Server</source>
<translation type="unfinished"></translation>
</message>
@@ -3204,7 +3221,8 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/help/AboutDialog.cpp" line="202"/>
+ <location filename="../../src/ui/help/AboutDialog.cpp" line="187"/>
+ <location filename="../../src/ui/help/AboutDialog.cpp" line="209"/>
<source>Latest Version From Github: </source>
<translation type="unfinished"></translation>
</message>
diff --git a/resource/ts/gpg_frontend_ru.ts b/resource/ts/gpg_frontend_ru.ts
index 5a803e6f..5e454214 100644
--- a/resource/ts/gpg_frontend_ru.ts
+++ b/resource/ts/gpg_frontend_ru.ts
@@ -294,52 +294,52 @@
<context>
<name>FilePage</name>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="155"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="161"/>
<source>Open</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="157"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="163"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="159"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="165"/>
<source>Encrypt and Sign</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="161"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="167"/>
<source>Decrypt and Verify</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="163"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="169"/>
<source>Only Sign</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="165"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="171"/>
<source>Only Verify</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="216"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="222"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="217"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="223"/>
<source>Are you sure you want to delete it?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="227"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="233"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="228"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="234"/>
<source>Unable to delete the file or folder.</source>
<translation type="unfinished"></translation>
</message>
@@ -413,32 +413,32 @@
<context>
<name>GpgME::GpgContext</name>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="525"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="528"/>
<source>Wrong password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="533"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="536"/>
<source>Enter Password for</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="537"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="540"/>
<source>Enter Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="692"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="700"/>
<source>Key Selection</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="692"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="700"/>
<source>No Private Key Selected</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="732"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="740"/>
<source>Error in signing:</source>
<translation type="unfinished"></translation>
</message>
@@ -1364,66 +1364,81 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="143"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="144"/>
<source>Key Server Operation (Pubkey)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="164"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="147"/>
+ <source>Generate Revoke Certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="172"/>
<source>Warning: The Master Key has expired.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="167"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="175"/>
<source>Warning: The Master Key has been revoked</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="191"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="199"/>
<source>Exporting private Key</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="192"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="200"/>
<source>&lt;h3&gt;You are about to export your &lt;font color=&quot;red&quot;&gt;PRIVATE KEY&lt;/font&gt;!&lt;/h3&gt;
This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALLY want to export your PRIVATE KEY?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="209"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="217"/>
<source>Export Key To File</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="210"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="218"/>
<source>Key Files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="213"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="221"/>
<source>Export Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="213"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="221"/>
<source>Couldn&apos;t open %1 for writing</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="283"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="291"/>
<source>Never Expire</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="303"/>
- <source>Upload Key Pair</source>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="311"/>
+ <source>Upload Key Pair to Key Server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="305"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="313"/>
<source>Update Key Pair</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="336"/>
+ <source>Generate revocation certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="338"/>
+ <source>Revocation Certificates</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>KeyPairSubkeyTab</name>
@@ -1960,24 +1975,24 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="38"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="117"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="286"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="512"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="689"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="872"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="525"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="702"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="885"/>
<source>No Key Selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="45"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="124"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="519"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="696"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="532"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="709"/>
<source>Invalid Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="46"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="520"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="697"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="533"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="710"/>
<source>The selected key contains a key that does not actually have a encrypt usage.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -1985,25 +2000,27 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="47"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="126"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="300"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="521"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="698"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="886"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="534"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="711"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="899"/>
<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/MainWindowSlotFunction.cpp" line="65"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="541"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="554"/>
<source>Encrypting</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="94"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="368"/>
<source>Function Disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="95"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="369"/>
<source>Please go to the settings interface to enable and configure this function.</source>
<translation type="unfinished"></translation>
</message>
@@ -2014,7 +2031,7 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="142"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="718"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="731"/>
<source>Signing</source>
<translation type="unfinished"></translation>
</message>
@@ -2025,177 +2042,177 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="246"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="803"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="816"/>
<source>Verifying</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="298"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="884"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="897"/>
<source>Invalid KeyPair</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="299"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="885"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="898"/>
<source>The selected keypair cannot be used for signing and encryption at the same time.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="310"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="317"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="896"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="903"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="909"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="916"/>
<source>Incomplete Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="311"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="897"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="910"/>
<source>None of the selected key pairs can provide the encryption function.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="318"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="904"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="917"/>
<source>None of the selected key pairs can provide the signature function.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="335"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="923"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="936"/>
<source>Encrypting and Signing</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="388"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1001"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="401"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1014"/>
<source>Decrypting and Verifying</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="486"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="490"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="494"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="564"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="499"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="503"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="507"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="577"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="581"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="585"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="646"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="662"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="666"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="670"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="744"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="776"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="781"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="785"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="833"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="590"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="594"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="598"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="659"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="675"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="679"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="683"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="757"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="789"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="794"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="798"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="846"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="850"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="854"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="951"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="963"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="967"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="971"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1033"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="859"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="863"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="867"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="964"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="976"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="980"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="984"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1046"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="486"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="577"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="662"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="846"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="499"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="590"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="675"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="859"/>
<source>Select a file before doing it.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="490"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="581"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="666"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="850"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="967"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="503"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="594"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="679"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="863"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="980"/>
<source>No permission to read this file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="494"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="585"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="670"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="854"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="971"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="507"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="598"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="683"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="867"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="984"/>
<source>No permission to create file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="499"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="600"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="676"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="859"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="512"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="613"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="689"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="872"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="500"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="601"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="677"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="860"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="513"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="614"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="690"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="873"/>
<source>The target file already exists, do you need to overwrite it?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="564"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="646"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="744"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="833"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="951"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1033"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="577"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="659"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="757"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="846"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="964"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1046"/>
<source>An error occurred during operation.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="777"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="790"/>
<source>Please select the appropriate target file or signature file. Ensure that both are in this directory.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="781"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="794"/>
<source>No permission to read target file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="785"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="798"/>
<source>No permission to read signature file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="963"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="976"/>
<source>Select a file(.gpg/.asc) before doing it.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1069"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1082"/>
<source>Outdated Version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1070"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1083"/>
<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="1072"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1079"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1085"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1092"/>
<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="1076"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1089"/>
<source>Unreleased Version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1077"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1090"/>
<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>
@@ -2864,58 +2881,58 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="83"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="86"/>
<source> Recipient cannot be empty
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="85"/>
- <source> Recipient&apos;s Email Address is invalid
+ <location filename="../../src/ui/SendMailDialog.cpp" line="91"/>
+ <source> One or more Recipient&apos;s Email Address is invalid
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="88"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="97"/>
<source> Sender cannot be empty
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="90"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="99"/>
<source> Sender&apos;s Email Address is invalid
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="143"/>
- <location filename="../../src/ui/SendMailDialog.cpp" line="148"/>
- <location filename="../../src/ui/SendMailDialog.cpp" line="153"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="155"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="160"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="165"/>
<source>Fail</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="143"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="155"/>
<source>Fail to Connect SMTP Server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="148"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="160"/>
<source>Fail to Login into SMTP Server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="153"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="165"/>
<source>Fail to Send Mail to SMTP Server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="159"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="171"/>
<source>Success</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="159"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="171"/>
<source>Succeed in Sending Mail to SMTP Server</source>
<translation type="unfinished"></translation>
</message>
@@ -3204,7 +3221,8 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/help/AboutDialog.cpp" line="202"/>
+ <location filename="../../src/ui/help/AboutDialog.cpp" line="187"/>
+ <location filename="../../src/ui/help/AboutDialog.cpp" line="209"/>
<source>Latest Version From Github: </source>
<translation type="unfinished"></translation>
</message>
diff --git a/resource/ts/gpgfrontend_en_us.ts b/resource/ts/gpgfrontend_en_us.ts
index a23519e4..093406f9 100644
--- a/resource/ts/gpgfrontend_en_us.ts
+++ b/resource/ts/gpgfrontend_en_us.ts
@@ -294,52 +294,52 @@
<context>
<name>FilePage</name>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="155"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="161"/>
<source>Open</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="157"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="163"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="159"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="165"/>
<source>Encrypt and Sign</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="161"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="167"/>
<source>Decrypt and Verify</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="163"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="169"/>
<source>Only Sign</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="165"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="171"/>
<source>Only Verify</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="216"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="222"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="217"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="223"/>
<source>Are you sure you want to delete it?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="227"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="233"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="228"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="234"/>
<source>Unable to delete the file or folder.</source>
<translation type="unfinished"></translation>
</message>
@@ -413,32 +413,32 @@
<context>
<name>GpgME::GpgContext</name>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="525"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="528"/>
<source>Wrong password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="533"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="536"/>
<source>Enter Password for</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="537"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="540"/>
<source>Enter Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="692"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="700"/>
<source>Key Selection</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="692"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="700"/>
<source>No Private Key Selected</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="732"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="740"/>
<source>Error in signing:</source>
<translation type="unfinished"></translation>
</message>
@@ -1364,66 +1364,81 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="143"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="144"/>
<source>Key Server Operation (Pubkey)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="164"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="147"/>
+ <source>Generate Revoke Certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="172"/>
<source>Warning: The Master Key has expired.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="167"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="175"/>
<source>Warning: The Master Key has been revoked</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="191"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="199"/>
<source>Exporting private Key</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="192"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="200"/>
<source>&lt;h3&gt;You are about to export your &lt;font color=&quot;red&quot;&gt;PRIVATE KEY&lt;/font&gt;!&lt;/h3&gt;
This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALLY want to export your PRIVATE KEY?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="209"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="217"/>
<source>Export Key To File</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="210"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="218"/>
<source>Key Files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="213"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="221"/>
<source>Export Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="213"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="221"/>
<source>Couldn&apos;t open %1 for writing</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="283"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="291"/>
<source>Never Expire</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="303"/>
- <source>Upload Key Pair</source>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="311"/>
+ <source>Upload Key Pair to Key Server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="305"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="313"/>
<source>Update Key Pair</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="336"/>
+ <source>Generate revocation certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="338"/>
+ <source>Revocation Certificates</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>KeyPairSubkeyTab</name>
@@ -1960,24 +1975,24 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="38"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="117"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="286"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="512"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="689"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="872"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="525"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="702"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="885"/>
<source>No Key Selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="45"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="124"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="519"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="696"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="532"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="709"/>
<source>Invalid Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="46"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="520"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="697"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="533"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="710"/>
<source>The selected key contains a key that does not actually have a encrypt usage.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -1985,25 +2000,27 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="47"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="126"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="300"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="521"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="698"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="886"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="534"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="711"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="899"/>
<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/MainWindowSlotFunction.cpp" line="65"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="541"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="554"/>
<source>Encrypting</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="94"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="368"/>
<source>Function Disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="95"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="369"/>
<source>Please go to the settings interface to enable and configure this function.</source>
<translation type="unfinished"></translation>
</message>
@@ -2014,7 +2031,7 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="142"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="718"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="731"/>
<source>Signing</source>
<translation type="unfinished"></translation>
</message>
@@ -2025,177 +2042,177 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="246"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="803"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="816"/>
<source>Verifying</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="298"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="884"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="897"/>
<source>Invalid KeyPair</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="299"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="885"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="898"/>
<source>The selected keypair cannot be used for signing and encryption at the same time.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="310"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="317"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="896"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="903"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="909"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="916"/>
<source>Incomplete Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="311"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="897"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="910"/>
<source>None of the selected key pairs can provide the encryption function.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="318"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="904"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="917"/>
<source>None of the selected key pairs can provide the signature function.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="335"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="923"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="936"/>
<source>Encrypting and Signing</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="388"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1001"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="401"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1014"/>
<source>Decrypting and Verifying</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="486"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="490"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="494"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="564"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="499"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="503"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="507"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="577"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="581"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="585"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="646"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="662"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="666"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="670"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="744"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="776"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="781"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="785"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="833"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="590"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="594"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="598"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="659"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="675"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="679"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="683"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="757"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="789"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="794"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="798"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="846"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="850"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="854"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="951"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="963"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="967"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="971"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1033"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="859"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="863"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="867"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="964"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="976"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="980"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="984"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1046"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="486"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="577"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="662"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="846"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="499"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="590"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="675"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="859"/>
<source>Select a file before doing it.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="490"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="581"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="666"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="850"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="967"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="503"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="594"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="679"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="863"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="980"/>
<source>No permission to read this file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="494"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="585"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="670"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="854"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="971"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="507"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="598"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="683"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="867"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="984"/>
<source>No permission to create file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="499"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="600"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="676"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="859"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="512"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="613"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="689"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="872"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="500"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="601"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="677"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="860"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="513"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="614"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="690"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="873"/>
<source>The target file already exists, do you need to overwrite it?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="564"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="646"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="744"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="833"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="951"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1033"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="577"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="659"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="757"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="846"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="964"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1046"/>
<source>An error occurred during operation.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="777"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="790"/>
<source>Please select the appropriate target file or signature file. Ensure that both are in this directory.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="781"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="794"/>
<source>No permission to read target file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="785"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="798"/>
<source>No permission to read signature file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="963"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="976"/>
<source>Select a file(.gpg/.asc) before doing it.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1069"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1082"/>
<source>Outdated Version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1070"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1083"/>
<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="1072"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1079"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1085"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1092"/>
<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="1076"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1089"/>
<source>Unreleased Version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1077"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1090"/>
<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>
@@ -2864,58 +2881,58 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="83"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="86"/>
<source> Recipient cannot be empty
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="85"/>
- <source> Recipient&apos;s Email Address is invalid
+ <location filename="../../src/ui/SendMailDialog.cpp" line="91"/>
+ <source> One or more Recipient&apos;s Email Address is invalid
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="88"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="97"/>
<source> Sender cannot be empty
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="90"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="99"/>
<source> Sender&apos;s Email Address is invalid
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="143"/>
- <location filename="../../src/ui/SendMailDialog.cpp" line="148"/>
- <location filename="../../src/ui/SendMailDialog.cpp" line="153"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="155"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="160"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="165"/>
<source>Fail</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="143"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="155"/>
<source>Fail to Connect SMTP Server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="148"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="160"/>
<source>Fail to Login into SMTP Server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="153"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="165"/>
<source>Fail to Send Mail to SMTP Server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="159"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="171"/>
<source>Success</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="159"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="171"/>
<source>Succeed in Sending Mail to SMTP Server</source>
<translation type="unfinished"></translation>
</message>
@@ -3204,7 +3221,8 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/help/AboutDialog.cpp" line="202"/>
+ <location filename="../../src/ui/help/AboutDialog.cpp" line="187"/>
+ <location filename="../../src/ui/help/AboutDialog.cpp" line="209"/>
<source>Latest Version From Github: </source>
<translation type="unfinished"></translation>
</message>
diff --git a/resource/ts/gpgfrontend_zh_chs.ts b/resource/ts/gpgfrontend_zh_chs.ts
index 671c8217..bb113ef3 100644
--- a/resource/ts/gpgfrontend_zh_chs.ts
+++ b/resource/ts/gpgfrontend_zh_chs.ts
@@ -294,52 +294,52 @@
<context>
<name>FilePage</name>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="155"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="161"/>
<source>Open</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="157"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="163"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="159"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="165"/>
<source>Encrypt and Sign</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="161"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="167"/>
<source>Decrypt and Verify</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="163"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="169"/>
<source>Only Sign</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="165"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="171"/>
<source>Only Verify</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="216"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="222"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="217"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="223"/>
<source>Are you sure you want to delete it?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="227"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="233"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="228"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="234"/>
<source>Unable to delete the file or folder.</source>
<translation type="unfinished"></translation>
</message>
@@ -413,32 +413,32 @@
<context>
<name>GpgME::GpgContext</name>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="525"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="528"/>
<source>Wrong password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="533"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="536"/>
<source>Enter Password for</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="537"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="540"/>
<source>Enter Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="692"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="700"/>
<source>Key Selection</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="692"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="700"/>
<source>No Private Key Selected</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="732"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="740"/>
<source>Error in signing:</source>
<translation type="unfinished"></translation>
</message>
@@ -1364,66 +1364,81 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="143"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="144"/>
<source>Key Server Operation (Pubkey)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="164"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="147"/>
+ <source>Generate Revoke Certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="172"/>
<source>Warning: The Master Key has expired.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="167"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="175"/>
<source>Warning: The Master Key has been revoked</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="191"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="199"/>
<source>Exporting private Key</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="192"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="200"/>
<source>&lt;h3&gt;You are about to export your &lt;font color=&quot;red&quot;&gt;PRIVATE KEY&lt;/font&gt;!&lt;/h3&gt;
This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALLY want to export your PRIVATE KEY?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="209"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="217"/>
<source>Export Key To File</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="210"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="218"/>
<source>Key Files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="213"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="221"/>
<source>Export Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="213"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="221"/>
<source>Couldn&apos;t open %1 for writing</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="283"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="291"/>
<source>Never Expire</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="303"/>
- <source>Upload Key Pair</source>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="311"/>
+ <source>Upload Key Pair to Key Server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="305"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="313"/>
<source>Update Key Pair</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="336"/>
+ <source>Generate revocation certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="338"/>
+ <source>Revocation Certificates</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>KeyPairSubkeyTab</name>
@@ -1960,24 +1975,24 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="38"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="117"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="286"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="512"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="689"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="872"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="525"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="702"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="885"/>
<source>No Key Selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="45"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="124"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="519"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="696"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="532"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="709"/>
<source>Invalid Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="46"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="520"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="697"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="533"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="710"/>
<source>The selected key contains a key that does not actually have a encrypt usage.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -1985,25 +2000,27 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="47"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="126"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="300"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="521"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="698"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="886"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="534"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="711"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="899"/>
<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/MainWindowSlotFunction.cpp" line="65"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="541"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="554"/>
<source>Encrypting</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="94"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="368"/>
<source>Function Disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="95"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="369"/>
<source>Please go to the settings interface to enable and configure this function.</source>
<translation type="unfinished"></translation>
</message>
@@ -2014,7 +2031,7 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="142"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="718"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="731"/>
<source>Signing</source>
<translation type="unfinished"></translation>
</message>
@@ -2025,177 +2042,177 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="246"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="803"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="816"/>
<source>Verifying</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="298"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="884"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="897"/>
<source>Invalid KeyPair</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="299"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="885"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="898"/>
<source>The selected keypair cannot be used for signing and encryption at the same time.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="310"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="317"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="896"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="903"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="909"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="916"/>
<source>Incomplete Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="311"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="897"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="910"/>
<source>None of the selected key pairs can provide the encryption function.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="318"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="904"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="917"/>
<source>None of the selected key pairs can provide the signature function.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="335"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="923"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="936"/>
<source>Encrypting and Signing</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="388"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1001"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="401"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1014"/>
<source>Decrypting and Verifying</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="486"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="490"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="494"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="564"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="499"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="503"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="507"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="577"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="581"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="585"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="646"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="662"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="666"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="670"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="744"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="776"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="781"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="785"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="833"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="590"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="594"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="598"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="659"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="675"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="679"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="683"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="757"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="789"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="794"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="798"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="846"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="850"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="854"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="951"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="963"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="967"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="971"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1033"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="859"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="863"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="867"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="964"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="976"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="980"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="984"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1046"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="486"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="577"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="662"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="846"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="499"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="590"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="675"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="859"/>
<source>Select a file before doing it.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="490"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="581"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="666"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="850"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="967"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="503"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="594"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="679"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="863"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="980"/>
<source>No permission to read this file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="494"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="585"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="670"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="854"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="971"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="507"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="598"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="683"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="867"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="984"/>
<source>No permission to create file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="499"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="600"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="676"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="859"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="512"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="613"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="689"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="872"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="500"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="601"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="677"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="860"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="513"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="614"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="690"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="873"/>
<source>The target file already exists, do you need to overwrite it?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="564"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="646"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="744"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="833"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="951"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1033"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="577"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="659"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="757"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="846"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="964"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1046"/>
<source>An error occurred during operation.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="777"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="790"/>
<source>Please select the appropriate target file or signature file. Ensure that both are in this directory.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="781"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="794"/>
<source>No permission to read target file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="785"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="798"/>
<source>No permission to read signature file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="963"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="976"/>
<source>Select a file(.gpg/.asc) before doing it.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1069"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1082"/>
<source>Outdated Version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1070"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1083"/>
<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="1072"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1079"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1085"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1092"/>
<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="1076"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1089"/>
<source>Unreleased Version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1077"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1090"/>
<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>
@@ -2864,58 +2881,58 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="83"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="86"/>
<source> Recipient cannot be empty
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="85"/>
- <source> Recipient&apos;s Email Address is invalid
+ <location filename="../../src/ui/SendMailDialog.cpp" line="91"/>
+ <source> One or more Recipient&apos;s Email Address is invalid
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="88"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="97"/>
<source> Sender cannot be empty
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="90"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="99"/>
<source> Sender&apos;s Email Address is invalid
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="143"/>
- <location filename="../../src/ui/SendMailDialog.cpp" line="148"/>
- <location filename="../../src/ui/SendMailDialog.cpp" line="153"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="155"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="160"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="165"/>
<source>Fail</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="143"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="155"/>
<source>Fail to Connect SMTP Server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="148"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="160"/>
<source>Fail to Login into SMTP Server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="153"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="165"/>
<source>Fail to Send Mail to SMTP Server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="159"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="171"/>
<source>Success</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="159"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="171"/>
<source>Succeed in Sending Mail to SMTP Server</source>
<translation type="unfinished"></translation>
</message>
@@ -3204,7 +3221,8 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/help/AboutDialog.cpp" line="202"/>
+ <location filename="../../src/ui/help/AboutDialog.cpp" line="187"/>
+ <location filename="../../src/ui/help/AboutDialog.cpp" line="209"/>
<source>Latest Version From Github: </source>
<translation type="unfinished"></translation>
</message>
diff --git a/resource/ts/gpgfrontend_zh_cht.ts b/resource/ts/gpgfrontend_zh_cht.ts
index 671c8217..bb113ef3 100644
--- a/resource/ts/gpgfrontend_zh_cht.ts
+++ b/resource/ts/gpgfrontend_zh_cht.ts
@@ -294,52 +294,52 @@
<context>
<name>FilePage</name>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="155"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="161"/>
<source>Open</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="157"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="163"/>
<source>Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="159"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="165"/>
<source>Encrypt and Sign</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="161"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="167"/>
<source>Decrypt and Verify</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="163"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="169"/>
<source>Only Sign</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="165"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="171"/>
<source>Only Verify</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="216"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="222"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="217"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="223"/>
<source>Are you sure you want to delete it?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="227"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="233"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/widgets/FilePage.cpp" line="228"/>
+ <location filename="../../src/ui/widgets/FilePage.cpp" line="234"/>
<source>Unable to delete the file or folder.</source>
<translation type="unfinished"></translation>
</message>
@@ -413,32 +413,32 @@
<context>
<name>GpgME::GpgContext</name>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="525"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="528"/>
<source>Wrong password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="533"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="536"/>
<source>Enter Password for</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="537"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="540"/>
<source>Enter Password</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="692"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="700"/>
<source>Key Selection</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="692"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="700"/>
<source>No Private Key Selected</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/gpg/GpgContext.cpp" line="732"/>
+ <location filename="../../src/gpg/GpgContext.cpp" line="740"/>
<source>Error in signing:</source>
<translation type="unfinished"></translation>
</message>
@@ -1364,66 +1364,81 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="143"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="144"/>
<source>Key Server Operation (Pubkey)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="164"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="147"/>
+ <source>Generate Revoke Certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="172"/>
<source>Warning: The Master Key has expired.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="167"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="175"/>
<source>Warning: The Master Key has been revoked</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="191"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="199"/>
<source>Exporting private Key</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="192"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="200"/>
<source>&lt;h3&gt;You are about to export your &lt;font color=&quot;red&quot;&gt;PRIVATE KEY&lt;/font&gt;!&lt;/h3&gt;
This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALLY want to export your PRIVATE KEY?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="209"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="217"/>
<source>Export Key To File</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="210"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="218"/>
<source>Key Files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="213"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="221"/>
<source>Export Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="213"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="221"/>
<source>Couldn&apos;t open %1 for writing</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="283"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="291"/>
<source>Never Expire</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="303"/>
- <source>Upload Key Pair</source>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="311"/>
+ <source>Upload Key Pair to Key Server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="305"/>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="313"/>
<source>Update Key Pair</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="336"/>
+ <source>Generate revocation certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/ui/keypair_details/KeyPairDetailTab.cpp" line="338"/>
+ <source>Revocation Certificates</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>KeyPairSubkeyTab</name>
@@ -1960,24 +1975,24 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="38"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="117"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="286"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="512"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="689"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="872"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="525"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="702"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="885"/>
<source>No Key Selected</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="45"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="124"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="519"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="696"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="532"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="709"/>
<source>Invalid Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="46"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="520"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="697"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="533"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="710"/>
<source>The selected key contains a key that does not actually have a encrypt usage.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -1985,25 +2000,27 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="47"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="126"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="300"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="521"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="698"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="886"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="534"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="711"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="899"/>
<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/MainWindowSlotFunction.cpp" line="65"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="541"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="554"/>
<source>Encrypting</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="94"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="368"/>
<source>Function Disabled</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="95"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="369"/>
<source>Please go to the settings interface to enable and configure this function.</source>
<translation type="unfinished"></translation>
</message>
@@ -2014,7 +2031,7 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="142"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="718"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="731"/>
<source>Signing</source>
<translation type="unfinished"></translation>
</message>
@@ -2025,177 +2042,177 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="246"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="803"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="816"/>
<source>Verifying</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="298"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="884"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="897"/>
<source>Invalid KeyPair</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="299"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="885"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="898"/>
<source>The selected keypair cannot be used for signing and encryption at the same time.&lt;br/&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="310"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="317"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="896"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="903"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="909"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="916"/>
<source>Incomplete Operation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="311"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="897"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="910"/>
<source>None of the selected key pairs can provide the encryption function.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="318"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="904"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="917"/>
<source>None of the selected key pairs can provide the signature function.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="335"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="923"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="936"/>
<source>Encrypting and Signing</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="388"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1001"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="401"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1014"/>
<source>Decrypting and Verifying</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="486"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="490"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="494"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="564"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="499"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="503"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="507"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="577"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="581"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="585"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="646"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="662"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="666"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="670"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="744"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="776"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="781"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="785"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="833"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="590"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="594"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="598"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="659"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="675"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="679"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="683"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="757"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="789"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="794"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="798"/>
<location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="846"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="850"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="854"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="951"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="963"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="967"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="971"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1033"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="859"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="863"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="867"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="964"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="976"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="980"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="984"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1046"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="486"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="577"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="662"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="846"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="499"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="590"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="675"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="859"/>
<source>Select a file before doing it.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="490"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="581"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="666"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="850"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="967"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="503"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="594"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="679"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="863"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="980"/>
<source>No permission to read this file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="494"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="585"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="670"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="854"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="971"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="507"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="598"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="683"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="867"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="984"/>
<source>No permission to create file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="499"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="600"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="676"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="859"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="512"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="613"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="689"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="872"/>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="500"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="601"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="677"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="860"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="513"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="614"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="690"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="873"/>
<source>The target file already exists, do you need to overwrite it?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="564"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="646"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="744"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="833"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="951"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1033"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="577"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="659"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="757"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="846"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="964"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1046"/>
<source>An error occurred during operation.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="777"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="790"/>
<source>Please select the appropriate target file or signature file. Ensure that both are in this directory.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="781"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="794"/>
<source>No permission to read target file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="785"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="798"/>
<source>No permission to read signature file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="963"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="976"/>
<source>Select a file(.gpg/.asc) before doing it.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1069"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1082"/>
<source>Outdated Version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1070"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1083"/>
<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="1072"/>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1079"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1085"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1092"/>
<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="1076"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1089"/>
<source>Unreleased Version</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1077"/>
+ <location filename="../../src/ui/main_window/MainWindowSlotFunction.cpp" line="1090"/>
<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>
@@ -2864,58 +2881,58 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="83"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="86"/>
<source> Recipient cannot be empty
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="85"/>
- <source> Recipient&apos;s Email Address is invalid
+ <location filename="../../src/ui/SendMailDialog.cpp" line="91"/>
+ <source> One or more Recipient&apos;s Email Address is invalid
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="88"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="97"/>
<source> Sender cannot be empty
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="90"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="99"/>
<source> Sender&apos;s Email Address is invalid
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="143"/>
- <location filename="../../src/ui/SendMailDialog.cpp" line="148"/>
- <location filename="../../src/ui/SendMailDialog.cpp" line="153"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="155"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="160"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="165"/>
<source>Fail</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="143"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="155"/>
<source>Fail to Connect SMTP Server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="148"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="160"/>
<source>Fail to Login into SMTP Server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="153"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="165"/>
<source>Fail to Send Mail to SMTP Server</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="159"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="171"/>
<source>Success</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/SendMailDialog.cpp" line="159"/>
+ <location filename="../../src/ui/SendMailDialog.cpp" line="171"/>
<source>Succeed in Sending Mail to SMTP Server</source>
<translation type="unfinished"></translation>
</message>
@@ -3204,7 +3221,8 @@ This is NOT your Public Key, so DON&apos;T give it away.&lt;br /&gt;Do you REALL
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../src/ui/help/AboutDialog.cpp" line="202"/>
+ <location filename="../../src/ui/help/AboutDialog.cpp" line="187"/>
+ <location filename="../../src/ui/help/AboutDialog.cpp" line="209"/>
<source>Latest Version From Github: </source>
<translation type="unfinished"></translation>
</message>
diff --git a/src/gpg/GpgContext.cpp b/src/gpg/GpgContext.cpp
index 7ec521a7..0462433d 100644
--- a/src/gpg/GpgContext.cpp
+++ b/src/gpg/GpgContext.cpp
@@ -24,6 +24,7 @@
#include "gpg/GpgContext.h"
+#include <functional>
#include <unistd.h> /* contains read/write */
#ifdef _WIN32
@@ -72,8 +73,10 @@ namespace GpgME {
<< engineInfo->home_dir << engineInfo->version;
if (engineInfo->protocol == GPGME_PROTOCOL_GPGCONF && strcmp(engineInfo->version, "1.0.0") != 0)
find_gpgconf = true;
- if (engineInfo->protocol == GPGME_PROTOCOL_OpenPGP && strcmp(engineInfo->version, "1.0.0") != 0)
+ if (engineInfo->protocol == GPGME_PROTOCOL_OpenPGP && strcmp(engineInfo->version, "1.0.0") != 0) {
+ gpgExec = engineInfo->file_name;
find_openpgp = true;
+ }
if (engineInfo->protocol == GPGME_PROTOCOL_CMS && strcmp(engineInfo->version, "1.0.0") != 0)
find_cms = true;
if (engineInfo->protocol == GPGME_PROTOCOL_ASSUAN)
@@ -625,20 +628,31 @@ namespace GpgME {
}
/** return type should be gpgme_error_t*/
- void GpgContext::executeGpgCommand(const QStringList &arguments, QByteArray *stdOut, QByteArray *stdErr) {
+ QProcess * GpgContext::executeGpgCommand(const QStringList &arguments, QByteArray *stdOut, QByteArray *stdErr,
+ const std::function<void(QProcess *)> &interactFunc) {
QStringList args;
- args << "--homedir" << gpgKeys << "--batch" << arguments;
+ args << arguments;
+
+ auto *gpgProcess = new QProcess(this);
+ qDebug() << "gpgExec" << gpgExec << args;
- qDebug() << args;
- QProcess gpg;
- // qDebug() << "engine->file_name" << engine->file_name;
+ gpgProcess->setReadChannel(QProcess::StandardOutput);
+ connect(gpgProcess, SIGNAL(finished(int,QProcess::ExitStatus)),
+ gpgProcess, SLOT(deleteLater()));
+ connect(gpgProcess, &QProcess::readyReadStandardOutput, this, [gpgProcess, interactFunc]() {
+ qDebug() << "Function Called" << &gpgProcess;
+ // interactFunc(gpgProcess);
+ });
- gpg.start(gpgBin, args);
- gpg.waitForFinished();
+ gpgProcess->start(gpgExec, args);
- *stdOut = gpg.readAllStandardOutput();
- *stdErr = gpg.readAllStandardError();
- qDebug() << *stdOut;
+ if (gpgProcess->waitForStarted()){
+ qDebug() << "Gpg Process Started Success";
+ } else {
+ qDebug() << "Gpg Process Started Failed";
+ }
+
+ return gpgProcess;
}
/***
@@ -1180,4 +1194,41 @@ namespace GpgME {
}
return true;
}
+
+ QProcess * GpgContext::generateRevokeCert(const GpgKey &key, const QString &outputFileName) {
+ QByteArray out, stdErr;
+ auto process = executeGpgCommand({
+ "--command-fd",
+ "0",
+ "--status-fd", "1",
+ "-o",
+ outputFileName,
+ "--gen-revoke",
+ key.fpr
+ }, &out, &stdErr,
+ [](QProcess *proc) {
+ qDebug() << "Function Called" << proc;
+ while (proc->canReadLine()) {
+ const QString line = QString::fromUtf8(proc->readLine()).trimmed();
+ // Command-fd is a stable interface, while this is all kind of hacky we
+ // are on a deadline :-/
+ if (line == QLatin1String("[GNUPG:] GET_BOOL gen_revoke.okay")) {
+ proc->write("y\n");
+ } else if (line == QLatin1String("[GNUPG:] GET_LINE ask_revocation_reason.code")) {
+ proc->write("0\n");
+ } else if (line == QLatin1String("[GNUPG:] GET_LINE ask_revocation_reason.text")) {
+ proc->write("\n");
+ } else if (line == QLatin1String("[GNUPG:] GET_BOOL openfile.overwrite.okay")) {
+ // We asked before
+ proc->write("y\n");
+ } else if (line == QLatin1String("[GNUPG:] GET_BOOL ask_revocation_reason.okay")) {
+ proc->write("y\n");
+ }
+ }
+ });
+
+ qDebug() << "GenerateRevokeCert Process" << process;
+
+ return process;
+ }
}
diff --git a/src/ui/help/AboutDialog.cpp b/src/ui/help/AboutDialog.cpp
index 4c9b54c9..807c509d 100644
--- a/src/ui/help/AboutDialog.cpp
+++ b/src/ui/help/AboutDialog.cpp
@@ -181,6 +181,13 @@ void UpdateTab::getLatestVersion() {
this->pb->setHidden(true);
+ if(replay->error() != QNetworkReply::NoError) {
+ qDebug() << "VersionCheckThread Found Network Error";
+ auto latestVersion = "Unknown";
+ latestVersionLabel->setText("<center><b>" + tr("Latest Version From Github: ") + latestVersion + "</b></center>");
+ return;
+ }
+
QByteArray bytes = replay->readAll();
Document d;
diff --git a/src/ui/help/VersionCheckThread.cpp b/src/ui/help/VersionCheckThread.cpp
index 7bd0eb8f..c7c77d1c 100644
--- a/src/ui/help/VersionCheckThread.cpp
+++ b/src/ui/help/VersionCheckThread.cpp
@@ -20,6 +20,11 @@ void VersionCheckThread::run() {
QApplication::processEvents();
}
+ if(mNetworkReply->error() != QNetworkReply::NoError) {
+ qDebug() << "VersionCheckThread Found Network Error";
+ return;
+ }
+
QByteArray bytes = mNetworkReply->readAll();
Document d;
diff --git a/src/ui/keypair_details/KeyPairDetailTab.cpp b/src/ui/keypair_details/KeyPairDetailTab.cpp
index f2a3e613..0363ae30 100644
--- a/src/ui/keypair_details/KeyPairDetailTab.cpp
+++ b/src/ui/keypair_details/KeyPairDetailTab.cpp
@@ -23,6 +23,7 @@
*/
#include "ui/keypair_details/KeyPairDetailTab.h"
+#include "ui/WaitingDialog.h"
KeyPairDetailTab::KeyPairDetailTab(GpgME::GpgContext *ctx, const GpgKey &mKey, QWidget *parent) : mKey(mKey), QWidget(parent) {
@@ -140,9 +141,17 @@ KeyPairDetailTab::KeyPairDetailTab(GpgME::GpgContext *ctx, const GpgKey &mKey, Q
vboxPK->addWidget(editExpiresButton);
connect(editExpiresButton, SIGNAL(clicked()), this, SLOT(slotModifyEditDatetime()));
+ auto hBoxLayout = new QHBoxLayout();
auto *keyServerOperaButton = new QPushButton(tr("Key Server Operation (Pubkey)"));
keyServerOperaButton->setStyleSheet("text-align:center;");
- vboxPK->addWidget(keyServerOperaButton);
+
+ auto *revokeCertGenButton = new QPushButton(tr("Generate Revoke Certificate"));
+ connect(revokeCertGenButton, SIGNAL(clicked()), this, SLOT(slotGenRevokeCert()));
+
+ hBoxLayout->addWidget(keyServerOperaButton);
+ hBoxLayout->addWidget(revokeCertGenButton);
+
+ vboxPK->addLayout(hBoxLayout);
connect(keyServerOperaButton, SIGNAL(clicked()), this, SLOT(slotModifyEditDatetime()));
// Set Menu
@@ -300,7 +309,7 @@ void KeyPairDetailTab::slotRefreshKeyInfo() {
void KeyPairDetailTab::createKeyServerOperaMenu() {
keyServerOperaMenu = new QMenu(this);
- auto *uploadKeyPair = new QAction(tr("Upload Key Pair"), this);
+ auto *uploadKeyPair = new QAction(tr("Upload Key Pair to Key Server"), this);
connect(uploadKeyPair, SIGNAL(triggered()), this, SLOT(slotUploadKeyToServer()));
auto *updateKeyPair = new QAction(tr("Update Key Pair"), this);
connect(updateKeyPair, SIGNAL(triggered()), this, SLOT(slotUpdateKeyToServer()));
@@ -324,3 +333,20 @@ void KeyPairDetailTab::slotUpdateKeyToServer() {
dialog->slotImportKey(keys);
}
+void KeyPairDetailTab::slotGenRevokeCert() {
+ auto mOutputFileName = QFileDialog::getSaveFileName(this, tr("Generate revocation certificate"),
+ QString(),
+ QStringLiteral("%1 (*.rev)").arg(tr("Revocation Certificates")));
+
+ auto process = mCtx->generateRevokeCert(mKey, mOutputFileName);
+
+ auto *dialog = new WaitingDialog("Generating", this);
+
+ while(process->state() == QProcess::Running) {
+ QApplication::processEvents();
+ }
+
+ dialog->close();
+
+}
+
diff --git a/src/ui/main_window/MainWindowSlotFunction.cpp b/src/ui/main_window/MainWindowSlotFunction.cpp
index 8a4b786e..4bcee080 100644
--- a/src/ui/main_window/MainWindowSlotFunction.cpp
+++ b/src/ui/main_window/MainWindowSlotFunction.cpp
@@ -398,7 +398,7 @@ void MainWindow::slotDecryptVerify() {
connect(thread, SIGNAL(finished(QPrivateSignal)), thread, SLOT(deleteLater()));
thread->start();
- WaitingDialog *dialog = new WaitingDialog(tr("Decrypting and Verifying"), this);
+ auto *dialog = new WaitingDialog(tr("Decrypting and Verifying"), this);
while (thread->isRunning()) {
QApplication::processEvents();
}
diff --git a/src/ui/widgets/FilePage.cpp b/src/ui/widgets/FilePage.cpp
index 65755509..b9602d58 100644
--- a/src/ui/widgets/FilePage.cpp
+++ b/src/ui/widgets/FilePage.cpp
@@ -105,17 +105,22 @@ FilePage::FilePage(QWidget *parent) : QWidget(parent) {
}
void FilePage::fileTreeViewItemClicked(const QModelIndex &index) {
- mPath = dirModel->fileInfo(index).absoluteFilePath();
- qDebug() << "mPath" << mPath;
+ selectedPath = dirModel->fileInfo(index).absoluteFilePath();
+ qDebug() << "selectedPath" << selectedPath;
}
void FilePage::slotUpLevel() {
QModelIndex currentRoot = dirTreeView->rootIndex();
- mPath = dirModel->fileInfo(currentRoot.parent()).absoluteFilePath();
- auto fileInfo = QFileInfo(mPath);
+
+ mPath = dirModel->fileInfo(currentRoot).absoluteFilePath();
+ QDir dir(mPath);
+ dir.makeAbsolute();
+ dir.setPath(QDir::cleanPath(dir.filePath(QStringLiteral(".."))));
+ mPath = dir.absolutePath();
+ auto fileInfo = QFileInfo(dir.absolutePath());
if(fileInfo.isDir() && fileInfo.isReadable() && fileInfo.isExecutable()) {
- dirTreeView->setRootIndex(currentRoot.parent());
pathEdit->setText(mPath);
+ slotGoPath();
}
qDebug() << "Current Root mPath" << mPath;
emit pathChanged(mPath);
@@ -124,8 +129,9 @@ void FilePage::slotUpLevel() {
void FilePage::fileTreeViewItemDoubleClicked(const QModelIndex &index) {
mPath = dirModel->fileInfo(index).absoluteFilePath();
auto fileInfo = QFileInfo(mPath);
+ auto targetModelIndex = dirTreeView->model()->index(index.row(), 0, index.parent());
if(fileInfo.isDir() && fileInfo.isReadable() && fileInfo.isExecutable()) {
- dirTreeView->setRootIndex(index);
+ dirTreeView->setRootIndex(targetModelIndex);
pathEdit->setText(mPath);
}
qDebug() << "Index mPath" << mPath;
@@ -133,7 +139,7 @@ void FilePage::fileTreeViewItemDoubleClicked(const QModelIndex &index) {
}
QString FilePage::getSelected() const {
- return mPath;
+ return selectedPath;
}
void FilePage::slotGoPath() {
@@ -177,10 +183,10 @@ void FilePage::createPopupMenu() {
void FilePage::onCustomContextMenu(const QPoint &point) {
QModelIndex index = dirTreeView->indexAt(point);
- mPath = dirModel->fileInfo(index).absoluteFilePath();
- qDebug() << "Right Click" << mPath;
+ selectedPath = dirModel->fileInfo(index).absoluteFilePath();
+ qDebug() << "Right Click" << selectedPath;
if (index.isValid()) {
- QFileInfo info(mPath);
+ QFileInfo info(selectedPath);
encryptItemAct->setEnabled(info.isFile() && (info.suffix() != "gpg" && info.suffix() != "sig"));
decryptItemAct->setEnabled(info.isFile() && info.suffix() == "gpg");
signItemAct->setEnabled(info.isFile() && (info.suffix() != "gpg" && info.suffix() != "sig"));
@@ -252,3 +258,10 @@ void FilePage::slotVerifyItem() {
if(mainWindow != nullptr)
mainWindow->slotFileVerify();
}
+
+void FilePage::keyPressEvent(QKeyEvent *event) {
+ qDebug() << "Key Press" << event->key();
+ if(event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) {
+ slotGoPath();
+ }
+}
diff --git a/src/ui/widgets/TextEdit.cpp b/src/ui/widgets/TextEdit.cpp
index c9968565..eab0f799 100644
--- a/src/ui/widgets/TextEdit.cpp
+++ b/src/ui/widgets/TextEdit.cpp
@@ -637,7 +637,7 @@ void TextEdit::slotFilePagePathChanged(const QString &path) {
int index = tabWidget->currentIndex();
QString mPath;
QFileInfo fileInfo(path);
- QString tPath = fileInfo.path();
+ QString tPath = fileInfo.absoluteFilePath();
if (path.size() > 18) {
mPath = tPath.mid(tPath.size() - 18, 18).prepend("...");
} else {