blob: 9e3bf3b024230a2fbdc664a421ea8f3d9304c90c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
#ifndef MO_STATUSBAR_H
#define MO_STATUSBAR_H
#include <QProgressBar>
#include <QStatusBar>
struct APIStats;
class APIUserAccount;
class Settings;
class OrganizerCore;
namespace Ui
{
class MainWindow;
}
class StatusBarAction : public QWidget
{
public:
StatusBarAction(QAction* action);
void set(bool visible);
protected:
void mouseDoubleClickEvent(QMouseEvent* e) override;
private:
QAction* m_action;
QLabel* m_icon;
QLabel* m_text;
QString cleanupActionText(const QString& s) const;
};
class StatusBar : public QStatusBar
{
Q_OBJECT;
public:
StatusBar(QWidget* parent = nullptr);
void setup(Ui::MainWindow* ui, const Settings& settings);
void setProgress(int percent);
void setNotifications(bool hasNotifications);
void setAPI(const APIStats& stats, const APIUserAccount& user);
void setUpdateAvailable(bool b);
void checkSettings(const Settings& settings);
void updateNormalMessage(OrganizerCore& core);
protected:
void showEvent(QShowEvent* e);
void hideEvent(QHideEvent* e);
private:
Ui::MainWindow* ui;
QLabel* m_normal;
QProgressBar* m_progress;
QWidget* m_progressSpacer1;
QWidget* m_progressSpacer2;
StatusBarAction* m_notifications;
StatusBarAction* m_update;
QLabel* m_api;
void visibilityChanged(bool visible);
};
#endif // MO_STATUSBAR_H
|