Gui: [skip ci] workaround for QWindowsStyle to disable spin buttons when it is set read-only
This commit is contained in:
@@ -23,17 +23,19 @@
|
||||
|
||||
#include "PreCompiled.h"
|
||||
#ifndef _PreComp_
|
||||
# include <QApplication>
|
||||
# include <QDebug>
|
||||
# include <QLineEdit>
|
||||
# include <QFocusEvent>
|
||||
# include <QFontMetrics>
|
||||
# include <QHBoxLayout>
|
||||
# include <QLabel>
|
||||
# include <QStyle>
|
||||
# include <QPixmapCache>
|
||||
# include <QLineEdit>
|
||||
# include <QMouseEvent>
|
||||
# include <QPixmapCache>
|
||||
# include <QStyle>
|
||||
# include <QStyleOptionSpinBox>
|
||||
# include <QStylePainter>
|
||||
# include <QToolTip>
|
||||
# include <QApplication>
|
||||
#endif
|
||||
|
||||
#include "QuantitySpinBox.h"
|
||||
@@ -517,6 +519,20 @@ void Gui::QuantitySpinBox::keyPressEvent(QKeyEvent *event)
|
||||
QAbstractSpinBox::keyPressEvent(event);
|
||||
}
|
||||
|
||||
void Gui::QuantitySpinBox::paintEvent(QPaintEvent*)
|
||||
{
|
||||
QStyleOptionSpinBox opt;
|
||||
initStyleOption(&opt);
|
||||
if (hasExpression()) {
|
||||
opt.activeSubControls &= ~QStyle::SC_SpinBoxUp;
|
||||
opt.activeSubControls &= ~QStyle::SC_SpinBoxDown;
|
||||
opt.state &= ~QStyle::State_Active;
|
||||
opt.stepEnabled = StepNone;
|
||||
}
|
||||
|
||||
QStylePainter p(this);
|
||||
p.drawComplexControl(QStyle::CC_SpinBox, opt);
|
||||
}
|
||||
|
||||
void QuantitySpinBox::updateText(const Quantity &quant)
|
||||
{
|
||||
|
||||
@@ -156,6 +156,7 @@ protected:
|
||||
virtual void focusOutEvent(QFocusEvent * event);
|
||||
virtual void keyPressEvent(QKeyEvent *event);
|
||||
virtual void resizeEvent(QResizeEvent *event);
|
||||
virtual void paintEvent(QPaintEvent *event);
|
||||
|
||||
private:
|
||||
void updateText(const Base::Quantity&);
|
||||
|
||||
@@ -29,6 +29,9 @@
|
||||
# include <QStyle>
|
||||
# include <QLineEdit>
|
||||
# include <QKeyEvent>
|
||||
# include <QStyle>
|
||||
# include <QStyleOptionSpinBox>
|
||||
# include <QStylePainter>
|
||||
#endif
|
||||
|
||||
#include "SpinBox.h"
|
||||
@@ -409,6 +412,21 @@ void UIntSpinBox::keyPressEvent(QKeyEvent *event)
|
||||
QAbstractSpinBox::keyPressEvent(event);
|
||||
}
|
||||
|
||||
void UIntSpinBox::paintEvent(QPaintEvent*)
|
||||
{
|
||||
QStyleOptionSpinBox opt;
|
||||
initStyleOption(&opt);
|
||||
if (hasExpression()) {
|
||||
opt.activeSubControls &= ~QStyle::SC_SpinBoxUp;
|
||||
opt.activeSubControls &= ~QStyle::SC_SpinBoxDown;
|
||||
opt.state &= ~QStyle::State_Active;
|
||||
opt.stepEnabled = StepNone;
|
||||
}
|
||||
|
||||
QStylePainter p(this);
|
||||
p.drawComplexControl(QStyle::CC_SpinBox, opt);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
IntSpinBox::IntSpinBox(QWidget* parent) : QSpinBox(parent) {
|
||||
@@ -587,6 +605,21 @@ void IntSpinBox::keyPressEvent(QKeyEvent *event)
|
||||
QAbstractSpinBox::keyPressEvent(event);
|
||||
}
|
||||
|
||||
void IntSpinBox::paintEvent(QPaintEvent*)
|
||||
{
|
||||
QStyleOptionSpinBox opt;
|
||||
initStyleOption(&opt);
|
||||
if (hasExpression()) {
|
||||
opt.activeSubControls &= ~QStyle::SC_SpinBoxUp;
|
||||
opt.activeSubControls &= ~QStyle::SC_SpinBoxDown;
|
||||
opt.state &= ~QStyle::State_Active;
|
||||
opt.stepEnabled = StepNone;
|
||||
}
|
||||
|
||||
QStylePainter p(this);
|
||||
p.drawComplexControl(QStyle::CC_SpinBox, opt);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
DoubleSpinBox::DoubleSpinBox(QWidget* parent): QDoubleSpinBox(parent) {
|
||||
@@ -764,4 +797,19 @@ void DoubleSpinBox::keyPressEvent(QKeyEvent *event)
|
||||
QAbstractSpinBox::keyPressEvent(event);
|
||||
}
|
||||
|
||||
void DoubleSpinBox::paintEvent(QPaintEvent*)
|
||||
{
|
||||
QStyleOptionSpinBox opt;
|
||||
initStyleOption(&opt);
|
||||
if (hasExpression()) {
|
||||
opt.activeSubControls &= ~QStyle::SC_SpinBoxUp;
|
||||
opt.activeSubControls &= ~QStyle::SC_SpinBoxDown;
|
||||
opt.state &= ~QStyle::State_Active;
|
||||
opt.stepEnabled = StepNone;
|
||||
}
|
||||
|
||||
QStylePainter p(this);
|
||||
p.drawComplexControl(QStyle::CC_SpinBox, opt);
|
||||
}
|
||||
|
||||
#include "moc_SpinBox.cpp"
|
||||
|
||||
@@ -91,6 +91,8 @@ public:
|
||||
|
||||
void keyPressEvent(QKeyEvent *event);
|
||||
void resizeEvent(QResizeEvent *event);
|
||||
void paintEvent(QPaintEvent *event);
|
||||
|
||||
Q_SIGNALS:
|
||||
void valueChanged( uint value );
|
||||
|
||||
@@ -131,6 +133,7 @@ public:
|
||||
|
||||
void keyPressEvent(QKeyEvent *event);
|
||||
void resizeEvent(QResizeEvent *event);
|
||||
void paintEvent(QPaintEvent *event);
|
||||
|
||||
private Q_SLOTS:
|
||||
void finishFormulaDialog();
|
||||
@@ -157,6 +160,7 @@ public:
|
||||
|
||||
void keyPressEvent(QKeyEvent *event);
|
||||
void resizeEvent(QResizeEvent *event);
|
||||
void paintEvent(QPaintEvent *event);
|
||||
|
||||
private Q_SLOTS:
|
||||
void finishFormulaDialog();
|
||||
|
||||
Reference in New Issue
Block a user