diff options
author | Gregor Kleen <gkleen@yggdrasil.li> | 2025-09-02 20:56:37 +0200 |
---|---|---|
committer | Gregor Kleen <gkleen@yggdrasil.li> | 2025-09-02 20:56:37 +0200 |
commit | cc84ab2289381038f483f06963374aa0247f6724 (patch) | |
tree | f60dda5bf4efb447a47a5065081ccd9169ccef48 /accounts/gkleen@sif/shell/quickshell-plugins/FileSelector.hpp | |
parent | aff71d6f9f3cc5c9217ee0cb4fa6c66f978e2b36 (diff) | |
download | nixos-cc84ab2289381038f483f06963374aa0247f6724.tar nixos-cc84ab2289381038f483f06963374aa0247f6724.tar.gz nixos-cc84ab2289381038f483f06963374aa0247f6724.tar.bz2 nixos-cc84ab2289381038f483f06963374aa0247f6724.tar.xz nixos-cc84ab2289381038f483f06963374aa0247f6724.zip |
...quickshell
Diffstat (limited to 'accounts/gkleen@sif/shell/quickshell-plugins/FileSelector.hpp')
-rw-r--r-- | accounts/gkleen@sif/shell/quickshell-plugins/FileSelector.hpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/accounts/gkleen@sif/shell/quickshell-plugins/FileSelector.hpp b/accounts/gkleen@sif/shell/quickshell-plugins/FileSelector.hpp new file mode 100644 index 00000000..72c4f2a7 --- /dev/null +++ b/accounts/gkleen@sif/shell/quickshell-plugins/FileSelector.hpp | |||
@@ -0,0 +1,52 @@ | |||
1 | #pragma once | ||
2 | |||
3 | #include <filesystem> | ||
4 | #include <chrono> | ||
5 | #include <set> | ||
6 | #include <optional> | ||
7 | |||
8 | #include <QObject> | ||
9 | #include <QTimer> | ||
10 | |||
11 | #include <qqmlintegration.h> | ||
12 | |||
13 | class FileSelector : public QObject { | ||
14 | Q_OBJECT; | ||
15 | Q_PROPERTY(QString directory READ directory WRITE setDirectory NOTIFY directoryChanged REQUIRED); | ||
16 | Q_PROPERTY(unsigned int epoch READ epoch WRITE setEpoch NOTIFY epochChanged REQUIRED); | ||
17 | Q_PROPERTY(QString seed READ seed WRITE setSeed NOTIFY seedChanged); | ||
18 | Q_PROPERTY(QString selected READ selected NOTIFY selectedChanged); | ||
19 | QML_ELEMENT; | ||
20 | |||
21 | public: | ||
22 | explicit FileSelector(QObject* parent = nullptr); | ||
23 | |||
24 | QString directory() const; | ||
25 | void setDirectory(QString directory); | ||
26 | |||
27 | unsigned int epoch() const; | ||
28 | void setEpoch(unsigned int epoch); | ||
29 | |||
30 | QString seed() const; | ||
31 | void setSeed(QString seed); | ||
32 | |||
33 | QString selected() const; | ||
34 | |||
35 | signals: | ||
36 | void directoryChanged(); | ||
37 | void epochChanged(); | ||
38 | void seedChanged(); | ||
39 | void selectedChanged(); | ||
40 | |||
41 | private slots: | ||
42 | void onTimeout(); | ||
43 | |||
44 | private: | ||
45 | std::optional<std::filesystem::path> mDirectory; | ||
46 | std::optional<std::chrono::milliseconds> mEpoch; | ||
47 | std::set<std::filesystem::path> mFiles; | ||
48 | QString mSeed; | ||
49 | QTimer timer; | ||
50 | |||
51 | void update(); | ||
52 | }; | ||