tsafe.h - sailfish-safe - Sailfish frontend for safe(1)
(HTM) git clone git://git.z3bra.org/sailfish-safe.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
tsafe.h (1697B)
---
1 #ifndef SAFE_H
2 #define SAFE_H
3
4 #include <QObject>
5 #include <QVector>
6
7 namespace Safe
8 {
9 class LockTask;
10 class UnlockTask;
11 class DecryptTask;
12 class EncryptTask;
13
14 LockTask *lock();
15 UnlockTask *unlock(const QString &passphrase);
16 DecryptTask *decrypt(const QString &file);
17 EncryptTask *encrypt(const QString &data, const QString &file);
18
19
20 class Task : public QObject {
21 Q_OBJECT
22 public:
23 bool error() const;
24 QString errorString() const;
25
26 Q_SIGNALS:
27 void finished();
28
29 protected:
30 explicit Task(QObject *parent = nullptr);
31
32 virtual void run() = 0;
33
34 void setError(const QString &error);
35
36 private Q_SLOTS:
37 void start();
38
39 private:
40 QString mError;
41 };
42
43 class LockTask : public Task {
44 Q_OBJECT
45 friend LockTask *Safe::lock();
46 public:
47 QString content() const;
48
49 protected:
50 void run() override;
51
52 private:
53 LockTask();
54 };
55
56 class UnlockTask : public Task {
57 Q_OBJECT
58 friend UnlockTask *Safe::unlock(const QString &);
59 public:
60 QString content() const;
61
62 protected:
63 void run() override;
64
65 private:
66 UnlockTask(const QString &passphrase);
67
68 QString mPassphrase;
69 };
70
71 class DecryptTask : public Task {
72 Q_OBJECT
73 friend DecryptTask *Safe::decrypt(const QString &);
74 public:
75 QString content() const;
76
77 protected:
78 void run() override;
79
80 private:
81 DecryptTask(const QString &file);
82
83 QString mFile;
84 QString mContent;
85 };
86
87 class EncryptTask : public Task {
88 Q_OBJECT
89 friend EncryptTask *Safe::encrypt(const QString &, const QString &);
90 protected:
91 void run() override;
92
93 private:
94 EncryptTask(const QString &file, const QString &content);
95
96 QString mFile;
97 QString mContent;
98 };
99
100 } // namespace Safe
101
102 #endif // SAFE_H