diff options
Diffstat (limited to 'src/widgets/widgets')
-rw-r--r-- | src/widgets/widgets/qabstractspinbox.cpp | 13 | ||||
-rw-r--r-- | src/widgets/widgets/qdockwidget.cpp | 4 | ||||
-rw-r--r-- | src/widgets/widgets/qdockwidget_p.h | 2 | ||||
-rw-r--r-- | src/widgets/widgets/qmdisubwindow.cpp | 7 |
4 files changed, 24 insertions, 2 deletions
diff --git a/src/widgets/widgets/qabstractspinbox.cpp b/src/widgets/widgets/qabstractspinbox.cpp index 61526916f1..7ca47e9f0f 100644 --- a/src/widgets/widgets/qabstractspinbox.cpp +++ b/src/widgets/widgets/qabstractspinbox.cpp @@ -678,15 +678,20 @@ void QAbstractSpinBox::setLineEdit(QLineEdit *lineEdit) Q_ASSERT(lineEdit); return; } + + if (lineEdit == d->edit) + return; + delete d->edit; d->edit = lineEdit; + setProperty("_q_spinbox_lineedit", QVariant::fromValue<QWidget *>(d->edit)); if (!d->edit->validator()) d->edit->setValidator(d->validator); if (d->edit->parent() != this) d->edit->setParent(this); - d->edit->setFrame(false); + d->edit->setFrame(!style()->styleHint(QStyle::SH_SpinBox_ButtonsInsideFrame, nullptr, this)); d->edit->setFocusProxy(this); d->edit->setAcceptDrops(false); @@ -818,6 +823,8 @@ void QAbstractSpinBox::changeEvent(QEvent *event) d->spinClickTimerInterval = style()->styleHint(QStyle::SH_SpinBox_ClickAutoRepeatRate, 0, this); d->spinClickThresholdTimerInterval = style()->styleHint(QStyle::SH_SpinBox_ClickAutoRepeatThreshold, 0, this); + if (d->edit) + d->edit->setFrame(!style()->styleHint(QStyle::SH_SpinBox_ButtonsInsideFrame, nullptr, this)); d->reset(); d->updateEditFieldGeometry(); break; @@ -1644,7 +1651,9 @@ void QAbstractSpinBox::initStyleOption(QStyleOptionSpinBox *option) const option->initFrom(this); option->activeSubControls = QStyle::SC_None; option->buttonSymbols = d->buttonSymbols; - option->subControls = QStyle::SC_SpinBoxFrame | QStyle::SC_SpinBoxEditField; + option->subControls = QStyle::SC_SpinBoxEditField; + if (!style()->styleHint(QStyle::SH_SpinBox_ButtonsInsideFrame, nullptr, this)) + option->subControls |= QStyle::SC_SpinBoxFrame; if (d->buttonSymbols != QAbstractSpinBox::NoButtons) { option->subControls |= QStyle::SC_SpinBoxUp | QStyle::SC_SpinBoxDown; if (d->buttonState & Up) { diff --git a/src/widgets/widgets/qdockwidget.cpp b/src/widgets/widgets/qdockwidget.cpp index ac76217ece..e17c2c1f4c 100644 --- a/src/widgets/widgets/qdockwidget.cpp +++ b/src/widgets/widgets/qdockwidget.cpp @@ -653,6 +653,8 @@ void QDockWidgetPrivate::init() QObject::connect(button, SIGNAL(clicked()), q, SLOT(close())); layout->setWidgetForRole(QDockWidgetLayout::CloseButton, button); + font = QApplication::font("QDockWidgetTitle"); + #ifndef QT_NO_ACTION toggleViewAction = new QAction(q); toggleViewAction->setCheckable(true); @@ -685,6 +687,7 @@ void QDockWidget::initStyleOption(QStyleOptionDockWidget *option) const // If we are in a floating tab, init from the parent because the attributes and the geometry // of the title bar should be taken from the floating window. option->initFrom(floatingTab && !isFloating() ? parentWidget() : this); + option->fontMetrics = QFontMetrics(d->font); option->rect = dwlayout->titleArea(); option->title = d->fixedWindowTitle; option->closable = hasFeature(this, QDockWidget::DockWidgetClosable); @@ -1481,6 +1484,7 @@ void QDockWidget::paintEvent(QPaintEvent *event) // the title may wish to extend out to all sides (eg. Vista style) QStyleOptionDockWidget titleOpt; initStyleOption(&titleOpt); + p.setFont(d_func()->font); p.drawControl(QStyle::CE_DockWidgetTitle, titleOpt); } } diff --git a/src/widgets/widgets/qdockwidget_p.h b/src/widgets/widgets/qdockwidget_p.h index e35fd17fc2..766e4ed161 100644 --- a/src/widgets/widgets/qdockwidget_p.h +++ b/src/widgets/widgets/qdockwidget_p.h @@ -99,6 +99,8 @@ public: QDockWidget::DockWidgetFeatures features; Qt::DockWidgetAreas allowedAreas; + QFont font; + #ifndef QT_NO_ACTION QAction *toggleViewAction; #endif diff --git a/src/widgets/widgets/qmdisubwindow.cpp b/src/widgets/widgets/qmdisubwindow.cpp index 0fdeaeb1e6..794674c427 100644 --- a/src/widgets/widgets/qmdisubwindow.cpp +++ b/src/widgets/widgets/qmdisubwindow.cpp @@ -1986,6 +1986,13 @@ void QMdiSubWindowPrivate::updateActions() for (int i = 0; i < NumWindowStateActions; ++i) setVisible(WindowStateAction(i), false); +#ifdef Q_OS_MACOS + if (q_func()->style()->inherits("QMacStyle")) + for (int i = 0; i < NumWindowStateActions; ++i) + if (QAction *action = actions[i]) + action->setIconVisibleInMenu(false); +#endif + if (windowFlags & Qt::FramelessWindowHint) return; |