summaryrefslogtreecommitdiff
path: root/core/multimedia/opieplayer/playlistwidget.cpp
Unidiff
Diffstat (limited to 'core/multimedia/opieplayer/playlistwidget.cpp') (more/less context) (show whitespace changes)
-rw-r--r--core/multimedia/opieplayer/playlistwidget.cpp129
1 files changed, 53 insertions, 76 deletions
diff --git a/core/multimedia/opieplayer/playlistwidget.cpp b/core/multimedia/opieplayer/playlistwidget.cpp
index a937d7c..c28548c 100644
--- a/core/multimedia/opieplayer/playlistwidget.cpp
+++ b/core/multimedia/opieplayer/playlistwidget.cpp
@@ -199,174 +199,177 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl )
199 skinsMenu->isCheckable(); 199 skinsMenu->isCheckable();
200 connect( skinsMenu, SIGNAL( activated( int ) ) , 200 connect( skinsMenu, SIGNAL( activated( int ) ) ,
201 this, SLOT( skinsMenuActivated( int ) ) ); 201 this, SLOT( skinsMenuActivated( int ) ) );
202 populateSkinsMenu(); 202 populateSkinsMenu();
203 203
204 QVBox *vbox5 = new QVBox( this ); vbox5->setBackgroundMode( PaletteButton ); 204 QVBox *vbox5 = new QVBox( this ); vbox5->setBackgroundMode( PaletteButton );
205 QVBox *vbox4 = new QVBox( vbox5 ); vbox4->setBackgroundMode( PaletteButton ); 205 QVBox *vbox4 = new QVBox( vbox5 ); vbox4->setBackgroundMode( PaletteButton );
206 206
207 QHBox *hbox6 = new QHBox( vbox4 ); hbox6->setBackgroundMode( PaletteButton ); 207 QHBox *hbox6 = new QHBox( vbox4 ); hbox6->setBackgroundMode( PaletteButton );
208 208
209 tabWidget = new QTabWidget( hbox6, "tabWidget" ); 209 tabWidget = new QTabWidget( hbox6, "tabWidget" );
210 tabWidget->setTabShape(QTabWidget::Triangular); 210 tabWidget->setTabShape(QTabWidget::Triangular);
211 211
212 QWidget *pTab; 212 QWidget *pTab;
213 pTab = new QWidget( tabWidget, "pTab" ); 213 pTab = new QWidget( tabWidget, "pTab" );
214// playlistView = new QListView( pTab, "playlistview" ); 214// playlistView = new QListView( pTab, "playlistview" );
215// playlistView->setMinimumSize(236,260); 215// playlistView->setMinimumSize(236,260);
216 tabWidget->insertTab( pTab,"Playlist"); 216 tabWidget->insertTab( pTab,"Playlist");
217 217
218 218
219 // Add the playlist area 219 // Add the playlist area
220 220
221 QVBox *vbox3 = new QVBox( pTab ); vbox3->setBackgroundMode( PaletteButton ); 221 QVBox *vbox3 = new QVBox( pTab ); vbox3->setBackgroundMode( PaletteButton );
222 d->playListFrame = vbox3; 222 d->playListFrame = vbox3;
223 d->playListFrame ->setMinimumSize(235,260); 223 d->playListFrame ->setMinimumSize(235,260);
224 224
225 QHBox *hbox2 = new QHBox( vbox3 ); hbox2->setBackgroundMode( PaletteButton ); 225 QHBox *hbox2 = new QHBox( vbox3 ); hbox2->setBackgroundMode( PaletteButton );
226 226
227 d->selectedFiles = new PlayListSelection( hbox2); 227 d->selectedFiles = new PlayListSelection( hbox2);
228 QVBox *vbox1 = new QVBox( hbox2 ); vbox1->setBackgroundMode( PaletteButton ); 228 QVBox *vbox1 = new QVBox( hbox2 ); vbox1->setBackgroundMode( PaletteButton );
229 229
230 QPEApplication::setStylusOperation( d->selectedFiles->viewport(),QPEApplication::RightOnHold); 230 QPEApplication::setStylusOperation( d->selectedFiles->viewport(),QPEApplication::RightOnHold);
231 231
232 232
233 233
234 QVBox *stretch1 = new QVBox( vbox1 ); stretch1->setBackgroundMode( PaletteButton ); // add stretch 234 QVBox *stretch1 = new QVBox( vbox1 ); stretch1->setBackgroundMode( PaletteButton ); // add stretch
235 new ToolButton( vbox1, tr( "Move Up" ), "opieplayer/up", d->selectedFiles, SLOT(moveSelectedUp()) ); 235 new ToolButton( vbox1, tr( "Move Up" ), "opieplayer/up", d->selectedFiles, SLOT(moveSelectedUp()) );
236 new ToolButton( vbox1, tr( "Remove" ), "opieplayer/cut", d->selectedFiles, SLOT(removeSelected()) ); 236 new ToolButton( vbox1, tr( "Remove" ), "opieplayer/cut", d->selectedFiles, SLOT(removeSelected()) );
237 new ToolButton( vbox1, tr( "Move Down" ), "opieplayer/down", d->selectedFiles, SLOT(moveSelectedDown()) ); 237 new ToolButton( vbox1, tr( "Move Down" ), "opieplayer/down", d->selectedFiles, SLOT(moveSelectedDown()) );
238 QVBox *stretch2 = new QVBox( vbox1 ); stretch2->setBackgroundMode( PaletteButton ); // add stretch 238 QVBox *stretch2 = new QVBox( vbox1 ); stretch2->setBackgroundMode( PaletteButton ); // add stretch
239 239
240 QWidget *aTab; 240 QWidget *aTab;
241 aTab = new QWidget( tabWidget, "aTab" ); 241 aTab = new QWidget( tabWidget, "aTab" );
242 audioView = new QListView( aTab, "Audioview" ); 242 audioView = new QListView( aTab, "Audioview" );
243 audioView->setMinimumSize(233,260); 243 audioView->setMinimumSize(233,260);
244 audioView->addColumn( tr("Title"),140); 244 audioView->addColumn( tr("Title"),140);
245 audioView->addColumn(tr("Size"), -1); 245 audioView->addColumn(tr("Size"), -1);
246 audioView->addColumn(tr("Media"),-1); 246 audioView->addColumn(tr("Media"),-1);
247 audioView->addColumn( tr( "Path" ), 0 );
248
247 audioView->setColumnAlignment(1, Qt::AlignRight); 249 audioView->setColumnAlignment(1, Qt::AlignRight);
248 audioView->setColumnAlignment(2, Qt::AlignRight); 250 audioView->setColumnAlignment(2, Qt::AlignRight);
249 audioView->setAllColumnsShowFocus(TRUE); 251 audioView->setAllColumnsShowFocus(TRUE);
250 252
251 audioView->setMultiSelection( TRUE ); 253 audioView->setMultiSelection( TRUE );
252 audioView->setSelectionMode( QListView::Extended); 254 audioView->setSelectionMode( QListView::Extended);
253 255
254 tabWidget->insertTab(aTab,tr("Audio")); 256 tabWidget->insertTab(aTab,tr("Audio"));
255 257
256 QPEApplication::setStylusOperation( audioView->viewport(),QPEApplication::RightOnHold); 258 QPEApplication::setStylusOperation( audioView->viewport(),QPEApplication::RightOnHold);
257 259
258// audioView 260// audioView
259// populateAudioView(); 261// populateAudioView();
260// videowidget 262// videowidget
261 263
262 QWidget *vTab; 264 QWidget *vTab;
263 vTab = new QWidget( tabWidget, "vTab" ); 265 vTab = new QWidget( tabWidget, "vTab" );
264 videoView = new QListView( vTab, "Videoview" ); 266 videoView = new QListView( vTab, "Videoview" );
265 videoView->setMinimumSize(233,260); 267 videoView->setMinimumSize(233,260);
266 268
267 videoView->addColumn(tr("Title"),140); 269 videoView->addColumn(tr("Title"),140);
268 videoView->addColumn(tr("Size"),-1); 270 videoView->addColumn(tr("Size"),-1);
269 videoView->addColumn(tr("Media"),-1); 271 videoView->addColumn(tr("Media"),-1);
272 videoView->addColumn(tr( "Path" ), 0 );
270 videoView->setColumnAlignment(1, Qt::AlignRight); 273 videoView->setColumnAlignment(1, Qt::AlignRight);
271 videoView->setColumnAlignment(2, Qt::AlignRight); 274 videoView->setColumnAlignment(2, Qt::AlignRight);
272 videoView->setAllColumnsShowFocus(TRUE); 275 videoView->setAllColumnsShowFocus(TRUE);
273 videoView->setMultiSelection( TRUE ); 276 videoView->setMultiSelection( TRUE );
274 videoView->setSelectionMode( QListView::Extended); 277 videoView->setSelectionMode( QListView::Extended);
275 278
276 QPEApplication::setStylusOperation( videoView->viewport(),QPEApplication::RightOnHold); 279 QPEApplication::setStylusOperation( videoView->viewport(),QPEApplication::RightOnHold);
277 280
278 tabWidget->insertTab( vTab,tr("Video")); 281 tabWidget->insertTab( vTab,tr("Video"));
279 282
280 QWidget *LTab; 283 QWidget *LTab;
281 LTab = new QWidget( tabWidget, "LTab" ); 284 LTab = new QWidget( tabWidget, "LTab" );
282 playLists = new FileSelector( "playlist/plain", LTab, "fileselector" , FALSE, FALSE); //buggy 285 playLists = new FileSelector( "playlist/plain", LTab, "fileselector" , FALSE, FALSE); //buggy
283 playLists->setMinimumSize(233,260); 286 playLists->setMinimumSize(233,260);
284 tabWidget->insertTab(LTab,tr("Lists")); 287 tabWidget->insertTab(LTab,tr("Lists"));
285 288
286 connect(tbDeletePlaylist,(SIGNAL(released())),SLOT( deletePlaylist())); 289 connect(tbDeletePlaylist,(SIGNAL(released())),SLOT( deletePlaylist()));
287 connect( fullScreenButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleFullscreen()) ); 290 connect( fullScreenButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleFullscreen()) );
288 connect( scaleButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleScaled()) ); 291 connect( scaleButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleScaled()) );
289 292
290 connect( d->selectedFiles, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), 293 connect( d->selectedFiles, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)),
291 this,SLOT( playlistViewPressed(int, QListViewItem *, const QPoint&, int)) ); 294 this,SLOT( playlistViewPressed(int, QListViewItem *, const QPoint&, int)) );
292 295
293 connect( audioView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), 296 connect( audioView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)),
294 this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) ); 297 this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) );
295 298
296 connect( audioView, SIGNAL( returnPressed( QListViewItem *)), 299 connect( audioView, SIGNAL( returnPressed( QListViewItem *)),
297 this,SLOT( playIt( QListViewItem *)) ); 300 this,SLOT( playIt( QListViewItem *)) );
298 connect( audioView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) ); 301 connect( audioView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) );
299 302
300 connect( videoView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), 303 connect( videoView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)),
301 this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) ); 304 this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) );
302 connect( videoView, SIGNAL( returnPressed( QListViewItem *)), 305 connect( videoView, SIGNAL( returnPressed( QListViewItem *)),
303 this,SLOT( playIt( QListViewItem *)) ); 306 this,SLOT( playIt( QListViewItem *)) );
304 connect( videoView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) ); 307 connect( videoView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) );
305 308
306 connect( playLists, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( loadList( const DocLnk & ) ) ); 309 connect( playLists, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( loadList( const DocLnk & ) ) );
307 310
308 311
309 connect( tabWidget, SIGNAL (currentChanged(QWidget*)),this,SLOT(tabChanged(QWidget*))); 312 connect( tabWidget, SIGNAL (currentChanged(QWidget*)),this,SLOT(tabChanged(QWidget*)));
310 313
311// connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), d->tbPlay, SLOT( setOn( bool ) ) ); 314// connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), d->tbPlay, SLOT( setOn( bool ) ) );
312 connect( mediaPlayerState, SIGNAL( loopingToggled( bool ) ), d->tbLoop, SLOT( setOn( bool ) ) ); 315 connect( mediaPlayerState, SIGNAL( loopingToggled( bool ) ), d->tbLoop, SLOT( setOn( bool ) ) );
313 connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), d->tbShuffle, SLOT( setOn( bool ) ) ); 316 connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), d->tbShuffle, SLOT( setOn( bool ) ) );
314 connect( mediaPlayerState, SIGNAL( playlistToggled( bool ) ), this, SLOT( setPlaylist( bool ) ) ); 317 connect( mediaPlayerState, SIGNAL( playlistToggled( bool ) ), this, SLOT( setPlaylist( bool ) ) );
315 318
316 connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) ); 319 connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) );
317 320
318 setCentralWidget( vbox5 ); 321 setCentralWidget( vbox5 );
319 322
320 Config cfg( "OpiePlayer" ); 323 Config cfg( "OpiePlayer" );
321 readConfig( cfg ); 324 readConfig( cfg );
322 QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); 325 QString currentPlaylist = cfg.readEntry("CurrentPlaylist","default");
323 loadList(DocLnk( currentPlaylist)); 326 loadList(DocLnk( currentPlaylist));
324 setCaption(tr("OpiePlayer: ")+ currentPlaylist ); 327 setCaption(tr("OpiePlayer: ")+ QFileInfo(currentPlaylist).baseName());
325 328
326 initializeStates(); 329 initializeStates();
327} 330}
328 331
329 332
330PlayListWidget::~PlayListWidget() { 333PlayListWidget::~PlayListWidget() {
331 Config cfg( "OpiePlayer" ); 334 Config cfg( "OpiePlayer" );
332 writeConfig( cfg ); 335 writeConfig( cfg );
333 336
334 if ( d->current ) 337 if ( d->current )
335 delete d->current; 338 delete d->current;
336 delete d; 339 delete d;
337} 340}
338 341
339 342
340void PlayListWidget::initializeStates() { 343void PlayListWidget::initializeStates() {
341 344
342 d->tbPlay->setOn( mediaPlayerState->playing() ); 345 d->tbPlay->setOn( mediaPlayerState->playing() );
343 d->tbLoop->setOn( mediaPlayerState->looping() ); 346 d->tbLoop->setOn( mediaPlayerState->looping() );
344 d->tbShuffle->setOn( mediaPlayerState->shuffled() ); 347 d->tbShuffle->setOn( mediaPlayerState->shuffled() );
345 setPlaylist( true); 348 setPlaylist( true);
346} 349}
347 350
348 351
349void PlayListWidget::readConfig( Config& cfg ) { 352void PlayListWidget::readConfig( Config& cfg ) {
350 cfg.setGroup("PlayList"); 353 cfg.setGroup("PlayList");
351 QString currentString = cfg.readEntry("current", "" ); 354 QString currentString = cfg.readEntry("current", "" );
352 int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); 355 int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 );
353 for ( int i = 0; i < noOfFiles; i++ ) { 356 for ( int i = 0; i < noOfFiles; i++ ) {
354 QString entryName; 357 QString entryName;
355 entryName.sprintf( "File%i", i + 1 ); 358 entryName.sprintf( "File%i", i + 1 );
356 QString linkFile = cfg.readEntry( entryName ); 359 QString linkFile = cfg.readEntry( entryName );
357 DocLnk lnk( linkFile ); 360 DocLnk lnk( linkFile );
358 if ( lnk.isValid() ) { 361 if ( lnk.isValid() ) {
359 d->selectedFiles->addToSelection( lnk ); 362 d->selectedFiles->addToSelection( lnk );
360 } 363 }
361 } 364 }
362 d->selectedFiles->setSelectedItem( currentString); 365 d->selectedFiles->setSelectedItem( currentString);
363} 366}
364 367
365 368
366void PlayListWidget::writeConfig( Config& cfg ) const { 369void PlayListWidget::writeConfig( Config& cfg ) const {
367 370
368 d->selectedFiles->writeCurrent( cfg); 371 d->selectedFiles->writeCurrent( cfg);
369 cfg.setGroup("PlayList"); 372 cfg.setGroup("PlayList");
370 int noOfFiles = 0; 373 int noOfFiles = 0;
371 d->selectedFiles->first(); 374 d->selectedFiles->first();
372 do { 375 do {
@@ -378,112 +381,124 @@ void PlayListWidget::writeConfig( Config& cfg ) const {
378 cfg.writeEntry( entryName, lnk->linkFile() ); 381 cfg.writeEntry( entryName, lnk->linkFile() );
379 // if this link does exist, add it so we have the file 382 // if this link does exist, add it so we have the file
380 // next time... 383 // next time...
381 if ( !QFile::exists( lnk->linkFile() ) ) { 384 if ( !QFile::exists( lnk->linkFile() ) ) {
382 // the way writing lnks doesn't really check for out 385 // the way writing lnks doesn't really check for out
383 // of disk space, but check it anyway. 386 // of disk space, but check it anyway.
384 if ( !lnk->writeLink() ) { 387 if ( !lnk->writeLink() ) {
385 QMessageBox::critical( 0, tr("Out of space"), 388 QMessageBox::critical( 0, tr("Out of space"),
386 tr( "There was a problem saving " 389 tr( "There was a problem saving "
387 "the playlist.\n" 390 "the playlist.\n"
388 "Your playlist " 391 "Your playlist "
389 "may be missing some entries\n" 392 "may be missing some entries\n"
390 "the next time you start it." ) 393 "the next time you start it." )
391 ); 394 );
392 } 395 }
393 } 396 }
394 noOfFiles++; 397 noOfFiles++;
395 } 398 }
396 } 399 }
397 while ( d->selectedFiles->next() ); 400 while ( d->selectedFiles->next() );
398 cfg.writeEntry("NumberOfFiles", noOfFiles ); 401 cfg.writeEntry("NumberOfFiles", noOfFiles );
399} 402}
400 403
401 404
402void PlayListWidget::addToSelection( const DocLnk& lnk ) { 405void PlayListWidget::addToSelection( const DocLnk& lnk ) {
403 d->setDocumentUsed = false; 406 d->setDocumentUsed = false;
404 if ( mediaPlayerState->playlist() ) { 407 if ( mediaPlayerState->playlist() ) {
405 if(QFileInfo(lnk.file()).exists() || lnk.file().left(4) == "http" ) 408 if(QFileInfo(lnk.file()).exists() || lnk.file().left(4) == "http" )
406 d->selectedFiles->addToSelection( lnk ); 409 d->selectedFiles->addToSelection( lnk );
407 } 410 }
408 else 411 else
409 mediaPlayerState->setPlaying( true); 412 mediaPlayerState->setPlaying( true);
410} 413}
411 414
412 415
413void PlayListWidget::clearList() { 416void PlayListWidget::clearList() {
414 while ( first() ) 417 while ( first() )
415 d->selectedFiles->removeSelected(); 418 d->selectedFiles->removeSelected();
416} 419}
417 420
418 421
419void PlayListWidget::addAllToList() { 422void PlayListWidget::addAllToList() {
420 DocLnkSet filesAll; 423 DocLnkSet filesAll;
421 Global::findDocuments(&filesAll, "video/*;audio/*"); 424 Global::findDocuments(&filesAll, "video/*;audio/*");
422 QListIterator<DocLnk> Adit( filesAll.children() ); 425 QListIterator<DocLnk> Adit( filesAll.children() );
423 for ( ; Adit.current(); ++Adit ) 426 for ( ; Adit.current(); ++Adit )
424 if(QFileInfo(Adit.current()->file()).exists()) 427 if(QFileInfo(Adit.current()->file()).exists())
425 d->selectedFiles->addToSelection( **Adit ); 428 d->selectedFiles->addToSelection( **Adit );
429 tabWidget->setCurrentPage(0);
430
431 writeCurrentM3u();
432 d->selectedFiles->first();
426} 433}
427 434
428 435
429void PlayListWidget::addAllMusicToList() { 436void PlayListWidget::addAllMusicToList() {
430 QListIterator<DocLnk> dit( files.children() ); 437 QListIterator<DocLnk> dit( files.children() );
431 for ( ; dit.current(); ++dit ) 438 for ( ; dit.current(); ++dit )
432 if(QFileInfo(dit.current()->file()).exists()) 439 if(QFileInfo(dit.current()->file()).exists())
433 d->selectedFiles->addToSelection( **dit ); 440 d->selectedFiles->addToSelection( **dit );
441 tabWidget->setCurrentPage(0);
442
443 writeCurrentM3u();
444 d->selectedFiles->first();
434} 445}
435 446
436 447
437void PlayListWidget::addAllVideoToList() { 448void PlayListWidget::addAllVideoToList() {
438 QListIterator<DocLnk> dit( vFiles.children() ); 449 QListIterator<DocLnk> dit( vFiles.children() );
439 for ( ; dit.current(); ++dit ) 450 for ( ; dit.current(); ++dit )
440 if(QFileInfo( dit.current()->file()).exists()) 451 if(QFileInfo( dit.current()->file()).exists())
441 d->selectedFiles->addToSelection( **dit ); 452 d->selectedFiles->addToSelection( **dit );
453 tabWidget->setCurrentPage(0);
454
455 writeCurrentM3u();
456 d->selectedFiles->first();
442} 457}
443 458
444 459
445void PlayListWidget::setDocument(const QString& fileref) { 460void PlayListWidget::setDocument(const QString& fileref) {
446 qDebug(fileref); 461 qDebug(fileref);
447 fromSetDocument = TRUE; 462 fromSetDocument = TRUE;
448 if ( fileref.isNull() ) { 463 if ( fileref.isNull() ) {
449 QMessageBox::critical( 0, tr( "Invalid File" ), tr( "There was a problem in getting the file." ) ); 464 QMessageBox::critical( 0, tr( "Invalid File" ), tr( "There was a problem in getting the file." ) );
450 return; 465 return;
451 } 466 }
452// qDebug("setDocument "+fileref); 467// qDebug("setDocument "+fileref);
453 if(fileref.find("m3u",0,TRUE) != -1) { //is m3u 468 if(fileref.find("m3u",0,TRUE) != -1) { //is m3u
454 readm3u( fileref); 469 readm3u( fileref);
455 } 470 }
456 else if(fileref.find("pls",0,TRUE) != -1) { //is pls 471 else if(fileref.find("pls",0,TRUE) != -1) { //is pls
457 readPls( fileref); 472 readPls( fileref);
458 } 473 }
459 else if(fileref.find("playlist",0,TRUE) != -1) {//is playlist 474 else if(fileref.find("playlist",0,TRUE) != -1) {//is playlist
460 clearList(); 475 clearList();
461 loadList(DocLnk(fileref)); 476 loadList(DocLnk(fileref));
462 d->selectedFiles->first(); 477 d->selectedFiles->first();
463 } else { 478 } else {
464 clearList(); 479 clearList();
465 addToSelection( DocLnk( fileref ) ); 480 addToSelection( DocLnk( fileref ) );
466 d->setDocumentUsed = TRUE; 481 d->setDocumentUsed = TRUE;
467 mediaPlayerState->setPlaying( FALSE ); 482 mediaPlayerState->setPlaying( FALSE );
468 qApp->processEvents(); 483 qApp->processEvents();
469 mediaPlayerState->setPlaying( TRUE ); 484 mediaPlayerState->setPlaying( TRUE );
470 qApp->processEvents(); 485 qApp->processEvents();
471 setCaption(tr("OpiePlayer")); 486 setCaption(tr("OpiePlayer"));
472 } 487 }
473} 488}
474 489
475 490
476void PlayListWidget::setActiveWindow() { 491void PlayListWidget::setActiveWindow() {
477 qDebug("SETTING active window"); 492 qDebug("SETTING active window");
478 493
479 // When we get raised we need to ensure that it switches views 494 // When we get raised we need to ensure that it switches views
480 char origView = mediaPlayerState->view(); 495 char origView = mediaPlayerState->view();
481 mediaPlayerState->setView( 'l' ); // invalidate 496 mediaPlayerState->setView( 'l' ); // invalidate
482 mediaPlayerState->setView( origView ); // now switch back 497 mediaPlayerState->setView( origView ); // now switch back
483} 498}
484 499
485 500
486void PlayListWidget::useSelectedDocument() { 501void PlayListWidget::useSelectedDocument() {
487 d->setDocumentUsed = FALSE; 502 d->setDocumentUsed = FALSE;
488} 503}
489 504
@@ -600,199 +615,159 @@ bool PlayListWidget::next() {
600bool PlayListWidget::first() { 615bool PlayListWidget::first() {
601 if ( mediaPlayerState->playlist() ) 616 if ( mediaPlayerState->playlist() )
602 return d->selectedFiles->first(); 617 return d->selectedFiles->first();
603 else 618 else
604 return mediaPlayerState->looping(); 619 return mediaPlayerState->looping();
605} 620}
606 621
607 622
608bool PlayListWidget::last() { 623bool PlayListWidget::last() {
609 if ( mediaPlayerState->playlist() ) 624 if ( mediaPlayerState->playlist() )
610 return d->selectedFiles->last(); 625 return d->selectedFiles->last();
611 else 626 else
612 return mediaPlayerState->looping(); 627 return mediaPlayerState->looping();
613} 628}
614 629
615 630
616void PlayListWidget::saveList() { 631void PlayListWidget::saveList() {
617 writem3u(); 632 writem3u();
618} 633}
619 634
620void PlayListWidget::loadList( const DocLnk & lnk) { 635void PlayListWidget::loadList( const DocLnk & lnk) {
621 QString name = lnk.name(); 636 QString name = lnk.name();
622// qDebug("<<<<<<<<<<<<<<<<<<<<<<<<currentList is "+name); 637// qDebug("<<<<<<<<<<<<<<<<<<<<<<<<currentList is "+name);
623 638
624 if( name.length()>0) { 639 if( name.length()>0) {
625 setCaption("OpiePlayer: "+name); 640 setCaption("OpiePlayer: "+name);
626// qDebug("<<<<<<<<<<<<load list "+ lnk.file()); 641// qDebug("<<<<<<<<<<<<load list "+ lnk.file());
627 clearList(); 642 clearList();
628 readm3u(lnk.file()); 643 readm3u(lnk.file());
629 tabWidget->setCurrentPage(0); 644 tabWidget->setCurrentPage(0);
630 } 645 }
631} 646}
632 647
633void PlayListWidget::setPlaylist( bool shown ) { 648void PlayListWidget::setPlaylist( bool shown ) {
634 if ( shown ) 649 if ( shown )
635 d->playListFrame->show(); 650 d->playListFrame->show();
636 else 651 else
637 d->playListFrame->hide(); 652 d->playListFrame->hide();
638} 653}
639 654
640void PlayListWidget::setView( char view ) { 655void PlayListWidget::setView( char view ) {
641 if ( view == 'l' ) 656 if ( view == 'l' )
642 showMaximized(); 657 showMaximized();
643 else 658 else
644 hide(); 659 hide();
645} 660}
646 661
647void PlayListWidget::addSelected() { 662void PlayListWidget::addSelected() {
648 663 qDebug("addSelected");
649 Config cfg( "OpiePlayer" ); 664 DocLnk lnk;
650 cfg.setGroup("PlayList"); 665 QString filename;
651 QString currentPlaylist = cfg.readEntry("CurrentPlaylist","");
652// int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 );
653
654 switch (tabWidget->currentPageIndex()) { 666 switch (tabWidget->currentPageIndex()) {
667
655 case 0: //playlist 668 case 0: //playlist
669 return;
656 break; 670 break;
657 case 1: { //audio 671 case 1: { //audio
658// QString entryName; 672 filename=audioView->currentItem()->text(3);
659// entryName.sprintf( "File%i", i + 1 ); 673 // d->selectedFiles->next();
660// QString linkFile = cfg.readEntry( entryName );
661 QListViewItemIterator it( audioView );
662 // iterate through all items of the listview
663 for ( ; it.current(); ++it ) {
664 if ( it.current()->isSelected() ) {
665 QListIterator<DocLnk> dit( files.children() );
666 for ( ; dit.current(); ++dit ) {
667 if( dit.current()->name() == it.current()->text(0) ) {
668 d->selectedFiles->addToSelection( **dit );
669 }
670 }
671 audioView->setSelected( it.current(),FALSE);
672 }
673 }
674 tabWidget->setCurrentPage(0);
675 } 674 }
676 break; 675 break;
676
677 case 2: { // video 677 case 2: { // video
678 QListViewItemIterator it( videoView ); 678 filename=videoView->currentItem()->text(3);
679 // iterate through all items of the listview 679 // tabWidget->setCurrentPage(0);
680 for ( ; it.current(); ++it ) {
681 if ( it.current()->isSelected() ) {
682 QListIterator<DocLnk> dit( vFiles.children() );
683 for ( ; dit.current(); ++dit ) {
684 if( dit.current()->name() == it.current()->text(0) ) {
685 d->selectedFiles->addToSelection( **dit );
686 }
687 }
688 680
689 videoView->setSelected( it.current(),FALSE);
690 }
691 }
692// for ( int i = 0; i < noOfFiles; i++ ) {
693// QString entryName;
694// entryName.sprintf( "File%i", i + 1 );
695// QString linkFile = cfg.readEntry( entryName );
696// if( DocLnk( linkFile).name() == videoView->selectedItem()->text(0) ) {
697// int result= QMessageBox::warning(this,tr("OpiePlayer"),
698// tr("This is all ready in your playlist.\nContinue?"),
699// tr("Yes"),tr("No"),0,0,1);
700// if (result !=0)
701// return;
702// }
703// }
704// addToSelection( videoView->selectedItem() );
705 tabWidget->setCurrentPage(0);
706 } 681 }
707 break; 682 break;
708 }; 683 };
684 lnk.setName( QFileInfo(filename).baseName() ); //sets name
685 lnk.setFile( filename ); //sets file name
686 d->selectedFiles->addToSelection( lnk);
687 tabWidget->setCurrentPage(0);
688 writeCurrentM3u();
689
709} 690}
710 691
711void PlayListWidget::removeSelected() { 692void PlayListWidget::removeSelected() {
712 d->selectedFiles->removeSelected( ); 693 d->selectedFiles->removeSelected( );
713} 694}
714 695
715void PlayListWidget::playIt( QListViewItem *) { 696void PlayListWidget::playIt( QListViewItem *) {
716// d->setDocumentUsed = FALSE; 697// d->setDocumentUsed = FALSE;
717// mediaPlayerState->curPosition =0; 698// mediaPlayerState->curPosition =0;
718 qDebug("playIt"); 699 qDebug("playIt");
719 mediaPlayerState->setPlaying(FALSE); 700 mediaPlayerState->setPlaying(FALSE);
720 mediaPlayerState->setPlaying(TRUE); 701 mediaPlayerState->setPlaying(TRUE);
721 d->selectedFiles->unSelect(); 702 d->selectedFiles->unSelect();
722} 703}
723 704
724void PlayListWidget::addToSelection( QListViewItem *it) { 705void PlayListWidget::addToSelection( QListViewItem *it) {
725 d->setDocumentUsed = FALSE; 706 d->setDocumentUsed = FALSE;
726 707
727 if(it) { 708 if(it) {
728 switch (tabWidget->currentPageIndex()) { 709 switch (tabWidget->currentPageIndex()) {
729 case 1: { 710 case 0: //playlist
730 QListIterator<DocLnk> dit( files.children() ); 711 return;
731 for ( ; dit.current(); ++dit ) {
732 if( dit.current()->name() == it->text(0)) {
733 d->selectedFiles->addToSelection( **dit );
734 }
735 }
736 }
737 break;
738 case 2: {
739 QListIterator<DocLnk> dit( vFiles.children() );
740 for ( ; dit.current(); ++dit ) {
741 if( dit.current()->name() == it->text(0)) {
742 d->selectedFiles->addToSelection( **dit );
743 }
744 }
745 }
746 break;
747 case 0:
748 break; 712 break;
749 }; 713 };
714 // case 1: {
715 DocLnk lnk;
716 QString filename;
717
718 filename=it->text(3);
719 lnk.setName( QFileInfo(filename).baseName() ); //sets name
720 lnk.setFile( filename ); //sets file name
721 d->selectedFiles->addToSelection( lnk);
722
723 writeCurrentM3u();
750 tabWidget->setCurrentPage(0); 724 tabWidget->setCurrentPage(0);
725
751 } 726 }
752} 727}
753 728
754void PlayListWidget::tabChanged(QWidget *) { 729void PlayListWidget::tabChanged(QWidget *) {
755 730
756 switch ( tabWidget->currentPageIndex()) { 731 switch ( tabWidget->currentPageIndex()) {
757 case 0: 732 case 0:
758 { 733 {
759 if( !tbDeletePlaylist->isHidden()) 734 if( !tbDeletePlaylist->isHidden())
760 tbDeletePlaylist->hide(); 735 tbDeletePlaylist->hide();
761 d->tbRemoveFromList->setEnabled(TRUE); 736 d->tbRemoveFromList->setEnabled(TRUE);
762 d->tbAddToList->setEnabled(FALSE); 737 d->tbAddToList->setEnabled(FALSE);
763 } 738 }
764 break; 739 break;
765 case 1: 740 case 1:
766 { 741 {
767 audioView->clear(); 742 audioView->clear();
768 populateAudioView(); 743 populateAudioView();
769 744
770 if( !tbDeletePlaylist->isHidden()) 745 if( !tbDeletePlaylist->isHidden())
771 tbDeletePlaylist->hide(); 746 tbDeletePlaylist->hide();
772 d->tbRemoveFromList->setEnabled(FALSE); 747 d->tbRemoveFromList->setEnabled(FALSE);
773 d->tbAddToList->setEnabled(TRUE); 748 d->tbAddToList->setEnabled(TRUE);
774 } 749 }
775 break; 750 break;
776 case 2: 751 case 2:
777 { 752 {
778 videoView->clear(); 753 videoView->clear();
779 populateVideoView(); 754 populateVideoView();
780 if( !tbDeletePlaylist->isHidden()) 755 if( !tbDeletePlaylist->isHidden())
781 tbDeletePlaylist->hide(); 756 tbDeletePlaylist->hide();
782 d->tbRemoveFromList->setEnabled(FALSE); 757 d->tbRemoveFromList->setEnabled(FALSE);
783 d->tbAddToList->setEnabled(TRUE); 758 d->tbAddToList->setEnabled(TRUE);
784 } 759 }
785 break; 760 break;
786 case 3: 761 case 3:
787 { 762 {
788 if( tbDeletePlaylist->isHidden()) 763 if( tbDeletePlaylist->isHidden())
789 tbDeletePlaylist->show(); 764 tbDeletePlaylist->show();
790 playLists->reread(); 765 playLists->reread();
791 } 766 }
792 break; 767 break;
793 }; 768 };
794} 769}
795 770
796void PlayListWidget::btnPlay(bool b) { 771void PlayListWidget::btnPlay(bool b) {
797 qDebug("<<<<<<<<<<<<<<<BtnPlay"); 772 qDebug("<<<<<<<<<<<<<<<BtnPlay");
798// mediaPlayerState->setPlaying(b); 773// mediaPlayerState->setPlaying(b);
@@ -944,170 +919,173 @@ void PlayListWidget::listDelete() {
944void PlayListWidget::scanForAudio() { 919void PlayListWidget::scanForAudio() {
945// qDebug("scan for audio"); 920// qDebug("scan for audio");
946 files.detachChildren(); 921 files.detachChildren();
947 QListIterator<DocLnk> sdit( files.children() ); 922 QListIterator<DocLnk> sdit( files.children() );
948 for ( ; sdit.current(); ++sdit ) { 923 for ( ; sdit.current(); ++sdit ) {
949 delete sdit.current(); 924 delete sdit.current();
950 } 925 }
951 Global::findDocuments( &files, audioMimes); 926 Global::findDocuments( &files, audioMimes);
952 audioScan = true; 927 audioScan = true;
953} 928}
954void PlayListWidget::scanForVideo() { 929void PlayListWidget::scanForVideo() {
955// qDebug("scan for video"); 930// qDebug("scan for video");
956 vFiles.detachChildren(); 931 vFiles.detachChildren();
957 QListIterator<DocLnk> sdit( vFiles.children() ); 932 QListIterator<DocLnk> sdit( vFiles.children() );
958 for ( ; sdit.current(); ++sdit ) { 933 for ( ; sdit.current(); ++sdit ) {
959 delete sdit.current(); 934 delete sdit.current();
960 } 935 }
961 Global::findDocuments(&vFiles, "video/*"); 936 Global::findDocuments(&vFiles, "video/*");
962 videoScan = true; 937 videoScan = true;
963} 938}
964 939
965void PlayListWidget::populateAudioView() { 940void PlayListWidget::populateAudioView() {
966 941
967 audioView->clear(); 942 audioView->clear();
968 StorageInfo storageInfo; 943 StorageInfo storageInfo;
969 const QList<FileSystem> &fs = storageInfo.fileSystems(); 944 const QList<FileSystem> &fs = storageInfo.fileSystems();
970 if(!audioScan) scanForAudio(); 945 if(!audioScan) scanForAudio();
971 946
972 QListIterator<DocLnk> dit( files.children() ); 947 QListIterator<DocLnk> dit( files.children() );
973 QListIterator<FileSystem> it ( fs ); 948 QListIterator<FileSystem> it ( fs );
974 949
975 QString storage; 950 QString storage;
976 for ( ; dit.current(); ++dit ) { 951 for ( ; dit.current(); ++dit ) {
977 for( ; it.current(); ++it ){ 952 for( ; it.current(); ++it ){
978 const QString name = (*it)->name(); 953 const QString name = (*it)->name();
979 const QString path = (*it)->path(); 954 const QString path = (*it)->path();
980 if(dit.current()->file().find(path) != -1 ) storage=name; 955 if(dit.current()->file().find(path) != -1 ) storage=name;
981 } 956 }
982 957
983 QListViewItem * newItem; 958 QListViewItem * newItem;
984 if ( QFile( dit.current()->file()).exists() || dit.current()->file().left(4) == "http" ) { 959 if ( QFile( dit.current()->file()).exists() || dit.current()->file().left(4) == "http" ) {
985 long size; 960 long size;
986 if( dit.current()->file().left(4) == "http" ) 961 if( dit.current()->file().left(4) == "http" )
987 size=0; 962 size=0;
988 else 963 else
989 size = QFile( dit.current()->file() ).size(); 964 size = QFile( dit.current()->file() ).size();
990// qDebug(dit.current()->name()); 965// qDebug(dit.current()->name());
991 newItem= /*(void)*/ new QListViewItem( audioView, dit.current()->name(), 966 newItem= /*(void)*/ new QListViewItem( audioView, dit.current()->name(),
992 QString::number(size ), storage); 967 QString::number(size ), storage, dit.current()->file());
993 newItem->setPixmap(0, Resource::loadPixmap( "opieplayer/musicfile" )); 968 newItem->setPixmap(0, Resource::loadPixmap( "opieplayer/musicfile" ));
994 } 969 }
995 } 970 }
996 971
997} 972}
998 973
999void PlayListWidget::populateVideoView() { 974void PlayListWidget::populateVideoView() {
1000 videoView->clear(); 975 videoView->clear();
1001 StorageInfo storageInfo; 976 StorageInfo storageInfo;
1002 const QList<FileSystem> &fs = storageInfo.fileSystems(); 977 const QList<FileSystem> &fs = storageInfo.fileSystems();
1003 978
1004 if(!videoScan ) scanForVideo(); 979 if(!videoScan ) scanForVideo();
1005 980
1006 QListIterator<DocLnk> Vdit( vFiles.children() ); 981 QListIterator<DocLnk> Vdit( vFiles.children() );
1007 QListIterator<FileSystem> it ( fs ); 982 QListIterator<FileSystem> it ( fs );
1008 videoView->clear(); 983 videoView->clear();
1009 QString storage; 984 QString storage;
1010 for ( ; Vdit.current(); ++Vdit ) { 985 for ( ; Vdit.current(); ++Vdit ) {
1011 for( ; it.current(); ++it ){ 986 for( ; it.current(); ++it ){
1012 const QString name = (*it)->name(); 987 const QString name = (*it)->name();
1013 const QString path = (*it)->path(); 988 const QString path = (*it)->path();
1014 if( Vdit.current()->file().find(path) != -1 ) storage=name; 989 if( Vdit.current()->file().find(path) != -1 ) storage=name;
1015 } 990 }
1016 991
1017 QListViewItem * newItem; 992 QListViewItem * newItem;
1018 if ( QFile( Vdit.current()->file()).exists() ) { 993 if ( QFile( Vdit.current()->file()).exists() ) {
1019 newItem= /*(void)*/ new QListViewItem( videoView, Vdit.current()->name(), 994 newItem= /*(void)*/ new QListViewItem( videoView, Vdit.current()->name(),
1020 QString::number( QFile( Vdit.current()->file()).size() ), storage); 995 QString::number( QFile( Vdit.current()->file() ).size() ),
996 storage, Vdit.current()->file());
1021 newItem->setPixmap(0, Resource::loadPixmap( "opieplayer/videofile" )); 997 newItem->setPixmap(0, Resource::loadPixmap( "opieplayer/videofile" ));
1022 } 998 }
1023 } 999 }
1024} 1000}
1025 1001
1026void PlayListWidget::openFile() { 1002void PlayListWidget::openFile() {
1027 qDebug("<<<<<<<<<OPEN File"); 1003 qDebug("<<<<<<<<<OPEN File");
1028 QString filename, name; 1004 QString filename, name;
1029 InputDialog *fileDlg; 1005 InputDialog *fileDlg;
1030 fileDlg = new InputDialog(this,tr("Open file or URL"),TRUE, 0); 1006 fileDlg = new InputDialog(this,tr("Open file or URL"),TRUE, 0);
1031 fileDlg->exec(); 1007 fileDlg->exec();
1032 if( fileDlg->result() == 1 ) { 1008 if( fileDlg->result() == 1 ) {
1033 filename = fileDlg->text(); 1009 filename = fileDlg->text();
1034 qDebug( "Selected filename is " + filename ); 1010 qDebug( "Selected filename is " + filename );
1035// Om3u *m3uList; 1011// Om3u *m3uList;
1036 DocLnk lnk; 1012 DocLnk lnk;
1037 Config cfg( "OpiePlayer" ); 1013 Config cfg( "OpiePlayer" );
1038 cfg.setGroup("PlayList"); 1014 cfg.setGroup("PlayList");
1039 1015
1040 if(filename.left(4) == "http") { 1016 if(filename.left(4) == "http") {
1041 QString m3uFile, m3uFilePath; 1017 QString m3uFile, m3uFilePath;
1042 if(filename.find(":",8,TRUE) != -1) { //found a port 1018 if(filename.find(":",8,TRUE) != -1) { //found a port
1043 m3uFile = filename.left( filename.find( ":",8,TRUE)); 1019 m3uFile = filename.left( filename.find( ":",8,TRUE));
1044 m3uFile = m3uFile.right( 7); 1020 m3uFile = m3uFile.right( 7);
1045 } else if(filename.left(4) == "http"){ 1021 } else if(filename.left(4) == "http"){
1046 m3uFile=filename; 1022 m3uFile=filename;
1047 m3uFile = m3uFile.right( m3uFile.length() - 7); 1023 m3uFile = m3uFile.right( m3uFile.length() - 7);
1048 } else{ 1024 } else{
1049 m3uFile=filename; 1025 m3uFile=filename;
1050 } 1026 }
1051 1027
1052// qDebug("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"+ m3uFile); 1028// qDebug("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"+ m3uFile);
1053 lnk.setName( filename ); //sets name 1029 lnk.setName( filename ); //sets name
1054 lnk.setFile( filename ); //sets file name 1030 lnk.setFile( filename ); //sets file name
1055 lnk.setIcon("opieplayer2/musicfile"); 1031 lnk.setIcon("opieplayer2/musicfile");
1056 d->selectedFiles->addToSelection( lnk ); 1032 d->selectedFiles->addToSelection( lnk );
1057 writeCurrentM3u(); 1033 writeCurrentM3u();
1058 } 1034 }
1059 else if( filename.right( 3) == "m3u" ) { 1035 else if( filename.right( 3) == "m3u" ) {
1060 readm3u( filename ); 1036 readm3u( filename );
1061 1037
1062 } else if( filename.right(3) == "pls" ) { 1038 } else if( filename.right(3) == "pls" ) {
1063 readPls( filename ); 1039 readPls( filename );
1064 } else { 1040 } else {
1065 d->selectedFiles->addToSelection( DocLnk(filename) ); 1041 lnk.setName( QFileInfo(filename).baseName() ); //sets name
1042 lnk.setFile( filename ); //sets file name
1043 d->selectedFiles->addToSelection( lnk);
1066 writeCurrentM3u(); 1044 writeCurrentM3u();
1067 } 1045 }
1068 } 1046 }
1069 1047
1070 if( fileDlg ) { 1048 if( fileDlg ) {
1071 delete fileDlg; 1049 delete fileDlg;
1072 } 1050 }
1073} 1051}
1074 1052
1075 1053
1076/* 1054/*
1077reads m3u and shows files/urls to playlist widget */ 1055reads m3u and shows files/urls to playlist widget */
1078void PlayListWidget::readm3u( const QString &filename ) { 1056void PlayListWidget::readm3u( const QString &filename ) {
1079 qDebug( "read m3u filename " + filename ); 1057 qDebug( "read m3u filename " + filename );
1080 1058
1081 Om3u *m3uList; 1059 Om3u *m3uList;
1082 QString s, name; 1060 QString s, name;
1083 m3uList = new Om3u( filename, IO_ReadOnly ); 1061 m3uList = new Om3u( filename, IO_ReadOnly );
1084 m3uList->readM3u(); 1062 m3uList->readM3u();
1085 DocLnk lnk; 1063 DocLnk lnk;
1086 for ( QStringList::ConstIterator it = m3uList->begin(); it != m3uList->end(); ++it ) { 1064 for ( QStringList::ConstIterator it = m3uList->begin(); it != m3uList->end(); ++it ) {
1087 s = *it; 1065 s = *it;
1088// qDebug("reading "+ s); 1066// qDebug("reading "+ s);
1089 if(s.left(4)=="http") { 1067 if(s.left(4)=="http") {
1090 lnk.setName( s ); //sets file name 1068 lnk.setName( s ); //sets file name
1091 lnk.setIcon("opieplayer2/musicfile"); 1069 lnk.setIcon("opieplayer2/musicfile");
1092 if(s.right(4) != '.' || s.right(5) != '.') 1070 if(s.right(4) != '.' || s.right(5) != '.')
1093 lnk.setFile( s+"/"); //if url with no extension 1071 lnk.setFile( s+"/"); //if url with no extension
1094 else 1072 else
1095 lnk.setFile( s ); //sets file name 1073 lnk.setFile( s ); //sets file name
1096 1074
1097 } else { 1075 } else {
1098 // if( QFileInfo( s ).exists() ) { 1076 // if( QFileInfo( s ).exists() ) {
1099 lnk.setName( QFileInfo(s).baseName()); 1077 lnk.setName( QFileInfo(s).baseName());
1100 // if(s.right(4) == '.') {//if regular file 1078 // if(s.right(4) == '.') {//if regular file
1101 if(s.left(1) != "/") { 1079 if(s.left(1) != "/") {
1102 // qDebug("set link "+QFileInfo(filename).dirPath()+"/"+s); 1080 // qDebug("set link "+QFileInfo(filename).dirPath()+"/"+s);
1103 lnk.setFile( QFileInfo(filename).dirPath()+"/"+s); 1081 lnk.setFile( QFileInfo(filename).dirPath()+"/"+s);
1104 lnk.setIcon("SoundPlayer"); 1082 lnk.setIcon("SoundPlayer");
1105 } else { 1083 } else {
1106 // qDebug("set link2 "+s); 1084 // qDebug("set link2 "+s);
1107 lnk.setFile( s); 1085 lnk.setFile( s);
1108 lnk.setIcon("SoundPlayer"); 1086 lnk.setIcon("SoundPlayer");
1109 } 1087 }
1110 } 1088 }
1111 d->selectedFiles->addToSelection( lnk ); 1089 d->selectedFiles->addToSelection( lnk );
1112 } 1090 }
1113 Config config( "OpiePlayer" ); 1091 Config config( "OpiePlayer" );
@@ -1132,101 +1110,100 @@ void PlayListWidget::readPls( const QString &filename ) {
1132 1110
1133 qDebug( "pls filename is " + filename ); 1111 qDebug( "pls filename is " + filename );
1134 Om3u *m3uList; 1112 Om3u *m3uList;
1135 QString s, name; 1113 QString s, name;
1136 m3uList = new Om3u( filename, IO_ReadOnly ); 1114 m3uList = new Om3u( filename, IO_ReadOnly );
1137 m3uList->readPls(); 1115 m3uList->readPls();
1138 1116
1139 for ( QStringList::ConstIterator it = m3uList->begin(); it != m3uList->end(); ++it ) { 1117 for ( QStringList::ConstIterator it = m3uList->begin(); it != m3uList->end(); ++it ) {
1140 s = *it; 1118 s = *it;
1141 // s.replace( QRegExp( "%20" )," " ); 1119 // s.replace( QRegExp( "%20" )," " );
1142 DocLnk lnk( s ); 1120 DocLnk lnk( s );
1143 QFileInfo f( s ); 1121 QFileInfo f( s );
1144 QString name = f.baseName(); 1122 QString name = f.baseName();
1145 1123
1146 if( name.left( 4 ) == "http" ) { 1124 if( name.left( 4 ) == "http" ) {
1147 name = s.right( s.length() - 7); 1125 name = s.right( s.length() - 7);
1148 } else { 1126 } else {
1149 name = s; 1127 name = s;
1150 } 1128 }
1151 1129
1152 name = name.right( name.length() - name.findRev( "\\", -1, TRUE) - 1 ); 1130 name = name.right( name.length() - name.findRev( "\\", -1, TRUE) - 1 );
1153 1131
1154 lnk.setName( name ); 1132 lnk.setName( name );
1155 if( s.at( s.length() - 4) == '.') {// if this is probably a file 1133 if( s.at( s.length() - 4) == '.') {// if this is probably a file
1156 lnk.setFile( s ); 1134 lnk.setFile( s );
1157 } else { //if its a url 1135 } else { //if its a url
1158 if( name.right( 1 ).find( '/' ) == -1) { 1136 if( name.right( 1 ).find( '/' ) == -1) {
1159 s += "/"; 1137 s += "/";
1160 } 1138 }
1161 lnk.setFile( s ); 1139 lnk.setFile( s );
1162 } 1140 }
1163 lnk.setType( "audio/x-mpegurl" ); 1141 lnk.setType( "audio/x-mpegurl" );
1164 1142
1165 lnk.writeLink(); 1143 lnk.writeLink();
1166 d->selectedFiles->addToSelection( lnk ); 1144 d->selectedFiles->addToSelection( lnk );
1167 } 1145 }
1168 1146
1169 m3uList->close(); 1147 m3uList->close();
1170 if(m3uList) delete m3uList; 1148 if(m3uList) delete m3uList;
1171} 1149}
1172 1150
1173/* 1151/*
1174 writes current playlist to current m3u file */ 1152 writes current playlist to current m3u file */
1175void PlayListWidget::writeCurrentM3u() { 1153void PlayListWidget::writeCurrentM3u() {
1176 qDebug("writing to current m3u"); 1154 qDebug("writing to current m3u");
1177 Config cfg( "OpiePlayer" ); 1155 Config cfg( "OpiePlayer" );
1178 cfg.setGroup("PlayList"); 1156 cfg.setGroup("PlayList");
1179 QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); 1157 QString currentPlaylist = cfg.readEntry("CurrentPlaylist","");
1180
1181 if( d->selectedFiles->first()) {
1182 Om3u *m3uList; 1158 Om3u *m3uList;
1183 m3uList = new Om3u( currentPlaylist, IO_ReadWrite | IO_Truncate ); 1159 m3uList = new Om3u( currentPlaylist, IO_ReadWrite | IO_Truncate );
1184 1160
1161 if( d->selectedFiles->first()) {
1185 do { 1162 do {
1186 qDebug( "writeCurrentM3u " +d->selectedFiles->current()->file()); 1163 qDebug( "writeCurrentM3u " +d->selectedFiles->current()->file());
1187 m3uList->add( d->selectedFiles->current()->file() ); 1164 m3uList->add( d->selectedFiles->current()->file() );
1188 } 1165 }
1189 while ( d->selectedFiles->next() ); 1166 while ( d->selectedFiles->next() );
1190 qDebug( "<<<<<<<<<<<<>>>>>>>>>>>>>>>>>" ); 1167 qDebug( "<<<<<<<<<<<<>>>>>>>>>>>>>>>>>" );
1191 m3uList->write(); 1168 m3uList->write();
1192 m3uList->close(); 1169 m3uList->close();
1193 1170
1194 if(m3uList) delete m3uList; 1171 if(m3uList) delete m3uList;
1195 } 1172 }
1196} 1173}
1197 1174
1198 /* 1175 /*
1199 writes current playlist to m3u file */ 1176 writes current playlist to m3u file */
1200void PlayListWidget::writem3u() { 1177void PlayListWidget::writem3u() {
1201 InputDialog *fileDlg; 1178 InputDialog *fileDlg;
1202 fileDlg = new InputDialog( this, tr( "Save m3u Playlist " ), TRUE, 0); 1179 fileDlg = new InputDialog( this, tr( "Save m3u Playlist " ), TRUE, 0);
1203 fileDlg->exec(); 1180 fileDlg->exec();
1204 QString name, filename, list; 1181 QString name, filename, list;
1205 Om3u *m3uList; 1182 Om3u *m3uList;
1206 1183
1207 if( fileDlg->result() == 1 ) { 1184 if( fileDlg->result() == 1 ) {
1208 name = fileDlg->text(); 1185 name = fileDlg->text();
1209// qDebug( filename ); 1186// qDebug( filename );
1210 1187
1211 if( name.left( 1) != "/" ) { 1188 if( name.left( 1) != "/" ) {
1212 filename = QPEApplication::documentDir() + "/" + name; 1189 filename = QPEApplication::documentDir() + "/" + name;
1213 } 1190 }
1214 1191
1215 if( name.right( 3 ) != "m3u" ) { 1192 if( name.right( 3 ) != "m3u" ) {
1216 filename = QPEApplication::documentDir() + "/" +name+".m3u"; 1193 filename = QPEApplication::documentDir() + "/" +name+".m3u";
1217 } 1194 }
1218 1195
1219 if( d->selectedFiles->first()) { 1196 if( d->selectedFiles->first()) {
1220 m3uList = new Om3u(filename, IO_ReadWrite); 1197 m3uList = new Om3u(filename, IO_ReadWrite);
1221 1198
1222 do { 1199 do {
1223 m3uList->add( d->selectedFiles->current()->file()); 1200 m3uList->add( d->selectedFiles->current()->file());
1224 } 1201 }
1225 while ( d->selectedFiles->next() ); 1202 while ( d->selectedFiles->next() );
1226 // qDebug( list ); 1203 // qDebug( list );
1227 m3uList->write(); 1204 m3uList->write();
1228 m3uList->close(); 1205 m3uList->close();
1229 if(m3uList) delete m3uList; 1206 if(m3uList) delete m3uList;
1230 1207
1231 if(fileDlg) delete fileDlg; 1208 if(fileDlg) delete fileDlg;
1232 1209