]> git.sesse.net Git - vlc/commitdiff
Qt EPG: design and functionnalities improvements
authorJean-Baptiste Kempf <jb@videolan.org>
Wed, 27 Jan 2010 01:25:24 +0000 (02:25 +0100)
committerJean-Baptiste Kempf <jb@videolan.org>
Thu, 28 Jan 2010 00:38:51 +0000 (01:38 +0100)
modules/gui/qt4/components/epg/EPGWidget.cpp
modules/gui/qt4/components/epg/EPGWidget.hpp
modules/gui/qt4/dialogs/epg.cpp
modules/gui/qt4/dialogs/epg.hpp
modules/gui/qt4/menus.cpp

index df062620dada8461c9a1ec51f349897325630a0d..dfa81b1bc01bf3496b1322ac05597ea4d9c038ea 100644 (file)
@@ -41,11 +41,8 @@ EPGWidget::EPGWidget( QWidget *parent ) : QWidget( parent )
     m_rulerWidget = new EPGRuler( this );
     m_channelsWidget = new ChannelsWidget( this );
     m_epgView = new EPGView( this );
-    m_description = new QLabel( "<b>Hello world</b><br/>blablabla" );
 
     m_channelsWidget->setMinimumWidth( 40 );
-    m_description->setAlignment( Qt::AlignTop | Qt::AlignLeft );
-    m_description->setMinimumHeight( 70 );
 
     m_epgView->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding );
     setZoom( 1 );
@@ -53,7 +50,6 @@ EPGWidget::EPGWidget( QWidget *parent ) : QWidget( parent )
     layout->addWidget( m_rulerWidget,       0, 1 );
     layout->addWidget( m_channelsWidget,    1, 0 );
     layout->addWidget( m_epgView,           1, 1 );
-    layout->addWidget( m_description,       2, 1 );
     layout->setSpacing( 0 );
     setLayout( layout );
 
index 358c8562478921761e185f6f1785863be3627e34..84e88d183f07b80c3470a121c0fa98c1f3d59cc3 100644 (file)
@@ -35,7 +35,6 @@
 #include <QMultiMap>
 
 class QDateTime;
-class QLabel;
 
 class ChannelsWidget : public QWidget
 {
@@ -58,9 +57,11 @@ private:
     ChannelsWidget* m_channelsWidget;
     EPGRuler* m_rulerWidget;
     EPGView* m_epgView;
-    QLabel* m_description;
 
     QMultiMap<QString, EPGEvent*> m_events;
+
+signals:
+    void descriptionChanged( const QString& );
 };
 
 #endif // EPGWIDGET_H
index b5213c328059e1d639771eb85930181260757cad..e30ad520759e640e3c02385f7795f4a889147a47 100644 (file)
 #include "components/epg/EPGWidget.hpp"
 
 #include <QHBoxLayout>
+#include <QSplitter>
+#include <QLabel>
+#include <QGroupBox>
 
 EpgDialog::EpgDialog( intf_thread_t *_p_intf ): QVLCFrame( _p_intf )
 {
-    setTitle( "Program Guide" );
+    setWindowTitle( "Program Guide" );
 
     QHBoxLayout *layout = new QHBoxLayout( this );
+    QSplitter *splitter = new QSplitter( this );
     EPGWidget *epg = new EPGWidget( this );
+    splitter->addWidget( epg );
+    splitter->setOrientation(Qt::Vertical);
 
-    layout->addWidget( epg );
+    QGroupBox *descBox = new QGroupBox( qtr( "Description" ), this );
+
+    QHBoxLayout *boxLayout = new QHBoxLayout( descBox );
+
+    description = new QLabel( this );
+    description->setFrameStyle( QFrame::Sunken | QFrame::StyledPanel );
+    description->setAutoFillBackground( true );
+
+    QPalette palette;
+    palette.setBrush(QPalette::Active, QPalette::Window, palette.brush( QPalette::Base ) );
+    description->setPalette( palette );
+
+    boxLayout->addWidget( description );
+
+    splitter->addWidget( epg );
+    splitter->addWidget( descBox );
+    layout->addWidget( splitter );
+
+    CONNECT( epg, descriptionChanged( const QString & ), description, setText( const QString & ) );
 }
 
 EpgDialog::~EpgDialog()
index 1d6bedf8cb556b179647ca29a01feb03bcd8a006..1f4658aee68e7c40768fd9a60317b27db83ac8fe 100644 (file)
@@ -27,7 +27,7 @@
 
 #include "util/singleton.hpp"
 
-
+class QLabel;
 class EpgDialog : public QVLCFrame, public Singleton<EpgDialog>
 {
     Q_OBJECT;
@@ -35,6 +35,8 @@ private:
     EpgDialog( intf_thread_t * );
     virtual ~EpgDialog();
 
+    QLabel *description;
+
     friend class    Singleton<EpgDialog>;
 };
 
index bb07f9c969fe1460062101e9c173c1e2e9a860ab..d7d914640691c22c22e3266d45f57a7f508919ae 100644 (file)
@@ -375,6 +375,9 @@ QMenu *QVLCMenu::ToolsMenu( QMenu *menu )
         "Ctrl+W" );
 #endif
 
+    addDPStaticEntry( menu, qtr( "Program Guide" ), "", SLOT( epgDialog() ),
+        "" );
+
     addDPStaticEntry( menu, qtr( I_MENU_MSG ),
         ":/menu/messages", SLOT( messagesDialog() ),
         "Ctrl+M" );