vlc | branch: master | Francois Cartegnie <[email protected]> | Thu Mar 21 16:51:15 2013 +0100| [8c2ccecd9990fc9d6d7604dd20205f622071c6d8] | committer: Francois Cartegnie
Qt: Equalizer: add presets icons > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=8c2ccecd9990fc9d6d7604dd20205f622071c6d8 --- modules/gui/qt4/components/extended_panels.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/modules/gui/qt4/components/extended_panels.cpp b/modules/gui/qt4/components/extended_panels.cpp index 20cf56e..7025386 100644 --- a/modules/gui/qt4/components/extended_panels.cpp +++ b/modules/gui/qt4/components/extended_panels.cpp @@ -39,6 +39,8 @@ #include <QComboBox> #include <QTimer> #include <QFileDialog> +#include <QGraphicsScene> +#include <QPainter> #include "components/extended_panels.hpp" #include "dialogs/preferences.hpp" @@ -1244,7 +1246,23 @@ void Equalizer::build() ui.presetsCombo->addItem( "", QVariant() ); /* 1st entry = custom/modified */ for( i = 0 ; i < NB_PRESETS ; i ++ ) { - ui.presetsCombo->addItem( qtr( preset_list_text[i] ), + QGraphicsScene scene; + QPixmap icon( 40, 40 ); + icon.fill( Qt::transparent ); + QPainter painter( &icon ); + for ( int j = 0; j < eqz_preset_10b[i].i_band; j++ ) + { + float f_value = eqz_preset_10b[i].f_amp[j]; + if ( f_value > 20.0 ) f_value = 20.0; + if ( f_value < -20.0 ) f_value = -20.0; + QRectF shape( j, 20.0 - f_value, 1, f_value ); + scene.addRect( shape, QPen(), palette().brush( QPalette::WindowText ) ); + } + scene.addLine( 0.0, 20.0, eqz_preset_10b[i].i_band, 20.0, + palette().color( QPalette::WindowText ) ); + scene.setSceneRect( 0.0, 0.0, eqz_preset_10b[i].i_band , 40.0 ); + scene.render( &painter, icon.rect(), scene.sceneRect(), Qt::IgnoreAspectRatio ); + ui.presetsCombo->addItem( icon, qtr( preset_list_text[i] ), QVariant( preset_list[i] ) ); } CONNECT( ui.presetsCombo, activated(int), this, setCorePreset(int) ); _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
