-rw-r--r-- | core/multimedia/opieplayer/playlistwidget.cpp | 57 | ||||
-rw-r--r-- | core/multimedia/opieplayer/playlistwidget.h | 2 |
2 files changed, 45 insertions, 14 deletions
diff --git a/core/multimedia/opieplayer/playlistwidget.cpp b/core/multimedia/opieplayer/playlistwidget.cpp index eeaed33..ae25fe3 100644 --- a/core/multimedia/opieplayer/playlistwidget.cpp +++ b/core/multimedia/opieplayer/playlistwidget.cpp @@ -168,26 +168,27 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl ) d->tbShuffle = new ToolButton( bar, tr( "Randomize" ),"opieplayer/shuffle", mediaPlayerState, SLOT(setShuffled(bool)), TRUE ); d->tbLoop = new ToolButton( bar, tr( "Loop" ),"opieplayer/loop", mediaPlayerState, SLOT(setLooping(bool)), TRUE ); tbDeletePlaylist->hide(); QPopupMenu *pmPlayList = new QPopupMenu( this ); menu->insertItem( tr( "File" ), pmPlayList ); new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) ); new MenuItem( pmPlayList, tr( "Add all audio files" ), this, SLOT( addAllMusicToList() ) ); new MenuItem( pmPlayList, tr( "Add all video files" ), this, SLOT( addAllVideoToList() ) ); new MenuItem( pmPlayList, tr( "Add all files" ), this, SLOT( addAllToList() ) ); -// pmPlayList->insertSeparator(-1); + pmPlayList->insertSeparator(-1); new MenuItem( pmPlayList, tr( "Save PlayList" ), this, SLOT( saveList() ) ); + new MenuItem( pmPlayList, tr( "Export playlist to m3u" ), this, SLOT(writem3u() ) ); pmPlayList->insertSeparator(-1); new MenuItem( pmPlayList, tr( "Open File or URL" ), this,SLOT( openFile() ) ); pmPlayList->insertSeparator(-1); new MenuItem( pmPlayList, tr( "Rescan for Audio Files" ), this,SLOT( scanForAudio() ) ); new MenuItem( pmPlayList, tr( "Rescan for Video Files" ), this,SLOT( scanForVideo() ) ); QPopupMenu *pmView = new QPopupMenu( this ); menu->insertItem( tr( "View" ), pmView ); fullScreenButton = new QAction(tr("Full Screen"), Resource::loadPixmap("fullscreen"), QString::null, 0, this, 0); fullScreenButton->addTo(pmView); scaleButton = new QAction(tr("Scale"), Resource::loadPixmap("opieplayer/scale"), QString::null, 0, this, 0); @@ -843,33 +844,31 @@ void PlayListWidget::tabChanged(QWidget *widg) { playLists->reread(); } break; }; } void PlayListWidget::btnPlay(bool b) { // mediaPlayerState->setPlaying(b); switch ( tabWidget->currentPageIndex()) { case 0: { - qDebug("here we are"); - if( d->selectedFiles->current()->file().find(" ",0,TRUE) != -1 - || d->selectedFiles->current()->file().find("%20",0,TRUE) != -1) { +// if( d->selectedFiles->current()->file().find(" ",0,TRUE) != -1 +// if( d->selectedFiles->current()->file().find("%20",0,TRUE) != -1) { QMessageBox::message("Note","You are trying to play\na malformed url."); - - } else { - +// } else { 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: @@ -1260,26 +1259,54 @@ void PlayListWidget::readm3u(const QString &filename) { // lnk.setIcon( "opieplayer/MPEGPlayer"); // qDebug("add "+s); d->selectedFiles->addToSelection( lnk); } i++; } } } } f.close(); } -void PlayListWidget::writem3u(const QString &filename) { +void PlayListWidget::writem3u() { + + InputDialog *fileDlg; + fileDlg = new InputDialog(this,tr("Save m3u Playlist "),TRUE, 0); + fileDlg->exec(); + QString filename,list; + if( fileDlg->result() == 1 ) { + filename = fileDlg->LineEdit1->text(); + qDebug(filename); + int noOfFiles = 0; + d->selectedFiles->first(); + do { +// we dont check for existance because of url's +// qDebug(d->selectedFiles->current()->file()); + list += d->selectedFiles->current()->file()+"\n"; + noOfFiles++; + } + while ( d->selectedFiles->next() ); + qDebug(list); + if(filename.left(1) != "/") + filename=QPEApplication::documentDir()+"/"+filename; + if(filename.right(3) != "m3u") + filename=filename+".m3u"; + QFile f(filename); + f.open(IO_WriteOnly); + f.writeBlock(list, list.length()); + f.close(); + } + if(fileDlg) delete fileDlg; } void PlayListWidget::readPls(const QString &filename) { qDebug("pls filename is "+filename); QFile f(filename); if(f.open(IO_ReadOnly)) { QTextStream t(&f); QString s;//, first, second; int i=0; while ( !t.atEnd()) { @@ -1287,35 +1314,39 @@ void PlayListWidget::readPls(const QString &filename) { if(s.left(4) == "File") { s=s.right(s.length() - 6); s.replace(QRegExp("%20")," "); qDebug("adding "+s+" to playlist"); // numberofentries=2 // File1=http // Title // Length // Version // File2=http s=s.replace( QRegExp("\\"),"/"); -// Lview->insertLine(t.readLine(),-1); -// s=t.readLine(); -// s=s.right(s.length()-2); DocLnk lnk( s ); QFileInfo f(s); QString name = f.baseName(); + if(name.left(4)=="http") + name = s.right( s.length() - 7); + else + name=s; name = name.right(name.length()-name.findRev("\\",-1,TRUE)-1); // QFileInfo f(s); // QString name = f.baseName(); -// // name = name.left(name.length()-4); +// name = name.left(name.length()-4); // name = name.right(name.findRev("/",0,TRUE)); lnk.setName( name); + if(s.at(s.length()-4) == '.') + lnk.setFile( s); + else lnk.setFile( s+"/"); lnk.setType("audio/x-mpegurl"); qDebug("DocLnk add "+name); d->selectedFiles->addToSelection( lnk); } } i++; } } diff --git a/core/multimedia/opieplayer/playlistwidget.h b/core/multimedia/opieplayer/playlistwidget.h index 5837ed3..7718a8c 100644 --- a/core/multimedia/opieplayer/playlistwidget.h +++ b/core/multimedia/opieplayer/playlistwidget.h @@ -66,35 +66,35 @@ public slots: /* void setFullScreen(); */ /* void setScaled(); */ protected: /* void contentsMousePressEvent( QMouseEvent * e ); */ /* void contentsMouseReleaseEvent( QMouseEvent * e ); */ void keyReleaseEvent( QKeyEvent *e); void keyPressEvent( QKeyEvent *e); private: bool audioScan, videoScan; void doBlank(); void doUnblank(); void readm3u(const QString &); - void writem3u(const QString &); void readPls(const QString &); void initializeStates(); void readConfig( Config& cfg ); void writeConfig( Config& cfg ) const; PlayListWidgetPrivate *d; // Private implementation data void populateAudioView(); void populateVideoView(); private slots: + void writem3u(); void scanForAudio(); void scanForVideo(); void openFile(); void setDocument( const QString& fileref ); void addToSelection( const DocLnk& ); // Add a media file to the playlist void addToSelection( QListViewItem* ); // Add a media file to the playlist void setActiveWindow(); // need to handle this to show the right view void setPlaylist( bool ); // Show/Hide the playlist void setView( char ); void clearList(); void addAllToList(); void addAllMusicToList(); |