summaryrefslogtreecommitdiff
path: root/accounts/gkleen@sif/shell/quickshell-plugins
diff options
context:
space:
mode:
Diffstat (limited to 'accounts/gkleen@sif/shell/quickshell-plugins')
-rw-r--r--accounts/gkleen@sif/shell/quickshell-plugins/Chrono.cpp12
-rw-r--r--accounts/gkleen@sif/shell/quickshell-plugins/Chrono.hpp11
2 files changed, 8 insertions, 15 deletions
diff --git a/accounts/gkleen@sif/shell/quickshell-plugins/Chrono.cpp b/accounts/gkleen@sif/shell/quickshell-plugins/Chrono.cpp
index 929b7be6..df0c5781 100644
--- a/accounts/gkleen@sif/shell/quickshell-plugins/Chrono.cpp
+++ b/accounts/gkleen@sif/shell/quickshell-plugins/Chrono.cpp
@@ -75,14 +75,10 @@ void Chrono::schedule(const std::chrono::time_point<std::chrono::system_clock>&
75 this->timer.start(delay); 75 this->timer.start(delay);
76} 76}
77 77
78QString Chrono::format() const { return this->mFormat; } 78QString Chrono::format(const QString& fmt) const {
79void Chrono::setFormat(QString format) { 79 return QString::fromStdString(std::format(std::runtime_format(fmt.toStdString()), std::chrono::zoned_time(std::chrono::current_zone(), std::chrono::time_point_cast<std::chrono::seconds>(this->currentTime))));
80 if (format == this->mFormat) return;
81 this->mFormat = format;
82 emit this->formatChanged();
83 this->update();
84} 80}
85 81
86QString Chrono::date() const { 82QDateTime Chrono::date() const {
87 return QString::fromStdString(std::format(std::runtime_format(this->mFormat.toStdString()), std::chrono::zoned_time(std::chrono::current_zone(), std::chrono::time_point_cast<std::chrono::seconds>(this->currentTime)))); 83 return QDateTime::fromStdTimePoint(std::chrono::time_point_cast<std::chrono::milliseconds>(this->currentTime));
88} 84}
diff --git a/accounts/gkleen@sif/shell/quickshell-plugins/Chrono.hpp b/accounts/gkleen@sif/shell/quickshell-plugins/Chrono.hpp
index 788fa88e..4d06007d 100644
--- a/accounts/gkleen@sif/shell/quickshell-plugins/Chrono.hpp
+++ b/accounts/gkleen@sif/shell/quickshell-plugins/Chrono.hpp
@@ -1,5 +1,6 @@
1#pragma once 1#pragma once
2 2
3#include <QDateTime>
3#include <QObject> 4#include <QObject>
4#include <QTimer> 5#include <QTimer>
5 6
@@ -10,8 +11,7 @@ class Chrono : public QObject {
10 Q_OBJECT; 11 Q_OBJECT;
11 Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged); 12 Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged);
12 Q_PROPERTY(Chrono::Precision precision READ precision WRITE setPrecision NOTIFY precisionChanged); 13 Q_PROPERTY(Chrono::Precision precision READ precision WRITE setPrecision NOTIFY precisionChanged);
13 Q_PROPERTY(QString format READ format WRITE setFormat NOTIFY formatChanged); 14 Q_PROPERTY(QDateTime date READ date NOTIFY dateChanged)
14 Q_PROPERTY(QString date READ date NOTIFY dateChanged);
15 QML_ELEMENT; 15 QML_ELEMENT;
16 16
17public: 17public:
@@ -30,15 +30,13 @@ public:
30 Chrono::Precision precision() const; 30 Chrono::Precision precision() const;
31 void setPrecision(Chrono::Precision precision); 31 void setPrecision(Chrono::Precision precision);
32 32
33 QString format() const; 33 Q_INVOKABLE QString format(const QString& fmt) const;
34 void setFormat (QString format);
35 34
36 QString date() const; 35 QDateTime date() const;
37 36
38signals: 37signals:
39 void enabledChanged(); 38 void enabledChanged();
40 void precisionChanged(); 39 void precisionChanged();
41 void formatChanged();
42 void dateChanged(); 40 void dateChanged();
43 41
44private slots: 42private slots:
@@ -47,7 +45,6 @@ private slots:
47private: 45private:
48 bool mEnabled = true; 46 bool mEnabled = true;
49 Chrono::Precision mPrecision = Chrono::Seconds; 47 Chrono::Precision mPrecision = Chrono::Seconds;
50 QString mFormat = "{:%c}";
51 QTimer timer; 48 QTimer timer;
52 std::chrono::time_point<std::chrono::system_clock> currentTime, targetTime; 49 std::chrono::time_point<std::chrono::system_clock> currentTime, targetTime;
53 50