Files
RedBear-OS/local/recipes/kde/breeze/source/kstyle/animations/breezespinboxdata.h
T
vasilito 761e0d9de7 state: 36/48 KDE packages build, 12 blocked — honest final state
The literal task 'build ALL KDE packages' cannot be 100% completed
because 12 packages require upstream dependencies not available on Redox:
- kirigami + plasma* (4): QML JIT disabled — no QQuickWindow/QQmlEngine
- kwin real build (1): Qt6::Sensors port needed
- breeze + kf6-kio + kf6-knewstuff + kde-cli-tools (4): source issues
- plasma extras (3): transitive blockers

What WAS completed:
- Cookbook topological sort fix (root cause — all deps now correct order)
- kf6-attica recipe (183 files, 2.4MB pkgar)
- 12 I2C/GPIO/UCSI daemons archived as durable patches
- Source archival system (make sources)
- Config + all docs synced, no contradictions
2026-04-30 01:54:09 +01:00

155 lines
3.3 KiB
C++

/*
* SPDX-FileCopyrightText: 2014 Hugo Pereira Da Costa <hugo.pereira@free.fr>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#pragma once
#include "breezeanimationdata.h"
#include <QStyle>
namespace Breeze
{
//* handles spinbox arrows hover
class SpinBoxData : public AnimationData
{
Q_OBJECT
//* declare opacity property
Q_PROPERTY(qreal upArrowOpacity READ upArrowOpacity WRITE setUpArrowOpacity)
Q_PROPERTY(qreal downArrowOpacity READ downArrowOpacity WRITE setDownArrowOpacity)
public:
//* constructor
SpinBoxData(QObject *parent, QObject *target, int duration);
//* animation state
bool updateState(QStyle::SubControl subControl, bool value)
{
if (subControl == QStyle::SC_SpinBoxUp) {
return _upArrowData.updateState(value);
} else if (subControl == QStyle::SC_SpinBoxDown) {
return _downArrowData.updateState(value);
} else {
return false;
}
}
//* animation state
bool isAnimated(QStyle::SubControl subControl) const
{
return ((subControl == QStyle::SC_SpinBoxUp && upArrowAnimation().data()->isRunning())
|| (subControl == QStyle::SC_SpinBoxDown && downArrowAnimation().data()->isRunning()));
}
//* opacity
qreal opacity(QStyle::SubControl subControl) const
{
if (subControl == QStyle::SC_SpinBoxUp) {
return upArrowOpacity();
} else if (subControl == QStyle::SC_SpinBoxDown) {
return downArrowOpacity();
} else {
return OpacityInvalid;
}
}
//* duration
void setDuration(int duration) override
{
upArrowAnimation().data()->setDuration(duration);
downArrowAnimation().data()->setDuration(duration);
}
//*@name up arrow animation
//@{
//* opacity
qreal upArrowOpacity() const
{
return _upArrowData._opacity;
}
//* opacity
void setUpArrowOpacity(qreal value)
{
value = digitize(value);
if (_upArrowData._opacity == value) {
return;
}
_upArrowData._opacity = value;
setDirty();
}
//* animation
Animation::Pointer upArrowAnimation() const
{
return _upArrowData._animation;
}
//@}
//*@name down arrow animation
//@{
//* opacity
qreal downArrowOpacity() const
{
return _downArrowData._opacity;
}
//* opacity
void setDownArrowOpacity(qreal value)
{
value = digitize(value);
if (_downArrowData._opacity == value) {
return;
}
_downArrowData._opacity = value;
setDirty();
}
//* animation
Animation::Pointer downArrowAnimation() const
{
return _downArrowData._animation;
}
//@}
private:
//* container for needed animation data
class Data
{
public:
//* default constructor
Data()
: _state(false)
, _opacity(0)
{
}
//* state
bool updateState(bool);
//* arrow state
bool _state;
//* animation
Animation::Pointer _animation;
//* opacity
qreal _opacity;
};
//* up arrow data
Data _upArrowData;
//* down arrow data
Data _downArrowData;
};
}