vlc | branch: master | Francois Cartegnie <[email protected]> | Wed Mar 23 21:30:29 2011 +0100| [c93ea88c464a43cd694d0642bf026e5fe67caf2b] | committer: Francois Cartegnie
Qt: EPG: add channels line background > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c93ea88c464a43cd694d0642bf026e5fe67caf2b --- modules/gui/qt4/components/epg/EPGItem.cpp | 7 ++++++- modules/gui/qt4/components/epg/EPGItem.hpp | 1 + modules/gui/qt4/components/epg/EPGView.cpp | 12 +++++++++++- modules/gui/qt4/components/epg/EPGView.hpp | 10 ++++++++++ 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/modules/gui/qt4/components/epg/EPGItem.cpp b/modules/gui/qt4/components/epg/EPGItem.cpp index 5c61a85..de5c9b6 100644 --- a/modules/gui/qt4/components/epg/EPGItem.cpp +++ b/modules/gui/qt4/components/epg/EPGItem.cpp @@ -191,7 +191,12 @@ void EPGItem::updatePos() void EPGItem::hoverEnterEvent ( QGraphicsSceneHoverEvent * event ) { event->accept(); - update(); + scene()->update(); +} + +void EPGItem::hoverLeaveEvent ( QGraphicsSceneHoverEvent * event ) +{ /* required to redraw our background without flaws */ + hoverEnterEvent( event ); } void EPGItem::focusInEvent( QFocusEvent * event ) diff --git a/modules/gui/qt4/components/epg/EPGItem.hpp b/modules/gui/qt4/components/epg/EPGItem.hpp index e1ec959..60cc63d 100644 --- a/modules/gui/qt4/components/epg/EPGItem.hpp +++ b/modules/gui/qt4/components/epg/EPGItem.hpp @@ -59,6 +59,7 @@ public: protected: virtual void focusInEvent( QFocusEvent * event ); virtual void hoverEnterEvent ( QGraphicsSceneHoverEvent * ); + virtual void hoverLeaveEvent ( QGraphicsSceneHoverEvent * ); private: EPGView *m_view; diff --git a/modules/gui/qt4/components/epg/EPGView.cpp b/modules/gui/qt4/components/epg/EPGView.cpp index 15edd62..53cd25d 100644 --- a/modules/gui/qt4/components/epg/EPGView.cpp +++ b/modules/gui/qt4/components/epg/EPGView.cpp @@ -31,6 +31,16 @@ #include <QtDebug> #include <QGraphicsTextItem> +EPGGraphicsScene::EPGGraphicsScene( QObject *parent ) : QGraphicsScene( parent ) +{} + +void EPGGraphicsScene::drawBackground( QPainter *painter, const QRectF &rect) +{ + painter->setPen( QPen( QColor( 224, 224, 224 ) ) ); + for( int y = rect.top() + TRACKS_HEIGHT ; y < rect.bottom() ; y += TRACKS_HEIGHT ) + painter->drawLine( QLineF( rect.left(), y, rect.right(), y ) ); +} + EPGView::EPGView( QWidget *parent ) : QGraphicsView( parent ) { setContentsMargins( 0, 0, 0, 0 ); @@ -39,7 +49,7 @@ EPGView::EPGView( QWidget *parent ) : QGraphicsView( parent ) m_startTime = QDateTime::currentDateTime(); - QGraphicsScene *EPGscene = new QGraphicsScene( this ); + EPGGraphicsScene *EPGscene = new EPGGraphicsScene( this ); setScene( EPGscene ); } diff --git a/modules/gui/qt4/components/epg/EPGView.hpp b/modules/gui/qt4/components/epg/EPGView.hpp index f26359d..e49a6e2 100644 --- a/modules/gui/qt4/components/epg/EPGView.hpp +++ b/modules/gui/qt4/components/epg/EPGView.hpp @@ -27,6 +27,7 @@ #include "EPGItem.hpp" #include <QGraphicsView> +#include <QGraphicsScene> #include <QList> #include <QMap> #include <QMutex> @@ -37,6 +38,15 @@ typedef QMap<QDateTime, EPGItem *> EPGEventByTimeQMap; typedef QMap<QString, EPGEventByTimeQMap* > EPGTimeMapByChannelQMap; +class EPGGraphicsScene : public QGraphicsScene +{ +Q_OBJECT +public: + explicit EPGGraphicsScene( QObject *parent = 0 ); +protected: + void drawBackground ( QPainter *, const QRectF &); +}; + class EPGView : public QGraphicsView { Q_OBJECT _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
