From 6e12d65ff7d934b0e3b3ab5caf0ff1a67c3ea536 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sat, 3 Nov 2012 20:35:31 -0500 Subject: Fix a number of crashes in various TDE styles when used by a third party toolkit --- kstyles/plastik/plastik.cpp | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'kstyles/plastik/plastik.cpp') diff --git a/kstyles/plastik/plastik.cpp b/kstyles/plastik/plastik.cpp index 393780b50..2af00f723 100644 --- a/kstyles/plastik/plastik.cpp +++ b/kstyles/plastik/plastik.cpp @@ -1215,8 +1215,7 @@ void PlastikStyle::drawKStylePrimitive(KStylePrimitive kpe, // ------ switch( kpe ) { case KPE_SliderGroove: { - const TQSlider* slider = (const TQSlider*)widget; - bool horizontal = slider->orientation() == Qt::Horizontal; + bool horizontal = ceData.orientation == TQt::Horizontal; if (horizontal) { int center = r.y()+r.height()/2; @@ -1233,8 +1232,7 @@ void PlastikStyle::drawKStylePrimitive(KStylePrimitive kpe, } case KPE_SliderHandle: { - const TQSlider* slider = (const TQSlider*)widget; - bool horizontal = slider->orientation() == Qt::Horizontal; + bool horizontal = ceData.orientation == TQt::Horizontal; const bool pressed = (flags&Style_Active); const WidgetState s = enabled?(pressed?IsPressed:IsEnabled):IsDisabled; @@ -2214,15 +2212,14 @@ void PlastikStyle::drawControl(TQ_ControlElement element, } case CE_ProgressBarContents: { - const TQProgressBar *pb = dynamic_cast(widget); - int steps = pb->totalSteps(); + int steps = ceData.totalSteps; const TQColor bg = enabled?cg.base():cg.background(); // background const TQColor fg = enabled?cg.highlight():TQColor(cg.background().dark(110)); // foreground if( steps == 0 ) { // Busy indicator static const int barWidth = 10; - int progress = pb->progress() % (2*(r.width()-barWidth)); + int progress = ceData.currentStep % (2*(r.width()-barWidth)); if( progress < 0) progress = 0; if( progress > r.width()-barWidth ) @@ -2239,7 +2236,7 @@ void PlastikStyle::drawControl(TQ_ControlElement element, Round_UpperRight|Round_BottomRight| Round_UpperLeft|Round_BottomLeft|Is_Horizontal); } else { - double percent = static_cast(pb->progress()) / static_cast(steps); + double percent = static_cast(ceData.currentStep) / static_cast(steps); int w = static_cast(r.width() * percent); // renderContour/renderSurface handle small sizes not very well, so set a minimal @@ -3196,11 +3193,11 @@ TQRect PlastikStyle::subRect(SubRect r, const TQStyleControlElementData ceData, // Don't use KStyles progressbar subrect // TODO: case SR_ProgressBarGroove: { - return TQRect(widget->rect()); + return TQRect(ceData.rect); } case SR_ProgressBarContents: case SR_ProgressBarLabel: { - TQRect rw = widget->rect(); + TQRect rw = ceData.rect; return TQRect(rw.left()+2, rw.top()+2, rw.width()-4, rw.height()-4 ); } -- cgit v1.2.1