Diffstat (limited to 'noncore/multimedia/opieplayer2/playlistwidget.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/multimedia/opieplayer2/playlistwidget.cpp | 180 |
1 files changed, 66 insertions, 114 deletions
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.cpp b/noncore/multimedia/opieplayer2/playlistwidget.cpp index 26c2896..b6525e1 100644 --- a/noncore/multimedia/opieplayer2/playlistwidget.cpp +++ b/noncore/multimedia/opieplayer2/playlistwidget.cpp @@ -147,28 +147,21 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl ) this, SLOT( playIt( QListViewItem *) ) ); connect ( gammaSlider, SIGNAL( valueChanged( int ) ), mediaPlayerState, SLOT( setVideoGamma( int ) ) ); -// cfg.setGroup( "PlayList" ); -// if( cfg.readBoolEntry("newPlaylist") ){ - QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "" ); - loadList(DocLnk( currentPlaylist ) ); - setCaption( tr( "OpiePlayer: " ) + currentPlaylist ); -// } else { -// readConfig( cfg ); - -// } // see which skins are installed videoScan=FALSE; audioScan=FALSE; populateSkinsMenu(); initializeStates(); + + QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "" ); + loadList(DocLnk( currentPlaylist ) ); + setCaption( tr( "OpiePlayer: " ) + currentPlaylist ); } PlayListWidget::~PlayListWidget() { - // WTF?!@?! - if ( d->current ) { delete d->current; } delete d; @@ -205,14 +198,12 @@ void PlayListWidget::readConfig( Config& cfg ) { linkFile.find( "http" , 0, TRUE) != -1) { d->selectedFiles->addToSelection( lnk ); - } } } d->selectedFiles->setSelectedItem( currentString ); - } void PlayListWidget::writeConfig( Config& cfg ) const { @@ -226,20 +217,18 @@ void PlayListWidget::writeConfig( Config& cfg ) const { Om3u *m3uList; name = "default"; filename=QPEApplication::documentDir() + "/" + name+".m3u"; - - m3uList = new Om3u(filename); - + m3uList = new Om3u(filename, IO_ReadWrite); d->selectedFiles->first(); do { - m3uList->add( d->selectedFiles->current()->file()); + qDebug(d->selectedFiles->current()->file()); + m3uList->add( d->selectedFiles->current()->file() ); } while ( d->selectedFiles->next() ); + // qDebug( list ); - qDebug( list ); - - m3uList->write(); + // m3uList->write(); m3uList->close(); if(m3uList) delete m3uList; DocLnk lnk; @@ -248,15 +237,13 @@ void PlayListWidget::writeConfig( Config& cfg ) const { lnk.setName( name); //sets file name qDebug("writing default playlist "+filename); - config.writeEntry("CurrentPlaylist", filename); + config.writeEntry("CurrentPlaylist", filename); // currentPlayList=filename; - if(!lnk.writeLink()) { qDebug("Writing doclink did not work"); } - // } else { // d->selectedFiles->writeCurrent( cfg ); // int noOfFiles = 0; @@ -284,15 +271,15 @@ void PlayListWidget::writeConfig( Config& cfg ) const { // cfg.writeEntry("NumberOfFiles", noOfFiles ); // } } - void PlayListWidget::addToSelection( const DocLnk& lnk ) { d->setDocumentUsed = FALSE; if ( mediaPlayerState->playlist() ) { if( QFileInfo( lnk.file() ).exists() || lnk.file().left(4) == "http" ) d->selectedFiles->addToSelection( lnk ); + writeCurrentM3u(); } else mediaPlayerState->setPlaying( TRUE ); } @@ -303,9 +290,8 @@ void PlayListWidget::clearList() { d->selectedFiles->removeSelected(); } } - void PlayListWidget::viewPressed( int mouse, QListViewItem *, const QPoint& , int) { switch (mouse) { case 1: break; @@ -345,8 +331,9 @@ void PlayListWidget::addAllToList() { if( QFileInfo( Adit.current()->file() ).exists() ) { d->selectedFiles->addToSelection( **Adit ); } } + writeCurrentM3u(); } void PlayListWidget::addAllMusicToList() { @@ -355,8 +342,9 @@ void PlayListWidget::addAllMusicToList() { if( QFileInfo(dit.current()->file() ).exists() ) { d->selectedFiles->addToSelection( **dit ); } } + writeCurrentM3u(); } void PlayListWidget::addAllVideoToList() { @@ -365,8 +353,9 @@ void PlayListWidget::addAllVideoToList() { if( QFileInfo( dit.current()->file() ).exists() ) { d->selectedFiles->addToSelection( **dit ); } } + writeCurrentM3u(); } void PlayListWidget::setDocument( const QString& fileref ) { @@ -381,21 +370,19 @@ void PlayListWidget::setDocument( const QString& fileref ) { if( fileref.find( "m3u", 0, TRUE) != -1 ) { //is m3u readm3u( fileref ); } 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( fileref.find( "playlist", 0, TRUE) != -1 ) {//is playlist +// clearList(); +// loadList( DocLnk( fileref ) ); +// d->selectedFiles->first(); +// } + else { clearList(); addToSelection( DocLnk( fileref ) ); d->setDocumentUsed = TRUE; mediaPlayerState->setPlaying( FALSE ); -// qApp->processEvents(); mediaPlayerState->setPlaying( TRUE ); -// qApp->processEvents(); - setCaption( tr("OpiePlayer") ); } } @@ -490,74 +477,22 @@ bool PlayListWidget::last() { } void PlayListWidget::saveList() { -// Config config( "OpiePlayer" ); -// config.setGroup( "PlayList" ); - -// if(config.readBoolEntry("newPlaylist") ){ - writem3u(); - -// } else { - -// QString filename; -// InputDialog *fileDlg = 0l; -// fileDlg = new InputDialog(this,tr("Save Playlist"),TRUE, 0); -// fileDlg->exec(); -// if( fileDlg->result() == 1 ) { -// if ( d->current ) -// delete d->current; -// filename = fileDlg->text();//+".playlist"; -// // qDebug("saving playlist "+filename+".playlist"); - -// Config cfg( filename +".playlist"); -// writeConfig( cfg ); - -// DocLnk lnk; -// lnk.setFile(QDir::homeDirPath()+"/Settings/"+filename+".playlist.conf"); -// //sets File property -// lnk.setType("playlist/plain"); -// lnk.setIcon("opieplayer2/playlist2"); -// lnk.setName( filename); //sets file name -// // qDebug(filename); -// if(!lnk.writeLink()) { -// qDebug("Writing doclink did not work"); -// } -// } - -// config.writeEntry("CurrentPlaylist",filename); -// setCaption(tr("OpiePlayer: ")+filename); -// d->selectedFiles->first(); -// if(fileDlg) { -// delete fileDlg; -// } -// } + writem3u(); } void PlayListWidget::loadList( const DocLnk & lnk) { QString name = lnk.name(); - qDebug("currentList is "+name); + // qDebug("<<<<<<<<<<<<<<<<<<<<<<<<currentList is "+name); if( name.length()>0) { setCaption("OpiePlayer: "+name); - qDebug("<<<<<<<<<<<<load list "+ lnk.file()); + qDebug("<<<<<<<<<<<<load list "+ lnk.file()); clearList(); - -// if(name.right(3) == "m3u") { - readm3u(lnk.file()); -// } else { -// / Config cfg( name+".playlist"); -// readConfig(cfg); - tabWidget->setCurrentPage(0); - - Config config( "OpiePlayer" ); - config.setGroup( "PlayList" ); - config.writeEntry("CurrentPlaylist", lnk.file()); -// // d->selectedFiles->first(); -// } } } @@ -571,13 +506,8 @@ void PlayListWidget::setPlaylist( bool shown ) { void PlayListWidget::addSelected() { - Config cfg( "OpiePlayer" ); - cfg.setGroup("PlayList"); - QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); - // int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); - switch (whichList()) { case 0: //playlist break; case 1: { //audio @@ -587,16 +517,18 @@ void PlayListWidget::addSelected() { if ( it.current()->isSelected() ) { QListIterator<DocLnk> dit( files.children() ); for ( ; dit.current(); ++dit ) { if( dit.current()->name() == it.current()->text(0) ) { - if(QFileInfo( dit.current()->file()).exists()) + if( QFileInfo( dit.current()->file()).exists()) { d->selectedFiles->addToSelection( **dit ); + audioView->setSelected( it.current(),FALSE); + } } } - audioView->setSelected( it.current(),FALSE); } } tabWidget->setCurrentPage(0); + writeCurrentM3u(); } break; case 2: { // video QListViewItemIterator it( videoView ); @@ -605,16 +537,18 @@ void PlayListWidget::addSelected() { if ( it.current()->isSelected() ) { QListIterator<DocLnk> dit( vFiles.children() ); for ( ; dit.current(); ++dit ) { if( dit.current()->name() == it.current()->text(0) ) { - if(QFileInfo( dit.current()->file()).exists()) + if(QFileInfo( dit.current()->file()).exists()) { d->selectedFiles->addToSelection( **dit ); + videoView->setSelected( it.current(),FALSE); + } } } - videoView->setSelected( it.current(),FALSE); } } tabWidget->setCurrentPage(0); + writeCurrentM3u(); } break; }; } @@ -645,9 +579,12 @@ void PlayListWidget::addToSelection( QListViewItem *it) { if(QFileInfo( dit.current()->file()).exists()) d->selectedFiles->addToSelection( **dit ); } } + writeCurrentM3u(); + } + break; case 2: { QListIterator<DocLnk> dit( vFiles.children() ); for ( ; dit.current(); ++dit ) { @@ -655,8 +592,10 @@ void PlayListWidget::addToSelection( QListViewItem *it) { if( QFileInfo( dit.current()->file()).exists() ) d->selectedFiles->addToSelection( **dit ); } } + writeCurrentM3u(); + } break; case 0: break; @@ -849,31 +788,24 @@ void PlayListWidget::openFile() { QString m3uFile, m3uFilePath; if(filename.find(":",8,TRUE) != -1) { //found a port m3uFile = filename.left( filename.find( ":",8,TRUE)); - m3uFile = m3uFile.right( 7); - } else if(filename.left(4) == "http"){ - m3uFile=filename; m3uFile = m3uFile.right( m3uFile.length() - 7); - } 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"); - + m3uList = new Om3u( m3uFile+".m3u", IO_ReadWrite ); m3uList->add( filename); m3uList->write(); 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() ); @@ -905,19 +837,19 @@ void PlayListWidget::readm3u( const QString &filename ) { qDebug( "read m3u filename " + filename ); Om3u *m3uList; QString s, name; - m3uList = new Om3u( filename); + m3uList = new Om3u( filename, IO_ReadOnly ); m3uList->readM3u(); DocLnk lnk; for ( QStringList::ConstIterator it = m3uList->begin(); it != m3uList->end(); ++it ) { s = *it; s.replace( QRegExp( "%20" )," " ); - qDebug("reading "+ s); +// qDebug("reading "+ s); if( QFileInfo( s ).exists() ) { lnk.setName( QFileInfo(s).baseName()); - qDebug("set link "+s); +// 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 @@ -928,15 +860,16 @@ void PlayListWidget::readm3u( const QString &filename ) { Config config( "OpiePlayer" ); config.setGroup( "PlayList" ); config.writeEntry("CurrentPlaylist",filename); + config.write(); currentPlayList=filename; m3uList->close(); if(m3uList) delete m3uList; d->selectedFiles->setSelectedItem( s); - setCaption(tr("OpiePlayer: ")+ QFileInfo(s).baseName()); + setCaption(tr("OpiePlayer: ")+ filename); } /* @@ -945,14 +878,14 @@ void PlayListWidget::readPls( const QString &filename ) { qDebug( "pls filename is " + filename ); Om3u *m3uList; QString s, name; - m3uList = new Om3u( filename); + m3uList = new Om3u( filename, IO_ReadOnly ); m3uList->readPls(); for ( QStringList::ConstIterator it = m3uList->begin(); it != m3uList->end(); ++it ) { s = *it; - s.replace( QRegExp( "%20" )," " ); + // s.replace( QRegExp( "%20" )," " ); DocLnk lnk( s ); QFileInfo f( s ); QString name = f.baseName(); @@ -983,8 +916,29 @@ void PlayListWidget::readPls( const QString &filename ) { if(m3uList) delete m3uList; } /* + writes current playlist to current m3u file */ +void PlayListWidget::writeCurrentM3u() { + qDebug("writting to current m3u"); + Config cfg( "OpiePlayer" ); + cfg.setGroup("PlayList"); + QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); + // int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); + Om3u *m3uList; + m3uList = new Om3u( currentPlaylist, IO_ReadWrite ); + d->selectedFiles->first(); + + do { + m3uList->add( d->selectedFiles->current()->file()); + } + while ( d->selectedFiles->next() ); + // qDebug( list ); + m3uList->write(); + if(m3uList) delete m3uList; +} + + /* writes current playlist to m3u file */ void PlayListWidget::writem3u() { InputDialog *fileDlg; fileDlg = new InputDialog( this, tr( "Save m3u Playlist " ), TRUE, 0); @@ -1003,20 +957,18 @@ void PlayListWidget::writem3u() { if( name.right( 3 ) != "m3u" ) { filename = QPEApplication::documentDir() + "/" +name+".m3u"; } - m3uList = new Om3u(filename); + m3uList = new Om3u(filename, IO_ReadWrite); d->selectedFiles->first(); do { m3uList->add( d->selectedFiles->current()->file()); } while ( d->selectedFiles->next() ); // qDebug( list ); - m3uList->write(); - m3uList->close(); } if(m3uList) delete m3uList; if(fileDlg) delete fileDlg; |