[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdelibs/kstyles/keramik
From: Maks Orlovich <maksim () kde ! org>
Date: 2004-07-29 16:44:11
Message-ID: 20040729164411.97EC29A02 () office ! kde ! org
[Download RAW message or body]
CVS commit by orlovich:
Merge in a couple of fixes to the progressbar animation code from plastik ---
- don't animate when at 100% or disabled (big oops on the second one).
Also don't animate when not visible. Note that the latter has the implications for \
apps like kmail or kapture that use the hidden widget hack --- they'll no longer get \
any progressbar animation; which would not have worked right, particularly for \
people w/S/W cursors. Fixes #78164
CCMAIL:78164-done@bugs.kde.org
M +19 -12 keramik.cpp 1.133
M +4 -3 keramik.h 1.27
--- kdelibs/kstyles/keramik/keramik.cpp #1.132:1.133
@@ -13,5 +13,6 @@
(C) 2001 Martijn Klingens <klingens@kde.org>
- Progressbar code based on KStyle, Copyright (C) 2001-2002 Karol Szwed \
<gallium@kde.org> + Progressbar code based on KStyle, Copyright (C) 2001-2002 Karol \
Szwed <gallium@kde.org>, + Improvements to progressbar animation from Plastik, \
Copyright (C) 2003 Sandro Giessl <sandro@giessl.com>
This library is free software; you can redistribute it and/or
@@ -282,5 +283,4 @@ KeramikStyle::KeramikStyle()
forceSmallMode = false;
hoverWidget = 0;
- progAnimShift = 0;
QSettings settings;
@@ -301,12 +301,18 @@ KeramikStyle::KeramikStyle()
void KeramikStyle::updateProgressPos()
{
- progAnimShift++;
- if (progAnimShift == 28)
- progAnimShift = 0;
-
//Update the registered progressbars.
- QMap<QWidget*, bool>::iterator iter;
+ QMap<QProgressBar*, int>::iterator iter;
for (iter = progAnimWidgets.begin(); iter != progAnimWidgets.end(); iter++)
+ {
+ QProgressBar* pbar = iter.key();
+ if (pbar->isVisible() && pbar->isEnabled() &&
+ pbar->progress() != pbar->totalSteps())
+ {
+ ++iter.data();
+ if (iter.data() == 28)
+ iter.data() = 0;
iter.key()->update();
+ }
+ }
}
@@ -355,5 +361,5 @@ void KeramikStyle::polish(QWidget* widge
if (animateProgressBar && ::qt_cast<QProgressBar*>(widget))
{
- progAnimWidgets[widget] = true;
+ progAnimWidgets[static_cast<QProgressBar*>(widget)] = true;
connect(widget, SIGNAL(destroyed(QObject*)), this, \
SLOT(progressBarDestroyed(QObject*))); }
@@ -391,5 +397,5 @@ void KeramikStyle::unPolish(QWidget* wid
else if ( ::qt_cast<QProgressBar*>(widget) )
{
- progAnimWidgets.remove(widget);
+ progAnimWidgets.remove(static_cast<QProgressBar*>(widget));
}
@@ -399,5 +405,5 @@ void KeramikStyle::unPolish(QWidget* wid
void KeramikStyle::progressBarDestroyed(QObject* obj)
{
- progAnimWidgets.remove(static_cast<QWidget*>(obj));
+ progAnimWidgets.remove(static_cast<QProgressBar*>(obj));
}
@@ -1849,4 +1855,5 @@ void KeramikStyle::drawControl( ControlE
if (animateProgressBar)
{
+ int progAnimShift = \
progAnimWidgets[const_cast<QProgressBar*>(pb)]; if (reverse)
{
--- kdelibs/kstyles/keramik/keramik.h #1.26:1.27
@@ -38,4 +38,6 @@
#include "pixmaploader.h"
+class QProgressBar;
+
class KeramikStyle : public KStyle
{
@@ -156,6 +158,5 @@ private:
//Animation support.
- QMap<QWidget*, bool> progAnimWidgets;
- int progAnimShift;
+ QMap<QProgressBar*, int> progAnimWidgets;
bool eventFilter( QObject* object, QEvent* event );
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic