Commit 79081134 authored by jpd's avatar jpd
Browse files

Qt: return playlist model and views to "now playing" root if current root is deleted

parent ea0c27c2
......@@ -700,9 +700,6 @@ void PLModel::removeItem( PLItem *item )
if( item->i_id == i_cached_id ) i_cached_id = -1;
i_cached_input_id = -1;
if(item == rootItem)
rootItem = NULL;
if( item->parentItem ) {
int i = item->parentItem->children.indexOf( item );
beginRemoveRows( index( item->parentItem, 0), i, i );
......@@ -712,6 +709,12 @@ void PLModel::removeItem( PLItem *item )
}
else delete item;
if(item == rootItem)
{
rootItem = NULL;
rebuild( p_playlist->p_playing );
emit rootChanged();
}
}
/* This function must be entered WITH the playlist lock */
......
......@@ -150,6 +150,7 @@ private:
signals:
void currentChanged( const QModelIndex& );
void rootChanged();
public slots:
void activateItem( const QModelIndex &index );
......
......@@ -79,6 +79,7 @@ StandardPLPanel::StandardPLPanel( PlaylistWidget *_parent,
locationBar = new LocationBar( model );
layout->addWidget( locationBar, 0, 0 );
CONNECT( model, rootChanged(), locationBar, setRootIndex() );
/* A Spacer and the search possibilities */
layout->setColumnStretch( 1, 10 );
......@@ -499,6 +500,11 @@ void LocationBar::setIndex( const QModelIndex &index )
}
}
void LocationBar::setRootIndex()
{
setIndex( QModelIndex() );
}
void LocationBar::invoke( int i_id )
{
QModelIndex index = model->index( i_id, 0 );
......
......@@ -118,6 +118,8 @@ public:
void setIndex( const QModelIndex & );
signals:
void invoked( const QModelIndex & );
public slots:
void setRootIndex();
private slots:
void invoke( int i_item_id );
private:
......@@ -129,13 +131,13 @@ private:
class LocationButton : public QPushButton
{
public:
LocationButton( const QString &, bool bold, bool arrow );
private:
void paintEvent ( QPaintEvent * event );
QSize sizeHint() const;
QFontMetrics *metrics;
bool b_arrow;
public:
LocationButton( const QString &, bool bold, bool arrow );
private:
void paintEvent ( QPaintEvent * event );
QSize sizeHint() const;
QFontMetrics *metrics;
bool b_arrow;
};
#endif
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