summaryrefslogtreecommitdiff
path: root/core/multimedia/opieplayer/playlistwidget.cpp
Unidiff
Diffstat (limited to 'core/multimedia/opieplayer/playlistwidget.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/playlistwidget.cpp173
1 files changed, 124 insertions, 49 deletions
diff --git a/core/multimedia/opieplayer/playlistwidget.cpp b/core/multimedia/opieplayer/playlistwidget.cpp
index 524747e..cf665c8 100644
--- a/core/multimedia/opieplayer/playlistwidget.cpp
+++ b/core/multimedia/opieplayer/playlistwidget.cpp
@@ -97,24 +97,25 @@ public:
97 addTo( parent ); 97 addTo( parent );
98 } 98 }
99}; 99};
100 100
101 101
102PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl ) 102PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl )
103 : QMainWindow( parent, name, fl ) { 103 : QMainWindow( parent, name, fl ) {
104 104
105 d = new PlayListWidgetPrivate; 105 d = new PlayListWidgetPrivate;
106 d->setDocumentUsed = FALSE; 106 d->setDocumentUsed = FALSE;
107 d->current = NULL; 107 d->current = NULL;
108 fromSetDocument = FALSE; 108 fromSetDocument = FALSE;
109 insanityBool=FALSE;
109// menuTimer = new QTimer( this ,"menu timer"), 110// menuTimer = new QTimer( this ,"menu timer"),
110// connect( menuTimer, SIGNAL( timeout() ), SLOT( addSelected() ) ); 111// connect( menuTimer, SIGNAL( timeout() ), SLOT( addSelected() ) );
111 112
112 setBackgroundMode( PaletteButton ); 113 setBackgroundMode( PaletteButton );
113 114
114 setCaption( tr("OpiePlayer") ); 115 setCaption( tr("OpiePlayer") );
115 setIcon( Resource::loadPixmap( "MPEGPlayer" ) ); 116 setIcon( Resource::loadPixmap( "MPEGPlayer" ) );
116 117
117 setToolBarsMovable( FALSE ); 118 setToolBarsMovable( FALSE );
118 119
119 // Create Toolbar 120 // Create Toolbar
120 QPEToolBar *toolbar = new QPEToolBar( this ); 121 QPEToolBar *toolbar = new QPEToolBar( this );
@@ -197,27 +198,27 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl )
197 198
198 199
199 QVBox *stretch1 = new QVBox( vbox1 ); stretch1->setBackgroundMode( PaletteButton ); // add stretch 200 QVBox *stretch1 = new QVBox( vbox1 ); stretch1->setBackgroundMode( PaletteButton ); // add stretch
200 new ToolButton( vbox1, tr( "Move Up" ), "mpegplayer/up", d->selectedFiles, SLOT(moveSelectedUp()) ); 201 new ToolButton( vbox1, tr( "Move Up" ), "mpegplayer/up", d->selectedFiles, SLOT(moveSelectedUp()) );
201 new ToolButton( vbox1, tr( "Remove" ), "mpegplayer/cut", d->selectedFiles, SLOT(removeSelected()) ); 202 new ToolButton( vbox1, tr( "Remove" ), "mpegplayer/cut", d->selectedFiles, SLOT(removeSelected()) );
202 new ToolButton( vbox1, tr( "Move Down" ), "mpegplayer/down", d->selectedFiles, SLOT(moveSelectedDown()) ); 203 new ToolButton( vbox1, tr( "Move Down" ), "mpegplayer/down", d->selectedFiles, SLOT(moveSelectedDown()) );
203 QVBox *stretch2 = new QVBox( vbox1 ); stretch2->setBackgroundMode( PaletteButton ); // add stretch 204 QVBox *stretch2 = new QVBox( vbox1 ); stretch2->setBackgroundMode( PaletteButton ); // add stretch
204 205
205 QWidget *aTab; 206 QWidget *aTab;
206 aTab = new QWidget( tabWidget, "aTab" ); 207 aTab = new QWidget( tabWidget, "aTab" );
207 audioView = new QListView( aTab, "Audioview" ); 208 audioView = new QListView( aTab, "Audioview" );
208 audioView->setMinimumSize(233,260); 209 audioView->setMinimumSize(233,260);
209 audioView->addColumn( "Title",150); 210 audioView->addColumn( "Title",140);
210 audioView->addColumn("Size", 45); 211 audioView->addColumn("Size", -1);
211 audioView->addColumn("Media",35); 212 audioView->addColumn("Media",-1);
212 audioView->setColumnAlignment(1, Qt::AlignRight); 213 audioView->setColumnAlignment(1, Qt::AlignRight);
213 audioView->setColumnAlignment(2, Qt::AlignRight); 214 audioView->setColumnAlignment(2, Qt::AlignRight);
214 audioView->setAllColumnsShowFocus(TRUE); 215 audioView->setAllColumnsShowFocus(TRUE);
215 tabWidget->insertTab(aTab,"Audio"); 216 tabWidget->insertTab(aTab,"Audio");
216 217
217 QPEApplication::setStylusOperation( audioView->viewport(),QPEApplication::RightOnHold); 218 QPEApplication::setStylusOperation( audioView->viewport(),QPEApplication::RightOnHold);
218 connect( audioView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), 219 connect( audioView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)),
219 this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) ); 220 this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) );
220 221
221 222
222// audioView 223// audioView
223 Global::findDocuments(&files, "audio/*"); 224 Global::findDocuments(&files, "audio/*");
@@ -232,27 +233,27 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl )
232 if ( QFile( dit.current()->file()).exists() ) { 233 if ( QFile( dit.current()->file()).exists() ) {
233 newItem= /*(void)*/ new QListViewItem( audioView, dit.current()->name(), QString::number( QFile( dit.current()->file()).size() ), storage); 234 newItem= /*(void)*/ new QListViewItem( audioView, dit.current()->name(), QString::number( QFile( dit.current()->file()).size() ), storage);
234 newItem->setPixmap(0, Resource::loadPixmap( "mpegplayer/musicfile" )); 235 newItem->setPixmap(0, Resource::loadPixmap( "mpegplayer/musicfile" ));
235 } 236 }
236 } 237 }
237// videowidget 238// videowidget
238 239
239 QWidget *vTab; 240 QWidget *vTab;
240 vTab = new QWidget( tabWidget, "vTab" ); 241 vTab = new QWidget( tabWidget, "vTab" );
241 videoView = new QListView( vTab, "Videoview" ); 242 videoView = new QListView( vTab, "Videoview" );
242 videoView->setMinimumSize(233,260); 243 videoView->setMinimumSize(233,260);
243 244
244 videoView->addColumn("Title",150); 245 videoView->addColumn("Title",140);
245 videoView->addColumn("Size",45); 246 videoView->addColumn("Size",-1);
246 videoView->addColumn("Media",35); 247 videoView->addColumn("Media",-1);
247 videoView->setColumnAlignment(1, Qt::AlignRight); 248 videoView->setColumnAlignment(1, Qt::AlignRight);
248 videoView->setColumnAlignment(2, Qt::AlignRight); 249 videoView->setColumnAlignment(2, Qt::AlignRight);
249 videoView->setAllColumnsShowFocus(TRUE); 250 videoView->setAllColumnsShowFocus(TRUE);
250 QPEApplication::setStylusOperation( videoView->viewport(),QPEApplication::RightOnHold); 251 QPEApplication::setStylusOperation( videoView->viewport(),QPEApplication::RightOnHold);
251 connect( videoView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), 252 connect( videoView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)),
252 this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) ); 253 this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) );
253 254
254 tabWidget->insertTab( vTab,"Video"); 255 tabWidget->insertTab( vTab,"Video");
255 256
256 Global::findDocuments(&vFiles, "video/*"); 257 Global::findDocuments(&vFiles, "video/*");
257 QListIterator<DocLnk> Vdit( vFiles.children() ); 258 QListIterator<DocLnk> Vdit( vFiles.children() );
258 for ( ; Vdit.current(); ++Vdit ) { 259 for ( ; Vdit.current(); ++Vdit ) {
@@ -477,56 +478,68 @@ const DocLnk *PlayListWidget::current() { // this is fugly
477// if( fromSetDocument) { 478// if( fromSetDocument) {
478// qDebug("from setDoc"); 479// qDebug("from setDoc");
479// DocLnkSet files; 480// DocLnkSet files;
480// Global::findDocuments(&files, "video/*;audio/*"); 481// Global::findDocuments(&files, "video/*;audio/*");
481// QListIterator<DocLnk> dit( files.children() ); 482// QListIterator<DocLnk> dit( files.children() );
482// for ( ; dit.current(); ++dit ) { 483// for ( ; dit.current(); ++dit ) {
483// if(dit.current()->linkFile() == setDocFileRef) { 484// if(dit.current()->linkFile() == setDocFileRef) {
484// qDebug(setDocFileRef); 485// qDebug(setDocFileRef);
485// return dit; 486// return dit;
486// } 487// }
487// } 488// }
488// } else 489// } else
489 switch (tabWidget->currentPageIndex()) { 490// qDebug("current");
490 case 0: //playlist 491// switch (tabWidget->currentPageIndex()) {
491 { 492// case 0: //playlist
492 if ( mediaPlayerState->playlist() ) { 493// {
493 return d->selectedFiles->current(); 494 qDebug("playlist");
494 } 495 if ( mediaPlayerState->playlist() ) {
495 else if ( d->setDocumentUsed && d->current ) { 496 return d->selectedFiles->current();
496 return d->current;
497 } else {
498 return d->files->selected();
499 }
500 } 497 }
501 break; 498 else if ( d->setDocumentUsed && d->current ) {
502 case 1: { //audio 499 return d->current;
503 Global::findDocuments(&files, "audio/*"); 500 } else {
504 QListIterator<DocLnk> dit( files.children() ); 501 return d->files->selected();
505 for ( ; dit.current(); ++dit ) {
506 if( dit.current()->name() == audioView->currentItem()->text(0))
507 return dit;
508 }
509 }
510 break;
511 case 2: { // video
512 Global::findDocuments(&vFiles, "video/*");
513 QListIterator<DocLnk> Vdit( vFiles.children() );
514 for ( ; Vdit.current(); ++Vdit ) {
515 if( Vdit.current()->name() == videoView->currentItem()->text(0))
516 return Vdit;
517 }
518 } 502 }
519 break; 503// }
520 }; 504// break;
505// case 1://audio
506// {
507// qDebug("audioView");
508// Global::findDocuments(&files, "audio/*");
509// QListIterator<DocLnk> dit( files.children() );
510// for ( ; dit.current(); ++dit ) {
511// if( dit.current()->name() == audioView->currentItem()->text(0) && !insanityBool) {
512// qDebug("here");
513// insanityBool=TRUE;
514// return dit;
515// }
516// }
517// }
518// break;
519// case 2: // video
520// {
521// qDebug("videoView");
522// Global::findDocuments(&vFiles, "video/*");
523// QListIterator<DocLnk> Vdit( vFiles.children() );
524// for ( ; Vdit.current(); ++Vdit ) {
525// if( Vdit.current()->name() == videoView->currentItem()->text(0) && !insanityBool) {
526// insanityBool=TRUE;
527// return Vdit;
528// }
529// }
530// }
531// break;
532// };
533// return 0;
521} 534}
522 535
523bool PlayListWidget::prev() { 536bool PlayListWidget::prev() {
524 if ( mediaPlayerState->playlist() ) { 537 if ( mediaPlayerState->playlist() ) {
525 if ( mediaPlayerState->shuffled() ) { 538 if ( mediaPlayerState->shuffled() ) {
526 const DocLnk *cur = current(); 539 const DocLnk *cur = current();
527 int j = 1 + (int)(97.0 * rand() / (RAND_MAX + 1.0)); 540 int j = 1 + (int)(97.0 * rand() / (RAND_MAX + 1.0));
528 for ( int i = 0; i < j; i++ ) { 541 for ( int i = 0; i < j; i++ ) {
529 if ( !d->selectedFiles->next() ) 542 if ( !d->selectedFiles->next() )
530 d->selectedFiles->first(); 543 d->selectedFiles->first();
531 } 544 }
532 if ( cur == current() ) 545 if ( cur == current() )
@@ -645,36 +658,67 @@ void PlayListWidget::setPlaylist( bool shown ) {
645 d->playListFrame->hide(); 658 d->playListFrame->hide();
646} 659}
647 660
648void PlayListWidget::setView( char view ) { 661void PlayListWidget::setView( char view ) {
649 if ( view == 'l' ) 662 if ( view == 'l' )
650 showMaximized(); 663 showMaximized();
651 else 664 else
652 hide(); 665 hide();
653} 666}
654 667
655void PlayListWidget::addSelected() { 668void PlayListWidget::addSelected() {
656 669
657 switch (tabWidget->currentPageIndex()) { 670 Config cfg( "MediaPlayer" );
658 case 0: //playlist 671 cfg.setGroup("PlayList");
659 break; 672 QString currentPlaylist = cfg.readEntry("CurrentPlaylist","");
660 case 1: { //audio 673 int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 );
661 addToSelection( audioView->selectedItem() ); 674
662 } 675 switch (tabWidget->currentPageIndex()) {
663 break; 676 case 0: //playlist
664 case 2: { // video 677 break;
665 addToSelection( videoView->selectedItem() ); 678 case 1: { //audio
666 } 679 for ( int i = 0; i < noOfFiles; i++ ) {
667 break; 680 QString entryName;
668 }; 681 entryName.sprintf( "File%i", i + 1 );
682 QString linkFile = cfg.readEntry( entryName );
683 if( DocLnk( linkFile).name() == audioView->selectedItem()->text(0) ) {
684 int result= QMessageBox::warning(this,"OpiePlayer",
685 tr("This is all ready in your playlist.\nContinue?"),
686 tr("Yes"),tr("No"),0,0,1);
687 if (result !=0)
688 return;
689 }
690 }
691 addToSelection( audioView->selectedItem() );
692 tabWidget->setCurrentPage(1);
693 }
694 break;
695 case 2: { // video
696 for ( int i = 0; i < noOfFiles; i++ ) {
697 QString entryName;
698 entryName.sprintf( "File%i", i + 1 );
699 QString linkFile = cfg.readEntry( entryName );
700 if( DocLnk( linkFile).name() == videoView->selectedItem()->text(0) ) {
701 int result= QMessageBox::warning(this,"OpiePlayer",
702 tr("This is all ready in your playlist.\nContinue?"),
703 tr("Yes"),tr("No"),0,0,1);
704 if (result !=0)
705 return;
706 }
707 }
708 addToSelection( videoView->selectedItem() );
709 tabWidget->setCurrentPage(2);
710 }
711 break;
712 };
669} 713}
670 714
671void PlayListWidget::removeSelected() { 715void PlayListWidget::removeSelected() {
672 d->selectedFiles->removeSelected( ); 716 d->selectedFiles->removeSelected( );
673} 717}
674 718
675 719
676void PlayListWidget::playIt( QListViewItem *it) { 720void PlayListWidget::playIt( QListViewItem *it) {
677// d->setDocumentUsed = FALSE; 721// d->setDocumentUsed = FALSE;
678 mediaPlayerState->setPlaying(TRUE); 722 mediaPlayerState->setPlaying(TRUE);
679} 723}
680 724
@@ -746,25 +790,56 @@ void PlayListWidget::tabChanged(QWidget *widg) {
746 if( tbDeletePlaylist->isHidden()) 790 if( tbDeletePlaylist->isHidden())
747 tbDeletePlaylist->show(); 791 tbDeletePlaylist->show();
748 playLists->reread(); 792 playLists->reread();
749 } 793 }
750 break; 794 break;
751 }; 795 };
752} 796}
753 797
754 798
755/* 799/*
756 play button is pressed*/ 800 play button is pressed*/
757void PlayListWidget::btnPlay(bool b) { 801void PlayListWidget::btnPlay(bool b) {
758 mediaPlayerState->setPlaying(b); 802// mediaPlayerState->setPlaying(b);
803 switch ( tabWidget->currentPageIndex()) {
804 case 0:
805 {
806 mediaPlayerState->setPlaying(b);
807 }
808 break;
809 case 1:
810 {
811 addToSelection( audioView->selectedItem() );
812 mediaPlayerState->setPlaying(b);
813// qApp->processEvents();
814 d->selectedFiles->removeSelected( );
815 tabWidget->setCurrentPage(1);
816// mediaPlayerState->setPlaying(FALSE);
817 }
818 break;
819 case 2:
820 {
821 addToSelection( videoView->selectedItem() );
822 mediaPlayerState->setPlaying(b);
823 qApp->processEvents();
824 d->selectedFiles->removeSelected( );
825 tabWidget->setCurrentPage(2);
826// mediaPlayerState->setPlaying(FALSE);
827 }
828 break;
829 };
830
831
832
833
759} 834}
760 835
761void PlayListWidget::deletePlaylist() { 836void PlayListWidget::deletePlaylist() {
762 switch( QMessageBox::information( this, (tr("Remove Playlist?")), 837 switch( QMessageBox::information( this, (tr("Remove Playlist?")),
763 (tr("You really want to delete\nthis playlist?")), 838 (tr("You really want to delete\nthis playlist?")),
764 (tr("Yes")), (tr("No")), 0 )){ 839 (tr("Yes")), (tr("No")), 0 )){
765 case 0: // Yes clicked, 840 case 0: // Yes clicked,
766 QFile().remove(playLists->selected()->file()); 841 QFile().remove(playLists->selected()->file());
767 QFile().remove(playLists->selected()->linkFile()); 842 QFile().remove(playLists->selected()->linkFile());
768 playLists->reread(); 843 playLists->reread();
769 break; 844 break;
770 case 1: // Cancel 845 case 1: // Cancel