summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/mediaplayer.cpp1
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.cpp108
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.h2
3 files changed, 64 insertions, 47 deletions
diff --git a/noncore/multimedia/opieplayer2/mediaplayer.cpp b/noncore/multimedia/opieplayer2/mediaplayer.cpp
index b8023ca..043d8ba 100644
--- a/noncore/multimedia/opieplayer2/mediaplayer.cpp
+++ b/noncore/multimedia/opieplayer2/mediaplayer.cpp
@@ -157,7 +157,6 @@ void MediaPlayer::next() {
157 if(l) mediaPlayerState.setLooping(l); 157 if(l) mediaPlayerState.setLooping(l);
158 if(r) mediaPlayerState.setShuffled(r); 158 if(r) mediaPlayerState.setShuffled(r);
159 } 159 }
160 qApp->processEvents();
161} 160}
162 161
163 162
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.cpp b/noncore/multimedia/opieplayer2/playlistwidget.cpp
index 37b998f..dc2c496 100644
--- a/noncore/multimedia/opieplayer2/playlistwidget.cpp
+++ b/noncore/multimedia/opieplayer2/playlistwidget.cpp
@@ -85,6 +85,8 @@ PlayListWidget::PlayListWidget(QWidget* parent, const char* name, WFlags fl )
85 this,SLOT( openFile() ) ); 85 this,SLOT( openFile() ) );
86 (void)new MenuItem( pmPlayList, tr("Add URL"), 86 (void)new MenuItem( pmPlayList, tr("Add URL"),
87 this,SLOT( openURL() ) ); 87 this,SLOT( openURL() ) );
88 (void)new MenuItem( pmPlayList, tr( "Add Directory"),
89 this, SLOT(openDirectory()));
88 pmPlayList->insertSeparator(-1); 90 pmPlayList->insertSeparator(-1);
89 (void)new MenuItem( pmPlayList, tr( "Save Playlist" ), 91 (void)new MenuItem( pmPlayList, tr( "Save Playlist" ),
90 this, SLOT(writem3u() ) ); 92 this, SLOT(writem3u() ) );
@@ -662,12 +664,7 @@ void PlayListWidget::openURL() {
662} 664}
663 665
664 666
665void PlayListWidget::openFile() { 667static MimeTypes fileSelectorMimeTypes() {
666
667 QString filename, name;
668
669 Config cfg( "OpiePlayer" );
670 cfg.setGroup("Dialog");
671 MimeTypes types; 668 MimeTypes types;
672 QStringList audio, video, all; 669 QStringList audio, video, all;
673 audio << "audio/*"; 670 audio << "audio/*";
@@ -684,34 +681,60 @@ void PlayListWidget::openFile() {
684 types.insert("Audio", audio ); 681 types.insert("Audio", audio );
685 types.insert("Video", video ); 682 types.insert("Video", video );
686 683
687 QString str = OFileDialog::getOpenFileName( 1, 684 return types;
688 cfg.readEntry("LastDirectory",QPEApplication::documentDir()),"", 685}
689 types, 0 ); 686
687void PlayListWidget::openFile() {
688
689 QString filename, name;
690
691 Config cfg( "OpiePlayer" );
692 cfg.setGroup("Dialog");
693 MimeTypes types = fileSelectorMimeTypes();
694
695
696 QString str = OFileDialog::getOpenFileName( 1, QString::null,
697 QString::null, types, 0,
698 tr("Add File to Playlist") );
699
700 if( str.isEmpty() )
701 return;
702
703 if(str.left(2) == "//") str=str.right(str.length()-1);
704
690 705
691 if(str.left(2) == "//") { 706 if( str.right( 3) == "m3u" || str.right(3) == "pls" ) {
692 str=str.right(str.length()-1); 707 readListFromFile( str );
708 } else {
709 QFileInfo info( str );
710 DocLnk lnk = addFileToPlaylist( str, info.baseName() );
711 d->selectedFiles->setSelectedItem( lnk.name() );
693 } 712 }
694 cfg.writeEntry( "LastDirectory" ,QFileInfo( str ).dirPath() ); 713}
695 714
696 if( !str.isEmpty() ) { 715void PlayListWidget::openDirectory() {
716 QString str = OFileDialog::getDirectory( OFileSelector::DirectorySelector,
717 QString::null, 0,
718 tr( "Add Files from Directory"));
697 719
698 odebug << "Selected filename is " + str << oendl; 720 if(str.isEmpty() )
699 filename = str; 721 return;
700 DocLnk lnk; 722
723 if(str.left(2) == "//") str=str.right(str.length()-1);
724 QDir dir( str );
725 QStringList lst = dir.entryList(QDir::Files|QDir::Readable);
701 726
702 if( filename.right( 3) == "m3u" || filename.right(3) == "pls" ) { 727 for ( QStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) {
728 QString filename = str + "/" + *it;
729
730 if( filename.right( 3) == "m3u" || filename.right(3) == "pls" )
703 readListFromFile( filename ); 731 readListFromFile( filename );
704 } else { 732 else {
705 lnk.setName( QFileInfo(filename).baseName() ); //sets name 733 addFileToPlaylist( filename, QFileInfo(*it).baseName() );
706 lnk.setFile( filename ); //sets file name
707 d->selectedFiles->addToSelection( lnk );
708 writeCurrentM3u();
709 d->selectedFiles->setSelectedItem( lnk.name() );
710 } 734 }
711 } 735 }
712} 736}
713 737
714
715void PlayListWidget::readListFromFile( const QString &filename ) { 738void PlayListWidget::readListFromFile( const QString &filename ) {
716 odebug << "read list filename " + filename << oendl; 739 odebug << "read list filename " + filename << oendl;
717 QFileInfo fi(filename); 740 QFileInfo fi(filename);
@@ -785,33 +808,16 @@ void PlayListWidget::readListFromFile( const QString &filename ) {
785 /* 808 /*
786 writes current playlist to m3u file */ 809 writes current playlist to m3u file */
787void PlayListWidget::writem3u() { 810void PlayListWidget::writem3u() {
788 //InputDilog *fileDlg;
789 //fileDlg = new InputDialog( this, tr( "Save m3u Playlist " ), TRUE, 0);
790 //fileDlg->exec();
791 811
792 Config cfg( "OpiePlayer" ); 812 Config cfg( "OpiePlayer" );
793 cfg.setGroup("Dialog"); 813 cfg.setGroup("Dialog");
794 MimeTypes types; 814 MimeTypes types = fileSelectorMimeTypes();
795 QStringList audio, video, all;
796 audio << "audio/*";
797 audio << "playlist/plain";
798 audio << "audio/x-mpegurl";
799 815
800 video << "video/*"; 816 QString str = OFileDialog::getOpenFileName( 1, QString::null,
801 video << "playlist/plain"; 817 QString::null, types, 0,
818 tr( "Save Playlist" ));
802 819
803 all += audio;
804 all += video;
805 types.insert("All Media Files", all );
806 types.insert("Audio", audio );
807 types.insert("Video", video );
808
809 QString str = OFileDialog::getOpenFileName( 1,
810 cfg.readEntry("LastDirectory",QPEApplication::documentDir()),"",
811 types, 0 );
812 if(str.left(2) == "//") str=str.right(str.length()-1); 820 if(str.left(2) == "//") str=str.right(str.length()-1);
813 cfg.writeEntry("LastDirectory" ,QFileInfo(str).dirPath());
814
815 821
816 QString name, filename, list; 822 QString name, filename, list;
817 Om3u *m3uList; 823 Om3u *m3uList;
@@ -1007,7 +1013,6 @@ QString PlayListWidget::currentFileListPathName() const {
1007 1013
1008 1014
1009void PlayListWidget::qcopReceive(const QCString &msg, const QByteArray &data) { 1015void PlayListWidget::qcopReceive(const QCString &msg, const QByteArray &data) {
1010 odebug << "qcop message "+msg << oendl;
1011 QDataStream stream ( data, IO_ReadOnly ); 1016 QDataStream stream ( data, IO_ReadOnly );
1012 if ( msg == "play()" ) { //plays current selection 1017 if ( msg == "play()" ) { //plays current selection
1013 btnPlay( true); 1018 btnPlay( true);
@@ -1048,3 +1053,14 @@ void PlayListWidget::qcopReceive(const QCString &msg, const QByteArray &data) {
1048 } 1053 }
1049 1054
1050} 1055}
1056
1057DocLnk PlayListWidget::addFileToPlaylist( const QString& file,
1058 const QString& name ) {
1059 DocLnk lnk;
1060 lnk.setName( name ); //sets name
1061 lnk.setFile( file ); //sets file name
1062 d->selectedFiles->addToSelection( lnk );
1063 writeCurrentM3u();
1064
1065 return lnk;
1066}
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.h b/noncore/multimedia/opieplayer2/playlistwidget.h
index 29f3e8d..1f5ba92 100644
--- a/noncore/multimedia/opieplayer2/playlistwidget.h
+++ b/noncore/multimedia/opieplayer2/playlistwidget.h
@@ -110,6 +110,7 @@ private slots:
110 void writeCurrentM3u(); 110 void writeCurrentM3u();
111 void openFile(); 111 void openFile();
112 void openURL(); 112 void openURL();
113 void openDirectory();
113 void setDocument( const QString& fileref ); 114 void setDocument( const QString& fileref );
114 void addToSelection( const DocLnk& ); // Add a media file to the playlist 115 void addToSelection( const DocLnk& ); // Add a media file to the playlist
115 void addToSelection( QListViewItem* ); // Add a media file to the playlist 116 void addToSelection( QListViewItem* ); // Add a media file to the playlist
@@ -130,6 +131,7 @@ private slots:
130 void playSelected(); 131 void playSelected();
131 132
132private: 133private:
134 DocLnk addFileToPlaylist(const QString& directory, const QString& name);
133 bool fromSetDocument; 135 bool fromSetDocument;
134 bool insanityBool; 136 bool insanityBool;
135 QString setDocFileRef, currentPlayList; 137 QString setDocFileRef, currentPlayList;