Author: coolo
Date: Sat Feb 23 10:49:31 2008
New Revision: 44966
URL: http://svn.opensuse.org/viewcvs/yast?rev=44966&view=rev
Log:
smaller fixes
Modified:
trunk/qt/src/QY2Styler.cc
trunk/qt/src/QY2Styler.h
Modified: trunk/qt/src/QY2Styler.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/qt/src/QY2Styler.cc?rev=44966&r1=44965&r2=44966&view=diff
==============================================================================
--- trunk/qt/src/QY2Styler.cc (original)
+++ trunk/qt/src/QY2Styler.cc Sat Feb 23 10:49:31 2008
@@ -94,7 +94,14 @@
if ( _backgrounds[name].full )
fillRect = wid->rect();
- QImage back = getScaled( name, fillRect.size() );
+ QImage back;
+ if ( _backgrounds[name].lastscale != fillRect.size() )
+ {
+ _backgrounds[name].scaled = getScaled( name, fillRect.size() );
+ _backgrounds[name].lastscale = fillRect.size();
+ }
+ back = _backgrounds[name].scaled;
+
QPainter pain( &back );
QWidget *child;
foreach( child, _children[wid] )
@@ -126,22 +133,15 @@
wid->setPalette( p );
}
-bool QY2Styler::eventFilter( QObject * obj, QEvent * ev )
+bool QY2Styler::updateRendering( QWidget *wid )
{
- QString name = obj->objectName();
-
- if ( ev->type() != QEvent::Resize && ev->type() != QEvent::Show )
- return QObject::eventFilter( obj, ev );
+ QString name = wid->objectName();
if ( !_backgrounds.contains( name ) )
- return QObject::eventFilter( obj, ev );
-
- QWidget *wid = qobject_cast( obj );
-
- if (! wid->isVisible() )
- return QObject::eventFilter( obj, ev );
+ return false;
- //qDebug() << "eventFilter " << qPrintable( name ) << " " << obj->metaObject()->className() << " " << wid->isVisible();
+ if (! wid->isVisible() || !wid->updatesEnabled() )
+ return false;
if ( _backgrounds[name].pix.isNull() )
{
@@ -157,12 +157,12 @@
while ( parent && !_children.contains( parent ) )
parent = parent->parentWidget();
renderParent( parent );
- return QObject::eventFilter( obj, ev );
} else {
renderParent( wid );
- return QObject::eventFilter( obj, ev );
}
+ return true;
+#if 0
QPixmap result( wid->size() );
QRect fillRect = wid->contentsRect();
if ( _backgrounds[name].full )
@@ -195,6 +195,15 @@
p.setBrush(QPalette::Window, result );
wid->setPalette( p );
+ return true;
+#endif
+}
+
+bool QY2Styler::eventFilter( QObject * obj, QEvent * ev )
+{
+ if ( ev->type() == QEvent::Resize || ev->type() == QEvent::Show )
+ updateRendering( qobject_cast( obj ) );
+
return QObject::eventFilter( obj, ev );
}
Modified: trunk/qt/src/QY2Styler.h
URL: http://svn.opensuse.org/viewcvs/yast/trunk/qt/src/QY2Styler.h?rev=44966&r1=44965&r2=44966&view=diff
==============================================================================
--- trunk/qt/src/QY2Styler.h (original)
+++ trunk/qt/src/QY2Styler.h Sat Feb 23 10:49:31 2008
@@ -23,6 +23,8 @@
return _self;
}
+ bool updateRendering( QWidget *wid );
+
protected:
void renderParent( QWidget *wid );
QImage getScaled( const QString name, const QSize & size );
@@ -37,6 +39,8 @@
struct BackgrInfo {
QString filename;
QImage pix;
+ QImage scaled;
+ QSize lastscale;
bool full;
};
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org