comparison include/core/session.h @ 315:34347fd2a2de

session: allow printing status messages ...!
author Paper <paper@paper.us.eu.org>
date Tue, 11 Jun 2024 14:16:40 -0400
parents ac1451035c85
children d928ec7b6a0d
comparison
equal deleted inserted replaced
314:76d7315504c4 315:34347fd2a2de
2 #define MINORI_CORE_SESSION_H_ 2 #define MINORI_CORE_SESSION_H_
3 3
4 #include "core/config.h" 4 #include "core/config.h"
5 #include "gui/locale.h" 5 #include "gui/locale.h"
6 6
7 #include <QObject>
7 #include <QElapsedTimer> 8 #include <QElapsedTimer>
8 9
9 #include "semver/semver.hpp" 10 #include "semver/semver.hpp"
10 11
11 #include <atomic> 12 #include <atomic>
13 #include <string>
12 14
13 struct Session { 15 class MainWindow;
16
17 struct Session : public QObject {
18 Q_OBJECT
19
14 public: 20 public:
15 Session() { timer.start(); } 21 Session();
22
23 void SetMainWindow(MainWindow* window);
24
25 void SetStatusBar(const std::string& message);
26
16 /* we literally *cannot* be lying to the user by doing this */ 27 /* we literally *cannot* be lying to the user by doing this */
17 void IncrementRequests() { requests++; }; 28 void IncrementRequests();
18 unsigned int GetRequests() { return requests; }; 29 unsigned int GetRequests();
19 int uptime() { return timer.elapsed(); } 30 int uptime();
20 31
21 Config config; 32 Config config;
22 static constexpr semver::version version{PACKAGE_VERSION}; 33 static constexpr semver::version version{PACKAGE_VERSION};
23 34
35 signals:
36 void StatusBarChange(const std::string& message);
37
24 private: 38 private:
25 /* IncrementRequests() gets called by different threads */ 39 /* IncrementRequests() gets called by different threads */
26 std::atomic<unsigned int> requests = 0; 40 std::atomic<unsigned int> requests_ = 0;
27 QElapsedTimer timer; 41 QElapsedTimer timer_;
42 MainWindow* window_;
28 }; 43 };
29 44
30 extern Session session; 45 extern Session session;
31 46
32 #endif // MINORI_CORE_SESSION_H_ 47 #endif // MINORI_CORE_SESSION_H_