1
0
mirror of https://github.com/KDE/latte-dock.git synced 2025-01-22 18:03:54 +03:00
latte-dock/app/plasma/extended/backgroundtracker.cpp
2021-05-27 15:01:00 +00:00

108 lines
2.3 KiB
C++

/*
SPDX-FileCopyrightText: 2018 Michail Vourlakos <mvourlakos@gmail.com>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "backgroundtracker.h"
// local
#include "plasma/extended/backgroundcache.h"
namespace Latte {
BackgroundTracker::BackgroundTracker(QObject *parent)
: QObject(parent)
{
connect(this, &BackgroundTracker::activityChanged, this, &BackgroundTracker::update);
connect(this, &BackgroundTracker::locationChanged, this, &BackgroundTracker::update);
connect(this, &BackgroundTracker::screenNameChanged, this, &BackgroundTracker::update);
connect(PlasmaExtended::BackgroundCache::self(), &PlasmaExtended::BackgroundCache::backgroundChanged, this, &BackgroundTracker::backgroundChanged);
}
BackgroundTracker::~BackgroundTracker()
{
}
bool BackgroundTracker::isBusy() const
{
return m_busy;
}
int BackgroundTracker::location() const
{
return m_location;
}
void BackgroundTracker::setLocation(int location)
{
Plasma::Types::Location pLocation = static_cast<Plasma::Types::Location>(location);
if (m_location == pLocation) {
return;
}
m_location = pLocation;
emit locationChanged();
}
float BackgroundTracker::currentBrightness() const
{
return m_brightness;
}
QString BackgroundTracker::activity() const
{
return m_activity;
}
void BackgroundTracker::setActivity(QString id)
{
if (m_activity == id) {
return;
}
m_activity = id;
emit activityChanged();
}
QString BackgroundTracker::screenName() const
{
return m_screenName;
}
void BackgroundTracker::setScreenName(QString name)
{
if (m_screenName == name) {
return;
}
m_screenName = name;
emit screenNameChanged();
}
void BackgroundTracker::backgroundChanged(const QString &activity, const QString &screenName)
{
if (m_activity==activity && m_screenName==screenName) {
update();
}
}
void BackgroundTracker::update()
{
if (m_activity.isEmpty() || m_screenName.isEmpty()) {
return;
}
m_brightness = PlasmaExtended::BackgroundCache::self()->brightnessFor(m_activity, m_screenName, m_location);
m_busy = PlasmaExtended::BackgroundCache::self()->busyFor(m_activity, m_screenName, m_location);
emit currentBrightnessChanged();
emit isBusyChanged();
}
}