Breeze and oxygen theme fixes should not crash anymore.
[GB.QT4] BUG: Breeze and oxygen theme fixes should not crash anymore. [GB.QT5] * BUG: Breeze and oxygen theme fixes should not crash anymore.
This commit is contained in:
parent
1c44184a68
commit
e072bdd11f
1 changed files with 15 additions and 12 deletions
|
@ -48,7 +48,7 @@ void FixBreezeStyle::fixFontMetrics(QStyleOption *option)
|
||||||
|
|
||||||
QRect FixBreezeStyle::subControlRect(ComplexControl element, const QStyleOptionComplex* option, SubControl subControl, const QWidget* widget) const
|
QRect FixBreezeStyle::subControlRect(ComplexControl element, const QStyleOptionComplex* option, SubControl subControl, const QWidget* widget) const
|
||||||
{
|
{
|
||||||
if (element == CC_SpinBox)
|
/*if (element == CC_SpinBox)
|
||||||
{
|
{
|
||||||
const QStyleOptionSpinBox *spinBoxOption(qstyleoption_cast<const QStyleOptionSpinBox*>(option));
|
const QStyleOptionSpinBox *spinBoxOption(qstyleoption_cast<const QStyleOptionSpinBox*>(option));
|
||||||
const bool flat( !spinBoxOption->frame );
|
const bool flat( !spinBoxOption->frame );
|
||||||
|
@ -83,20 +83,21 @@ QRect FixBreezeStyle::subControlRect(ComplexControl element, const QStyleOptionC
|
||||||
|
|
||||||
QRect arrowRect;
|
QRect arrowRect;
|
||||||
arrowRect = QRect(
|
arrowRect = QRect(
|
||||||
rect.right() - 20 /*Metrics::SpinBox_ArrowButtonWidth*/ + 1,
|
rect.right() - 20 + 1 //Metrics::SpinBox_ArrowButtonWidth,
|
||||||
rect.top(),
|
rect.top(),
|
||||||
20, //Metrics::SpinBox_ArrowButtonWidth,
|
20, //Metrics::SpinBox_ArrowButtonWidth,
|
||||||
rect.height() );
|
rect.height() );
|
||||||
|
|
||||||
const int arrowHeight( qMin( rect.height(), 20)); //int(Metrics::SpinBox_ArrowButtonWidth) ) );
|
const int arrowHeight( qMin( rect.height(), 20)); //int(Metrics::SpinBox_ArrowButtonWidth) ) );
|
||||||
arrowRect = centerRect( arrowRect, 20 /*Metrics::SpinBox_ArrowButtonWidth*/, arrowHeight );
|
arrowRect = centerRect( arrowRect, 20, arrowHeight ); // Metrics::SpinBox_ArrowButtonWidth
|
||||||
arrowRect.setHeight( arrowHeight/2 );
|
arrowRect.setHeight( arrowHeight/2 );
|
||||||
if( subControl == SC_SpinBoxDown ) arrowRect.translate( 0, arrowHeight/2 );
|
if( subControl == SC_SpinBoxDown ) arrowRect.translate( 0, arrowHeight/2 );
|
||||||
|
|
||||||
return visualRect( option, arrowRect );
|
return visualRect( option, arrowRect );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (element == CC_ComboBox)
|
else */
|
||||||
|
if (element == CC_ComboBox)
|
||||||
{
|
{
|
||||||
if (subControl == SC_ComboBoxEditField)
|
if (subControl == SC_ComboBoxEditField)
|
||||||
{
|
{
|
||||||
|
@ -165,14 +166,13 @@ QRect FixBreezeStyle::subElementRect(SubElement element, const QStyleOption* opt
|
||||||
|
|
||||||
void FixBreezeStyle::drawPrimitive( PrimitiveElement element, const QStyleOption* option, QPainter* painter, const QWidget* widget ) const
|
void FixBreezeStyle::drawPrimitive( PrimitiveElement element, const QStyleOption* option, QPainter* painter, const QWidget* widget ) const
|
||||||
{
|
{
|
||||||
QStyleOption newOption;
|
|
||||||
|
|
||||||
if (element == PE_FrameLineEdit)
|
if (element == PE_FrameLineEdit)
|
||||||
{
|
{
|
||||||
newOption = *option;
|
QStyleOption newOption = *option;
|
||||||
fixFontMetrics(&newOption);
|
fixFontMetrics(&newOption);
|
||||||
option = &newOption;
|
|
||||||
//qDebug("PE_FrameLineEdit: %d / %d", option->fontMetrics.height(), option->rect.height());
|
//qDebug("PE_FrameLineEdit: %d / %d", option->fontMetrics.height(), option->rect.height());
|
||||||
|
QProxyStyle::drawPrimitive(element, &newOption, painter, widget);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
QProxyStyle::drawPrimitive(element, option, painter, widget);
|
QProxyStyle::drawPrimitive(element, option, painter, widget);
|
||||||
|
@ -180,7 +180,7 @@ void FixBreezeStyle::drawPrimitive( PrimitiveElement element, const QStyleOption
|
||||||
|
|
||||||
void FixBreezeStyle::drawComplexControl(ComplexControl element, const QStyleOptionComplex* option, QPainter* painter, const QWidget* widget) const
|
void FixBreezeStyle::drawComplexControl(ComplexControl element, const QStyleOptionComplex* option, QPainter* painter, const QWidget* widget) const
|
||||||
{
|
{
|
||||||
if (element == CC_SpinBox)
|
/*if (element == CC_SpinBox)
|
||||||
{
|
{
|
||||||
QStyleOptionSpinBox newOption;
|
QStyleOptionSpinBox newOption;
|
||||||
const QStyleOptionSpinBox *spinBoxOption( qstyleoption_cast<const QStyleOptionSpinBox*>( option ) );
|
const QStyleOptionSpinBox *spinBoxOption( qstyleoption_cast<const QStyleOptionSpinBox*>( option ) );
|
||||||
|
@ -200,7 +200,8 @@ void FixBreezeStyle::drawComplexControl(ComplexControl element, const QStyleOpti
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (element == CC_ComboBox)
|
else */
|
||||||
|
if (element == CC_ComboBox)
|
||||||
{
|
{
|
||||||
QStyleOptionComboBox newOption;
|
QStyleOptionComboBox newOption;
|
||||||
const QStyleOptionComboBox* comboBoxOption( qstyleoption_cast<const QStyleOptionComboBox*>( option ) );
|
const QStyleOptionComboBox* comboBoxOption( qstyleoption_cast<const QStyleOptionComboBox*>( option ) );
|
||||||
|
@ -213,9 +214,10 @@ void FixBreezeStyle::drawComplexControl(ComplexControl element, const QStyleOpti
|
||||||
{
|
{
|
||||||
newOption = *comboBoxOption;
|
newOption = *comboBoxOption;
|
||||||
newOption.subControls &= ~SC_ComboBoxFrame;
|
newOption.subControls &= ~SC_ComboBoxFrame;
|
||||||
option = &newOption;
|
|
||||||
|
|
||||||
drawPrimitive(PE_FrameLineEdit, option, painter, widget );
|
drawPrimitive(PE_FrameLineEdit, &newOption, painter, widget );
|
||||||
|
QProxyStyle::drawComplexControl(element, &newOption, painter, widget);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -261,3 +263,4 @@ void FixBreezeStyle::drawControl(ControlElement element, const QStyleOption * op
|
||||||
|
|
||||||
QProxyStyle::drawControl(element, option, painter, widget);
|
QProxyStyle::drawControl(element, option, painter, widget);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue