QtPass 1.7.0
Multi-platform GUI for pass, the standard unix password manager.
Loading...
Searching...
No Matches
qtpass.h
1// SPDX-FileCopyrightText: 2018 Anne Jan Brouwer
2// SPDX-License-Identifier: GPL-3.0-or-later
3#ifndef SRC_QTPASS_H_
4#define SRC_QTPASS_H_
5
6#include <QDialog>
7#include <QMimeData>
8#include <QObject>
9#include <QPixmap>
10#include <QProcess>
11#include <QTimer>
12
13class MainWindow;
14class Pass;
15
22auto buildClipboardMimeData(const QString &text) -> QMimeData *;
23
29static inline auto dwordBytes(quint32 value) -> QByteArray {
30 return QByteArray(reinterpret_cast<const char *>(&value), sizeof(value));
31}
32
38class QtPass : public QObject {
39 Q_OBJECT
40
41public:
46 QtPass(MainWindow *mainWindow);
47 ~QtPass();
48
53 auto init() -> bool;
54
61 void setClippedText(const QString &text, const QString &p_output = QString());
62
67
72
77 auto isFreshStart() -> bool { return this->freshStart; }
78
83 void setFreshStart(const bool &fs) { this->freshStart = fs; }
84
85private:
86 MainWindow *m_mainWindow;
87
88 QProcess fusedav;
89
90 QTimer clearClipboardTimer;
91 QString clippedText;
92 bool freshStart;
93
94 void setMainWindow();
95 void connectPassSignalHandlers(Pass *pass);
96 void mountWebDav();
97
98signals:
99
100public slots:
105
110 void copyTextToClipboard(const QString &text);
111
116 void showTextAsQRCode(const QString &text);
117
118public:
124 static QDialog *createQRCodePopup(const QPixmap &image);
125
126private slots:
127 void processError(QProcess::ProcessError);
128 void processErrorExit(int exitCode, const QString &);
129 void processFinished(const QString &, const QString &);
130
131 void passStoreChanged(const QString &, const QString &);
132 void passShowHandlerFinished(QString output);
133
134 void doGitPush();
135 void finishedInsert(const QString &, const QString &);
136 void onKeyGenerationComplete(const QString &p_output,
137 const QString &p_errout);
138
139 void showInTextBrowser(QString output, const QString &prefix = QString(),
140 const QString &postfix = QString());
141};
142
143#endif // SRC_QTPASS_H_
Main application window orchestrating UI, user interactions, and external process handlers.
Definition mainwindow.h:45
Abstract base class for password store operations.
Definition pass.h:50
void clearClippedText()
Remove any stored clipped text value.
void setClipboardTimer()
Configure and start the clipboard-clear timer.
auto isFreshStart() -> bool
Return whether this instance is in a fresh-start state.
Definition qtpass.h:77
void setClippedText(const QString &text, const QString &p_output=QString())
Update the tracked clipped text value.
void clearClipboard()
Clear the system clipboard contents immediately.
void setFreshStart(const bool &fs)
Set the fresh-start state.
Definition qtpass.h:83
static QDialog * createQRCodePopup(const QPixmap &image)
Create a modal dialog configured to display the given QR code.
QtPass(MainWindow *mainWindow)
Construct a QtPass instance associated with the given main window.
void copyTextToClipboard(const QString &text)
Copy text into the system clipboard.
auto init() -> bool
Initialize internal state and signal connections.
void showTextAsQRCode(const QString &text)
Request display of text as a QR code in the UI.