]> git.sesse.net Git - vlc/commitdiff
Qt4: fix build with Qt < 4.5
authorJakob Leben <jleben@videolan.org>
Mon, 9 Nov 2009 22:23:15 +0000 (23:23 +0100)
committerJakob Leben <jleben@videolan.org>
Mon, 9 Nov 2009 22:24:33 +0000 (23:24 +0100)
modules/gui/qt4/util/customwidgets.cpp
modules/gui/qt4/util/customwidgets.hpp

index e90f2b0f56e83939f0b0b68a52f5a7fc7313a0da..2e50199cc236a93c7d0741b2b4137b5c70404e96 100644 (file)
@@ -147,21 +147,32 @@ void SearchLineEdit::updateText( const QString& text )
 }
 
 QVLCIconLabel::QVLCIconLabel( const QIcon& i, QWidget *p )
-    : QLabel( p ), icon( i )
+    : QLabel( p ), icon( i ), iconMode( QIcon::Normal )
 {
-    setPixmap( icon.pixmap( pixmapSize( QIcon::Normal ), QIcon::Normal ) );
+    updatePixmap();
 }
 
 void QVLCIconLabel::setIcon( const QIcon& i )
-{ icon = i; }
+{
+  icon = i;
+  updatePixmap();
+}
+
+void QVLCIconLabel::resizeEvent( QResizeEvent * event )
+{
+    updatePixmap();
+}
 
 void QVLCIconLabel::enterEvent( QEvent * )
 {
-    setPixmap( icon.pixmap( pixmapSize( QIcon::Active ), QIcon::Active ) );
+    iconMode = QIcon::Active;
+    updatePixmap();
 }
+
 void QVLCIconLabel::leaveEvent( QEvent * )
 {
-    setPixmap( icon.pixmap( pixmapSize( QIcon::Normal ), QIcon::Normal ) );
+    iconMode = QIcon::Normal;
+    updatePixmap();
 }
 
 void QVLCIconLabel::mouseReleaseEvent( QMouseEvent * )
@@ -169,11 +180,9 @@ void QVLCIconLabel::mouseReleaseEvent( QMouseEvent * )
     emit clicked();
 }
 
-QSize QVLCIconLabel::pixmapSize( QIcon::Mode mode, QIcon::State state )
+void QVLCIconLabel::updatePixmap()
 {
-    QList<QSize> sizes = icon.availableSizes( mode, state );
-    if( sizes.isEmpty() ) sizes = icon.availableSizes();
-    return ( !sizes.isEmpty() ? sizes[0] : QSize() );
+    setPixmap( icon.pixmap( size(), iconMode ) );
 }
 
 /***************************************************************************
index fce93593d5e3df3417c2925966f1d5d8dc817f70..690e1f2edebb4fb607d0fecba29f5141e511632b 100644 (file)
@@ -88,9 +88,11 @@ protected:
     virtual void enterEvent( QEvent * );
     virtual void leaveEvent( QEvent * );
     virtual void mouseReleaseEvent( QMouseEvent * );
+    virtual void resizeEvent( QResizeEvent * );
 private:
-    inline QSize pixmapSize( QIcon::Mode = QIcon::Normal, QIcon::State = QIcon::Off );
+    inline void updatePixmap( );
     QIcon icon;
+    QIcon::Mode iconMode;
 };
 
 /*****************************************************************