vlc | branch: master | Francois Cartegnie <[email protected]> | Thu Jun 14 15:16:07 2012 +0200| [1621978090b2d183b9f881c2e15f86c981dcaf3e] | committer: Francois Cartegnie
Qt: PLTreeView: Show details as tooltip > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1621978090b2d183b9f881c2e15f86c981dcaf3e --- .../gui/qt4/components/playlist/playlist_model.cpp | 27 ++++++++++++++ modules/gui/qt4/components/playlist/views.cpp | 38 ++++++++++++++++++++ modules/gui/qt4/components/playlist/views.hpp | 3 ++ 3 files changed, 68 insertions(+) diff --git a/modules/gui/qt4/components/playlist/playlist_model.cpp b/modules/gui/qt4/components/playlist/playlist_model.cpp index b7c0b66..e46a439 100644 --- a/modules/gui/qt4/components/playlist/playlist_model.cpp +++ b/modules/gui/qt4/components/playlist/playlist_model.cpp @@ -389,6 +389,33 @@ QVariant PLModel::data( const QModelIndex &index, const int role ) const f.setBold( true ); return QVariant( f ); } + else if( role == Qt::ToolTipRole ) + { + QString artUrl = getArtUrl( index ); + if ( artUrl.isEmpty() ) artUrl = ":/noart"; + QString duration = qtr( "unknown" ); + QString name; + PL_LOCK; + input_item_t *p_item = item->inputItem(); + if ( !p_item ) + { + PL_UNLOCK; + return QVariant(); + } + if ( p_item->i_duration > 0 ) + { + char *psz = psz_column_meta( item->inputItem(), COLUMN_DURATION ); + duration = qfu( psz ); + free( psz ); + } + name = QString( p_item->psz_name ); + PL_UNLOCK; + return QVariant( QString("<img width=\"128\" height=\"128\" align=\"left\" src=\"%1\"/><div><b>%2</b><br/>%3</div>") + .arg( artUrl ) + .arg( name ) + .arg( qtr("Duration") + ": " + duration ) + ); + } else if( role == Qt::BackgroundRole && isCurrent( index ) ) { return QVariant( QBrush( Qt::gray ) ); diff --git a/modules/gui/qt4/components/playlist/views.cpp b/modules/gui/qt4/components/playlist/views.cpp index c66cd71..76f41a6 100644 --- a/modules/gui/qt4/components/playlist/views.cpp +++ b/modules/gui/qt4/components/playlist/views.cpp @@ -313,6 +313,19 @@ void PlIconView::dragMoveEvent ( QDragMoveEvent * event ) QAbstractItemView::dragMoveEvent( event ); } +bool PlIconView::viewportEvent ( QEvent * event ) +{ + if ( event->type() == QEvent::ToolTip ) + { + event->ignore(); + return true; + } + else + { + return QAbstractItemView::viewportEvent( event ); + } +} + PlListView::PlListView( PLModel *, QWidget *parent ) : QListView( parent ) { setViewMode( QListView::ListMode ); @@ -350,6 +363,19 @@ void PlListView::keyPressEvent( QKeyEvent *event ) QListView::keyPressEvent( event ); } +bool PlListView::viewportEvent ( QEvent * event ) +{ + if ( event->type() == QEvent::ToolTip ) + { + event->ignore(); + return true; + } + else + { + return QAbstractItemView::viewportEvent( event ); + } +} + void PlTreeView::setModel( QAbstractItemModel * model ) { QTreeView::setModel( model ); @@ -477,3 +503,15 @@ void PicFlowView::playItem( int i_item ) emit activated( model()->index(i_item, 0) ); } +bool PicFlowView::viewportEvent ( QEvent * event ) +{ + if ( event->type() == QEvent::ToolTip ) + { + event->ignore(); + return true; + } + else + { + return QAbstractItemView::viewportEvent( event ); + } +} diff --git a/modules/gui/qt4/components/playlist/views.hpp b/modules/gui/qt4/components/playlist/views.hpp index 38285d8..0cc15c0 100644 --- a/modules/gui/qt4/components/playlist/views.hpp +++ b/modules/gui/qt4/components/playlist/views.hpp @@ -71,6 +71,7 @@ public: protected: virtual void startDrag ( Qt::DropActions supportedActions ); virtual void dragMoveEvent ( QDragMoveEvent * event ); + virtual bool viewportEvent ( QEvent * ); }; class PlListView : public QListView @@ -83,6 +84,7 @@ protected: virtual void startDrag ( Qt::DropActions supportedActions ); virtual void dragMoveEvent ( QDragMoveEvent * event ); virtual void keyPressEvent( QKeyEvent *event ); + virtual bool viewportEvent ( QEvent * ); }; class PlTreeView : public QTreeView @@ -114,6 +116,7 @@ protected: virtual bool isIndexHidden(const QModelIndex&) const; virtual QRegion visualRegionForSelection(const QItemSelection&) const; virtual void setSelection(const QRect&, QFlags<QItemSelectionModel::SelectionFlag>); + virtual bool viewportEvent ( QEvent * ); private: PictureFlow *picFlow; _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
