1d468ac35a
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
36 lines
995 B
C++
36 lines
995 B
C++
#include "LineSeparator.h"
|
|
|
|
#include <QLayout>
|
|
#include <QPainter>
|
|
#include <QStyle>
|
|
#include <QStyleOption>
|
|
|
|
void LineSeparator::initStyleOption(QStyleOption* option) const
|
|
{
|
|
option->initFrom(this);
|
|
// in a horizontal layout, the line is vertical (and vice versa)
|
|
if (m_orientation == Qt::Vertical)
|
|
option->state |= QStyle::State_Horizontal;
|
|
}
|
|
|
|
LineSeparator::LineSeparator(QWidget* parent, Qt::Orientation orientation) : QWidget(parent), m_orientation(orientation)
|
|
{
|
|
setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
|
|
}
|
|
|
|
QSize LineSeparator::sizeHint() const
|
|
{
|
|
QStyleOption opt;
|
|
initStyleOption(&opt);
|
|
const int extent = style()->pixelMetric(QStyle::PM_ToolBarSeparatorExtent, &opt, parentWidget());
|
|
return QSize(extent, extent);
|
|
}
|
|
|
|
void LineSeparator::paintEvent(QPaintEvent*)
|
|
{
|
|
QPainter p(this);
|
|
QStyleOption opt;
|
|
initStyleOption(&opt);
|
|
style()->drawPrimitive(QStyle::PE_IndicatorToolBarSeparator, &opt, &p, parentWidget());
|
|
}
|