1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#include "qtoolbarseparator_p.h"
5
6#include <qstyle.h>
7#include <qstyleoption.h>
8#include <qtoolbar.h>
9#include <qpainter.h>
10
11QT_BEGIN_NAMESPACE
12
13void QToolBarSeparator::initStyleOption(QStyleOption *option) const
14{
15 option->initFrom(w: this);
16 if (orientation() == Qt::Horizontal)
17 option->state |= QStyle::State_Horizontal;
18}
19
20QToolBarSeparator::QToolBarSeparator(QToolBar *parent)
21 : QWidget(parent), orient(parent->orientation())
22{ setSizePolicy(hor: QSizePolicy::Minimum, ver: QSizePolicy::Minimum); }
23
24void QToolBarSeparator::setOrientation(Qt::Orientation orientation)
25{
26 orient = orientation;
27 update();
28}
29
30Qt::Orientation QToolBarSeparator::orientation() const
31{ return orient; }
32
33QSize QToolBarSeparator::sizeHint() const
34{
35 QStyleOption opt;
36 initStyleOption(option: &opt);
37 const int extent = style()->pixelMetric(metric: QStyle::PM_ToolBarSeparatorExtent, option: &opt, widget: parentWidget());
38 return QSize(extent, extent);
39}
40
41void QToolBarSeparator::paintEvent(QPaintEvent *)
42{
43 QPainter p(this);
44 QStyleOption opt;
45 initStyleOption(option: &opt);
46 style()->drawPrimitive(pe: QStyle::PE_IndicatorToolBarSeparator, opt: &opt, p: &p, w: parentWidget());
47}
48
49QT_END_NAMESPACE
50
51#include "moc_qtoolbarseparator_p.cpp"
52

source code of qtbase/src/widgets/widgets/qtoolbarseparator.cpp