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
This commit is contained in:
@@ -0,0 +1,272 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2014 Hugo Pereira Da Costa <hugo.pereira@free.fr>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "breezewidgetstatedata.h"
|
||||
|
||||
#include <QStyle>
|
||||
|
||||
namespace Breeze
|
||||
{
|
||||
//* scrollbar data
|
||||
class ScrollBarData : public WidgetStateData
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(qreal addLineOpacity READ addLineOpacity WRITE setAddLineOpacity)
|
||||
Q_PROPERTY(qreal subLineOpacity READ subLineOpacity WRITE setSubLineOpacity)
|
||||
Q_PROPERTY(qreal grooveOpacity READ grooveOpacity WRITE setGrooveOpacity)
|
||||
|
||||
public:
|
||||
//* constructor
|
||||
ScrollBarData(QObject *parent, QObject *target, int duration);
|
||||
|
||||
//* event filter
|
||||
bool eventFilter(QObject *, QEvent *) override;
|
||||
|
||||
//* needed to avoid warning about virtual function being hidden
|
||||
using WidgetStateData::animation;
|
||||
using WidgetStateData::opacity;
|
||||
|
||||
//* return animation for a given subcontrol
|
||||
const Animation::Pointer &animation(QStyle::SubControl) const;
|
||||
|
||||
//* return default opacity for a given subcontrol
|
||||
qreal opacity(QStyle::SubControl) const;
|
||||
|
||||
//* return default opacity for a given subcontrol
|
||||
bool isHovered(QStyle::SubControl control) const
|
||||
{
|
||||
switch (control) {
|
||||
case QStyle::SC_ScrollBarAddLine:
|
||||
return addLineArrowHovered();
|
||||
case QStyle::SC_ScrollBarSubLine:
|
||||
return subLineArrowHovered();
|
||||
case QStyle::SC_ScrollBarGroove:
|
||||
return grooveHovered();
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//* subControlRect
|
||||
QRect subControlRect(QStyle::SubControl control) const
|
||||
{
|
||||
switch (control) {
|
||||
case QStyle::SC_ScrollBarAddLine:
|
||||
return _addLineData._rect;
|
||||
case QStyle::SC_ScrollBarSubLine:
|
||||
return _subLineData._rect;
|
||||
default:
|
||||
return QRect();
|
||||
}
|
||||
}
|
||||
|
||||
//* subcontrol rect
|
||||
void setSubControlRect(QStyle::SubControl control, const QRect &rect)
|
||||
{
|
||||
switch (control) {
|
||||
case QStyle::SC_ScrollBarAddLine:
|
||||
_addLineData._rect = rect;
|
||||
break;
|
||||
|
||||
case QStyle::SC_ScrollBarSubLine:
|
||||
_subLineData._rect = rect;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//* duration
|
||||
void setDuration(int duration) override
|
||||
{
|
||||
WidgetStateData::setDuration(duration);
|
||||
addLineAnimation().data()->setDuration(duration);
|
||||
subLineAnimation().data()->setDuration(duration);
|
||||
grooveAnimation().data()->setDuration(duration);
|
||||
}
|
||||
|
||||
//* addLine opacity
|
||||
void setAddLineOpacity(qreal value)
|
||||
{
|
||||
value = digitize(value);
|
||||
if (_addLineData._opacity == value) {
|
||||
return;
|
||||
}
|
||||
_addLineData._opacity = value;
|
||||
setDirty();
|
||||
}
|
||||
|
||||
//* addLine opacity
|
||||
qreal addLineOpacity() const
|
||||
{
|
||||
return _addLineData._opacity;
|
||||
}
|
||||
|
||||
//* subLine opacity
|
||||
void setSubLineOpacity(qreal value)
|
||||
{
|
||||
value = digitize(value);
|
||||
if (_subLineData._opacity == value) {
|
||||
return;
|
||||
}
|
||||
_subLineData._opacity = value;
|
||||
setDirty();
|
||||
}
|
||||
|
||||
//* subLine opacity
|
||||
qreal subLineOpacity() const
|
||||
{
|
||||
return _subLineData._opacity;
|
||||
}
|
||||
|
||||
//* groove opacity
|
||||
void setGrooveOpacity(qreal value)
|
||||
{
|
||||
value = digitize(value);
|
||||
if (_grooveData._opacity == value) {
|
||||
return;
|
||||
}
|
||||
_grooveData._opacity = value;
|
||||
setDirty();
|
||||
}
|
||||
|
||||
//* groove opacity
|
||||
qreal grooveOpacity() const
|
||||
{
|
||||
return _grooveData._opacity;
|
||||
}
|
||||
|
||||
//* mouse position
|
||||
QPoint position() const
|
||||
{
|
||||
return _position;
|
||||
}
|
||||
|
||||
protected Q_SLOTS:
|
||||
|
||||
//* clear addLineRect
|
||||
void clearAddLineRect()
|
||||
{
|
||||
if (addLineAnimation().data()->direction() == Animation::Backward) {
|
||||
_addLineData._rect = QRect();
|
||||
}
|
||||
}
|
||||
|
||||
//* clear subLineRect
|
||||
void clearSubLineRect()
|
||||
{
|
||||
if (subLineAnimation().data()->direction() == Animation::Backward) {
|
||||
_subLineData._rect = QRect();
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
//* hoverMoveEvent
|
||||
void hoverMoveEvent(QObject *, QEvent *);
|
||||
|
||||
//* hoverMoveEvent
|
||||
void hoverLeaveEvent(QObject *, QEvent *);
|
||||
|
||||
//*@name hover flags
|
||||
//@{
|
||||
|
||||
bool addLineArrowHovered() const
|
||||
{
|
||||
return _addLineData._hovered;
|
||||
}
|
||||
|
||||
void setAddLineArrowHovered(bool value)
|
||||
{
|
||||
_addLineData._hovered = value;
|
||||
}
|
||||
|
||||
bool subLineArrowHovered() const
|
||||
{
|
||||
return _subLineData._hovered;
|
||||
}
|
||||
|
||||
void setSubLineArrowHovered(bool value)
|
||||
{
|
||||
_subLineData._hovered = value;
|
||||
}
|
||||
|
||||
bool grooveHovered() const
|
||||
{
|
||||
return _grooveData._hovered;
|
||||
}
|
||||
|
||||
void setGrooveHovered(bool value)
|
||||
{
|
||||
_grooveData._hovered = value;
|
||||
}
|
||||
|
||||
//@}
|
||||
|
||||
//* update add line arrow
|
||||
void updateAddLineArrow(QStyle::SubControl);
|
||||
|
||||
//* update sub line arrow
|
||||
void updateSubLineArrow(QStyle::SubControl);
|
||||
|
||||
//*@name timelines
|
||||
//@{
|
||||
|
||||
const Animation::Pointer &addLineAnimation() const
|
||||
{
|
||||
return _addLineData._animation;
|
||||
}
|
||||
|
||||
const Animation::Pointer &subLineAnimation() const
|
||||
{
|
||||
return _subLineData._animation;
|
||||
}
|
||||
|
||||
const Animation::Pointer &grooveAnimation() const
|
||||
{
|
||||
return _grooveData._animation;
|
||||
}
|
||||
|
||||
//* stores sub control data
|
||||
class Data
|
||||
{
|
||||
public:
|
||||
//* constructor
|
||||
Data()
|
||||
: _hovered(false)
|
||||
, _opacity(AnimationData::OpacityInvalid)
|
||||
{
|
||||
}
|
||||
|
||||
//* true if hovered
|
||||
bool _hovered;
|
||||
|
||||
//* animation
|
||||
Animation::Pointer _animation;
|
||||
|
||||
//* opacity
|
||||
qreal _opacity;
|
||||
|
||||
//* rect
|
||||
QRect _rect;
|
||||
};
|
||||
|
||||
//* add line data (down arrow)
|
||||
Data _addLineData;
|
||||
|
||||
//* subtract line data (up arrow)
|
||||
Data _subLineData;
|
||||
|
||||
//* groove data
|
||||
Data _grooveData;
|
||||
|
||||
//* mouse position
|
||||
QPoint _position;
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user