author | simon <simon> | 2002-12-02 17:42:44 (UTC) |
---|---|---|
committer | simon <simon> | 2002-12-02 17:42:44 (UTC) |
commit | c31f9b59dba873739494fcd9916c7cb9120ce1d9 (patch) (side-by-side diff) | |
tree | 4b3371edaf5f0f6f6240a7bfe8f16be1dc111e8d | |
parent | 2f2f6cfbc31e0144060588b26814301ce99ebd39 (diff) | |
download | opie-c31f9b59dba873739494fcd9916c7cb9120ce1d9.zip opie-c31f9b59dba873739494fcd9916c7cb9120ce1d9.tar.gz opie-c31f9b59dba873739494fcd9916c7cb9120ce1d9.tar.bz2 |
- don't enable the play button if switching to the playlist tab and the
playlist is empty
- don't crash when starting to play and no item is selected in the
playlist. instead select the first item then.
-rw-r--r-- | noncore/multimedia/opieplayer2/playlistselection.h | 2 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/playlistwidget.cpp | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/noncore/multimedia/opieplayer2/playlistselection.h b/noncore/multimedia/opieplayer2/playlistselection.h index d10bc82..9cc4e30 100644 --- a/noncore/multimedia/opieplayer2/playlistselection.h +++ b/noncore/multimedia/opieplayer2/playlistselection.h @@ -42,12 +42,14 @@ public slots: void setSelectedItem( const QString & ); bool prev(); bool next(); bool first(); bool last(); + bool isEmpty() const { return childCount() == 0; } + protected: virtual void contentsMouseMoveEvent(QMouseEvent *); /* #ifdef USE_PLAYLIST_BACKGROUND */ virtual void drawBackground( QPainter *p, const QRect &r ); virtual void paintEmptyArea( QPainter *p, const QRect &r ) { drawBackground( p, r ); }; /* #endif */ diff --git a/noncore/multimedia/opieplayer2/playlistwidget.cpp b/noncore/multimedia/opieplayer2/playlistwidget.cpp index f53def6..b08204e 100644 --- a/noncore/multimedia/opieplayer2/playlistwidget.cpp +++ b/noncore/multimedia/opieplayer2/playlistwidget.cpp @@ -415,13 +415,19 @@ void PlayListWidget::useSelectedDocument() { } const DocLnk *PlayListWidget::current() const { // this is fugly assert( currentTab() == CurrentPlayList ); - return d->selectedFiles->current(); + const DocLnk *lnk = d->selectedFiles->current(); + if ( !lnk ) { + d->selectedFiles->first(); + lnk = d->selectedFiles->current(); + } + assert( lnk ); + return lnk; } bool PlayListWidget::prev() { if ( mediaPlayerState->isShuffled() ) { const DocLnk *cur = current(); @@ -561,12 +567,14 @@ void PlayListWidget::tabChanged(QWidget *) { { if( !tbDeletePlaylist->isHidden() ) { tbDeletePlaylist->hide(); } d->tbRemoveFromList->setEnabled(TRUE); d->tbAddToList->setEnabled(FALSE); + + d->tbPlay->setEnabled( !d->selectedFiles->isEmpty() ); } break; case AudioFiles: { // audioView->clear(); if(!audioPopulated) populateAudioView(); |