summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/main.cpp2
-rw-r--r--core/multimedia/opieplayer/playlistwidget.cpp64
2 files changed, 45 insertions, 21 deletions
diff --git a/core/multimedia/opieplayer/main.cpp b/core/multimedia/opieplayer/main.cpp
index 4f43ff6..18cd7a6 100644
--- a/core/multimedia/opieplayer/main.cpp
+++ b/core/multimedia/opieplayer/main.cpp
@@ -26,31 +26,31 @@
26#include "mediaplayer.h" 26#include "mediaplayer.h"
27 27
28MediaPlayerState *mediaPlayerState; 28MediaPlayerState *mediaPlayerState;
29PlayListWidget *playList; 29PlayListWidget *playList;
30AudioWidget *audioUI; 30AudioWidget *audioUI;
31VideoWidget *videoUI; 31VideoWidget *videoUI;
32LoopControl *loopControl; 32LoopControl *loopControl;
33 33
34 34
35int main(int argc, char **argv) { 35int main(int argc, char **argv) {
36 QPEApplication a(argc,argv); 36 QPEApplication a(argc,argv);
37 37
38 MediaPlayerState st( 0, "mediaPlayerState" ); 38 MediaPlayerState st( 0, "mediaPlayerState" );
39 mediaPlayerState = &st; 39 mediaPlayerState = &st;
40 PlayListWidget pl( 0, "playList" ); 40 PlayListWidget pl( 0, "playList" );
41 playList = &pl; 41 playList = &pl;
42 AudioWidget aw( 0, "audioUI" ); 42 AudioWidget aw( 0, "audioUI" );
43 audioUI = &aw; 43 audioUI = &aw;
44 VideoWidget vw( 0, "videoUI" ); 44 VideoWidget vw( 0, "videoUI" );
45 videoUI = &vw; 45 videoUI = &vw;
46 LoopControl lc( 0, "loopControl" ); 46 LoopControl lc( 0, "loopControl" );
47 loopControl = &lc; 47 loopControl = &lc;
48 MediaPlayer mp( 0, "mediaPlayer" ); 48 MediaPlayer mp( 0, "mediaPlayer" );
49 49
50 pl.setCaption( MediaPlayer::tr("OpiePlayer") ); 50// pl.setCaption( MediaPlayer::tr("OpiePlayer") );
51 a.showMainDocumentWidget(&pl); 51 a.showMainDocumentWidget(&pl);
52 52
53 return a.exec(); 53 return a.exec();
54} 54}
55 55
56 56
diff --git a/core/multimedia/opieplayer/playlistwidget.cpp b/core/multimedia/opieplayer/playlistwidget.cpp
index cb58888..9969526 100644
--- a/core/multimedia/opieplayer/playlistwidget.cpp
+++ b/core/multimedia/opieplayer/playlistwidget.cpp
@@ -1,45 +1,44 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20// code added by L. J. Potter Sat 03-02-2002 06:17:54 20// code added by L. J. Potter Sat 03-02-2002 06:17:54
21
22#include <qpe/qpemenubar.h> 21#include <qpe/qpemenubar.h>
23#include <qpe/qpetoolbar.h> 22#include <qpe/qpetoolbar.h>
24#include <qpe/fileselector.h> 23#include <qpe/fileselector.h>
25#include <qpe/qpeapplication.h> 24#include <qpe/qpeapplication.h>
26 25
27#include <qpe/applnk.h> 26#include <qpe/applnk.h>
28#include <qpe/config.h> 27#include <qpe/config.h>
29#include <qpe/global.h> 28#include <qpe/global.h>
30#include <qpe/resource.h> 29#include <qpe/resource.h>
31#include <qaction.h> 30#include <qaction.h>
32#include <qimage.h> 31#include <qimage.h>
33#include <qfile.h> 32#include <qfile.h>
34#include <qdir.h> 33#include <qdir.h>
35#include <qlayout.h> 34#include <qlayout.h>
36#include <qlabel.h> 35#include <qlabel.h>
37#include <qlist.h> 36#include <qlist.h>
38#include <qlistbox.h> 37#include <qlistbox.h>
39#include <qmainwindow.h> 38#include <qmainwindow.h>
40#include <qmessagebox.h> 39#include <qmessagebox.h>
41#include <qtoolbutton.h> 40#include <qtoolbutton.h>
42#include <qtabwidget.h> 41#include <qtabwidget.h>
43#include <qlistview.h> 42#include <qlistview.h>
44#include <qpoint.h> 43#include <qpoint.h>
45#include <qlineedit.h> 44#include <qlineedit.h>
@@ -235,107 +234,112 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl )
235 videoView->setColumnAlignment(2, Qt::AlignRight); 234 videoView->setColumnAlignment(2, Qt::AlignRight);
236 235
237 tabWidget->insertTab( vTab,"Video"); 236 tabWidget->insertTab( vTab,"Video");
238 237
239 Global::findDocuments(&vFiles, "video/*"); 238 Global::findDocuments(&vFiles, "video/*");
240 QListIterator<DocLnk> Vdit( vFiles.children() ); 239 QListIterator<DocLnk> Vdit( vFiles.children() );
241 for ( ; Vdit.current(); ++Vdit ) { 240 for ( ; Vdit.current(); ++Vdit ) {
242 if( Vdit.current()->file().find("/mnt/cf") != -1 ) storage="CF"; 241 if( Vdit.current()->file().find("/mnt/cf") != -1 ) storage="CF";
243 else if( Vdit.current()->file().find("/mnt/hda") != -1 ) storage="CF"; 242 else if( Vdit.current()->file().find("/mnt/hda") != -1 ) storage="CF";
244 else if( Vdit.current()->file().find("/mnt/card") != -1 ) storage="SD"; 243 else if( Vdit.current()->file().find("/mnt/card") != -1 ) storage="SD";
245 else storage="RAM"; 244 else storage="RAM";
246 QListViewItem * newItem; 245 QListViewItem * newItem;
247 if ( QFile( Vdit.current()->file()).exists() ) { 246 if ( QFile( Vdit.current()->file()).exists() ) {
248 newItem= /*(void)*/ new QListViewItem( videoView, Vdit.current()->name(), QString::number( QFile( Vdit.current()->file()).size() ), storage); 247 newItem= /*(void)*/ new QListViewItem( videoView, Vdit.current()->name(), QString::number( QFile( Vdit.current()->file()).size() ), storage);
249 newItem->setPixmap(0, Resource::loadPixmap( "mpegplayer/videofile" )); 248 newItem->setPixmap(0, Resource::loadPixmap( "mpegplayer/videofile" ));
250 } 249 }
251 } 250 }
252 251
253//playlists list 252//playlists list
254 QWidget *LTab; 253 QWidget *LTab;
255 LTab = new QWidget( tabWidget, "LTab" ); 254 LTab = new QWidget( tabWidget, "LTab" );
256 playLists = new FileSelector( "playlist/plain", LTab, "fileselector" , FALSE, FALSE); //buggy 255 playLists = new FileSelector( "playlist/plain", LTab, "fileselector" , FALSE, FALSE); //buggy
257 playLists->setMinimumSize(233,260);; 256 playLists->setMinimumSize(233,260);;
258 tabWidget->insertTab(LTab,"Lists"); 257 tabWidget->insertTab(LTab,"Lists");
258
259 connect( playLists, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( loadList( const DocLnk & ) ) ); 259 connect( playLists, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( loadList( const DocLnk & ) ) );
260// connect( playLists, SIGNAL( newSelected( const DocLnk &) ), this, SLOT( newFile( const DocLnk & ) ) ); 260// connect( playLists, SIGNAL( newSelected( const DocLnk &) ), this, SLOT( newFile( const DocLnk & ) ) );
261 261
262 262
263// add the library area 263// add the library area
264 QPEApplication::setStylusOperation( this, QPEApplication::RightOnHold ); 264 QPEApplication::setStylusOperation( this, QPEApplication::RightOnHold );
265 265
266 266
267 connect( audioView, SIGNAL( rightButtonClicked( QListViewItem *, const QPoint &, int)), 267// connect( audioView, SIGNAL( rightButtonClicked( QListViewItem *, const QPoint &, int)),
268 this, SLOT( fauxPlay( QListViewItem *) ) ); 268// this, SLOT( fauxPlay( QListViewItem *) ) );
269 connect( videoView, SIGNAL( rightButtonClicked( QListViewItem *, const QPoint &, int)), 269// connect( videoView, SIGNAL( rightButtonClicked( QListViewItem *, const QPoint &, int)),
270 this, SLOT( fauxPlay( QListViewItem *)) ); 270// this, SLOT( fauxPlay( QListViewItem *)) );
271 271
272// connect( audioView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( fauxPlay( QListViewItem *) ) ); 272// connect( audioView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( fauxPlay( QListViewItem *) ) );
273// connect( videoView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( fauxPlay( QListViewItem *) ) ); 273// connect( videoView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( fauxPlay( QListViewItem *) ) );
274 274
275 connect( audioView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) ); 275 connect( audioView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) );
276 connect( videoView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) ); 276 connect( videoView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) );
277 277
278 connect( tabWidget, SIGNAL (currentChanged(QWidget*)),this,SLOT(tabChanged(QWidget*))); 278 connect( tabWidget, SIGNAL (currentChanged(QWidget*)),this,SLOT(tabChanged(QWidget*)));
279 connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), d->tbPlay, SLOT( setOn( bool ) ) ); 279 connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), d->tbPlay, SLOT( setOn( bool ) ) );
280 connect( mediaPlayerState, SIGNAL( loopingToggled( bool ) ), d->tbLoop, SLOT( setOn( bool ) ) ); 280 connect( mediaPlayerState, SIGNAL( loopingToggled( bool ) ), d->tbLoop, SLOT( setOn( bool ) ) );
281 connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), d->tbShuffle, SLOT( setOn( bool ) ) ); 281 connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), d->tbShuffle, SLOT( setOn( bool ) ) );
282 connect( mediaPlayerState, SIGNAL( playlistToggled( bool ) ), this, SLOT( setPlaylist( bool ) ) ); 282 connect( mediaPlayerState, SIGNAL( playlistToggled( bool ) ), this, SLOT( setPlaylist( bool ) ) );
283 283
284 connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) ); 284 connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) );
285// connect( d->selectedFiles, SIGNAL( fileSelected( const DocLnk & ) ), this, SLOT( addToSelection( const DocLnk & ) ) ); 285// connect( d->selectedFiles, SIGNAL( fileSelected( const DocLnk & ) ), this, SLOT( addToSelection( const DocLnk & ) ) );
286 286
287 setCentralWidget( vbox5 ); 287 setCentralWidget( vbox5 );
288 288
289 Config cfg( "MediaPlayer" ); 289 Config cfg( "MediaPlayer" );
290 readConfig( cfg ); 290 readConfig( cfg );
291 291 QString currentPlaylist = cfg.readEntry("CurrentPlaylist","");
292// qDebug("currentList is "+currentPlaylist);
293 loadList(DocLnk( currentPlaylist));
294 setCaption("OpiePlayer: "+ currentPlaylist );
295
292 initializeStates(); 296 initializeStates();
293} 297}
294 298
295 299
296PlayListWidget::~PlayListWidget() { 300PlayListWidget::~PlayListWidget() {
297 Config cfg( "MediaPlayer" ); 301 Config cfg( "MediaPlayer" );
298 writeConfig( cfg ); 302 writeConfig( cfg );
303
299 304
300 if ( d->current ) 305 if ( d->current )
301 delete d->current; 306 delete d->current;
302 delete d; 307 delete d;
303} 308}
304 309
305 310
306void PlayListWidget::initializeStates() { 311void PlayListWidget::initializeStates() {
307 312
308 d->tbPlay->setOn( mediaPlayerState->playing() ); 313 d->tbPlay->setOn( mediaPlayerState->playing() );
309 d->tbLoop->setOn( mediaPlayerState->looping() ); 314 d->tbLoop->setOn( mediaPlayerState->looping() );
310 d->tbShuffle->setOn( mediaPlayerState->shuffled() ); 315 d->tbShuffle->setOn( mediaPlayerState->shuffled() );
311// d->tbFull->setOn( mediaPlayerState->fullscreen() ); 316// d->tbFull->setOn( mediaPlayerState->fullscreen() );
312// d->tbScale->setOn( mediaPlayerState->scaled() ); 317// d->tbScale->setOn( mediaPlayerState->scaled() );
313// d->tbScale->setEnabled( mediaPlayerState->fullscreen() ); 318// d->tbScale->setEnabled( mediaPlayerState->fullscreen() );
314// setPlaylist( mediaPlayerState->playlist() ); 319// setPlaylist( mediaPlayerState->playlist() );
315 setPlaylist( true); 320 setPlaylist( true);
316 d->selectedFiles->first(); 321 d->selectedFiles->first();
317
318} 322}
319 323
320 324
321void PlayListWidget::readConfig( Config& cfg ) { 325void PlayListWidget::readConfig( Config& cfg ) {
322 cfg.setGroup("PlayList"); 326 cfg.setGroup("PlayList");
323 327
324 int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); 328 int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 );
325 329
326 for ( int i = 0; i < noOfFiles; i++ ) { 330 for ( int i = 0; i < noOfFiles; i++ ) {
327 QString entryName; 331 QString entryName;
328 entryName.sprintf( "File%i", i + 1 ); 332 entryName.sprintf( "File%i", i + 1 );
329 QString linkFile = cfg.readEntry( entryName ); 333 QString linkFile = cfg.readEntry( entryName );
330 DocLnk lnk( linkFile ); 334 DocLnk lnk( linkFile );
331 if ( lnk.isValid() ) 335 if ( lnk.isValid() )
332 d->selectedFiles->addToSelection( lnk ); 336 d->selectedFiles->addToSelection( lnk );
333 } 337 }
334} 338}
335 339
336 340
337void PlayListWidget::writeConfig( Config& cfg ) const { 341void PlayListWidget::writeConfig( Config& cfg ) const {
338 cfg.setGroup("PlayList"); 342 cfg.setGroup("PlayList");
339 343
340 int noOfFiles = 0; 344 int noOfFiles = 0;
341 345
@@ -351,95 +355,96 @@ void PlayListWidget::writeConfig( Config& cfg ) const {
351 if ( !QFile::exists( lnk->linkFile() ) ) { 355 if ( !QFile::exists( lnk->linkFile() ) ) {
352 // the way writing lnks doesn't really check for out 356 // the way writing lnks doesn't really check for out
353 // of disk space, but check it anyway. 357 // of disk space, but check it anyway.
354 if ( !lnk->writeLink() ) { 358 if ( !lnk->writeLink() ) {
355 QMessageBox::critical( 0, tr("Out of space"), 359 QMessageBox::critical( 0, tr("Out of space"),
356 tr( "There was a problem saving " 360 tr( "There was a problem saving "
357 "the playlist.\n" 361 "the playlist.\n"
358 "Your playlist " 362 "Your playlist "
359 "may be missing some entries\n" 363 "may be missing some entries\n"
360 "the next time you start it." ) 364 "the next time you start it." )
361 ); 365 );
362 } 366 }
363 } 367 }
364 noOfFiles++; 368 noOfFiles++;
365 } 369 }
366 } while ( d->selectedFiles->next() ); 370 } while ( d->selectedFiles->next() );
367 371
368 cfg.writeEntry("NumberOfFiles", noOfFiles ); 372 cfg.writeEntry("NumberOfFiles", noOfFiles );
369 373
370 374
371} 375}
372 376
373 377
374void PlayListWidget::addToSelection( const DocLnk& lnk ) { 378void PlayListWidget::addToSelection( const DocLnk& lnk ) {
375 qDebug("add"); 379// qDebug("add");
376 d->setDocumentUsed = FALSE; 380 d->setDocumentUsed = FALSE;
377 if ( mediaPlayerState->playlist() ) 381 if ( mediaPlayerState->playlist() )
378 d->selectedFiles->addToSelection( lnk ); 382 d->selectedFiles->addToSelection( lnk );
379 else 383 else
380 mediaPlayerState->setPlaying( TRUE ); 384 mediaPlayerState->setPlaying( TRUE );
381} 385}
382 386
383 387
384void PlayListWidget::clearList() { 388void PlayListWidget::clearList() {
385 while ( first() ) 389 while ( first() )
386 d->selectedFiles->removeSelected(); 390 d->selectedFiles->removeSelected();
387} 391}
388 392
389 393
390void PlayListWidget::addAllToList() { 394void PlayListWidget::addAllToList() {
391 DocLnkSet files; 395 DocLnkSet files;
392 Global::findDocuments(&files, "video/*;audio/*"); 396 Global::findDocuments(&files, "video/*;audio/*");
393 QListIterator<DocLnk> dit( files.children() ); 397 QListIterator<DocLnk> dit( files.children() );
394 for ( ; dit.current(); ++dit ) 398 for ( ; dit.current(); ++dit )
395 d->selectedFiles->addToSelection( **dit ); 399 d->selectedFiles->addToSelection( **dit );
396} 400}
397 401
398 402
399void PlayListWidget::addAllMusicToList() { 403void PlayListWidget::addAllMusicToList() {
400 DocLnkSet files; 404 DocLnkSet files;
401 Global::findDocuments(&files, "audio/*"); 405 Global::findDocuments(&files, "audio/*");
402 QListIterator<DocLnk> dit( files.children() ); 406 QListIterator<DocLnk> dit( files.children() );
403 for ( ; dit.current(); ++dit ) 407 for ( ; dit.current(); ++dit )
404 d->selectedFiles->addToSelection( **dit ); 408 d->selectedFiles->addToSelection( **dit );
405} 409}
406 410
407 411
408void PlayListWidget::addAllVideoToList() { 412void PlayListWidget::addAllVideoToList() {
409 DocLnkSet files; 413 DocLnkSet files;
410 Global::findDocuments(&files, "video/*"); 414 Global::findDocuments(&files, "video/*");
411 QListIterator<DocLnk> dit( files.children() ); 415 QListIterator<DocLnk> dit( files.children() );
412 for ( ; dit.current(); ++dit ) 416 for ( ; dit.current(); ++dit )
413 d->selectedFiles->addToSelection( **dit ); 417 d->selectedFiles->addToSelection( **dit );
414} 418}
415 419
416 420
417void PlayListWidget::setDocument(const QString& fileref) { 421void PlayListWidget::setDocument(const QString& fileref) {
418 if ( fileref.isNull() ) { 422 if ( fileref.isNull() ) {
419 QMessageBox::critical( 0, tr( "Invalid File" ), tr( "There was a problem in getting the file." ) ); 423 QMessageBox::critical( 0, tr( "Invalid File" ), tr( "There was a problem in getting the file." ) );
420 return; 424 return;
421 } 425 }
426// qDebug("setDocument");
422 if(fileref.find("playlist",0,TRUE) == -1) { 427 if(fileref.find("playlist",0,TRUE) == -1) {
423 addToSelection( DocLnk( fileref ) ); 428 addToSelection( DocLnk( fileref ) );
424 d->setDocumentUsed = TRUE; 429 d->setDocumentUsed = TRUE;
425 qApp->processEvents(); 430 qApp->processEvents();
426 mediaPlayerState->setPlaying( FALSE ); 431 mediaPlayerState->setPlaying( FALSE );
427 qApp->processEvents(); 432 qApp->processEvents();
428 mediaPlayerState->setPlaying( TRUE ); 433 mediaPlayerState->setPlaying( TRUE );
429 d->selectedFiles->removeSelected( ); 434 d->selectedFiles->removeSelected( );
430 } else { 435 } else {
431 loadList(DocLnk(fileref)); 436 loadList(DocLnk(fileref));
432 d->selectedFiles->first(); 437 d->selectedFiles->first();
433// mediaPlayerState->setPlaying( TRUE ); 438// mediaPlayerState->setPlaying( TRUE );
434// mediaPlayerState->setPlaying( FALSE ); 439// mediaPlayerState->setPlaying( FALSE );
435 440
436 } 441 }
437} 442}
438 443
439 444
440void PlayListWidget::setActiveWindow() { 445void PlayListWidget::setActiveWindow() {
441 // When we get raised we need to ensure that it switches views 446 // When we get raised we need to ensure that it switches views
442 char origView = mediaPlayerState->view(); 447 char origView = mediaPlayerState->view();
443 mediaPlayerState->setView( 'l' ); // invalidate 448 mediaPlayerState->setView( 'l' ); // invalidate
444 mediaPlayerState->setView( origView ); // now switch back 449 mediaPlayerState->setView( origView ); // now switch back
445} 450}
@@ -512,78 +517,97 @@ bool PlayListWidget::next() {
512 } 517 }
513} 518}
514 519
515 520
516bool PlayListWidget::first() { 521bool PlayListWidget::first() {
517 if ( mediaPlayerState->playlist() ) 522 if ( mediaPlayerState->playlist() )
518 return d->selectedFiles->first(); 523 return d->selectedFiles->first();
519 else 524 else
520 return mediaPlayerState->looping(); 525 return mediaPlayerState->looping();
521} 526}
522 527
523 528
524bool PlayListWidget::last() { 529bool PlayListWidget::last() {
525 if ( mediaPlayerState->playlist() ) 530 if ( mediaPlayerState->playlist() )
526 return d->selectedFiles->last(); 531 return d->selectedFiles->last();
527 else 532 else
528 return mediaPlayerState->looping(); 533 return mediaPlayerState->looping();
529} 534}
530 535
531 536
532void PlayListWidget::saveList() { 537void PlayListWidget::saveList() {
533 538
534 QString filename; 539 QString filename;
535 InputDialog *fileDlg; 540 InputDialog *fileDlg;
536 fileDlg=new InputDialog(this,"Save Playlist",TRUE, 0); 541 fileDlg = new InputDialog(this,"Save Playlist",TRUE, 0);
537 fileDlg->exec(); 542 fileDlg->exec();
538 if( fileDlg->result() == 1 ) { 543 if( fileDlg->result() == 1 ) {
544 if ( d->current )
545 delete d->current;
539 filename = fileDlg->LineEdit1->text();//+".playlist"; 546 filename = fileDlg->LineEdit1->text();//+".playlist";
540 qDebug("saving playlist "+filename+".playlist"); 547// qDebug("saving playlist "+filename+".playlist");
541 Config cfg( filename +".playlist"); 548 Config cfg( filename +".playlist");
542 writeConfig( cfg ); 549 writeConfig( cfg );
550 if( playLists->selected()->name() == filename) {
551// qDebug("same name so delete lnk");
552 QFile().remove(playLists->selected()->file());
553 QFile().remove(playLists->selected()->linkFile());
554 playLists->reread();
555 }
556
543 DocLnk lnk; 557 DocLnk lnk;
544// lnk.setComment( ""); 558// lnk.setComment( "");
545 lnk.setFile(QDir::homeDirPath()+"/Settings/"+filename+".playlist.conf"); //sets File property 559 lnk.setFile(QDir::homeDirPath()+"/Settings/"+filename+".playlist.conf"); //sets File property
546 lnk.setType("playlist/plain");// hey is this a REGISTERED mime type?!?!? ;D 560 lnk.setType("playlist/plain");// hey is this a REGISTERED mime type?!?!? ;D
547 lnk.setIcon("mpegplayer/playlist2"); 561 lnk.setIcon("mpegplayer/playlist2");
548 lnk.setName( filename); //sets file name 562 lnk.setName( filename); //sets file name
549 if(!lnk.writeLink()) 563 if(!lnk.writeLink())
550 qDebug("Writing doclink did not work"); 564 qDebug("Writing doclink did not work");
551 } 565 }
552 566 Config config( "MediaPlayer" );
567 config.writeEntry("CurrentPlaylist",filename);
568 setCaption("OpiePlayer: "+filename);
569 d->selectedFiles->first();
553 if(fileDlg) 570 if(fileDlg)
554 delete fileDlg; 571 delete fileDlg;
555 572
556} 573}
557 574
558 575
559void PlayListWidget::loadList( const DocLnk & lnk) { 576void PlayListWidget::loadList( const DocLnk & lnk) {
560 qDebug("load list "+ lnk.name()+".playlist"); 577 QString name= lnk.name();
561 clearList(); 578// qDebug("currentList is "+name);
562 Config cfg( lnk.name()+".playlist"); 579 if( name.length()>1) {
563 readConfig(cfg); 580 setCaption("OpiePlayer: "+name);
564 tabWidget->setCurrentPage(0); 581// qDebug("load list "+ name+".playlist");
565 setCaption("OpiePlayer: "+lnk.name()); 582 clearList();
583 Config cfg( name+".playlist");
584 readConfig(cfg);
585 tabWidget->setCurrentPage(0);
586 Config config( "MediaPlayer" );
587 config.writeEntry("CurrentPlaylist", name);
588 d->selectedFiles->first();
589 }
566} 590}
567 591
568 592
569void PlayListWidget::setPlaylist( bool shown ) { 593void PlayListWidget::setPlaylist( bool shown ) {
570 if ( shown ) 594 if ( shown )
571 d->playListFrame->show(); 595 d->playListFrame->show();
572 else 596 else
573 d->playListFrame->hide(); 597 d->playListFrame->hide();
574} 598}
575 599
576 600
577void PlayListWidget::setView( char view ) { 601void PlayListWidget::setView( char view ) {
578 if ( view == 'l' ) 602 if ( view == 'l' )
579 showMaximized(); 603 showMaximized();
580 else 604 else
581 hide(); 605 hide();
582} 606}
583 607
584void PlayListWidget::addSelected() { 608void PlayListWidget::addSelected() {
585 609
586 switch (tabWidget->currentPageIndex()) { 610 switch (tabWidget->currentPageIndex()) {
587 case 0: //playlist 611 case 0: //playlist
588 break; 612 break;
589 case 1: { //audio 613 case 1: { //audio