author | zecke <zecke> | 2004-09-24 16:03:38 (UTC) |
---|---|---|
committer | zecke <zecke> | 2004-09-24 16:03:38 (UTC) |
commit | 0b9478d52735eb62a4ead580344b989ecf03d356 (patch) (side-by-side diff) | |
tree | 1f95262623d3513dc6a061a62be65f891d023217 /noncore/multimedia/opieplayer2/playlistwidget.cpp | |
parent | 2911cb18af1fad00bc3557cffe2d2d2ec3a9d346 (diff) | |
download | opie-0b9478d52735eb62a4ead580344b989ecf03d356.zip opie-0b9478d52735eb62a4ead580344b989ecf03d356.tar.gz opie-0b9478d52735eb62a4ead580344b989ecf03d356.tar.bz2 |
-remove qApp->processEvents when starting playing
Revamp Adding Files and Add Directory
-Remove custom code to save the last Directory Used
-Share MimeType creating code
-Add Method to add a File to the Playlist and use it
for AddFile and Add Directory
Diffstat (limited to 'noncore/multimedia/opieplayer2/playlistwidget.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/multimedia/opieplayer2/playlistwidget.cpp | 108 |
1 files changed, 62 insertions, 46 deletions
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 @@ -82,12 +82,14 @@ PlayListWidget::PlayListWidget(QWidget* parent, const char* name, WFlags fl ) this, SLOT( addAllToList() ) ); pmPlayList->insertSeparator(-1); (void)new MenuItem( pmPlayList, tr( "Add File" ), this,SLOT( openFile() ) ); (void)new MenuItem( pmPlayList, tr("Add URL"), this,SLOT( openURL() ) ); + (void)new MenuItem( pmPlayList, tr( "Add Directory"), + this, SLOT(openDirectory())); pmPlayList->insertSeparator(-1); (void)new MenuItem( pmPlayList, tr( "Save Playlist" ), this, SLOT(writem3u() ) ); pmPlayList->insertSeparator(-1); (void)new MenuItem( pmPlayList, tr( "Rescan for Audio Files" ), audioView, SLOT( scanFiles() ) ); @@ -659,18 +661,13 @@ void PlayListWidget::openURL() { delete fileDlg; } -void PlayListWidget::openFile() { - - QString filename, name; - - Config cfg( "OpiePlayer" ); - cfg.setGroup("Dialog"); +static MimeTypes fileSelectorMimeTypes() { MimeTypes types; QStringList audio, video, all; audio << "audio/*"; audio << "playlist/plain"; audio << "audio/x-ogg"; audio << "audio/x-mpegurl"; @@ -681,39 +678,65 @@ void PlayListWidget::openFile() { all += audio; all += video; types.insert("All Media Files", all ); types.insert("Audio", audio ); types.insert("Video", video ); - QString str = OFileDialog::getOpenFileName( 1, - cfg.readEntry("LastDirectory",QPEApplication::documentDir()),"", - types, 0 ); - - if(str.left(2) == "//") { - str=str.right(str.length()-1); + return types; } - cfg.writeEntry( "LastDirectory" ,QFileInfo( str ).dirPath() ); - if( !str.isEmpty() ) { +void PlayListWidget::openFile() { - odebug << "Selected filename is " + str << oendl; - filename = str; - DocLnk lnk; + QString filename, name; - if( filename.right( 3) == "m3u" || filename.right(3) == "pls" ) { - readListFromFile( filename ); + Config cfg( "OpiePlayer" ); + cfg.setGroup("Dialog"); + MimeTypes types = fileSelectorMimeTypes(); + + + QString str = OFileDialog::getOpenFileName( 1, QString::null, + QString::null, types, 0, + tr("Add File to Playlist") ); + + if( str.isEmpty() ) + return; + + if(str.left(2) == "//") str=str.right(str.length()-1); + + + if( str.right( 3) == "m3u" || str.right(3) == "pls" ) { + readListFromFile( str ); } else { - lnk.setName( QFileInfo(filename).baseName() ); //sets name - lnk.setFile( filename ); //sets file name - d->selectedFiles->addToSelection( lnk ); - writeCurrentM3u(); + QFileInfo info( str ); + DocLnk lnk = addFileToPlaylist( str, info.baseName() ); d->selectedFiles->setSelectedItem( lnk.name() ); } } -} +void PlayListWidget::openDirectory() { + QString str = OFileDialog::getDirectory( OFileSelector::DirectorySelector, + QString::null, 0, + tr( "Add Files from Directory")); + + if(str.isEmpty() ) + return; + + if(str.left(2) == "//") str=str.right(str.length()-1); + QDir dir( str ); + QStringList lst = dir.entryList(QDir::Files|QDir::Readable); + + for ( QStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) { + QString filename = str + "/" + *it; + + if( filename.right( 3) == "m3u" || filename.right(3) == "pls" ) + readListFromFile( filename ); + else { + addFileToPlaylist( filename, QFileInfo(*it).baseName() ); + } + } +} void PlayListWidget::readListFromFile( const QString &filename ) { odebug << "read list filename " + filename << oendl; QFileInfo fi(filename); Om3u *m3uList; QString s, name; @@ -782,39 +805,22 @@ void PlayListWidget::readListFromFile( const QString &filename ) { } /* writes current playlist to m3u file */ void PlayListWidget::writem3u() { - //InputDilog *fileDlg; - //fileDlg = new InputDialog( this, tr( "Save m3u Playlist " ), TRUE, 0); - //fileDlg->exec(); Config cfg( "OpiePlayer" ); cfg.setGroup("Dialog"); - MimeTypes types; - QStringList audio, video, all; - audio << "audio/*"; - audio << "playlist/plain"; - audio << "audio/x-mpegurl"; + MimeTypes types = fileSelectorMimeTypes(); - video << "video/*"; - video << "playlist/plain"; + QString str = OFileDialog::getOpenFileName( 1, QString::null, + QString::null, types, 0, + tr( "Save Playlist" )); - all += audio; - all += video; - types.insert("All Media Files", all ); - types.insert("Audio", audio ); - types.insert("Video", video ); - - QString str = OFileDialog::getOpenFileName( 1, - cfg.readEntry("LastDirectory",QPEApplication::documentDir()),"", - types, 0 ); if(str.left(2) == "//") str=str.right(str.length()-1); - cfg.writeEntry("LastDirectory" ,QFileInfo(str).dirPath()); - QString name, filename, list; Om3u *m3uList; if( !str.isEmpty() ) { name = str; @@ -1004,13 +1010,12 @@ PlayListWidget::Entry PlayListWidget::currentEntry() const QString PlayListWidget::currentFileListPathName() const { return currentFileListView->currentItem()->text( 3 ); } void PlayListWidget::qcopReceive(const QCString &msg, const QByteArray &data) { - odebug << "qcop message "+msg << oendl; QDataStream stream ( data, IO_ReadOnly ); if ( msg == "play()" ) { //plays current selection btnPlay( true); } else if ( msg == "stop()" ) { mediaPlayerState->setPlaying( false); } else if ( msg == "togglePause()" ) { @@ -1045,6 +1050,17 @@ void PlayListWidget::qcopReceive(const QCString &msg, const QByteArray &data) { QString file; stream >> file; } } + +DocLnk PlayListWidget::addFileToPlaylist( const QString& file, + const QString& name ) { + DocLnk lnk; + lnk.setName( name ); //sets name + lnk.setFile( file ); //sets file name + d->selectedFiles->addToSelection( lnk ); + writeCurrentM3u(); + + return lnk; +} |