qskinny/src/controls/QskProgressBar.cpp

85 lines
2.3 KiB
C++
Raw Normal View History

2020-07-31 14:57:22 +00:00
/******************************************************************************
* QSkinny - Copyright (C) 2016 Uwe Rathmann
2023-04-06 07:23:37 +00:00
* SPDX-License-Identifier: BSD-3-Clause
2020-07-31 14:57:22 +00:00
*****************************************************************************/
2020-08-01 15:51:45 +00:00
#include "QskProgressBar.h"
2020-07-31 14:57:22 +00:00
#include "QskIntervalF.h"
2020-08-01 15:51:45 +00:00
QSK_SUBCONTROL( QskProgressBar, Groove )
QSK_SUBCONTROL( QskProgressBar, Fill )
2020-08-09 08:49:32 +00:00
2020-08-01 15:51:45 +00:00
class QskProgressBar::PrivateData
2020-07-31 14:57:22 +00:00
{
public:
Qt::Orientation orientation;
};
2020-08-01 15:51:45 +00:00
QskProgressBar::QskProgressBar( Qt::Orientation orientation,
2020-07-31 14:57:22 +00:00
qreal min, qreal max, QQuickItem* parent )
: Inherited( min, max, parent )
2020-07-31 14:57:22 +00:00
, m_data( new PrivateData )
{
m_data->orientation = orientation;
if ( orientation == Qt::Horizontal )
initSizePolicy( QskSizePolicy::MinimumExpanding, QskSizePolicy::Fixed );
else
initSizePolicy( QskSizePolicy::Fixed, QskSizePolicy::MinimumExpanding );
setSubcontrolProxy( Inherited::Groove, Groove );
setSubcontrolProxy( Inherited::Fill, Fill );
2020-07-31 14:57:22 +00:00
}
2020-08-01 15:51:45 +00:00
QskProgressBar::QskProgressBar( Qt::Orientation orientation, QQuickItem* parent )
: QskProgressBar( orientation, 0.0, 100.0, parent )
2020-07-31 14:57:22 +00:00
{
}
2020-08-01 15:51:45 +00:00
QskProgressBar::QskProgressBar( const QskIntervalF& boundaries, QQuickItem* parent )
: QskProgressBar( boundaries.lowerBound(), boundaries.upperBound(), parent )
2020-07-31 14:57:22 +00:00
{
}
2020-08-01 15:51:45 +00:00
QskProgressBar::QskProgressBar( qreal min, qreal max, QQuickItem* parent )
: QskProgressBar( Qt::Horizontal, min, max, parent )
2020-07-31 14:57:22 +00:00
{
}
2020-08-01 15:51:45 +00:00
QskProgressBar::QskProgressBar( QQuickItem* parent )
: QskProgressBar( Qt::Horizontal, parent )
2020-07-31 14:57:22 +00:00
{
}
2020-08-01 15:51:45 +00:00
QskProgressBar::~QskProgressBar()
2020-07-31 14:57:22 +00:00
{
}
QskAspect::Variation QskProgressBar::effectiveVariation() const
{
// so you can define different hints depending on the orientation
return static_cast< QskAspect::Variation >( m_data->orientation );
2020-07-31 14:57:22 +00:00
}
2020-08-01 15:51:45 +00:00
Qt::Orientation QskProgressBar::orientation() const
2020-07-31 14:57:22 +00:00
{
return m_data->orientation;
}
2020-08-01 15:51:45 +00:00
void QskProgressBar::setOrientation( Qt::Orientation orientation )
2020-07-31 14:57:22 +00:00
{
if ( orientation != m_data->orientation )
{
m_data->orientation = orientation;
setSizePolicy( sizePolicy( Qt::Vertical ), sizePolicy( Qt::Horizontal ) );
resetImplicitSize();
update();
Q_EMIT orientationChanged( m_data->orientation );
}
}
2020-08-01 15:51:45 +00:00
#include "moc_QskProgressBar.cpp"