summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2012-07-16 16:14:17 +0200
committerQt by Nokia <qt-info@nokia.com>2012-07-17 15:56:15 +0200
commitcdc436ebe625153c626784a15cb224556fca3728 (patch)
tree80efcd6165d5f73117e19d1c1caf2c68ebed5e30
parenta94e917eeb7b19eb19c3cf74d71a9b4cabfb1124 (diff)
Fix widget animations.
- Update opacity. - Change Q_WS_WIN to Q_OS_WIN. Task-number: QTBUG-25436 Change-Id: I76c1e4668dc2ee4f4d861da320c10aa05e57e804 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
-rw-r--r--src/widgets/kernel/qwidget.cpp28
-rw-r--r--src/widgets/widgets/qeffects.cpp14
2 files changed, 14 insertions, 28 deletions
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index bc1d9da2bb..ca5a410a42 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -2061,31 +2061,17 @@ void QWidgetPrivate::updateIsOpaque()
void QWidgetPrivate::setOpaque(bool opaque)
{
- if (isOpaque == opaque)
- return;
- isOpaque = opaque;
-#ifdef Q_WS_MAC
- macUpdateIsOpaque();
-#endif
-#ifdef Q_WS_X11
- x11UpdateIsOpaque();
-#endif
-#ifdef Q_WS_WIN
- winUpdateIsOpaque();
-#endif
+ if (isOpaque != opaque) {
+ isOpaque = opaque;
+ updateIsTranslucent();
+ }
}
void QWidgetPrivate::updateIsTranslucent()
{
-#ifdef Q_WS_MAC
- macUpdateIsOpaque();
-#endif
-#ifdef Q_WS_X11
- x11UpdateIsOpaque();
-#endif
-#ifdef Q_WS_WIN
- winUpdateIsOpaque();
-#endif
+ Q_Q(QWidget);
+ if (QWindow *window = q->windowHandle())
+ window->setOpacity(isOpaque ? qreal(1.0) : qreal(0.0));
}
static inline void fillRegion(QPainter *painter, const QRegion &rgn, const QBrush &brush)
diff --git a/src/widgets/widgets/qeffects.cpp b/src/widgets/widgets/qeffects.cpp
index 4617a2dced..d4d3e985d8 100644
--- a/src/widgets/widgets/qeffects.cpp
+++ b/src/widgets/widgets/qeffects.cpp
@@ -102,7 +102,7 @@ static QAlphaWidget* q_blend = 0;
QAlphaWidget::QAlphaWidget(QWidget* w, Qt::WindowFlags f)
: QWidget(QApplication::desktop()->screen(QApplication::desktop()->screenNumber(w)), f)
{
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
setEnabled(false);
#endif
setAttribute(Qt::WA_NoSystemBackground, true);
@@ -112,7 +112,7 @@ QAlphaWidget::QAlphaWidget(QWidget* w, Qt::WindowFlags f)
QAlphaWidget::~QAlphaWidget()
{
-#if defined(Q_WS_WIN) && !defined(Q_OS_WINCE)
+#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
// Restore user-defined opacity value
if (widget)
widget->setWindowOpacity(1);
@@ -270,10 +270,10 @@ void QAlphaWidget::render()
if (widget) {
if (!showWidget) {
-#ifdef Q_WS_WIN
+#ifdef Q_OS_WIN
setEnabled(true);
setFocus();
-#endif // Q_WS_WIN
+#endif // Q_OS_WIN
widget->hide();
} else {
//Since we are faking the visibility of the widget
@@ -383,7 +383,7 @@ static QRollEffect* q_roll = 0;
QRollEffect::QRollEffect(QWidget* w, Qt::WindowFlags f, DirFlags orient)
: QWidget(0, f), orientation(orient)
{
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
setEnabled(false);
#endif
@@ -408,7 +408,7 @@ QRollEffect::QRollEffect(QWidget* w, Qt::WindowFlags f, DirFlags orient)
if (orientation & (DownScroll|UpScroll))
currentHeight = 0;
- pm = widget->grab(QRect());
+ pm = widget->grab();
}
/*
@@ -538,7 +538,7 @@ void QRollEffect::scroll()
qApp->removeEventFilter(this);
if (widget) {
if (!showWidget) {
-#ifdef Q_WS_WIN
+#ifdef Q_OS_WIN
setEnabled(true);
setFocus();
#endif