summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/multimedia/opieplayer/playlistwidget.cpp57
-rw-r--r--core/multimedia/opieplayer/playlistwidget.h2
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
@@ -174,14 +174,15 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl )
174 QPopupMenu *pmPlayList = new QPopupMenu( this ); 174 QPopupMenu *pmPlayList = new QPopupMenu( this );
175 menu->insertItem( tr( "File" ), pmPlayList ); 175 menu->insertItem( tr( "File" ), pmPlayList );
176 new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) ); 176 new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) );
177 new MenuItem( pmPlayList, tr( "Add all audio files" ), this, SLOT( addAllMusicToList() ) ); 177 new MenuItem( pmPlayList, tr( "Add all audio files" ), this, SLOT( addAllMusicToList() ) );
178 new MenuItem( pmPlayList, tr( "Add all video files" ), this, SLOT( addAllVideoToList() ) ); 178 new MenuItem( pmPlayList, tr( "Add all video files" ), this, SLOT( addAllVideoToList() ) );
179 new MenuItem( pmPlayList, tr( "Add all files" ), this, SLOT( addAllToList() ) ); 179 new MenuItem( pmPlayList, tr( "Add all files" ), this, SLOT( addAllToList() ) );
180// pmPlayList->insertSeparator(-1); 180 pmPlayList->insertSeparator(-1);
181 new MenuItem( pmPlayList, tr( "Save PlayList" ), this, SLOT( saveList() ) ); 181 new MenuItem( pmPlayList, tr( "Save PlayList" ), this, SLOT( saveList() ) );
182 new MenuItem( pmPlayList, tr( "Export playlist to m3u" ), this, SLOT(writem3u() ) );
182 pmPlayList->insertSeparator(-1); 183 pmPlayList->insertSeparator(-1);
183 new MenuItem( pmPlayList, tr( "Open File or URL" ), this,SLOT( openFile() ) ); 184 new MenuItem( pmPlayList, tr( "Open File or URL" ), this,SLOT( openFile() ) );
184 pmPlayList->insertSeparator(-1); 185 pmPlayList->insertSeparator(-1);
185 new MenuItem( pmPlayList, tr( "Rescan for Audio Files" ), this,SLOT( scanForAudio() ) ); 186 new MenuItem( pmPlayList, tr( "Rescan for Audio Files" ), this,SLOT( scanForAudio() ) );
186 new MenuItem( pmPlayList, tr( "Rescan for Video Files" ), this,SLOT( scanForVideo() ) ); 187 new MenuItem( pmPlayList, tr( "Rescan for Video Files" ), this,SLOT( scanForVideo() ) );
187 188
@@ -849,21 +850,19 @@ void PlayListWidget::tabChanged(QWidget *widg) {
849void PlayListWidget::btnPlay(bool b) { 850void PlayListWidget::btnPlay(bool b) {
850 851
851// mediaPlayerState->setPlaying(b); 852// mediaPlayerState->setPlaying(b);
852 switch ( tabWidget->currentPageIndex()) { 853 switch ( tabWidget->currentPageIndex()) {
853 case 0: 854 case 0:
854 { 855 {
855 qDebug("here we are"); 856// if( d->selectedFiles->current()->file().find(" ",0,TRUE) != -1
856 if( d->selectedFiles->current()->file().find(" ",0,TRUE) != -1 857// if( d->selectedFiles->current()->file().find("%20",0,TRUE) != -1) {
857 || d->selectedFiles->current()->file().find("%20",0,TRUE) != -1) {
858 QMessageBox::message("Note","You are trying to play\na malformed url."); 858 QMessageBox::message("Note","You are trying to play\na malformed url.");
859 859// } else {
860 } else {
861
862 mediaPlayerState->setPlaying(b); 860 mediaPlayerState->setPlaying(b);
863 } } 861// }
862 }
864 break; 863 break;
865 case 1: 864 case 1:
866 { 865 {
867 addToSelection( audioView->currentItem() ); 866 addToSelection( audioView->currentItem() );
868 mediaPlayerState->setPlaying(b); 867 mediaPlayerState->setPlaying(b);
869 d->selectedFiles->removeSelected( ); 868 d->selectedFiles->removeSelected( );
@@ -1266,14 +1265,42 @@ void PlayListWidget::readm3u(const QString &filename) {
1266 } 1265 }
1267 } 1266 }
1268 } 1267 }
1269 f.close(); 1268 f.close();
1270} 1269}
1271 1270
1272void PlayListWidget::writem3u(const QString &filename) { 1271void PlayListWidget::writem3u() {
1272
1273 InputDialog *fileDlg;
1274 fileDlg = new InputDialog(this,tr("Save m3u Playlist "),TRUE, 0);
1275 fileDlg->exec();
1276 QString filename,list;
1277 if( fileDlg->result() == 1 ) {
1278 filename = fileDlg->LineEdit1->text();
1279 qDebug(filename);
1280 int noOfFiles = 0;
1281 d->selectedFiles->first();
1282 do {
1283// we dont check for existance because of url's
1284// qDebug(d->selectedFiles->current()->file());
1285 list += d->selectedFiles->current()->file()+"\n";
1286 noOfFiles++;
1287 }
1288 while ( d->selectedFiles->next() );
1289 qDebug(list);
1290 if(filename.left(1) != "/")
1291 filename=QPEApplication::documentDir()+"/"+filename;
1292 if(filename.right(3) != "m3u")
1293 filename=filename+".m3u";
1273 1294
1295 QFile f(filename);
1296 f.open(IO_WriteOnly);
1297 f.writeBlock(list, list.length());
1298 f.close();
1299 }
1300 if(fileDlg) delete fileDlg;
1274} 1301}
1275 1302
1276void PlayListWidget::readPls(const QString &filename) { 1303void PlayListWidget::readPls(const QString &filename) {
1277 1304
1278 qDebug("pls filename is "+filename); 1305 qDebug("pls filename is "+filename);
1279 QFile f(filename); 1306 QFile f(filename);
@@ -1293,24 +1320,28 @@ void PlayListWidget::readPls(const QString &filename) {
1293 // Title 1320 // Title
1294// Length 1321// Length
1295// Version 1322// Version
1296// File2=http 1323// File2=http
1297 1324
1298 s=s.replace( QRegExp("\\"),"/"); 1325 s=s.replace( QRegExp("\\"),"/");
1299// Lview->insertLine(t.readLine(),-1);
1300// s=t.readLine();
1301// s=s.right(s.length()-2);
1302 DocLnk lnk( s ); 1326 DocLnk lnk( s );
1303 QFileInfo f(s); 1327 QFileInfo f(s);
1304 QString name = f.baseName(); 1328 QString name = f.baseName();
1329 if(name.left(4)=="http")
1330 name = s.right( s.length() - 7);
1331 else
1332 name=s;
1305 name = name.right(name.length()-name.findRev("\\",-1,TRUE)-1); 1333 name = name.right(name.length()-name.findRev("\\",-1,TRUE)-1);
1306// QFileInfo f(s); 1334// QFileInfo f(s);
1307// QString name = f.baseName(); 1335// QString name = f.baseName();
1308// // name = name.left(name.length()-4); 1336// name = name.left(name.length()-4);
1309// name = name.right(name.findRev("/",0,TRUE)); 1337// name = name.right(name.findRev("/",0,TRUE));
1310 lnk.setName( name); 1338 lnk.setName( name);
1339 if(s.at(s.length()-4) == '.')
1340 lnk.setFile( s);
1341 else
1311 lnk.setFile( s+"/"); 1342 lnk.setFile( s+"/");
1312 lnk.setType("audio/x-mpegurl"); 1343 lnk.setType("audio/x-mpegurl");
1313 1344
1314 qDebug("DocLnk add "+name); 1345 qDebug("DocLnk add "+name);
1315 d->selectedFiles->addToSelection( lnk); 1346 d->selectedFiles->addToSelection( lnk);
1316 } 1347 }
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
@@ -72,23 +72,23 @@ void keyReleaseEvent( QKeyEvent *e);
72void keyPressEvent( QKeyEvent *e); 72void keyPressEvent( QKeyEvent *e);
73private: 73private:
74 bool audioScan, videoScan; 74 bool audioScan, videoScan;
75 void doBlank(); 75 void doBlank();
76 void doUnblank(); 76 void doUnblank();
77 void readm3u(const QString &); 77 void readm3u(const QString &);
78 void writem3u(const QString &);
79 void readPls(const QString &); 78 void readPls(const QString &);
80 79
81 80
82 void initializeStates(); 81 void initializeStates();
83 void readConfig( Config& cfg ); 82 void readConfig( Config& cfg );
84 void writeConfig( Config& cfg ) const; 83 void writeConfig( Config& cfg ) const;
85 PlayListWidgetPrivate *d; // Private implementation data 84 PlayListWidgetPrivate *d; // Private implementation data
86 void populateAudioView(); 85 void populateAudioView();
87 void populateVideoView(); 86 void populateVideoView();
88private slots: 87private slots:
88 void writem3u();
89 void scanForAudio(); 89 void scanForAudio();
90 void scanForVideo(); 90 void scanForVideo();
91 void openFile(); 91 void openFile();
92 void setDocument( const QString& fileref ); 92 void setDocument( const QString& fileref );
93 void addToSelection( const DocLnk& ); // Add a media file to the playlist 93 void addToSelection( const DocLnk& ); // Add a media file to the playlist
94 void addToSelection( QListViewItem* ); // Add a media file to the playlist 94 void addToSelection( QListViewItem* ); // Add a media file to the playlist