summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/inputDialog.cpp67
-rw-r--r--noncore/multimedia/opieplayer2/inputDialog.h35
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.cpp62
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.h3
4 files changed, 129 insertions, 38 deletions
diff --git a/noncore/multimedia/opieplayer2/inputDialog.cpp b/noncore/multimedia/opieplayer2/inputDialog.cpp
index 2c4be1b..ebde9c6 100644
--- a/noncore/multimedia/opieplayer2/inputDialog.cpp
+++ b/noncore/multimedia/opieplayer2/inputDialog.cpp
@@ -1,69 +1,74 @@
1/*
2                This file is part of the Opie Project
3
4              Copyright (c) 2002,2003 Max Reiss <harlekin@handhelds.org>
5 Copyright (c) 2002 L. Potter <ljp@llornkcor.com>
6 =.
7 .=l.
8           .>+-=
9 _;:,     .>    :=|. This program is free software; you can
10.> <`_,   >  .   <= redistribute it and/or modify it under
11:`=1 )Y*s>-.--   : the terms of the GNU General Public
12.="- .-=="i,     .._ License as published by the Free Software
13 - .   .-<_>     .<> Foundation; either version 2 of the License,
14     ._= =}       : or (at your option) any later version.
15    .%`+i>       _;_.
16    .i_,=:_.      -<s. This program is distributed in the hope that
17     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
18    : ..    .:,     . . . without even the implied warranty of
19    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
20  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
21..}^=.=       =       ; General Public License for more
22++=   -.     .`     .: details.
23 :     =  ...= . :.=-
24 -.   .:....=;==+<; You should have received a copy of the GNU
25  -_. . .   )=.  = General Public License along with
26    --        :-=` this library; see the file COPYING.LIB.
27 If not, write to the Free Software Foundation,
28 Inc., 59 Temple Place - Suite 330,
29 Boston, MA 02111-1307, USA.
30
31*/
32
33
1#include "inputDialog.h" 34#include "inputDialog.h"
2 35
3#include <qpe/resource.h> 36#include <qpe/resource.h>
4#include <qpe/qpeapplication.h> 37#include <qpe/qpeapplication.h>
5#include <qpe/config.h>
6#include <opie/ofiledialog.h>
7 38
8#include <qfileinfo.h> 39#include <qfileinfo.h>
9#include <qlineedit.h> 40#include <qlineedit.h>
10#include <qlayout.h> 41#include <qlayout.h>
11#include <qvariant.h> 42#include <qvariant.h>
12#include <qpushbutton.h> 43#include <qpushbutton.h>
13#include <qwhatsthis.h> 44#include <qwhatsthis.h>
14 45
15InputDialog::InputDialog( QWidget* parent, const char* name, bool modal, WFlags fl ) 46InputDialog::InputDialog( QWidget* parent, const char* name, bool modal, WFlags fl )
16 : QDialog( parent, name, modal, fl ) { 47 : QDialog( parent, name, modal, fl ) {
17 if ( !name ) { 48 if ( !name ) {
18 setName( "InputDialog" ); 49 setName( "InputDialog" );
19 } 50 }
20 resize( 234, 115); 51 resize( 234, 115);
21 setMaximumSize( QSize( 240, 40)); 52 setMaximumSize( QSize( 240, 40));
22 setCaption( tr( name ) ); 53 setCaption( tr( name ) );
23 54
24 QPushButton *browserButton; 55 QPushButton *browserButton;
25 browserButton = new QPushButton( Resource::loadIconSet("fileopen"),"",this,"BrowseButton"); 56 //browserButton = new QPushButton( Resource::loadIconSet("fileopen"),"",this,"BrowseButton");
26 browserButton->setGeometry( QRect( 205, 10, 22, 22)); 57 //browserButton->setGeometry( QRect( 205, 10, 22, 22));
27 connect( browserButton, SIGNAL(released()),this,SLOT(browse())); 58 //connect( browserButton, SIGNAL(released()),this,SLOT(browse()));
28 LineEdit1 = new QLineEdit( this, "LineEdit1" ); 59 LineEdit1 = new QLineEdit( this, "LineEdit1" );
29 LineEdit1->setGeometry( QRect( 4, 10, 190, 22 ) ); 60 LineEdit1->setGeometry( QRect( 4, 10, 190, 22 ) );
30 LineEdit1->setFocus(); 61 LineEdit1->setFocus();
31} 62}
32/* 63/*
33 * return the current text(input) 64 * return the current text(input)
34 */ 65 */
35QString InputDialog::text() const { 66QString InputDialog::text() const {
36 return LineEdit1->text(); 67 return LineEdit1->text();
37} 68}
38/* 69/*
39 * Destroys the object and frees any allocated resources 70 * Destroys the object and frees any allocated resources
40 */ 71 */
41InputDialog::~InputDialog() { 72InputDialog::~InputDialog() {
42} 73}
43 74
44void InputDialog::browse() {
45 Config cfg( "OpiePlayer" );
46 cfg.setGroup("Dialog");
47 MimeTypes types;
48 QStringList audio, video, all;
49 audio << "audio/*";
50 audio << "playlist/plain";
51 audio << "audio/x-mpegurl";
52
53 video << "video/*";
54 video << "playlist/plain";
55
56 all += audio;
57 all += video;
58 types.insert("All Media Files", all );
59 types.insert("Audio", audio );
60 types.insert("Video", video );
61
62 QString str = OFileDialog::getOpenFileName( 1,
63 cfg.readEntry("LastDirectory",QPEApplication::documentDir()),"",
64 types, 0 );
65 if(str.left(2) == "//") str=str.right(str.length()-1);
66 LineEdit1->setText(str);
67 cfg.writeEntry("LastDirectory" ,QFileInfo(str).dirPath());
68}
69
diff --git a/noncore/multimedia/opieplayer2/inputDialog.h b/noncore/multimedia/opieplayer2/inputDialog.h
index 0f36ea4..f64f6d4 100644
--- a/noncore/multimedia/opieplayer2/inputDialog.h
+++ b/noncore/multimedia/opieplayer2/inputDialog.h
@@ -1,25 +1,56 @@
1/*
2                This file is part of the Opie Project
3
4              Copyright (c) 2002,2003 Max Reiss <harlekin@handhelds.org>
5 Copyright (c) 2002 L. Potter <ljp@llornkcor.com>
6 =.
7 .=l.
8           .>+-=
9 _;:,     .>    :=|. This program is free software; you can
10.> <`_,   >  .   <= redistribute it and/or modify it under
11:`=1 )Y*s>-.--   : the terms of the GNU General Public
12.="- .-=="i,     .._ License as published by the Free Software
13 - .   .-<_>     .<> Foundation; either version 2 of the License,
14     ._= =}       : or (at your option) any later version.
15    .%`+i>       _;_.
16    .i_,=:_.      -<s. This program is distributed in the hope that
17     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
18    : ..    .:,     . . . without even the implied warranty of
19    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
20  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
21..}^=.=       =       ; General Public License for more
22++=   -.     .`     .: details.
23 :     =  ...= . :.=-
24 -.   .:....=;==+<; You should have received a copy of the GNU
25  -_. . .   )=.  = General Public License along with
26    --        :-=` this library; see the file COPYING.LIB.
27 If not, write to the Free Software Foundation,
28 Inc., 59 Temple Place - Suite 330,
29 Boston, MA 02111-1307, USA.
30
31*/
32
33
1 34
2#ifndef INPUTDIALOG_H 35#ifndef INPUTDIALOG_H
3#define INPUTDIALOG_H 36#define INPUTDIALOG_H
4 37
5#include <qvariant.h> 38#include <qvariant.h>
6#include <qdialog.h> 39#include <qdialog.h>
7 40
8class QLineEdit; 41class QLineEdit;
9 42
10class InputDialog : public QDialog { 43class InputDialog : public QDialog {
11 Q_OBJECT 44 Q_OBJECT
12 45
13public: 46public:
14 InputDialog( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); 47 InputDialog( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
15 ~InputDialog(); 48 ~InputDialog();
16 QString text()const; 49 QString text()const;
17 50
18private: 51private:
19 QLineEdit* LineEdit1; 52 QLineEdit* LineEdit1;
20 53
21protected slots:
22 void browse();
23}; 54};
24 55
25#endif // INPUTDIALOG_H 56#endif // INPUTDIALOG_H
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.cpp b/noncore/multimedia/opieplayer2/playlistwidget.cpp
index c91a565..4e31670 100644
--- a/noncore/multimedia/opieplayer2/playlistwidget.cpp
+++ b/noncore/multimedia/opieplayer2/playlistwidget.cpp
@@ -1,113 +1,118 @@
1/* 1/*
2                This file is part of the Opie Project 2                This file is part of the Opie Project
3 3
4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org> 4              Copyright (c) 2002,2003 Max Reiss <harlekin@handhelds.org>
5 Copyright (c) 2002 L. Potter <ljp@llornkcor.com> 5 Copyright (c) 2002 L. Potter <ljp@llornkcor.com>
6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> 6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
7 =. 7 =.
8 .=l. 8 .=l.
9           .>+-= 9           .>+-=
10 _;:,     .>    :=|. This program is free software; you can 10 _;:,     .>    :=|. This program is free software; you can
11.> <`_,   >  .   <= redistribute it and/or modify it under 11.> <`_,   >  .   <= redistribute it and/or modify it under
12:`=1 )Y*s>-.--   : the terms of the GNU General Public 12:`=1 )Y*s>-.--   : the terms of the GNU General Public
13.="- .-=="i,     .._ License as published by the Free Software 13.="- .-=="i,     .._ License as published by the Free Software
14 - .   .-<_>     .<> Foundation; either version 2 of the License, 14 - .   .-<_>     .<> Foundation; either version 2 of the License,
15     ._= =}       : or (at your option) any later version. 15     ._= =}       : or (at your option) any later version.
16    .%`+i>       _;_. 16    .%`+i>       _;_.
17    .i_,=:_.      -<s. This program is distributed in the hope that 17    .i_,=:_.      -<s. This program is distributed in the hope that
18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
19    : ..    .:,     . . . without even the implied warranty of 19    : ..    .:,     . . . without even the implied warranty of
20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
22..}^=.=       =       ; General Public License for more 22..}^=.=       =       ; General Public License for more
23++=   -.     .`     .: details. 23++=   -.     .`     .: details.
24 :     =  ...= . :.=- 24 :     =  ...= . :.=-
25 -.   .:....=;==+<; You should have received a copy of the GNU 25 -.   .:....=;==+<; You should have received a copy of the GNU
26  -_. . .   )=.  = General Public License along with 26  -_. . .   )=.  = General Public License along with
27    --        :-=` this library; see the file COPYING.LIB. 27    --        :-=` this library; see the file COPYING.LIB.
28 If not, write to the Free Software Foundation, 28 If not, write to the Free Software Foundation,
29 Inc., 59 Temple Place - Suite 330, 29 Inc., 59 Temple Place - Suite 330,
30 Boston, MA 02111-1307, USA. 30 Boston, MA 02111-1307, USA.
31 31
32*/ 32*/
33 33
34#include <qpe/qpetoolbar.h> 34#include <qpe/qpetoolbar.h>
35#include <qpe/qpeapplication.h> 35#include <qpe/qpeapplication.h>
36#include <qpe/storage.h> 36#include <qpe/storage.h>
37#include <qpe/mimetype.h> 37#include <qpe/mimetype.h>
38#include <qpe/global.h> 38#include <qpe/global.h>
39#include <qpe/resource.h> 39#include <qpe/resource.h>
40#include <qpe/config.h>
41
42#include <opie/ofiledialog.h>
40 43
41#include <qdatetime.h> 44#include <qdatetime.h>
42#include <qdir.h> 45#include <qdir.h>
43#include <qmessagebox.h> 46#include <qmessagebox.h>
44#include <qregexp.h> 47#include <qregexp.h>
45#include <qtextstream.h> 48#include <qtextstream.h>
46 49
47#include "playlistselection.h" 50#include "playlistselection.h"
48#include "playlistwidget.h" 51#include "playlistwidget.h"
49#include "mediaplayerstate.h" 52#include "mediaplayerstate.h"
50#include "inputDialog.h" 53#include "inputDialog.h"
51#include "om3u.h" 54#include "om3u.h"
52#include "playlistfileview.h" 55#include "playlistfileview.h"
53 56
54//only needed for the random play 57//only needed for the random play
55#include <stdlib.h> 58#include <stdlib.h>
56#include <assert.h> 59#include <assert.h>
57 60
58PlayListWidget::PlayListWidget( MediaPlayerState &mediaPlayerState, QWidget* parent, const char* name ) 61PlayListWidget::PlayListWidget( MediaPlayerState &mediaPlayerState, QWidget* parent, const char* name )
59 : PlayListWidgetGui( mediaPlayerState, parent, name ) , currentFileListView( 0 ) 62 : PlayListWidgetGui( mediaPlayerState, parent, name ) , currentFileListView( 0 )
60{ 63{
61 64
62 d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ), 65 d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ),
63 "opieplayer2/add_to_playlist", 66 "opieplayer2/add_to_playlist",
64 this , SLOT(addSelected() ) ); 67 this , SLOT(addSelected() ) );
65 d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ), 68 d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ),
66 "opieplayer2/remove_from_playlist", 69 "opieplayer2/remove_from_playlist",
67 this , SLOT(removeSelected() ) ); 70 this , SLOT(removeSelected() ) );
68 d->tbPlay = new ToolButton( bar, tr( "Play" ), "opieplayer2/play", 71 d->tbPlay = new ToolButton( bar, tr( "Play" ), "opieplayer2/play",
69 this , SLOT( btnPlay( bool) ), TRUE ); 72 this , SLOT( btnPlay( bool) ), TRUE );
70 d->tbShuffle = new ToolButton( bar, tr( "Randomize" ),"opieplayer2/shuffle", 73 d->tbShuffle = new ToolButton( bar, tr( "Randomize" ),"opieplayer2/shuffle",
71 &mediaPlayerState, SLOT( setShuffled( bool ) ), TRUE ); 74 &mediaPlayerState, SLOT( setShuffled( bool ) ), TRUE );
72 d->tbLoop = new ToolButton( bar, tr( "Loop" ), "opieplayer2/loop", 75 d->tbLoop = new ToolButton( bar, tr( "Loop" ), "opieplayer2/loop",
73 &mediaPlayerState, SLOT( setLooping( bool ) ), TRUE ); 76 &mediaPlayerState, SLOT( setLooping( bool ) ), TRUE );
74 77
75 (void)new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) ); 78 (void)new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) );
76 (void)new MenuItem( pmPlayList, tr( "Add all audio files" ), 79 (void)new MenuItem( pmPlayList, tr( "Add all audio files" ),
77 this, SLOT( addAllMusicToList() ) ); 80 this, SLOT( addAllMusicToList() ) );
78 (void)new MenuItem( pmPlayList, tr( "Add all video files" ), 81 (void)new MenuItem( pmPlayList, tr( "Add all video files" ),
79 this, SLOT( addAllVideoToList() ) ); 82 this, SLOT( addAllVideoToList() ) );
80 (void)new MenuItem( pmPlayList, tr( "Add all files" ), 83 (void)new MenuItem( pmPlayList, tr( "Add all files" ),
81 this, SLOT( addAllToList() ) ); 84 this, SLOT( addAllToList() ) );
82 pmPlayList->insertSeparator(-1); 85 pmPlayList->insertSeparator(-1);
83// (void)new MenuItem( pmPlayList, tr( "Save PlayList" ), 86// (void)new MenuItem( pmPlayList, tr( "Save PlayList" ),
84// this, SLOT( saveList() ) ); 87// this, SLOT( saveList() ) );
85 (void)new MenuItem( pmPlayList, tr( "Save Playlist" ), 88 (void)new MenuItem( pmPlayList, tr( "Save Playlist" ),
86 this, SLOT(writem3u() ) ); 89 this, SLOT(writem3u() ) );
87 pmPlayList->insertSeparator(-1); 90 pmPlayList->insertSeparator(-1);
88 (void)new MenuItem( pmPlayList, tr( "Open File or URL" ), 91 (void)new MenuItem( pmPlayList, tr( "Add File" ),
89 this,SLOT( openFile() ) ); 92 this,SLOT( openFile() ) );
93 (void)new MenuItem( pmPlayList, tr("Add URL"),
94 this,SLOT( openURL() ) );
90 pmPlayList->insertSeparator(-1); 95 pmPlayList->insertSeparator(-1);
91 (void)new MenuItem( pmPlayList, tr( "Rescan for Audio Files" ), 96 (void)new MenuItem( pmPlayList, tr( "Rescan for Audio Files" ),
92 audioView, SLOT( scanFiles() ) ); 97 audioView, SLOT( scanFiles() ) );
93 (void)new MenuItem( pmPlayList, tr( "Rescan for Video Files" ), 98 (void)new MenuItem( pmPlayList, tr( "Rescan for Video Files" ),
94 videoView, SLOT( scanFiles() ) ); 99 videoView, SLOT( scanFiles() ) );
95 100
96 pmView->insertItem( Resource::loadPixmap("fullscreen") , tr( "Full Screen"), 101 pmView->insertItem( Resource::loadPixmap("fullscreen") , tr( "Full Screen"),
97 &mediaPlayerState, SLOT( toggleFullscreen() ) ); 102 &mediaPlayerState, SLOT( toggleFullscreen() ) );
98 103
99 Config cfg( "OpiePlayer" ); 104 Config cfg( "OpiePlayer" );
100 bool b= cfg.readBoolEntry("FullScreen", 0); 105 bool b= cfg.readBoolEntry("FullScreen", 0);
101 mediaPlayerState.setFullscreen( b ); 106 mediaPlayerState.setFullscreen( b );
102 pmView->setItemChecked( -16, b ); 107 pmView->setItemChecked( -16, b );
103 108
104 (void)new ToolButton( vbox1, tr( "Move Up" ), "opieplayer2/up", 109 (void)new ToolButton( vbox1, tr( "Move Up" ), "opieplayer2/up",
105 d->selectedFiles, SLOT(moveSelectedUp() ) ); 110 d->selectedFiles, SLOT(moveSelectedUp() ) );
106 (void)new ToolButton( vbox1, tr( "Remove" ), "opieplayer2/cut", 111 (void)new ToolButton( vbox1, tr( "Remove" ), "opieplayer2/cut",
107 d->selectedFiles, SLOT(removeSelected() ) ); 112 d->selectedFiles, SLOT(removeSelected() ) );
108 (void)new ToolButton( vbox1, tr( "Move Down" ), "opieplayer2/down", 113 (void)new ToolButton( vbox1, tr( "Move Down" ), "opieplayer2/down",
109 d->selectedFiles, SLOT(moveSelectedDown() ) ); 114 d->selectedFiles, SLOT(moveSelectedDown() ) );
110 // QVBox *stretch2 = new QVBox( vbox1 ); 115 // QVBox *stretch2 = new QVBox( vbox1 );
111 116
112 connect( tbDeletePlaylist, ( SIGNAL( released() ) ), 117 connect( tbDeletePlaylist, ( SIGNAL( released() ) ),
113 SLOT( deletePlaylist() ) ); 118 SLOT( deletePlaylist() ) );
@@ -581,99 +586,148 @@ void PlayListWidget::deletePlaylist() {
581 switch( QMessageBox::information( this, (tr("Remove Playlist?")), 586 switch( QMessageBox::information( this, (tr("Remove Playlist?")),
582 (tr("You really want to delete\nthis playlist?")), 587 (tr("You really want to delete\nthis playlist?")),
583 (tr("Yes")), (tr("No")), 0 )){ 588 (tr("Yes")), (tr("No")), 0 )){
584 case 0: // Yes clicked, 589 case 0: // Yes clicked,
585 QFile().remove(playLists->selectedDocument().file()); 590 QFile().remove(playLists->selectedDocument().file());
586 QFile().remove(playLists->selectedDocument().linkFile()); 591 QFile().remove(playLists->selectedDocument().linkFile());
587 playLists->reread(); 592 playLists->reread();
588 break; 593 break;
589 case 1: // Cancel 594 case 1: // Cancel
590 break; 595 break;
591 }; 596 };
592} 597}
593 598
594 599
595void PlayListWidget::playSelected() { 600void PlayListWidget::playSelected() {
596 btnPlay( TRUE); 601 btnPlay( TRUE);
597} 602}
598 603
599bool PlayListWidget::inFileListMode() const 604bool PlayListWidget::inFileListMode() const
600{ 605{
601 TabType tab = currentTab(); 606 TabType tab = currentTab();
602 return tab == AudioFiles || tab == VideoFiles; 607 return tab == AudioFiles || tab == VideoFiles;
603} 608}
604 609
605void PlayListWidget::openFile() { 610void PlayListWidget::openURL() {
606 // http://66.28.164.33:2080 611 // http://66.28.164.33:2080
607 // http://somafm.com/star0242.m3u 612 // http://somafm.com/star0242.m3u
608 QString filename, name; 613 QString filename, name;
609 InputDialog *fileDlg; 614 InputDialog *fileDlg;
610 fileDlg = new InputDialog(this,tr("Open file or URL"),TRUE, 0); 615 fileDlg = new InputDialog(this,tr("Add URL"),TRUE, 0);
611 fileDlg->exec(); 616 fileDlg->exec();
612 if( fileDlg->result() == 1 ) { 617 if( fileDlg->result() == 1 ) {
613 filename = fileDlg->text(); 618 filename = fileDlg->text();
614 qDebug( "Selected filename is " + filename ); 619 qDebug( "Selected filename is " + filename );
615 // Om3u *m3uList; 620 // Om3u *m3uList;
616 DocLnk lnk; 621 DocLnk lnk;
617 Config cfg( "OpiePlayer" ); 622 Config cfg( "OpiePlayer" );
618 cfg.setGroup("PlayList"); 623 cfg.setGroup("PlayList");
619 624
620 if(filename.left(4) == "http") { 625 if(filename.left(4) == "http") {
621 QString m3uFile, m3uFilePath; 626 QString m3uFile, m3uFilePath;
622 if(filename.find(":",8,TRUE) != -1) { //found a port 627 if(filename.find(":",8,TRUE) != -1) { //found a port
623 m3uFile = filename.left( filename.find( ":",8,TRUE)); 628 m3uFile = filename.left( filename.find( ":",8,TRUE));
624 m3uFile = m3uFile.right( 7); 629 m3uFile = m3uFile.right( 7);
625 } else if(filename.left(4) == "http"){ 630 } else if(filename.left(4) == "http"){
626 m3uFile=filename; 631 m3uFile=filename;
627 m3uFile = m3uFile.right( m3uFile.length() - 7); 632 m3uFile = m3uFile.right( m3uFile.length() - 7);
628 } else{ 633 } else{
629 m3uFile=filename; 634 m3uFile=filename;
630 } 635 }
631 636
632 lnk.setName( filename ); //sets name 637 lnk.setName( filename ); //sets name
633 lnk.setFile( filename ); //sets file name 638 lnk.setFile( filename ); //sets file name
634 639
635// lnk.setIcon("opieplayer2/musicfile"); 640// lnk.setIcon("opieplayer2/musicfile");
636 641
637 d->selectedFiles->addToSelection( lnk ); 642 d->selectedFiles->addToSelection( lnk );
638 writeCurrentM3u(); 643 writeCurrentM3u();
639 d->selectedFiles->setSelectedItem( lnk.name()); 644 d->selectedFiles->setSelectedItem( lnk.name());
640 } 645 }
641 else if( filename.right( 3) == "m3u" || filename.right(3) == "pls" ) { 646 else if( filename.right( 3) == "m3u" || filename.right(3) == "pls" ) {
642 readListFromFile( filename ); 647 readListFromFile( filename );
643 } else { 648 } else {
644 lnk.setName( QFileInfo(filename).baseName() ); //sets name 649 lnk.setName( QFileInfo(filename).baseName() ); //sets name
645 lnk.setFile( filename ); //sets file name 650 lnk.setFile( filename ); //sets file name
646 d->selectedFiles->addToSelection( lnk); 651 d->selectedFiles->addToSelection( lnk);
647 writeCurrentM3u(); 652 writeCurrentM3u();
648 d->selectedFiles->setSelectedItem( lnk.name()); 653 d->selectedFiles->setSelectedItem( lnk.name());
649 } 654 }
650 } 655 }
651 656
652 657
653 delete fileDlg; 658 delete fileDlg;
654} 659}
655 660
661
662void PlayListWidget::openFile() {
663
664 QString filename, name;
665
666 Config cfg( "OpiePlayer" );
667 cfg.setGroup("Dialog");
668 MimeTypes types;
669 QStringList audio, video, all;
670 audio << "audio/*";
671 audio << "playlist/plain";
672 audio << "audio/x-mpegurl";
673
674 video << "video/*";
675 video << "playlist/plain";
676
677 all += audio;
678 all += video;
679 types.insert("All Media Files", all );
680 types.insert("Audio", audio );
681 types.insert("Video", video );
682
683 QString str = OFileDialog::getOpenFileName( 1,
684 cfg.readEntry("LastDirectory",QPEApplication::documentDir()),"",
685 types, 0 );
686 if(str.left(2) == "//") str=str.right(str.length()-1);
687 cfg.writeEntry("LastDirectory" ,QFileInfo(str).dirPath());
688
689
690 if( !str.isEmpty() ) {
691 qDebug( "Selected filename is " + str );
692 filename = str;
693 DocLnk lnk;
694 Config cfg( "OpiePlayer" );
695 cfg.setGroup("PlayList");
696
697 if( filename.right( 3) == "m3u" || filename.right(3) == "pls" ) {
698 readListFromFile( filename );
699 } else {
700 lnk.setName( QFileInfo(filename).baseName() ); //sets name
701 lnk.setFile( filename ); //sets file name
702 d->selectedFiles->addToSelection( lnk);
703 writeCurrentM3u();
704 d->selectedFiles->setSelectedItem( lnk.name());
705 }
706 }
707}
708
709
656void PlayListWidget::readListFromFile( const QString &filename ) { 710void PlayListWidget::readListFromFile( const QString &filename ) {
657 qDebug( "read list filename " + filename ); 711 qDebug( "read list filename " + filename );
658 QFileInfo fi(filename); 712 QFileInfo fi(filename);
659 Om3u *m3uList; 713 Om3u *m3uList;
660 QString s, name; 714 QString s, name;
661 m3uList = new Om3u( filename, IO_ReadOnly ); 715 m3uList = new Om3u( filename, IO_ReadOnly );
662 if(fi.extension(false).find("m3u",0,false) != -1 ) 716 if(fi.extension(false).find("m3u",0,false) != -1 )
663 m3uList->readM3u(); 717 m3uList->readM3u();
664 else if(fi.extension(false).find("pls",0,false) != -1 ) 718 else if(fi.extension(false).find("pls",0,false) != -1 )
665 m3uList->readPls(); 719 m3uList->readPls();
666 720
667 DocLnk lnk; 721 DocLnk lnk;
668 for ( QStringList::ConstIterator it = m3uList->begin(); it != m3uList->end(); ++it ) { 722 for ( QStringList::ConstIterator it = m3uList->begin(); it != m3uList->end(); ++it ) {
669 s = *it; 723 s = *it;
670 // qDebug(s); 724 // qDebug(s);
671 if(s.left(4)=="http") { 725 if(s.left(4)=="http") {
672 lnk.setName( s ); //sets file name 726 lnk.setName( s ); //sets file name
673 lnk.setIcon("opieplayer2/musicfile"); 727 lnk.setIcon("opieplayer2/musicfile");
674 lnk.setFile( s ); //sets file name 728 lnk.setFile( s ); //sets file name
675 729
676 } else { //is file 730 } else { //is file
677 lnk.setName( QFileInfo(s).baseName()); 731 lnk.setName( QFileInfo(s).baseName());
678 if(s.left(1) != "/") { 732 if(s.left(1) != "/") {
679 733
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.h b/noncore/multimedia/opieplayer2/playlistwidget.h
index 54e9d16..5230b03 100644
--- a/noncore/multimedia/opieplayer2/playlistwidget.h
+++ b/noncore/multimedia/opieplayer2/playlistwidget.h
@@ -1,28 +1,28 @@
1/* 1/*
2                This file is part of the Opie Project 2                This file is part of the Opie Project
3 3
4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org> 4              Copyright (c) 2002,2003 Max Reiss <harlekin@handhelds.org>
5 Copyright (c) 2002 L. Potter <ljp@llornkcor.com> 5 Copyright (c) 2002 L. Potter <ljp@llornkcor.com>
6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> 6 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
7 =. 7 =.
8 .=l. 8 .=l.
9           .>+-= 9           .>+-=
10 _;:,     .>    :=|. This program is free software; you can 10 _;:,     .>    :=|. This program is free software; you can
11.> <`_,   >  .   <= redistribute it and/or modify it under 11.> <`_,   >  .   <= redistribute it and/or modify it under
12:`=1 )Y*s>-.--   : the terms of the GNU General Public 12:`=1 )Y*s>-.--   : the terms of the GNU General Public
13.="- .-=="i,     .._ License as published by the Free Software 13.="- .-=="i,     .._ License as published by the Free Software
14 - .   .-<_>     .<> Foundation; either version 2 of the License, 14 - .   .-<_>     .<> Foundation; either version 2 of the License,
15     ._= =}       : or (at your option) any later version. 15     ._= =}       : or (at your option) any later version.
16    .%`+i>       _;_. 16    .%`+i>       _;_.
17    .i_,=:_.      -<s. This program is distributed in the hope that 17    .i_,=:_.      -<s. This program is distributed in the hope that
18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
19    : ..    .:,     . . . without even the implied warranty of 19    : ..    .:,     . . . without even the implied warranty of
20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
22..}^=.=       =       ; General Public License for more 22..}^=.=       =       ; General Public License for more
23++=   -.     .`     .: details. 23++=   -.     .`     .: details.
24 :     =  ...= . :.=- 24 :     =  ...= . :.=-
25 -.   .:....=;==+<; You should have received a copy of the GNU 25 -.   .:....=;==+<; You should have received a copy of the GNU
26  -_. . .   )=.  = General Public License along with 26  -_. . .   )=.  = General Public License along with
27    --        :-=` this library; see the file COPYING.LIB. 27    --        :-=` this library; see the file COPYING.LIB.
28 If not, write to the Free Software Foundation, 28 If not, write to the Free Software Foundation,
@@ -90,48 +90,49 @@ public slots:
90protected: 90protected:
91 QCopChannel * channel; 91 QCopChannel * channel;
92 void keyReleaseEvent( QKeyEvent *e); 92 void keyReleaseEvent( QKeyEvent *e);
93 93
94signals: 94signals:
95 void skinSelected(); 95 void skinSelected();
96 96
97private: 97private:
98 int defaultSkinIndex; 98 int defaultSkinIndex;
99/* void readm3u(const QString &); */ 99/* void readm3u(const QString &); */
100/* void readPls(const QString &); */ 100/* void readPls(const QString &); */
101 void readListFromFile(const QString &); 101 void readListFromFile(const QString &);
102 void initializeStates(); 102 void initializeStates();
103 103
104 bool inFileListMode() const; 104 bool inFileListMode() const;
105 105
106private slots: 106private slots:
107 void qcopReceive(const QCString&, const QByteArray&); 107 void qcopReceive(const QCString&, const QByteArray&);
108 void populateSkinsMenu(); 108 void populateSkinsMenu();
109 void skinsMenuActivated(int); 109 void skinsMenuActivated(int);
110 void pmViewActivated(int); 110 void pmViewActivated(int);
111 void writem3u(); 111 void writem3u();
112 void writeCurrentM3u(); 112 void writeCurrentM3u();
113 void openFile(); 113 void openFile();
114 void openURL();
114 void setDocument( const QString& fileref ); 115 void setDocument( const QString& fileref );
115 void addToSelection( const DocLnk& ); // Add a media file to the playlist 116 void addToSelection( const DocLnk& ); // Add a media file to the playlist
116 void addToSelection( QListViewItem* ); // Add a media file to the playlist 117 void addToSelection( QListViewItem* ); // Add a media file to the playlist
117 void clearList(); 118 void clearList();
118 void addAllToList(); 119 void addAllToList();
119 void addAllMusicToList(); 120 void addAllMusicToList();
120 void addAllVideoToList(); 121 void addAllVideoToList();
121 void saveList(); // Save the playlist 122 void saveList(); // Save the playlist
122 void loadList( const DocLnk &); // Load a playlist 123 void loadList( const DocLnk &); // Load a playlist
123 void playIt( QListViewItem *); 124 void playIt( QListViewItem *);
124 void btnPlay(bool); 125 void btnPlay(bool);
125 void deletePlaylist(); 126 void deletePlaylist();
126 void addSelected(); 127 void addSelected();
127 void removeSelected(); 128 void removeSelected();
128 void tabChanged(QWidget*); 129 void tabChanged(QWidget*);
129 void viewPressed( int, QListViewItem *, const QPoint&, int); 130 void viewPressed( int, QListViewItem *, const QPoint&, int);
130 void playlistViewPressed( int, QListViewItem *, const QPoint&, int); 131 void playlistViewPressed( int, QListViewItem *, const QPoint&, int);
131 void playSelected(); 132 void playSelected();
132 133
133private: 134private:
134 bool fromSetDocument; 135 bool fromSetDocument;
135 bool insanityBool; 136 bool insanityBool;
136 QString setDocFileRef, currentPlayList; 137 QString setDocFileRef, currentPlayList;
137 int selected; 138 int selected;