-rw-r--r-- | noncore/multimedia/opieplayer2/mediaplayer.cpp | 2 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/om3u.cpp | 25 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/playlistwidget.cpp | 235 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/playlistwidget.h | 3 |
4 files changed, 104 insertions, 161 deletions
diff --git a/noncore/multimedia/opieplayer2/mediaplayer.cpp b/noncore/multimedia/opieplayer2/mediaplayer.cpp index 8da7f73..5069a49 100644 --- a/noncore/multimedia/opieplayer2/mediaplayer.cpp +++ b/noncore/multimedia/opieplayer2/mediaplayer.cpp @@ -339,7 +339,7 @@ void MediaPlayer::keyReleaseEvent( QKeyEvent *e) { void MediaPlayer::cleanUp() {// this happens on closing Config cfg( "OpiePlayer" ); mediaPlayerState->writeConfig( cfg ); - playList->writeConfig( cfg ); + playList->writeDefaultPlaylist( ); // QPEApplication::grabKeyboard(); // QPEApplication::ungrabKeyboard(); diff --git a/noncore/multimedia/opieplayer2/om3u.cpp b/noncore/multimedia/opieplayer2/om3u.cpp index c947033..0be727b 100644 --- a/noncore/multimedia/opieplayer2/om3u.cpp +++ b/noncore/multimedia/opieplayer2/om3u.cpp @@ -63,13 +63,13 @@ Om3u::Om3u( const QString &filePath, int mode) Om3u::~Om3u(){} -void Om3u::readM3u() { //it's m3u +void Om3u::readM3u() { // qDebug("<<<<<<reading m3u "+f.name()); QTextStream t(&f); QString s; while ( !t.atEnd() ) { s=t.readLine(); - // qDebug(s); + qDebug(s); if( s.find( "#", 0, TRUE) == -1 ) { if( s.left(2) == "E:" || s.left(2) == "P:" ) { s = s.right( s.length() -2 ); @@ -82,11 +82,11 @@ void Om3u::readM3u() { //it's m3u } else { // is url s.replace( QRegExp( "%20" )," " ); QString name; - if( name.left( 4 ) == "http" ) { - name = s.right( s.length() - 7 ); - } else { +// if( name.left( 4 ) == "http" ) { +// name = s.right( s.length() - 7 ); +// } else { name = s; - } +// } append(name); // qDebug(name); } @@ -137,7 +137,7 @@ void Om3u::write() { //writes list to m3u file list += *it+"\n"; } f.writeBlock( list, list.length() ); - f.close(); +// f.close(); } void Om3u::add(const QString &filePath) { //adds to m3u file @@ -145,10 +145,21 @@ void Om3u::add(const QString &filePath) { //adds to m3u file } void Om3u::remove(const QString &filePath) { //removes from m3u list + QString list, currentFile; + for ( QStringList::ConstIterator it = begin(); it != end(); ++it ) { + currentFile=*it; +// qDebug(*it); + + if( filePath != currentFile) + list += currentFile+"\n"; + } + f.writeBlock( list, list.length() ); } void Om3u::deleteFile(const QString &filePath) {//deletes m3u file + f.close(); + f.remove(); } diff --git a/noncore/multimedia/opieplayer2/playlistwidget.cpp b/noncore/multimedia/opieplayer2/playlistwidget.cpp index 897c458..cc4be23 100644 --- a/noncore/multimedia/opieplayer2/playlistwidget.cpp +++ b/noncore/multimedia/opieplayer2/playlistwidget.cpp @@ -176,101 +176,27 @@ void PlayListWidget::initializeStates() { setPlaylist( true ); } +void PlayListWidget::writeDefaultPlaylist() { -void PlayListWidget::readConfig( Config& cfg ) { - - cfg.setGroup( "PlayList" ); - QString currentString = cfg.readEntry( "current", "" ); - int noOfFiles = cfg.readNumEntry( "NumberOfFiles", 0 ); - - for ( int i = 0; i < noOfFiles; i++ ) { - QString entryName; - entryName.sprintf( "File%i", i + 1 ); - - QString linkFile = cfg.readEntry( entryName ); - - qDebug("reading "+linkFile); - - if( QFileInfo( linkFile ).exists() ) { - - DocLnk lnk( linkFile ); - - if ( QFileInfo( lnk.file() ).exists() || - - linkFile.find( "http" , 0, TRUE) != -1) { - - d->selectedFiles->addToSelection( lnk ); - } - } - } - d->selectedFiles->setSelectedItem( currentString ); -} - - -void PlayListWidget::writeConfig( Config& cfg ) const { - - Config config( "OpiePlayer" ); - config.setGroup( "PlayList" ); - -// if(config.readBoolEntry("newPlaylist")) { -// new for testing - QString name, filename, list; + Config config( "OpiePlayer" ); + config.setGroup( "PlayList" ); + QString filename=QPEApplication::documentDir() + "/default.m3u"; + QString currentString = config.readEntry( "CurrentPlaylist", filename); + if( currentString == filename) { Om3u *m3uList; - name = "default"; - - filename=QPEApplication::documentDir() + "/" + name+".m3u"; - m3uList = new Om3u(filename, IO_ReadWrite); +// qDebug("<<<<<<<<<<<<<default>>>>>>>>>>>>>>>>>>>"); + m3uList = new Om3u(filename, IO_ReadWrite | IO_Truncate); d->selectedFiles->first(); do { - qDebug(d->selectedFiles->current()->file()); +// qDebug(d->selectedFiles->current()->file()); m3uList->add( d->selectedFiles->current()->file() ); } while ( d->selectedFiles->next() ); - // qDebug( list ); - // m3uList->write(); + m3uList->write(); m3uList->close(); if(m3uList) delete m3uList; - - DocLnk lnk; - lnk.setFile( filename); - lnk.setIcon("opieplayer2/playlist2"); - lnk.setName( name); //sets file name - - qDebug("writing default playlist "+filename); - - config.writeEntry("CurrentPlaylist", filename); -// currentPlayList=filename; - if(!lnk.writeLink()) { - qDebug("Writing doclink did not work"); - } -// } else { - -// d->selectedFiles->writeCurrent( cfg ); -// int noOfFiles = 0; -// d->selectedFiles->first(); - -// do { -// const DocLnk *lnk = d->selectedFiles->current(); - -// if ( lnk ) { - -// QString entryName; -// entryName.sprintf( "File%i", noOfFiles + 1 ); - -// cfg.writeEntry( entryName, lnk->linkFile() ); -// // if this link does exist, add it so we have the file -// // next time... - -// if ( !QFile::exists( lnk->linkFile() ) ) { -// lnk->writeLink(); -// } -// } -// noOfFiles++; -// } -// while ( d->selectedFiles->next() ); -// cfg.writeEntry("NumberOfFiles", noOfFiles ); -// } + } } void PlayListWidget::addToSelection( const DocLnk& lnk ) { @@ -360,7 +286,7 @@ void PlayListWidget::addAllVideoToList() { void PlayListWidget::setDocument( const QString& fileref ) { - //qDebug( fileref ); + qDebug( "<<<<<<<<set document>>>>>>>>>> "+fileref ); fromSetDocument = TRUE; if ( fileref.isNull() ) { QMessageBox::critical( 0, tr( "Invalid File" ), @@ -368,16 +294,16 @@ void PlayListWidget::setDocument( const QString& fileref ) { return; } - if( fileref.find( "m3u", 0, TRUE) != -1 ) { //is m3u + clearList(); + if( fileref.find( "m3u", 0, TRUE) != -1 ) { //is m3u readm3u( fileref ); + } else if( DocLnk( fileref).file().find( "m3u", 0, TRUE) != -1 ) { + readm3u( DocLnk( fileref).file() ); } else if( fileref.find( "pls", 0, TRUE) != -1 ) { //is pls readPls( fileref ); - }// else if( fileref.find( "playlist", 0, TRUE) != -1 ) {//is playlist -// clearList(); -// loadList( DocLnk( fileref ) ); -// d->selectedFiles->first(); -// } - else { + } else if( DocLnk( fileref).file().find( "pls", 0, TRUE) != -1 ) { + readPls( DocLnk( fileref).file() ); + } else { clearList(); addToSelection( DocLnk( fileref ) ); d->setDocumentUsed = TRUE; @@ -507,7 +433,7 @@ void PlayListWidget::setPlaylist( bool shown ) { void PlayListWidget::addSelected() { - + qDebug("addSelected"); switch (whichList()) { case 0: //playlist break; @@ -557,6 +483,7 @@ void PlayListWidget::addSelected() { void PlayListWidget::removeSelected() { d->selectedFiles->removeSelected( ); + writeCurrentM3u(); } @@ -570,36 +497,34 @@ void PlayListWidget::playIt( QListViewItem *it) { void PlayListWidget::addToSelection( QListViewItem *it) { d->setDocumentUsed = FALSE; - + qDebug("addToSelection2"); if(it) { 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 ); - } - } - writeCurrentM3u(); - - } - - break; - case 2: { - QListIterator<DocLnk> dit( vFiles.children() ); - for ( ; dit.current(); ++dit ) { - if( dit.current()->name() == it->text(0)) { - if( QFileInfo( dit.current()->file()).exists() ) - d->selectedFiles->addToSelection( **dit ); - } - } - writeCurrentM3u(); + 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 ); + } + } + writeCurrentM3u(); + } + break; + case 2: { + QListIterator<DocLnk> dit( vFiles.children() ); + for ( ; dit.current(); ++dit ) { + if( dit.current()->name() == it->text(0)) { + if( QFileInfo( dit.current()->file()).exists() ) + d->selectedFiles->addToSelection( **dit ); + } + } + writeCurrentM3u(); - } - break; - case 0: - break; + } + break; + case 0: + break; }; tabWidget->setCurrentPage(0); } @@ -780,14 +705,14 @@ void PlayListWidget::openFile() { fileDlg->exec(); if( fileDlg->result() == 1 ) { filename = fileDlg->text(); - qDebug( "Selected filename is " + filename ); - - if(filename.left(4) == "http") { //if http, lets write a new m3u Om3u *m3uList; DocLnk lnk; - QString m3uFile, m3uFilePath; + Config cfg( "OpiePlayer" ); + cfg.setGroup("PlayList"); + if(filename.left(4) == "http") { + QString m3uFile, m3uFilePath; if(filename.find(":",8,TRUE) != -1) { //found a port m3uFile = filename.left( filename.find( ":",8,TRUE)); m3uFile = m3uFile.right( 7); @@ -797,43 +722,41 @@ void PlayListWidget::openFile() { } else{ m3uFile=filename; } -// qDebug( m3uFile); -//this is where this new m3u is going to live at - m3uFilePath = QDir::homeDirPath() + "/" + m3uFile + ".m3u"; -// m3uFile += ".m3u"; - m3uList = new Om3u( m3uFile+".m3u", IO_ReadWrite ); + qDebug("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"+ m3uFile); + m3uList = new Om3u( cfg.readEntry("CurrentPlaylist",""), IO_Append | IO_ReadWrite ); m3uList->add( filename); m3uList->write(); + m3uList->close(); if(m3uList) delete m3uList; -// qDebug( m3uFile); - lnk.setName( filename ); //sets file name - lnk.setFile( m3uFilePath ); //sets File property - lnk.setType( MimeType( QFile::encodeName(m3uFilePath) ).id() ); - - lnk.setExec( "opieplayer2" ); - lnk.setIcon("opieplayer2/playlist2"); - - if( !lnk.writeLink() ) { - qDebug( "Writing doclink did not work" ); - } + lnk.setName( filename ); //sets name + lnk.setFile( filename ); //sets file name + lnk.setIcon("opieplayer2/musicfile"); d->selectedFiles->addToSelection( lnk ); - } - else if( filename.right( 3 ) == "m3u" ) { + else if( filename.right( 3) == "m3u" ) { readm3u( filename ); } else if( filename.right(3) == "pls" ) { readPls( filename ); } + else { + m3uList = new Om3u( cfg.readEntry("CurrentPlaylist",""), IO_Append | IO_ReadWrite ); + m3uList->add( filename); + m3uList->write(); + m3uList->close(); + if(m3uList) delete m3uList; + d->selectedFiles->addToSelection( DocLnk(filename) ); + } } + if( fileDlg ) { delete fileDlg; } } /* -reads m3u and adds files/urls to playlist */ +reads m3u and shows files/urls to playlist widget */ void PlayListWidget::readm3u( const QString &filename ) { qDebug( "read m3u filename " + filename ); @@ -844,19 +767,24 @@ void PlayListWidget::readm3u( const QString &filename ) { DocLnk lnk; for ( QStringList::ConstIterator it = m3uList->begin(); it != m3uList->end(); ++it ) { s = *it; - s.replace( QRegExp( "%20" )," " ); +// s.replace( QRegExp( "%20" )," " ); // qDebug("reading "+ s); - - if( QFileInfo( s ).exists() ) { + if(s.left(4)=="http") { + lnk.setName( s ); //sets file name + lnk.setFile( s ); //sets file name + lnk.setIcon("opieplayer2/musicfile"); + } + else { + if( QFileInfo( s ).exists() ) { lnk.setName( QFileInfo(s).baseName()); // qDebug("set link "+s); if(s.at(s.length()-4) == '.') //if regular file lnk.setFile( s); else lnk.setFile( s+"/"); //if url with no extension - - d->selectedFiles->addToSelection( lnk ); + } } + d->selectedFiles->addToSelection( lnk ); } Config config( "OpiePlayer" ); config.setGroup( "PlayList" ); @@ -865,11 +793,12 @@ void PlayListWidget::readm3u( const QString &filename ) { config.write(); currentPlayList=filename; +// m3uList->write(); m3uList->close(); if(m3uList) delete m3uList; d->selectedFiles->setSelectedItem( s); - setCaption(tr("OpiePlayer: ")+ filename); + setCaption(tr("OpiePlayer: ")+ QFileInfo(filename).baseName()); } @@ -926,7 +855,7 @@ void PlayListWidget::writeCurrentM3u() { QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); // int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); Om3u *m3uList; - m3uList = new Om3u( currentPlaylist, IO_ReadWrite ); + m3uList = new Om3u( currentPlaylist, IO_ReadWrite |IO_Truncate ); d->selectedFiles->first(); do { @@ -935,6 +864,8 @@ void PlayListWidget::writeCurrentM3u() { while ( d->selectedFiles->next() ); // qDebug( list ); m3uList->write(); + m3uList->close(); + if(m3uList) delete m3uList; } @@ -969,6 +900,8 @@ void PlayListWidget::writem3u() { while ( d->selectedFiles->next() ); // qDebug( list ); m3uList->write(); + m3uList->close(); + } if(m3uList) delete m3uList; if(fileDlg) delete fileDlg; diff --git a/noncore/multimedia/opieplayer2/playlistwidget.h b/noncore/multimedia/opieplayer2/playlistwidget.h index 8a77619..53be7a7 100644 --- a/noncore/multimedia/opieplayer2/playlistwidget.h +++ b/noncore/multimedia/opieplayer2/playlistwidget.h @@ -73,7 +73,7 @@ public slots: bool last(); bool next(); bool prev(); - void writeConfig( Config& cfg ) const; + void writeDefaultPlaylist( ); QString currentFileListPathName(); protected: void keyReleaseEvent( QKeyEvent *e); @@ -84,7 +84,6 @@ private: void readm3u(const QString &); void readPls(const QString &); void initializeStates(); - void readConfig( Config& cfg ); void populateAudioView(); void populateVideoView(); |