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