From f7c69bbe4d464531fbd47863b7cdf8abfd848318 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Stenac?= <zorglub@videolan.org> Date: Sun, 27 Aug 2006 20:27:09 +0000 Subject: [PATCH] Improved screen for qt-always-video --- modules/gui/qt4/components/preferences.cpp | 4 +- modules/gui/qt4/components/video_widget.cpp | 41 +++++++++++++++------ modules/gui/qt4/components/video_widget.hpp | 8 ++++ modules/gui/qt4/res.qrc | 1 + modules/gui/qt4/util/qvlcframe.hpp | 3 ++ 5 files changed, 44 insertions(+), 13 deletions(-) diff --git a/modules/gui/qt4/components/preferences.cpp b/modules/gui/qt4/components/preferences.cpp index 42ec90fc1be5..dd32eda30097 100644 --- a/modules/gui/qt4/components/preferences.cpp +++ b/modules/gui/qt4/components/preferences.cpp @@ -49,6 +49,9 @@ #include <QGridLayout> #include <QHeaderView> +#include <QPalette> +#include <QColor> + #define ITEM_HEIGHT 25 /********************************************************************* @@ -331,7 +334,6 @@ PrefsPanel::PrefsPanel( intf_thread_t *_p_intf, QWidget *_parent, module_t *p_module = NULL; vlc_list_t *p_list = NULL; global_layout = new QVBoxLayout(); - if( data->i_type == TYPE_CATEGORY ) { /* TODO */ diff --git a/modules/gui/qt4/components/video_widget.cpp b/modules/gui/qt4/components/video_widget.cpp index 6fda625a343f..e7d522b441a4 100644 --- a/modules/gui/qt4/components/video_widget.cpp +++ b/modules/gui/qt4/components/video_widget.cpp @@ -28,6 +28,8 @@ #include "main_interface.hpp" #include <QHBoxLayout> +#define ICON_SIZE 128 + static void *DoRequest( intf_thread_t *, vout_thread_t *, int*,int*, unsigned int *, unsigned int * ); static void DoRelease( intf_thread_t *, void * ); @@ -53,8 +55,9 @@ VideoWidget::VideoWidget( intf_thread_t *_p_i, bool _always ) : QFrame( NULL ), SIGNAL( timeout() ), this, SLOT( update() ) ); if( always ) - DrawBackground(); - + { + DrawBackground(); + } need_update = false; } @@ -88,6 +91,9 @@ VideoWidget::~VideoWidget() p_intf->pf_control_window = NULL; vlc_mutex_unlock( &lock ); vlc_mutex_destroy( &lock ); + + if( always ) + CleanBackground(); } QSize VideoWidget::sizeHint() const @@ -111,10 +117,7 @@ void *VideoWidget::Request( vout_thread_t *p_nvout, int *pi_x, int *pi_y, } p_vout = p_nvout; - if( always ) - CleanBackground(); - - setMinimumSize( 1,1 ); + setMinimumSize( 1,1 ); p_intf->p_sys->p_mi->videoSize = QSize( *pi_width, *pi_height ); updateGeometry(); need_update = true; @@ -126,6 +129,14 @@ static void DoRelease( intf_thread_t *p_intf, void *p_win ) return p_intf->p_sys->p_video->Release( p_win ); } +void VideoWidget::resizeEvent( QResizeEvent *e ) +{ + if( e->size().height() < ICON_SIZE -1 ) + label->setMaximumWidth( e->size().height() ); + else + label->setMaximumWidth( ICON_SIZE ); +} + void VideoWidget::Release( void *p_win ) { p_vout = NULL; @@ -135,11 +146,6 @@ void VideoWidget::Release( void *p_win ) updateGeometry(); need_update = true; } - else - { - DrawBackground(); - } - } static int DoControl( intf_thread_t *p_intf, void *p_win, int i_q, va_list a ) @@ -149,7 +155,18 @@ static int DoControl( intf_thread_t *p_intf, void *p_win, int i_q, va_list a ) int VideoWidget::DrawBackground() { - QLabel *label = new QLabel( "VLC Rulez d4 Worldz" ); + setAutoFillBackground( true ); + plt = palette(); + plt.setColor( QPalette::Active, QPalette::Window , Qt::black ); + plt.setColor( QPalette::Inactive, QPalette::Window , Qt::black ); + setPalette( plt ); + + backgroundLayout = new QHBoxLayout; + label = new QLabel( "" ); + label->setMaximumHeight( ICON_SIZE ); + label->setMaximumWidth( ICON_SIZE ); + label->setScaledContents( true ); + label->setPixmap( QPixmap( ":/vlc128.png" ) ); backgroundLayout = new QHBoxLayout; backgroundLayout->addWidget( label ); setLayout( backgroundLayout ); diff --git a/modules/gui/qt4/components/video_widget.hpp b/modules/gui/qt4/components/video_widget.hpp index 0f1ef7002284..58d1625605a1 100644 --- a/modules/gui/qt4/components/video_widget.hpp +++ b/modules/gui/qt4/components/video_widget.hpp @@ -28,8 +28,13 @@ #include <vlc/intf.h> #include <QWidget> #include <QFrame> +#include <QPalette> +#include <QResizeEvent> +#include <QPixmap> +class QLabel; class QHBoxLayout; +class QColor; class VideoWidget : public QFrame { @@ -47,9 +52,12 @@ public: int i_video_height, i_video_width; vout_thread_t *p_vout; private: + virtual void resizeEvent( QResizeEvent *e ); int DrawBackground(); int CleanBackground(); bool always; + QPalette plt; + QLabel *label; QWidget *frame; QHBoxLayout *backgroundLayout; intf_thread_t *p_intf; diff --git a/modules/gui/qt4/res.qrc b/modules/gui/qt4/res.qrc index 9a7906d8f427..8c44605c1f18 100644 --- a/modules/gui/qt4/res.qrc +++ b/modules/gui/qt4/res.qrc @@ -7,5 +7,6 @@ <file>pixmaps/next.png</file> <file>pixmaps/volume-low.png</file> <file>pixmaps/volume-high.png</file> + <file alias="vlc128.png">../../../share/vlc128x128.png</file> </qresource> </RCC> diff --git a/modules/gui/qt4/util/qvlcframe.hpp b/modules/gui/qt4/util/qvlcframe.hpp index e8999e89d1dd..e721fd5ecf54 100644 --- a/modules/gui/qt4/util/qvlcframe.hpp +++ b/modules/gui/qt4/util/qvlcframe.hpp @@ -52,6 +52,9 @@ public: vlg.setHsv( vlg.hue(), vlg.saturation(), 235 ); plt.setColor( QPalette::Active, QPalette::Window, vlg ); plt.setColor( QPalette::Inactive, QPalette::Window, vlg ); + plt.setColor( QPalette::Inactive, QPalette::Button, vlg ); + plt.setColor( QPalette::Active, QPalette::Button, vlg ); + plt.setColor( QPalette::Active, QPalette::Text, Qt::yellow ); w->setPalette( plt ); } #endif -- GitLab