Commit d2348d98 authored by Jean-Philippe Andre's avatar Jean-Philippe Andre

Qt: use the CoverArtLabel in the playlist view and media information dialog

parent 4dd472bb
......@@ -28,6 +28,7 @@
#include "qt4.hpp"
#include "components/info_panels.hpp"
#include "components/interface_widgets.hpp"
#include <QTreeWidget>
#include <QListView>
......@@ -105,13 +106,7 @@ MetaPanel::MetaPanel( QWidget *parent,
line++;
/* ART_URL */
art_cover = new QLabel( "" );
art_cover->setMinimumHeight( 128 );
art_cover->setMinimumWidth( 128 );
art_cover->setMaximumHeight( 128 );
art_cover->setMaximumWidth( 128 );
art_cover->setScaledContents( true );
art_cover->setPixmap( QPixmap( ":/noart.png" ) );
art_cover = new CoverArtLabel( VLC_OBJECT( p_intf ) );
metaLayout->addWidget( art_cover, line, 8, 4, 2, Qt::AlignRight );
/* Settings is unused */
......@@ -229,16 +224,8 @@ void MetaPanel::update( input_item_t *p_item )
#undef UPDATE_META_INT
#undef UPDATE_META
/* Art Urls */
psz_meta = input_item_GetArtURL( p_item );
if( psz_meta && !strncmp( psz_meta, "file://", 7 ) )
{
QString artUrl = qfu( psz_meta ).replace( "file://",QString("" ) );
art_cover->setPixmap( QPixmap( artUrl ) );
}
else
art_cover->setPixmap( QPixmap( ":/noart.png" ) );
free( psz_meta );
/* Update Art */
art_cover->update( p_item );
}
/**
......@@ -332,7 +319,7 @@ void MetaPanel::clear()
language_text->clear();
nowplaying_text->clear();
publisher_text->clear();
art_cover;
art_cover->update( NULL );
setEditMode( false );
}
......
......@@ -49,6 +49,7 @@ class QTreeWidgetItem;
class QTreeView;
class QSpinBox;
class QLineEdit;
class CoverArtLabel;
class MetaPanel: public QWidget
{
......@@ -80,7 +81,7 @@ private:
QLineEdit *nowplaying_text;
QLineEdit *publisher_text;
// QLineEdit *encodedby_text;
QLabel *art_cover;
CoverArtLabel *art_cover;
public slots:
void update( input_item_t * );
......
......@@ -64,13 +64,7 @@ PlaylistWidget::PlaylistWidget( intf_thread_t *_p_i,
artContainer->setMaximumHeight( 128 );
/* Art label */
art = new ArtLabel;
art->setMinimumHeight( 128 );
art->setMinimumWidth( 128 );
art->setMaximumHeight( 128 );
art->setMaximumWidth( 128 );
art->setScaledContents( true );
art->setPixmap( QPixmap( ":/noart.png" ) );
art = new ArtLabel( p_intf );
art->setToolTip( qtr( "Double click to get media information" ) );
artContLay->addWidget( art, 1 );
......@@ -103,7 +97,8 @@ PlaylistWidget::PlaylistWidget( intf_thread_t *_p_i,
emit rootChanged( p_root->i_id );
/* art */
CONNECT( THEMIM->getIM(), artChanged( QString ) , this, setArt( QString ) );
CONNECT( THEMIM->getIM(), artChanged( input_item_t* ) ,
art, update( input_item_t* ) );
/* Add the two sides of the QSplitter */
addWidget( leftW );
......@@ -129,15 +124,6 @@ PlaylistWidget::PlaylistWidget( intf_thread_t *_p_i,
setWindowIcon( QApplication::windowIcon() );
}
void PlaylistWidget::setArt( QString url )
{
if( prevArt != url )
{
art->setPixmap( QPixmap( url.isEmpty() ? ":/noart.png" : url ) );
prevArt = url;
}
}
PlaylistWidget::~PlaylistWidget()
{
getSettings()->beginGroup("playlistdialog");
......
......@@ -33,6 +33,7 @@
#include <vlc_common.h>
#include "qt4.hpp"
#include "dialogs_provider.hpp"
#include "components/interface_widgets.hpp"
#include <QSplitter>
#include <QLabel>
......@@ -40,6 +41,8 @@
class PLSelector;
class PLPanel;
class QPushButton;
class CoverArtLabel;
class ArtLabel;
class PlaylistWidget : public QSplitter
{
......@@ -51,8 +54,7 @@ private:
PLSelector *selector;
PLPanel *rightPanel;
QPushButton *addButton;
QLabel *art;
QString prevArt;
ArtLabel *art;
QWidget *parent;
protected:
intf_thread_t *p_intf;
......@@ -60,15 +62,16 @@ protected:
virtual void dragEnterEvent( QDragEnterEvent * );
virtual void closeEvent( QCloseEvent * );
private slots:
void setArt( QString );
signals:
void rootChanged( int );
};
class ArtLabel : public QLabel
class ArtLabel : public CoverArtLabel
{
Q_OBJECT
public:
ArtLabel( intf_thread_t *intf ) : CoverArtLabel( VLC_OBJECT( intf ) ) {};
virtual ~ArtLabel() {};
void mouseDoubleClickEvent( QMouseEvent *event )
{
THEDP->mediaInfoDialog();
......
......@@ -117,7 +117,7 @@ void InputManager::delInput()
emit positionUpdated( -1.0, 0 ,0 );
emit statusChanged( END_S );
emit nameChanged( "" );
emit artChanged( "" );
emit artChanged( NULL );
emit rateChanged( INPUT_RATE_DEFAULT );
vlc_object_release( p_input );
p_input = NULL;
......@@ -366,18 +366,7 @@ void InputManager::UpdateTeletext()
void InputManager::UpdateArt()
{
/* Update Art meta */
QString url;
char *psz_art = input_item_GetArtURL( input_GetItem( p_input ) );
url.sprintf("%s", psz_art );
free( psz_art );
if( artUrl != url )
{
artUrl = url.replace( "file://",QString("" ) );
/* Taglib seems to define a attachment://, It won't work yet */
artUrl = url.replace( "attachment://",QString("" ) );
emit artChanged( artUrl );
msg_Dbg( p_intf, "Art: %s", qtu( artUrl ) );
}
emit artChanged( input_GetItem( p_input ) );
}
/* User update of the slider */
......
......@@ -121,7 +121,7 @@ signals:
void navigationChanged( int );
/// Play/pause status
void statusChanged( int );
void artChanged( QString );
void artChanged( input_item_t* );
/// Teletext
void teletextEnabled( bool );
void toggleTelexButtons();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment