15#include <QFontMetrics>
19#include <QActionGroup>
21#include <klocalizedstring.h>
22#include <kconfiggroup.h>
23#include <ksharedconfig.h>
26 : QDockWidget(i18n(
"Toolbox"))
32 QLabel *w =
new QLabel(
" ",
this);
33 w->setFrameShape(QFrame::StyledPanel);
34 w->setFrameShadow(QFrame::Raised);
35 w->setFrameStyle(QFrame::Panel | QFrame::Raised);
36 QFont font = qApp->font();
37 font.setPointSizeF(font.pointSizeF() * 0.9);
38 int titleSize = QFontMetrics(font).height();
39 w->setMinimumSize(titleSize, titleSize);
42 KConfigGroup cfg = KSharedConfig::openConfig()->group(
"KoToolBox");
43 const int layoutDirUnchecked = cfg.readEntry<
int>(
"layoutDir", Qt::LayoutDirectionAuto);
44 switch (layoutDirUnchecked) {
45 case Qt::LayoutDirectionAuto:
48 m_layoutDir =
static_cast<Qt::LayoutDirection
>(layoutDirUnchecked);
56 connect(
this, SIGNAL(dockLocationChanged(Qt::DockWidgetArea)),
58 connect(
this, SIGNAL(topLevelChanged(
bool)),
78 QDockWidget::resizeEvent(event);
80 if (width() > height()) {
92 if (area == Qt::TopDockWidgetArea || area == Qt::BottomDockWidgetArea) {
104 }
else if (
m_dockArea == Qt::LeftDockWidgetArea) {
116 KConfigGroup cfg = KSharedConfig::openConfig()->group(
"KoToolBox");
117 cfg.writeEntry<
int>(
"layoutDir", dir);
124 if (orientation == Qt::Horizontal) {
125 setFeatures(features() | QDockWidget::DockWidgetVerticalTitleBar);
128 setFeatures(features() & ~QDockWidget::DockWidgetVerticalTitleBar);
145 m_contextMenu->addSection(i18nc(
"Toolbox layout",
"Layout"));
146 QActionGroup *layoutActionGroup =
new QActionGroup(
m_contextMenu);
148 QAction *layoutAuto =
m_contextMenu->addAction(i18nc(
"@item:inmenu Toolbox layout direction",
"&Automatic"));
149 layoutAuto->setActionGroup(layoutActionGroup);
150 layoutAuto->setCheckable(
true);
151 connect(layoutAuto, &QAction::triggered,
this, [
this]() {
155 QAction *layoutLtr =
m_contextMenu->addAction(i18nc(
"@item:inmenu Toolbox layout direction",
"&Left-to-right"));
156 layoutLtr->setActionGroup(layoutActionGroup);
157 layoutLtr->setCheckable(
true);
158 connect(layoutLtr, &QAction::triggered,
this, [
this]() {
162 QAction *layoutRtl =
m_contextMenu->addAction(i18nc(
"@item:inmenu Toolbox layout direction",
"&Right-to-left"));
163 layoutRtl->setActionGroup(layoutActionGroup);
164 layoutRtl->setCheckable(
true);
165 connect(layoutRtl, &QAction::triggered,
this, [
this]() {
170 case Qt::LayoutDirectionAuto:
171 layoutAuto->setChecked(
true);
173 case Qt::LeftToRight:
174 layoutLtr->setChecked(
true);
176 case Qt::RightToLeft:
177 layoutRtl->setChecked(
true);
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))