aboutsummaryrefslogtreecommitdiffstats
path: root/include/ui/widgets/KeyList.h
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2021-05-23 16:45:30 +0000
committerSaturneric <[email protected]>2021-05-23 16:45:30 +0000
commit40634e042d39e3537a3cfa1a2dfb6a8203a7d6ab (patch)
tree0535b4213b5bf69febf90f0a4d2b515ab2a15c34 /include/ui/widgets/KeyList.h
parentEnhance code robustness; (diff)
downloadGpgFrontend-40634e042d39e3537a3cfa1a2dfb6a8203a7d6ab.tar.gz
GpgFrontend-40634e042d39e3537a3cfa1a2dfb6a8203a7d6ab.zip
Declare and Define getSigners;
Expand KeyList; Project's Files Structure Modified; Signed-off-by: Saturneric <[email protected]>
Diffstat (limited to 'include/ui/widgets/KeyList.h')
-rw-r--r--include/ui/widgets/KeyList.h116
1 files changed, 116 insertions, 0 deletions
diff --git a/include/ui/widgets/KeyList.h b/include/ui/widgets/KeyList.h
new file mode 100644
index 00000000..6af54518
--- /dev/null
+++ b/include/ui/widgets/KeyList.h
@@ -0,0 +1,116 @@
+/**
+ * This file is part of GPGFrontend.
+ *
+ * GPGFrontend is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Foobar is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <https://www.gnu.org/licenses/>.
+ *
+ * The initial version of the source code is inherited from gpg4usb-team.
+ * Their source code version also complies with GNU General Public License.
+ *
+ * The source code version of this software was modified and released
+ * by Saturneric<[email protected]> starting on May 12, 2021.
+ *
+ */
+
+#ifndef __KEYLIST_H__
+#define __KEYLIST_H__
+
+#include "gpg/GpgContext.h"
+#include "ui/KeyImportDetailDialog.h"
+
+
+struct KeyListRow {
+
+ using KeyType = unsigned int;
+
+ static const KeyType SECRET_OR_PUBLIC_KEY = 0;
+ static const KeyType ONLY_SECRET_KEY = 1;
+
+};
+
+struct KeyListColumn {
+
+ using InfoType = unsigned int;
+
+ static constexpr InfoType ALL = ~0;
+ static constexpr InfoType TYPE = 1 << 0;
+ static constexpr InfoType NAME = 1 << 1;
+ static constexpr InfoType EmailAddress = 1 << 2;
+ static constexpr InfoType Usage = 1 << 3;
+ static constexpr InfoType Validity = 1 << 4;
+ static constexpr InfoType FingerPrint = 1 << 5;
+
+};
+
+
+class KeyList : public QWidget {
+Q_OBJECT
+
+public:
+
+ explicit KeyList(GpgME::GpgContext *ctx,
+ KeyListRow::KeyType selectType = KeyListRow::SECRET_OR_PUBLIC_KEY,
+ KeyListColumn::InfoType infoType = KeyListColumn::ALL,
+ QWidget *parent = nullptr);
+
+ void setColumnWidth(int row, int size);
+
+ void addMenuAction(QAction *act);
+
+ QStringList *getChecked();
+
+ QStringList *getPrivateChecked();
+
+ QStringList *getAllPrivateKeys();
+
+ void setChecked(QStringList *keyIds);
+
+ //QStringList *getPrivateChecked();
+ QStringList *getSelected();
+
+ [[maybe_unused]] static void markKeys(QStringList *keyIds);
+
+ [[maybe_unused]] bool containsPrivateKeys();
+
+public slots:
+
+ void slotRefresh();
+
+ void uploadKeyToServer(QByteArray *keys);
+
+private:
+ void importKeys(QByteArray inBuffer);
+
+ GpgME::GpgContext *mCtx;
+ QTableWidget *mKeyList;
+ QMenu *popupMenu;
+ QNetworkAccessManager *qnam{};
+ QVector<GpgKey> buffered_keys;
+ KeyListRow::KeyType mSelectType;
+ KeyListColumn::InfoType mInfoType;
+
+
+private slots:
+
+ void uploadFinished();
+
+
+protected:
+ void contextMenuEvent(QContextMenuEvent *event) override;
+
+ void dragEnterEvent(QDragEnterEvent *event) override;
+
+ void dropEvent(QDropEvent *event) override;
+};
+
+#endif // __KEYLIST_H__