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.cpp263
1 files changed, 188 insertions, 75 deletions
diff --git a/core/multimedia/opieplayer/playlistwidget.cpp b/core/multimedia/opieplayer/playlistwidget.cpp
index 202f351..7862d8d 100644
--- a/core/multimedia/opieplayer/playlistwidget.cpp
+++ b/core/multimedia/opieplayer/playlistwidget.cpp
@@ -19,2 +19,3 @@
19**********************************************************************/ 19**********************************************************************/
20// code added by L. J. Potter Sat 03-02-2002 06:17:54
20 21
@@ -42,2 +43,5 @@
42#include <qpoint.h> 43#include <qpoint.h>
44#include <qlineedit.h>
45#include <qpushbutton.h>
46
43//#include <qtimer.h> 47//#include <qtimer.h>
@@ -48,2 +52,5 @@
48 52
53#include "fileBrowser.h"
54#include "inputDialog.h"
55
49#include <stdlib.h> 56#include <stdlib.h>
@@ -121,7 +128,21 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl )
121 bar->setLabel( tr( "Play Operations" ) ); 128 bar->setLabel( tr( "Play Operations" ) );
122 d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ),"mpegplayer/add_to_playlist",this , SLOT(addSelected()) ); 129// d->tbPlayCurList = new ToolButton( bar, tr( "play List" ), "mpegplayer/play_current_list",
123 d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ), "mpegplayer/remove_from_playlist", this , SLOT(removeSelected()) ); 130// this , SLOT( addSelected()) );
124 d->tbPlay = new ToolButton( bar, tr( "Play" ),"mpegplayer/play", mediaPlayerState, SLOT( setPlaying(bool)), TRUE ); 131 tbDeletePlaylist = new QPushButton( Resource::loadIconSet("close"),"",bar,"close");
125 d->tbShuffle = new ToolButton( bar, tr( "Randomize" ), "mpegplayer/shuffle", mediaPlayerState, SLOT(setShuffled(bool)), TRUE ); 132 tbDeletePlaylist->setFlat(TRUE);
126 d->tbLoop = new ToolButton( bar, tr( "Loop" ),"mpegplayer/loop", mediaPlayerState, SLOT(setLooping(bool)), TRUE ); 133 tbDeletePlaylist->setFixedSize(20,20);
134 connect(tbDeletePlaylist,(SIGNAL(released())),SLOT( deletePlaylist()));
135
136 d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ), "mpegplayer/add_to_playlist",
137 this , SLOT(addSelected()) );
138 d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ), "mpegplayer/remove_from_playlist",
139 this , SLOT(removeSelected()) );
140// d->tbPlay = new ToolButton( bar, tr( "Play" ), "mpegplayer/play", /*this */mediaPlayerState , SLOT(setPlaying(bool) /* btnPlay() */), TRUE );
141 d->tbPlay = new ToolButton( bar, tr( "Play" ), "mpegplayer/play",
142 this , SLOT( btnPlay(bool) ), TRUE );
143 d->tbShuffle = new ToolButton( bar, tr( "Randomize" ),"mpegplayer/shuffle",
144 mediaPlayerState, SLOT(setShuffled(bool)), TRUE );
145 d->tbLoop = new ToolButton( bar, tr( "Loop" ),"mpegplayer/loop",
146 mediaPlayerState, SLOT(setLooping(bool)), TRUE );
147 tbDeletePlaylist->hide();
127 148
@@ -134,3 +155,3 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl )
134 new MenuItem( pmPlayList, tr( "Save PlayList" ), this, SLOT( saveList() ) ); 155 new MenuItem( pmPlayList, tr( "Save PlayList" ), this, SLOT( saveList() ) );
135 new MenuItem( pmPlayList, tr( "Load PlayList" ), this, SLOT( loadList() ) ); 156 // new MenuItem( pmPlayList, tr( "Load PlayList" ), this, SLOT( loadList() ) );
136 157
@@ -230,2 +251,13 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl )
230 } 251 }
252
253//playlists list
254 QWidget *LTab;
255 LTab = new QWidget( tabWidget, "LTab" );
256 playLists = new FileSelector( "playlist/plain", LTab, "fileselector" , FALSE, FALSE); //buggy
257 playLists->setMinimumSize(233,260);;
258 tabWidget->insertTab(LTab,"Lists");
259 connect( playLists, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( loadList( const DocLnk & ) ) );
260// connect( playLists, SIGNAL( newSelected( const DocLnk &) ), this, SLOT( newFile( const DocLnk & ) ) );
261
262
231 // add the library area 263 // add the library area
@@ -233,17 +265,15 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl )
233 265
234// connect( audioView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) );
235// connect( videoView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) );
236 266
237 connect( audioView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) ); 267 connect( audioView, SIGNAL( rightButtonClicked( QListViewItem *, const QPoint &, int)),
238 connect( videoView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) ); 268 this, SLOT( fauxPlay( QListViewItem *) ) );
269 connect( videoView, SIGNAL( rightButtonClicked( QListViewItem *, const QPoint &, int)),
270 this, SLOT( fauxPlay( QListViewItem *)) );
239 271
240 connect( audioView, SIGNAL( rightButtonPressed( QListViewItem *, const QPoint&, int ) ), 272// connect( audioView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( fauxPlay( QListViewItem *) ) );
241 this, SLOT( addToSelection( QListViewItem *, const QPoint&, int )) ); 273// connect( videoView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( fauxPlay( QListViewItem *) ) );
242 connect( videoView, SIGNAL( rightButtonPressed( QListViewItem *, const QPoint&, int ) ),
243 this, SLOT( addToSelection( QListViewItem *, const QPoint&, int )) );
244 274
275 connect( audioView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) );
276 connect( videoView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) );
245 277
246 connect( tabWidget, SIGNAL (currentChanged(QWidget*)),this,SLOT(tabChanged(QWidget*))); 278 connect( tabWidget, SIGNAL (currentChanged(QWidget*)),this,SLOT(tabChanged(QWidget*)));
247 // connect( d->files, SIGNAL( fileSelected( const DocLnk & ) ), this, SLOT( addToSelection( const DocLnk & ) ) );
248 // connect( d->files, SIGNAL( fileSelected( const DocLnk & ) ), this, SLOT( addToSelection( const DocLnk & ) ) );
249 connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), d->tbPlay, SLOT( setOn( bool ) ) ); 279 connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), d->tbPlay, SLOT( setOn( bool ) ) );
@@ -251,10 +281,5 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl )
251 connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), d->tbShuffle, SLOT( setOn( bool ) ) ); 281 connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), d->tbShuffle, SLOT( setOn( bool ) ) );
252
253// connect( mediaPlayerState, SIGNAL( fullscreenToggled( bool ) ), fullScreenButton, SLOT( setOn( bool ) ) );
254// connect( mediaPlayerState, SIGNAL( scaledToggled( bool ) ), scaleButton, SLOT( setEnabled( bool ) ) );
255// connect( mediaPlayerState, SIGNAL( fullscreenToggled( bool ) ), fullScreenButton, SLOT( setEnabled( bool ) ) );
256
257 connect( mediaPlayerState, SIGNAL( playlistToggled( bool ) ), this, SLOT( setPlaylist( bool ) ) ); 282 connect( mediaPlayerState, SIGNAL( playlistToggled( bool ) ), this, SLOT( setPlaylist( bool ) ) );
258 283
259 connect( d->selectedFiles, SIGNAL( clicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) ); 284 connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) );
260// 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 & ) ) );
@@ -289,2 +314,5 @@ void PlayListWidget::initializeStates() {
289// setPlaylist( mediaPlayerState->playlist() ); 314// setPlaylist( mediaPlayerState->playlist() );
315 setPlaylist( true);
316 d->selectedFiles->first();
317
290} 318}
@@ -304,3 +332,2 @@ void PlayListWidget::readConfig( Config& cfg ) {
304 d->selectedFiles->addToSelection( lnk ); 332 d->selectedFiles->addToSelection( lnk );
305
306 } 333 }
@@ -341,2 +368,4 @@ void PlayListWidget::writeConfig( Config& cfg ) const {
341 cfg.writeEntry("NumberOfFiles", noOfFiles ); 368 cfg.writeEntry("NumberOfFiles", noOfFiles );
369
370
342} 371}
@@ -345,2 +374,3 @@ void PlayListWidget::writeConfig( Config& cfg ) const {
345void PlayListWidget::addToSelection( const DocLnk& lnk ) { 374void PlayListWidget::addToSelection( const DocLnk& lnk ) {
375 qDebug("add");
346 d->setDocumentUsed = FALSE; 376 d->setDocumentUsed = FALSE;
@@ -353,12 +383,2 @@ void PlayListWidget::addToSelection( const DocLnk& lnk ) {
353 383
354void PlayListWidget::addToSelection( QListViewItem *it ,const QPoint & p, int index) {
355 qDebug("add");
356// d->selectedFiles->addToSelection( lnk );
357 // }
358// else
359// mediaPlayerState->setPlaying( TRUE );
360//
361}
362
363
364void PlayListWidget::clearList() { 384void PlayListWidget::clearList() {
@@ -428,9 +448,13 @@ void PlayListWidget::useSelectedDocument() {
428const DocLnk *PlayListWidget::current() { 448const DocLnk *PlayListWidget::current() {
429 if ( mediaPlayerState->playlist() ) 449
450// qDebug("in Playlist widget ::current");
451 if ( mediaPlayerState->playlist() ) {
430 return d->selectedFiles->current(); 452 return d->selectedFiles->current();
453 }
431 else if ( d->setDocumentUsed && d->current ) { 454 else if ( d->setDocumentUsed && d->current ) {
432 return d->current; 455 return d->current;
433 } else 456 } else {
434 return d->files->selected(); 457 return d->files->selected();
435} 458}
459}
436 460
@@ -503,5 +527,20 @@ bool PlayListWidget::last() {
503void PlayListWidget::saveList() { 527void PlayListWidget::saveList() {
528
504 QString filename; 529 QString filename;
505// pseudo code 530 InputDialog *fileDlg;
506// filename = QLineEdit->getText(); 531 fileDlg=new InputDialog(this,"Save Playlist",TRUE, 0);
532 fileDlg->exec();
533 if( fileDlg->result() == 1 ) {
534 filename = fileDlg->LineEdit1->text();//+".playlist";
535 qDebug("saving playlist "+filename+".playlist");
536
537// DocLnk *lnk;
538// lnk.setName( filename); //sets file name
539// // lnk.setComment(title);
540// lnk.setFile( filename+".playlist"); //sets File property
541// lnk.setType("player/plain");// hey is this a REGISTERED mime type?!?!? ;D
542// lnk.setIcon("MPEGPlayer");
543// if(!lnk.writeLink())
544// qDebug("Writing doclink did not work");
545
507 Config cfg( filename + ".playlist" ); 546 Config cfg( filename + ".playlist" );
@@ -509,10 +548,23 @@ void PlayListWidget::saveList() {
509} 548}
549 DocLnk lnk;
550 lnk.setName( filename); //sets file name
551// lnk.setComment(title);
552 lnk.setFile(QPEApplication::qpeDir()+"Settings/"+filename+".playlist.conf"); //sets File property
553 lnk.setType("playlist/plain");// hey is this a REGISTERED mime type?!?!? ;D
554 lnk.setIcon("MPEGPlayer");
555 if(!lnk.writeLink())
556 qDebug("Writing doclink did not work");
510 557
558 if(fileDlg)
559 delete fileDlg;
560}
511 561
512void PlayListWidget::loadList() { 562
513 QString filename; 563void PlayListWidget::loadList( const DocLnk & lnk) {
514// pseudo code 564
515// filename = FileSelector->openFile( "*.playlist" ); 565 clearList();
516 Config cfg( filename + ".playlist" ); 566 Config cfg( lnk.file());
517 readConfig( cfg ); 567 readConfig( cfg );
568 tabWidget->setCurrentPage(0);
569 setCaption("OpiePlayer: "+lnk.name());
518} 570}
@@ -536,5 +588,4 @@ void PlayListWidget::setView( char view ) {
536void PlayListWidget::addSelected() { 588void PlayListWidget::addSelected() {
537// QMessageBox::message("Note","Bozo the clown thinks\nthere's something actually here"); 589
538 int tabPage=tabWidget->currentPageIndex(); 590 switch (tabWidget->currentPageIndex()) {
539 switch (tabPage) {
540 case 0: //playlist 591 case 0: //playlist
@@ -559,3 +610,3 @@ void PlayListWidget::playIt( QListViewItem *it) {
559// d->setDocumentUsed = FALSE; 610// d->setDocumentUsed = FALSE;
560 mediaPlayerState->setPlaying(true); 611 mediaPlayerState->setPlaying(TRUE);
561} 612}
@@ -566,8 +617,9 @@ void PlayListWidget::addToSelection( QListViewItem *it) {
566 if(it) { 617 if(it) {
567 qDebug("add to selection"); 618// qDebug("add to selection");
568 int tabPage=tabWidget->currentPageIndex(); 619 switch (tabWidget->currentPageIndex()) {
569 switch (tabPage) {
570 case 1: { 620 case 1: {
621// qDebug("case 1");
571 QListIterator<DocLnk> dit( files.children() ); 622 QListIterator<DocLnk> dit( files.children() );
572 for ( ; dit.current(); ++dit ) { 623 for ( ; dit.current(); ++dit ) {
624// qDebug(dit.current()->name());
573 if( dit.current()->name() == it->text(0)) { 625 if( dit.current()->name() == it->text(0)) {
@@ -579,5 +631,6 @@ void PlayListWidget::addToSelection( QListViewItem *it) {
579 case 2: { 631 case 2: {
632// qDebug("case 2");
580 QListIterator<DocLnk> dit( vFiles.children() ); 633 QListIterator<DocLnk> dit( vFiles.children() );
581 for ( ; dit.current(); ++dit ) { 634 for ( ; dit.current(); ++dit ) {
582 qDebug(dit.current()->name()); 635// qDebug(dit.current()->name());
583 if( dit.current()->name() == it->text(0)) { 636 if( dit.current()->name() == it->text(0)) {
@@ -598,6 +651,7 @@ void PlayListWidget::tabChanged(QWidget *widg) {
598 651
599 int tabPage=tabWidget->currentPageIndex(); 652 switch ( tabWidget->currentPageIndex()) {
600 switch (tabPage) {
601 case 0: 653 case 0:
602 { 654 {
655 if( !tbDeletePlaylist->isHidden())
656 tbDeletePlaylist->hide();
603 d->tbRemoveFromList->setEnabled(TRUE); 657 d->tbRemoveFromList->setEnabled(TRUE);
@@ -608,2 +662,4 @@ void PlayListWidget::tabChanged(QWidget *widg) {
608 { 662 {
663 if( !tbDeletePlaylist->isHidden())
664 tbDeletePlaylist->hide();
609 d->tbRemoveFromList->setEnabled(FALSE); 665 d->tbRemoveFromList->setEnabled(FALSE);
@@ -614,2 +670,4 @@ void PlayListWidget::tabChanged(QWidget *widg) {
614 { 670 {
671 if( !tbDeletePlaylist->isHidden())
672 tbDeletePlaylist->hide();
615 d->tbRemoveFromList->setEnabled(FALSE); 673 d->tbRemoveFromList->setEnabled(FALSE);
@@ -618,2 +676,9 @@ void PlayListWidget::tabChanged(QWidget *widg) {
618 break; 676 break;
677 case 3:
678 {
679 if( tbDeletePlaylist->isHidden())
680 tbDeletePlaylist->show();
681 playLists->reread();
682 }
683 break;
619 }; 684 };
@@ -621,29 +686,77 @@ void PlayListWidget::tabChanged(QWidget *widg) {
621 686
622// void PlayListWidget::cancelMenuTimer() { 687/*
623// if( menuTimer->isActive() ) 688 list is right clicked*/
624// menuTimer->stop(); 689void PlayListWidget::fauxPlay(QListViewItem *it) {
625// }
626 690
627// void PlayListWidget::showFileMenu() { 691 switch (tabWidget->currentPageIndex()) {
628 692 case 0: //playlist
629// } 693 break;
694 case 1: { //audio
695 QListIterator<DocLnk> dit( files.children() );
696 for ( ; dit.current(); ++dit ) {
697// qDebug(dit.current()->name());
698 if( dit.current()->name() == it->text(0)) {
699 d->selectedFiles->addToSelection( **dit );
700 }
701 }
702 }
703 break;
704 case 2: { // video
705 QListIterator<DocLnk> dit( vFiles.children() );
706 for ( ; dit.current(); ++dit ) {
707// qDebug(dit.current()->name());
708 if( dit.current()->name() == it->text(0)) {
709 d->selectedFiles->addToSelection( **dit );
710 }
711 }
712 }
713 break;
714 };
715 mediaPlayerState->setPlaying( TRUE );
716// tabWidget->setCurrentPage(0);
717 d->selectedFiles->removeSelected();
718}
630 719
631// void PlayListWidget::contentsMousePressEvent( QMouseEvent * e ) 720/*
632// { 721 play button is pressed*/
633// // QListView::contentsMousePressEvent( e ); 722void PlayListWidget::btnPlay(bool b) { // this is fugly
634// menuTimer->start( 750, TRUE ); 723 switch ( tabWidget->currentPageIndex()) {
635// } 724 case 0:
725 {
726 mediaPlayerState->setPlaying(b);
727 }
728 break;
729 case 1:
730 {
731 addToSelection( audioView->selectedItem() );
732 mediaPlayerState->setPlaying(b);
733 d->selectedFiles->removeSelected( );
734 tabWidget->setCurrentPage(1);
735 }
736 break;
737 case 2:
738 {
739 addToSelection( videoView->selectedItem() );
740 mediaPlayerState->setPlaying(b);
741 d->selectedFiles->removeSelected( );
742 tabWidget->setCurrentPage(2);
743 }
744 break;
745 };
636 746
747}
637 748
638// void PlayListWidget::contentsMouseReleaseEvent( QMouseEvent * e ) 749void PlayListWidget::deletePlaylist() {
639// { 750 switch( QMessageBox::information( this, (tr("Remove Playlist?")),
640// // QListView::contentsMouseReleaseEvent( e ); 751 (tr("You really want to delete\nthis playlist?")),
641// menuTimer->stop(); 752 (tr("Yes")), (tr("No")), 0 )){
642// } 753 case 0: // Yes clicked,
643// // void PlayListWidget::setFullScreen() { 754 QFile().remove(playLists->selected()->file());
644// mediaPlayerState->toggleFullscreen( ); 755 QFile().remove(playLists->selected()->linkFile());
645// } 756 playLists->reread();
757 break;
758 case 1: // Cancel
759 break;
760 };
646 761
647// void PlayListWidget::setScaled() { 762}
648// mediaPlayerState->toggleScaled();
649// }