File indexing completed on 2025-02-16 08:15:59
0001 /* 0002 SPDX-FileCopyrightText: 2018 Michail Vourlakos <mvourlakos@gmail.com> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #include "backgroundtracker.h" 0007 0008 // local 0009 #include "plasma/extended/backgroundcache.h" 0010 0011 namespace Latte { 0012 0013 BackgroundTracker::BackgroundTracker(QObject *parent) 0014 : QObject(parent) 0015 { 0016 connect(this, &BackgroundTracker::activityChanged, this, &BackgroundTracker::update); 0017 connect(this, &BackgroundTracker::locationChanged, this, &BackgroundTracker::update); 0018 connect(this, &BackgroundTracker::screenNameChanged, this, &BackgroundTracker::update); 0019 0020 connect(PlasmaExtended::BackgroundCache::self(), &PlasmaExtended::BackgroundCache::backgroundChanged, this, &BackgroundTracker::backgroundChanged); 0021 } 0022 0023 BackgroundTracker::~BackgroundTracker() 0024 { 0025 } 0026 0027 bool BackgroundTracker::isBusy() const 0028 { 0029 return m_busy; 0030 } 0031 0032 int BackgroundTracker::location() const 0033 { 0034 return m_location; 0035 } 0036 0037 void BackgroundTracker::setLocation(int location) 0038 { 0039 Plasma::Types::Location pLocation = static_cast<Plasma::Types::Location>(location); 0040 0041 if (m_location == pLocation) { 0042 return; 0043 } 0044 0045 m_location = pLocation; 0046 0047 emit locationChanged(); 0048 } 0049 0050 float BackgroundTracker::currentBrightness() const 0051 { 0052 return m_brightness; 0053 } 0054 0055 QString BackgroundTracker::activity() const 0056 { 0057 return m_activity; 0058 } 0059 0060 void BackgroundTracker::setActivity(QString id) 0061 { 0062 if (m_activity == id) { 0063 return; 0064 } 0065 0066 m_activity = id; 0067 0068 emit activityChanged(); 0069 } 0070 0071 QString BackgroundTracker::screenName() const 0072 { 0073 return m_screenName; 0074 } 0075 0076 void BackgroundTracker::setScreenName(QString name) 0077 { 0078 if (m_screenName == name) { 0079 return; 0080 } 0081 0082 m_screenName = name; 0083 0084 emit screenNameChanged(); 0085 } 0086 0087 void BackgroundTracker::backgroundChanged(const QString &activity, const QString &screenName) 0088 { 0089 if (m_activity==activity && m_screenName==screenName) { 0090 update(); 0091 } 0092 } 0093 0094 void BackgroundTracker::update() 0095 { 0096 if (m_activity.isEmpty() || m_screenName.isEmpty()) { 0097 return; 0098 } 0099 0100 m_brightness = PlasmaExtended::BackgroundCache::self()->brightnessFor(m_activity, m_screenName, m_location); 0101 m_busy = PlasmaExtended::BackgroundCache::self()->busyFor(m_activity, m_screenName, m_location); 0102 0103 emit currentBrightnessChanged(); 0104 emit isBusyChanged(); 0105 } 0106 0107 }