author | llornkcor <llornkcor> | 2002-09-04 23:38:09 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-09-04 23:38:09 (UTC) |
commit | 3f2a74813b552c6f7a4450ec6294bbbcc5b811c5 (patch) (side-by-side diff) | |
tree | a29f6d3436365b13b71615052cf08817225d0d78 | |
parent | 95d24f601f7845e49092068ad358030024fa6097 (diff) | |
download | opie-3f2a74813b552c6f7a4450ec6294bbbcc5b811c5.zip opie-3f2a74813b552c6f7a4450ec6294bbbcc5b811c5.tar.gz opie-3f2a74813b552c6f7a4450ec6294bbbcc5b811c5.tar.bz2 |
change playing in file lists. no loop mode
-rw-r--r-- | noncore/multimedia/opieplayer2/audiowidget.cpp | 1 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/inputDialog.cpp | 1 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/mediaplayer.cpp | 48 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/mediaplayer.h | 3 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/playlistwidget.cpp | 84 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/playlistwidget.h | 3 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/playlistwidgetgui.cpp | 2 |
7 files changed, 97 insertions, 45 deletions
diff --git a/noncore/multimedia/opieplayer2/audiowidget.cpp b/noncore/multimedia/opieplayer2/audiowidget.cpp index 040e965..446fa45 100644 --- a/noncore/multimedia/opieplayer2/audiowidget.cpp +++ b/noncore/multimedia/opieplayer2/audiowidget.cpp @@ -450,12 +450,13 @@ void AudioWidget::mouseMoveEvent( QMouseEvent *event ) { } else { if ( audioButtons[i].isHeld ) { audioButtons[i].isHeld = FALSE; if ( !audioButtons[i].isToggle ) { setToggleButton( i, FALSE ); } + qDebug("mouseEvent %d", i); switch (i) { case AudioPlay: if( mediaPlayerState->isPaused ) { // setToggleButton( i, FALSE ); mediaPlayerState->setPaused( FALSE ); return; diff --git a/noncore/multimedia/opieplayer2/inputDialog.cpp b/noncore/multimedia/opieplayer2/inputDialog.cpp index 9edb1d3..62240b2 100644 --- a/noncore/multimedia/opieplayer2/inputDialog.cpp +++ b/noncore/multimedia/opieplayer2/inputDialog.cpp @@ -22,12 +22,13 @@ InputDialog::InputDialog( QWidget* parent, const char* name, bool modal, WFlags QPushButton *browserButton; browserButton = new QPushButton( Resource::loadIconSet("fileopen"),"",this,"BrowseButton"); browserButton->setGeometry( QRect( 205, 10, 22, 22)); connect( browserButton, SIGNAL(released()),this,SLOT(browse())); LineEdit1 = new QLineEdit( this, "LineEdit1" ); LineEdit1->setGeometry( QRect( 4, 10, 190, 22 ) ); + LineEdit1->setFocus(); } /* * return the current text(input) */ QString InputDialog::text() const { return LineEdit1->text(); diff --git a/noncore/multimedia/opieplayer2/mediaplayer.cpp b/noncore/multimedia/opieplayer2/mediaplayer.cpp index bf2acc8..553e3c1 100644 --- a/noncore/multimedia/opieplayer2/mediaplayer.cpp +++ b/noncore/multimedia/opieplayer2/mediaplayer.cpp @@ -1,11 +1,12 @@ #include <qpe/qpeapplication.h> #include <qpe/qlibrary.h> #include <qpe/resource.h> #include <qpe/config.h> #include <qpe/qcopenvelope_qws.h> +#include <qfileinfo.h> #include <qmainwindow.h> #include <qmessagebox.h> #include <qwidgetstack.h> #include <qfile.h> @@ -86,57 +87,86 @@ void MediaPlayer::setPlaying( bool play ) { if ( mediaPlayerState->paused() ) { mediaPlayerState->setPaused( FALSE ); return; } + QString tickerText, time, fileName; + if( playList->whichList() == 0 ) { //check for filelist const DocLnk *playListCurrent = playList->current(); if ( playListCurrent != NULL ) { currentFile = playListCurrent; } - xineControl->play( currentFile->file() ); + fileName = currentFile->name(); + long seconds = mediaPlayerState->length();// + time.sprintf("%li:%02i", seconds/60, (int)seconds%60 ); + qDebug(time); + } else { //if playing in file list.. play in a different way + // random and looping settings enabled causes problems here, + // since there is no selected file in the playlist, but a selected file in the file list, + // so we remember and shutoff + l = mediaPlayerState->looping(); + if(l) + mediaPlayerState->setLooping( false ); + r = mediaPlayerState->shuffled(); + mediaPlayerState->setShuffled(false); + + fileName = playList->currentFileListPathName(); + xineControl->play( fileName); long seconds = mediaPlayerState->length();// - QString time; time.sprintf("%li:%02i", seconds/60, (int)seconds%60 ); + time.sprintf("%li:%02i", seconds/60, (int)seconds%60 ); qDebug(time); + if( fileName.left(4) != "http" ) + fileName = QFileInfo( fileName).baseName(); - QString tickerText; - if( currentFile->file().left(4) == "http" ) - tickerText= tr( " File: " ) + currentFile->name(); + } + if( fileName.left(4) == "http" ) + tickerText= tr( " File: " ) + fileName; else - tickerText = tr( " File: " ) + currentFile->name() + tr(", Length: ") + time; - - audioUI->setTickerText( currentFile->file( ) ); - + tickerText = tr( " File: " ) + fileName + tr(", Length: ") + time; + audioUI->setTickerText( tickerText ); } void MediaPlayer::prev() { + if(playList->whichList() == 0) { //if using the playlist if ( playList->prev() ) { play(); } else if ( mediaPlayerState->looping() ) { if ( playList->last() ) { play(); } } else { mediaPlayerState->setList(); } } +} void MediaPlayer::next() { + + if(playList->whichList() == 0) { //if using the playlist if ( playList->next() ) { play(); } else if ( mediaPlayerState->looping() ) { if ( playList->first() ) { play(); } } else { mediaPlayerState->setList(); } + } else { //if playing from file list, let's just stop + qDebug("<<<<<<<<<<<<<<<<<stop for filelists"); + mediaPlayerState->setPlaying(false); + mediaPlayerState->setView('l'); + if(l) mediaPlayerState->setLooping(l); + if(r) mediaPlayerState->setShuffled(r); + } + qApp->processEvents(); } void MediaPlayer::startDecreasingVolume() { volumeDirection = -1; startTimer( 100 ); diff --git a/noncore/multimedia/opieplayer2/mediaplayer.h b/noncore/multimedia/opieplayer2/mediaplayer.h index 81fab88..05be128 100644 --- a/noncore/multimedia/opieplayer2/mediaplayer.h +++ b/noncore/multimedia/opieplayer2/mediaplayer.h @@ -14,13 +14,12 @@ class VolumeControl; class MediaPlayer : public QObject { Q_OBJECT public: MediaPlayer( QObject *parent, const char *name ); ~MediaPlayer(); - private slots: void setPlaying( bool ); void pauseCheck( bool ); void play(); void next(); void prev(); @@ -31,13 +30,13 @@ private slots: void blank( bool ); protected: void timerEvent( QTimerEvent *e ); void keyReleaseEvent( QKeyEvent *e); private: - bool isBlanked; + bool isBlanked, l, r; int fd; int volumeDirection; const DocLnk *currentFile; XineControl *xineControl; VolumeControl *volControl; }; diff --git a/noncore/multimedia/opieplayer2/playlistwidget.cpp b/noncore/multimedia/opieplayer2/playlistwidget.cpp index 3bd04bc..15c70c3 100644 --- a/noncore/multimedia/opieplayer2/playlistwidget.cpp +++ b/noncore/multimedia/opieplayer2/playlistwidget.cpp @@ -318,13 +318,13 @@ void PlayListWidget::setDocument( const QString& fileref ) { void PlayListWidget::useSelectedDocument() { d->setDocumentUsed = FALSE; } const DocLnk *PlayListWidget::current() { // this is fugly - switch ( tabWidget->currentPageIndex() ) { + switch ( whichList() ) { case 0: //playlist { // qDebug("playlist"); if ( mediaPlayerState->playlist() ) { return d->selectedFiles->current(); } else if ( d->setDocumentUsed && d->current ) { @@ -391,12 +391,13 @@ bool PlayListWidget::prev() { return mediaPlayerState->looping(); } } bool PlayListWidget::next() { +qDebug("<<<<<<<<<<<<next()"); if ( mediaPlayerState->playlist() ) { if ( mediaPlayerState->shuffled() ) { return prev(); } else { if ( !d->selectedFiles->next() ) { if ( mediaPlayerState->looping() ) { @@ -494,13 +495,13 @@ void PlayListWidget::addSelected() { Config cfg( "OpiePlayer" ); cfg.setGroup("PlayList"); QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); // int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); - switch (tabWidget->currentPageIndex()) { + switch (whichList()) { case 0: //playlist break; case 1: { //audio QListViewItemIterator it( audioView ); // iterate through all items of the listview for ( ; it.current(); ++it ) { @@ -554,13 +555,13 @@ void PlayListWidget::playIt( QListViewItem *it) { void PlayListWidget::addToSelection( QListViewItem *it) { d->setDocumentUsed = FALSE; if(it) { - switch (tabWidget->currentPageIndex()) { + switch ( whichList()) { case 1: { QListIterator<DocLnk> dit( files.children() ); for ( ; dit.current(); ++dit ) { if( dit.current()->name() == it->text(0)) { if(QFileInfo( dit.current()->file()).exists()) d->selectedFiles->addToSelection( **dit ); @@ -585,13 +586,13 @@ void PlayListWidget::addToSelection( QListViewItem *it) { } } void PlayListWidget::tabChanged(QWidget *) { - switch ( tabWidget->currentPageIndex()) { + switch ( whichList()) { case 0: { if( !tbDeletePlaylist->isHidden() ) { tbDeletePlaylist->hide(); } d->tbRemoveFromList->setEnabled(TRUE); @@ -631,41 +632,40 @@ void PlayListWidget::tabChanged(QWidget *) { break; }; } void PlayListWidget::btnPlay(bool b) { - // mediaPlayerState->setPlaying(b); - switch ( tabWidget->currentPageIndex()) { - case 0: - { - mediaPlayerState->setPlaying(b); - } - break; - case 1: - { - addToSelection( audioView->currentItem() ); - mediaPlayerState->setPlaying(b); - d->selectedFiles->removeSelected( ); - tabWidget->setCurrentPage(1); - d->selectedFiles->unSelect(); - insanityBool=FALSE; - }// audioView->clearSelection(); - break; - case 2: - { - addToSelection( videoView->currentItem() ); mediaPlayerState->setPlaying(b); qApp->processEvents(); - d->selectedFiles->removeSelected( ); - tabWidget->setCurrentPage(2); - d->selectedFiles->unSelect(); insanityBool=FALSE; - }// videoView->clearSelection(); - break; - }; +// switch ( whichList()) { +// case 0: +// { +// mediaPlayerState->setPlaying(b); +// } +// break; +// case 1: +// { +// mediaPlayerState->setPlaying(b); +// qApp->processEvents(); +// insanityBool=FALSE; +// }// audioView->clearSelection(); +// break; +// case 2: +// { +// // addToSelection( videoView->currentItem() ); +// mediaPlayerState->setPlaying(b); +// qApp->processEvents(); +// // d->selectedFiles->removeSelected( ); +// // tabWidget->setCurrentPage(2); +// // d->selectedFiles->unSelect(); +// insanityBool=FALSE; +// }// videoView->clearSelection(); +// break; +// }; } void PlayListWidget::deletePlaylist() { switch( QMessageBox::information( this, (tr("Remove Playlist?")), (tr("You really want to delete\nthis playlist?")), @@ -733,13 +733,14 @@ void PlayListWidget::populateAudioView() { if ( QFile( dit.current()->file()).exists() || dit.current()->file().left(4) == "http" ) { long size; if( dit.current()->file().left(4) == "http" ) size=0; else size = QFile( dit.current()->file() ).size(); - newItem= /*(void)*/ new QListViewItem( audioView, dit.current()->name(), QString::number(size ), storage); + newItem= /*(void)*/ new QListViewItem( audioView, dit.current()->name(), + QString::number(size ), storage, dit.current()->file()); newItem->setPixmap( 0, Resource::loadPixmap( "opieplayer2/musicfile" ) ); } } } @@ -752,26 +753,27 @@ void PlayListWidget::populateVideoView() { scanForVideo(); } QListIterator<DocLnk> Vdit( vFiles.children() ); QListIterator<FileSystem> it ( fs ); videoView->clear(); - QString storage; + QString storage, pathName; for ( ; Vdit.current(); ++Vdit ) { for( ; it.current(); ++it ) { const QString name = (*it)->name(); const QString path = (*it)->path(); if( Vdit.current()->file().find(path) != -1 ) { storage=name; + pathName=path; } } QListViewItem * newItem; if ( QFile( Vdit.current()->file() ).exists() ) { newItem= /*(void)*/ new QListViewItem( videoView, Vdit.current()->name(), - QString::number( QFile( Vdit.current()->file() ).size() ), storage ); + QString::number( QFile( Vdit.current()->file() ).size() ), storage, Vdit.current()->file()); newItem->setPixmap(0, Resource::loadPixmap( "opieplayer2/videofile" ) ); } } } @@ -1059,6 +1061,22 @@ void PlayListWidget::skinsMenuActivated( int item ) { skinsMenu->setItemChecked( item, TRUE ); Config cfg( "OpiePlayer" ); cfg.setGroup("Options"); cfg.writeEntry("Skin", skinsMenu->text( item ) ); } + +int PlayListWidget::whichList() { + return tabWidget->currentPageIndex(); +} + +QString PlayListWidget::currentFileListPathName() { + switch (whichList()) { + case 1: + return audioView->currentItem()->text(3); + break; + case 2: + return videoView->currentItem()->text(3); + break; + }; + return ""; +} diff --git a/noncore/multimedia/opieplayer2/playlistwidget.h b/noncore/multimedia/opieplayer2/playlistwidget.h index dcfdd48..2873dca 100644 --- a/noncore/multimedia/opieplayer2/playlistwidget.h +++ b/noncore/multimedia/opieplayer2/playlistwidget.h @@ -63,20 +63,21 @@ public: bool insanityBool; QString setDocFileRef; // retrieve the current playlist entry (media file link) const DocLnk *current(); void useSelectedDocument(); int selected; + int whichList(); public slots: bool first(); bool last(); bool next(); bool prev(); void writeConfig( Config& cfg ) const; - + QString currentFileListPathName(); protected: void keyReleaseEvent( QKeyEvent *e); private: int defaultSkinIndex; bool audioScan, videoScan; diff --git a/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp b/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp index 250833c..f073102 100644 --- a/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp +++ b/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp @@ -152,12 +152,13 @@ PlayListWidgetGui::PlayListWidgetGui( QWidget* parent, const char* name, WFlags Alayout->setSpacing( 2 ); Alayout->setMargin( 2 ); audioView = new QListView( aTab, "Audioview" ); audioView->addColumn( tr( "Title" ), 140 ); audioView->addColumn( tr( "Size" ), -1 ); audioView->addColumn( tr( "Media" ), -1 ); + audioView->addColumn( tr( "Path" ), 0 ); audioView->setColumnAlignment( 1, Qt::AlignRight ); audioView->setColumnAlignment( 2, Qt::AlignRight ); audioView->setAllColumnsShowFocus( TRUE ); audioView->setSorting( 0, TRUE ); audioView->setMultiSelection( TRUE ); audioView->setSelectionMode( QListView::Extended ); @@ -173,12 +174,13 @@ PlayListWidgetGui::PlayListWidgetGui( QWidget* parent, const char* name, WFlags Vlayout->setSpacing( 2 ); Vlayout->setMargin( 2 ); videoView = new QListView( vTab, "Videoview" ); videoView->addColumn( tr( "Title" ), 140); videoView->addColumn( tr( "Size" ), -1 ); videoView->addColumn(tr( "Media" ), -1 ); + videoView->addColumn(tr( "Path" ), 0 ); videoView->setColumnAlignment( 1, Qt::AlignRight ); videoView->setColumnAlignment( 2, Qt::AlignRight ); videoView->setAllColumnsShowFocus( TRUE ); videoView->setSorting( 0, TRUE ); videoView->setMultiSelection( TRUE ); videoView->setSelectionMode( QListView::Extended ); |