diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2012-11-11 17:29:42 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2012-11-11 17:29:42 -0600 |
commit | b2be7bd4d62cd8743fed9f138a95e17ac91d6aa3 (patch) | |
tree | a496f3956b6f767c999c37fe3bed039ed26b7860 /styles | |
parent | 8bf50f1d81a5baf486143105de38e14d9ff8a56c (diff) | |
download | tdeartwork-b2be7bd4d62cd8743fed9f138a95e17ac91d6aa3.tar.gz tdeartwork-b2be7bd4d62cd8743fed9f138a95e17ac91d6aa3.zip |
Fix crashes when used with third party toolkit
Diffstat (limited to 'styles')
-rw-r--r-- | styles/dotnet/dotnet.cpp | 17 | ||||
-rw-r--r-- | styles/phase/phasestyle.cpp | 79 |
2 files changed, 34 insertions, 62 deletions
diff --git a/styles/dotnet/dotnet.cpp b/styles/dotnet/dotnet.cpp index 107f182b..666b3f80 100644 --- a/styles/dotnet/dotnet.cpp +++ b/styles/dotnet/dotnet.cpp @@ -1088,9 +1088,8 @@ void dotNETstyle::drawControl(TQ_ControlElement element, } case CE_PushButton: { - TQPushButton *button = (TQPushButton *)widget; TQRect br = r; - bool btnDefault = button->isDefault(); + bool btnDefault = (elementFlags & CEF_IsDefault); static int di = pixelMetric(PM_ButtonDefaultIndicator, ceData, elementFlags); br.addCoords(di, di, -di, -di); @@ -1581,8 +1580,6 @@ void dotNETstyle::drawComplexControl(ComplexControl control, // TOOLBUTTON // ---------- case CC_ToolButton: { - const TQToolButton *tb = (const TQToolButton *) widget; - TQRect button, menuarea; button = querySubControlMetrics(control, ceData, elementFlags, SC_ToolButton, opt, widget); menuarea = querySubControlMetrics(control, ceData, elementFlags, SC_ToolButtonMenu, opt, widget); @@ -1600,11 +1597,9 @@ void dotNETstyle::drawComplexControl(ComplexControl control, // If we're pressed, on, or raised... if (bflags & (Style_Down | Style_On | Style_Raised)) { drawPrimitive(PE_ButtonTool, p, ceData, elementFlags, button, cg, bflags, opt); - } else if (tb->parentWidget() && - tb->parentWidget()->backgroundPixmap() && - !tb->parentWidget()->backgroundPixmap()->isNull()) { - TQPixmap pixmap = *(tb->parentWidget()->backgroundPixmap()); - p->drawTiledPixmap( r, pixmap, tb->pos() ); + } else if (!ceData.parentWidgetData.bgPixmap.isNull()) { + TQPixmap pixmap = ceData.parentWidgetData.bgPixmap; + p->drawTiledPixmap( r, pixmap, ceData.pos ); } } @@ -1616,8 +1611,8 @@ void dotNETstyle::drawComplexControl(ComplexControl control, drawPrimitive(PE_ArrowDown, p, ceData, elementFlags, menuarea, cg, mflags, opt); } - if (tb->hasFocus() && !tb->focusProxy()) { - TQRect fr = tb->rect(); + if ((elementFlags & CEF_HasFocus) && !(elementFlags & CEF_HasFocusProxy)) { + TQRect fr = ceData.rect; fr.addCoords(2, 2, -2, -2); drawPrimitive(PE_FocusRect, p, ceData, elementFlags, fr, cg); } diff --git a/styles/phase/phasestyle.cpp b/styles/phase/phasestyle.cpp index 4a113795..2dde4151 100644 --- a/styles/phase/phasestyle.cpp +++ b/styles/phase/phasestyle.cpp @@ -1643,13 +1643,6 @@ void PhaseStyle::drawComplexControl(TQ_ComplexControl control, switch (control) { case CC_ComboBox: { - const TQComboBox * combo = ::tqqt_cast<const TQComboBox*>(widget); - if (!combo) { - KStyle::drawComplexControl(control, painter, ceData, elementFlags, rect, group, - flags, controls, active, option, widget); - return; - } - sunken = (active == SC_ComboBoxArrow); drawPhaseButton(painter, x, y, w, h, group, (flags & Style_MouseOver) @@ -1669,7 +1662,7 @@ void PhaseStyle::drawComplexControl(TQ_ComplexControl control, } if (controls & SC_ComboBoxEditField) { // draw edit box - if (combo->editable()) { // editable box + if (elementFlags & CEF_IsEditable) { // editable box subrect = visualRect(querySubControlMetrics(CC_ComboBox, ceData, elementFlags, SC_ComboBoxEditField, TQStyleOption::Default, widget), ceData, elementFlags); x2 = subrect.right(); y2 = subrect.bottom(); @@ -1679,9 +1672,9 @@ void PhaseStyle::drawComplexControl(TQ_ComplexControl control, painter->drawLine(x2+2, y, x2+2, y2-1); painter->setPen(group.button()); painter->drawPoint(x2+2, y2); - } else if (combo->hasFocus()) { // non editable box + } else if (elementFlags & CEF_HasFocus) { // non editable box subrect = visualRect(subRect(SR_ComboBoxFocusRect, ceData, elementFlags, - combo), ceData, elementFlags); + widget), ceData, elementFlags); drawPrimitive(PE_FocusRect, painter, ceData, elementFlags, subrect, group, Style_FocusAtBorder, TQStyleOption(group.highlight())); @@ -1694,18 +1687,11 @@ void PhaseStyle::drawComplexControl(TQ_ComplexControl control, case CC_ScrollBar: { // always a three button scrollbar - const TQScrollBar *sb = ::tqqt_cast<const TQScrollBar*>(widget); - if (!sb) { - KStyle::drawComplexControl(control, painter, ceData, elementFlags, rect, group, - flags, controls, active, option, widget); - return; - } - TQRect srect; - bool horizontal = (sb->orientation() == Qt::Horizontal); + bool horizontal = (ceData.orientation == TQt::Horizontal); SFlags scrollflags = (horizontal ? Style_Horizontal : Style_Default); - if (sb->minValue() == sb->maxValue()) scrollflags |= Style_Default; + if (ceData.minSteps == ceData.maxSteps) scrollflags |= Style_Default; else scrollflags |= Style_Enabled; // addline @@ -1765,7 +1751,7 @@ void PhaseStyle::drawComplexControl(TQ_ComplexControl control, // slider if (controls & SC_ScrollBarSlider) { - if (sb->minValue() == sb->maxValue()) { + if (ceData.minSteps == ceData.maxSteps) { // maxed out srect = querySubControlMetrics(control, ceData, elementFlags, SC_ScrollBarGroove, option, widget); @@ -1780,7 +1766,7 @@ void PhaseStyle::drawComplexControl(TQ_ComplexControl control, scrollflags | ((active == SC_ScrollBarSlider) ? Style_Down : Style_Default)); // focus - if (sb->hasFocus()) { + if (elementFlags & CEF_HasFocus) { srect.addCoords(2, 2, -2, -2); drawPrimitive(PE_FocusRect, painter, ceData, elementFlags, srect, group, Style_Default); @@ -1852,11 +1838,6 @@ void PhaseStyle::drawComplexControl(TQ_ComplexControl control, case CC_ToolButton: { const TQToolButton *btn = ::tqqt_cast<const TQToolButton*>(widget); - if (!btn) { - KStyle::drawComplexControl(control, painter, ceData, elementFlags, rect, group, - flags, controls, active, option, widget); - return; - } TQToolBar *toolbar; bool horiz = true; @@ -1866,32 +1847,29 @@ void PhaseStyle::drawComplexControl(TQ_ComplexControl control, y2 = rect.bottom(); // check for TQToolBar parent - if (btn->parent() && btn->parent()->inherits(TQTOOLBAR_OBJECT_NAME_STRING)) { - toolbar = ::tqqt_cast<TQToolBar*>(btn->parent()); - if (toolbar) { - horiz = (toolbar->orientation() == Qt::Horizontal); - if (normal) { // draw background - if (flatToolbar(ceData, elementFlags, toolbar)) { - // toolbar not floating or in a TQMainWindow - painter->fillRect(rect, group.background()); + if (ceData.parentWidgetData.widgetObjectTypes.contains(TQTOOLBAR_OBJECT_NAME_STRING)) { + toolbar = (btn)?::tqqt_cast<TQToolBar*>(btn->parent()):NULL; + horiz = (ceData.toolBarData.orientation == TQt::Horizontal); + if (normal) { // draw background + if (toolbar && flatToolbar(ceData, elementFlags, toolbar)) { + // toolbar not floating or in a TQMainWindow + painter->fillRect(rect, group.background()); + } else { + drawPhaseGradient(painter, rect, group.background(), + !horiz, 0, 0, + ceData.parentWidgetData.rect.width()-3, + ceData.parentWidgetData.rect.height()-3, true); + painter->setPen(group.mid()); + if (horiz) { + painter->drawLine(x, y2, x2, y2); } else { - drawPhaseGradient(painter, rect, group.background(), - !horiz, 0, 0, - toolbar->width()-3, - toolbar->height()-3, true); - painter->setPen(group.mid()); - if (horiz) { - painter->drawLine(x, y2, x2, y2); - } else { - painter->drawLine(x2, y, x2, y2); - } + painter->drawLine(x2, y, x2, y2); } } } } // check for TQToolBarExtensionWidget parent - else if (btn->parent() && - btn->parent()->inherits(TQTOOLBAREXTENSION)) { + else if (btn && ceData.parentWidgetData.widgetObjectTypes.contains(TQTOOLBAREXTENSION)) { TQWidget *extension; if ((extension = ::tqqt_cast<TQWidget*>(btn->parent()))) { toolbar = ::tqqt_cast<TQToolBar*>(extension->parent()); @@ -1906,11 +1884,10 @@ void PhaseStyle::drawComplexControl(TQ_ComplexControl control, } } // check for background pixmap - else if (normal && btn->parentWidget() && - btn->parentWidget()->backgroundPixmap() && - !btn->parentWidget()->backgroundPixmap()->isNull()) { - TQPixmap pixmap = *(btn->parentWidget()->backgroundPixmap()); - painter->drawTiledPixmap(rect, pixmap, btn->pos()); + else if (normal && + !ceData.parentWidgetData.bgPixmap.isNull()) { + TQPixmap pixmap = ceData.parentWidgetData.bgPixmap; + painter->drawTiledPixmap(rect, pixmap, ceData.pos); } // everything else else if (normal) { |