File indexing completed on 2024-04-21 05:30:52

0001 /*
0002     SPDX-FileCopyrightText: 2018 Michail Vourlakos <mvourlakos@gmail.com>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #ifndef BACKGROUNDTRACKER_H
0007 #define BACKGROUNDTRACKER_H
0008 
0009 // Qt
0010 #include <QObject>
0011 
0012 // Plasma
0013 #include <Plasma>
0014 
0015 namespace Latte{
0016 
0017 class BackgroundTracker: public QObject
0018 {
0019     Q_OBJECT
0020 
0021     Q_PROPERTY(bool isBusy READ isBusy NOTIFY isBusyChanged)
0022 
0023     Q_PROPERTY(int location READ location WRITE setLocation NOTIFY locationChanged)
0024 
0025     Q_PROPERTY(float currentBrightness READ currentBrightness NOTIFY currentBrightnessChanged)
0026 
0027     Q_PROPERTY(QString activity READ activity WRITE setActivity NOTIFY activityChanged)
0028     Q_PROPERTY(QString screenName READ screenName WRITE setScreenName NOTIFY screenNameChanged)
0029 
0030 public:
0031     BackgroundTracker(QObject *parent = nullptr);
0032     virtual ~BackgroundTracker();
0033 
0034     bool isBusy() const;
0035 
0036     int location() const;
0037     void setLocation(int location);
0038 
0039     float currentBrightness() const;
0040 
0041     QString activity() const;
0042     void setActivity(QString id);
0043 
0044     QString screenName() const;
0045     void setScreenName(QString name);
0046 
0047 signals:
0048     void activityChanged();
0049     void currentBrightnessChanged();
0050     void isBusyChanged();
0051     void locationChanged();
0052     void screenNameChanged();
0053 
0054 private slots:
0055     void backgroundChanged(const QString &activity, const QString &screenName);
0056     void update();
0057 
0058 private:
0059     // local
0060     bool m_busy{false};
0061     float m_brightness{-1000};
0062 
0063     // Qt
0064     QString m_activity;
0065     QString m_screenName;
0066 
0067     // Plasma
0068     Plasma::Types::Location m_location{Plasma::Types::BottomEdge};
0069 
0070 };
0071 
0072 }
0073 
0074 #endif