summaryrefslogtreecommitdiff
path: root/noncore/multimedia/opieplayer2
authorsimon <simon>2002-12-02 20:20:28 (UTC)
committer simon <simon>2002-12-02 20:20:28 (UTC)
commitabeed050bedee6e2697ea417ed74ab621361da48 (patch) (unidiff)
treef1abe40769dee855617c55db5fc37625c5518a27 /noncore/multimedia/opieplayer2
parente1ef407b16b652755f9c8eefce0f617ec3996998 (diff)
downloadopie-abeed050bedee6e2697ea417ed74ab621361da48.zip
opie-abeed050bedee6e2697ea417ed74ab621361da48.tar.gz
opie-abeed050bedee6e2697ea417ed74ab621361da48.tar.bz2
- the playlist no more uses the mediaplayerstate as singleton
Diffstat (limited to 'noncore/multimedia/opieplayer2') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/main.cpp2
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.cpp48
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.h3
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidgetgui.cpp12
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidgetgui.h4
5 files changed, 35 insertions, 34 deletions
diff --git a/noncore/multimedia/opieplayer2/main.cpp b/noncore/multimedia/opieplayer2/main.cpp
index 24aba6c..02fdbf3 100644
--- a/noncore/multimedia/opieplayer2/main.cpp
+++ b/noncore/multimedia/opieplayer2/main.cpp
@@ -1,34 +1,34 @@
1 1
2#include <qpe/qpeapplication.h> 2#include <qpe/qpeapplication.h>
3#include "mediaplayerstate.h" 3#include "mediaplayerstate.h"
4#include "playlistwidget.h" 4#include "playlistwidget.h"
5#include "audiowidget.h" 5#include "audiowidget.h"
6#include "videowidget.h" 6#include "videowidget.h"
7#include "mediaplayer.h" 7#include "mediaplayer.h"
8 8
9MediaPlayerState *mediaPlayerState; 9MediaPlayerState *mediaPlayerState;
10PlayListWidget *playList; 10PlayListWidget *playList;
11AudioWidget *audioUI; 11AudioWidget *audioUI;
12VideoWidget *videoUI; 12VideoWidget *videoUI;
13 13
14int main(int argc, char **argv) { 14int main(int argc, char **argv) {
15 QPEApplication a(argc,argv); 15 QPEApplication a(argc,argv);
16 16
17 MediaPlayerState st( 0, "mediaPlayerState" ); 17 MediaPlayerState st( 0, "mediaPlayerState" );
18 mediaPlayerState = &st; 18 mediaPlayerState = &st;
19 PlayListWidget pl( 0, "playList" ); 19 PlayListWidget pl( st, 0, "playList" );
20 playList = &pl; 20 playList = &pl;
21 pl.showMaximized(); 21 pl.showMaximized();
22 AudioWidget aw( 0, "audioUI" ); 22 AudioWidget aw( 0, "audioUI" );
23 audioUI = &aw; 23 audioUI = &aw;
24 VideoWidget vw( 0, "videoUI" ); 24 VideoWidget vw( 0, "videoUI" );
25 videoUI = &vw; 25 videoUI = &vw;
26 a.processEvents(); 26 a.processEvents();
27 MediaPlayer mp( st, 0, "mediaPlayer" ); 27 MediaPlayer mp( st, 0, "mediaPlayer" );
28 28
29 a.showMainDocumentWidget(&pl); 29 a.showMainDocumentWidget(&pl);
30 30
31 return a.exec(); 31 return a.exec();
32} 32}
33 33
34 34
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.cpp b/noncore/multimedia/opieplayer2/playlistwidget.cpp
index b08204e..7ba342b 100644
--- a/noncore/multimedia/opieplayer2/playlistwidget.cpp
+++ b/noncore/multimedia/opieplayer2/playlistwidget.cpp
@@ -19,207 +19,207 @@
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 40
41#include <qdatetime.h> 41#include <qdatetime.h>
42#include <qdir.h> 42#include <qdir.h>
43#include <qmessagebox.h> 43#include <qmessagebox.h>
44#include <qregexp.h> 44#include <qregexp.h>
45#include <qtextstream.h> 45#include <qtextstream.h>
46 46
47#include "playlistselection.h" 47#include "playlistselection.h"
48#include "playlistwidget.h" 48#include "playlistwidget.h"
49#include "mediaplayerstate.h" 49#include "mediaplayerstate.h"
50#include "inputDialog.h" 50#include "inputDialog.h"
51#include "om3u.h" 51#include "om3u.h"
52 52
53//only needed for the random play 53//only needed for the random play
54#include <stdlib.h> 54#include <stdlib.h>
55#include <assert.h> 55#include <assert.h>
56 56
57#include "audiowidget.h" 57#include "audiowidget.h"
58#include "videowidget.h" 58#include "videowidget.h"
59 59
60extern MediaPlayerState *mediaPlayerState; 60extern MediaPlayerState *mediaPlayerState;
61// extern AudioWidget *audioUI; 61// extern AudioWidget *audioUI;
62// extern VideoWidget *videoUI; 62// extern VideoWidget *videoUI;
63 63
64QString audioMimes ="audio/mpeg;audio/x-wav;audio/x-ogg"; 64QString audioMimes ="audio/mpeg;audio/x-wav;audio/x-ogg";
65// no m3u's here please 65// no m3u's here please
66 66
67PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl ) 67PlayListWidget::PlayListWidget( MediaPlayerState &mediaPlayerState, QWidget* parent, const char* name )
68 : PlayListWidgetGui( parent, name, fl ) { 68 : PlayListWidgetGui( mediaPlayerState, parent, name ) {
69 69
70 d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ), 70 d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ),
71 "opieplayer2/add_to_playlist", 71 "opieplayer2/add_to_playlist",
72 this , SLOT(addSelected() ) ); 72 this , SLOT(addSelected() ) );
73 d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ), 73 d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ),
74 "opieplayer2/remove_from_playlist", 74 "opieplayer2/remove_from_playlist",
75 this , SLOT(removeSelected() ) ); 75 this , SLOT(removeSelected() ) );
76 d->tbPlay = new ToolButton( bar, tr( "Play" ), "opieplayer2/play", 76 d->tbPlay = new ToolButton( bar, tr( "Play" ), "opieplayer2/play",
77 this , SLOT( btnPlay( bool) ), TRUE ); 77 this , SLOT( btnPlay( bool) ), TRUE );
78 d->tbShuffle = new ToolButton( bar, tr( "Randomize" ),"opieplayer2/shuffle", 78 d->tbShuffle = new ToolButton( bar, tr( "Randomize" ),"opieplayer2/shuffle",
79 mediaPlayerState, SLOT( setShuffled( bool ) ), TRUE ); 79 &mediaPlayerState, SLOT( setShuffled( bool ) ), TRUE );
80 d->tbLoop = new ToolButton( bar, tr( "Loop" ), "opieplayer2/loop", 80 d->tbLoop = new ToolButton( bar, tr( "Loop" ), "opieplayer2/loop",
81 mediaPlayerState, SLOT( setLooping( bool ) ), TRUE ); 81 &mediaPlayerState, SLOT( setLooping( bool ) ), TRUE );
82 82
83 (void)new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) ); 83 (void)new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) );
84 (void)new MenuItem( pmPlayList, tr( "Add all audio files" ), 84 (void)new MenuItem( pmPlayList, tr( "Add all audio files" ),
85 this, SLOT( addAllMusicToList() ) ); 85 this, SLOT( addAllMusicToList() ) );
86 (void)new MenuItem( pmPlayList, tr( "Add all video files" ), 86 (void)new MenuItem( pmPlayList, tr( "Add all video files" ),
87 this, SLOT( addAllVideoToList() ) ); 87 this, SLOT( addAllVideoToList() ) );
88 (void)new MenuItem( pmPlayList, tr( "Add all files" ), 88 (void)new MenuItem( pmPlayList, tr( "Add all files" ),
89 this, SLOT( addAllToList() ) ); 89 this, SLOT( addAllToList() ) );
90 pmPlayList->insertSeparator(-1); 90 pmPlayList->insertSeparator(-1);
91// (void)new MenuItem( pmPlayList, tr( "Save PlayList" ), 91// (void)new MenuItem( pmPlayList, tr( "Save PlayList" ),
92// this, SLOT( saveList() ) ); 92// this, SLOT( saveList() ) );
93 (void)new MenuItem( pmPlayList, tr( "Save Playlist" ), 93 (void)new MenuItem( pmPlayList, tr( "Save Playlist" ),
94 this, SLOT(writem3u() ) ); 94 this, SLOT(writem3u() ) );
95 pmPlayList->insertSeparator(-1); 95 pmPlayList->insertSeparator(-1);
96 (void)new MenuItem( pmPlayList, tr( "Open File or URL" ), 96 (void)new MenuItem( pmPlayList, tr( "Open File or URL" ),
97 this,SLOT( openFile() ) ); 97 this,SLOT( openFile() ) );
98 pmPlayList->insertSeparator(-1); 98 pmPlayList->insertSeparator(-1);
99 (void)new MenuItem( pmPlayList, tr( "Rescan for Audio Files" ), 99 (void)new MenuItem( pmPlayList, tr( "Rescan for Audio Files" ),
100 this,SLOT( scanForAudio() ) ); 100 this,SLOT( scanForAudio() ) );
101 (void)new MenuItem( pmPlayList, tr( "Rescan for Video Files" ), 101 (void)new MenuItem( pmPlayList, tr( "Rescan for Video Files" ),
102 this,SLOT( scanForVideo() ) ); 102 this,SLOT( scanForVideo() ) );
103 103
104 pmView->insertItem( Resource::loadPixmap("fullscreen") , tr( "Full Screen"), 104 pmView->insertItem( Resource::loadPixmap("fullscreen") , tr( "Full Screen"),
105 mediaPlayerState, SLOT( toggleFullscreen() ) ); 105 &mediaPlayerState, SLOT( toggleFullscreen() ) );
106 106
107 Config cfg( "OpiePlayer" ); 107 Config cfg( "OpiePlayer" );
108 bool b= cfg.readBoolEntry("FullScreen", 0); 108 bool b= cfg.readBoolEntry("FullScreen", 0);
109 mediaPlayerState->setFullscreen( b ); 109 mediaPlayerState.setFullscreen( b );
110 pmView->setItemChecked( -16, b ); 110 pmView->setItemChecked( -16, b );
111 111
112 (void)new ToolButton( vbox1, tr( "Move Up" ), "opieplayer2/up", 112 (void)new ToolButton( vbox1, tr( "Move Up" ), "opieplayer2/up",
113 d->selectedFiles, SLOT(moveSelectedUp() ) ); 113 d->selectedFiles, SLOT(moveSelectedUp() ) );
114 (void)new ToolButton( vbox1, tr( "Remove" ), "opieplayer2/cut", 114 (void)new ToolButton( vbox1, tr( "Remove" ), "opieplayer2/cut",
115 d->selectedFiles, SLOT(removeSelected() ) ); 115 d->selectedFiles, SLOT(removeSelected() ) );
116 (void)new ToolButton( vbox1, tr( "Move Down" ), "opieplayer2/down", 116 (void)new ToolButton( vbox1, tr( "Move Down" ), "opieplayer2/down",
117 d->selectedFiles, SLOT(moveSelectedDown() ) ); 117 d->selectedFiles, SLOT(moveSelectedDown() ) );
118 // QVBox *stretch2 = new QVBox( vbox1 ); 118 // QVBox *stretch2 = new QVBox( vbox1 );
119 119
120 connect( tbDeletePlaylist, ( SIGNAL( released() ) ), 120 connect( tbDeletePlaylist, ( SIGNAL( released() ) ),
121 SLOT( deletePlaylist() ) ); 121 SLOT( deletePlaylist() ) );
122 connect( pmView, SIGNAL( activated( int ) ), 122 connect( pmView, SIGNAL( activated( int ) ),
123 this, SLOT( pmViewActivated( int ) ) ); 123 this, SLOT( pmViewActivated( int ) ) );
124 connect( skinsMenu, SIGNAL( activated( int ) ) , 124 connect( skinsMenu, SIGNAL( activated( int ) ) ,
125 this, SLOT( skinsMenuActivated( int ) ) ); 125 this, SLOT( skinsMenuActivated( int ) ) );
126 connect( d->selectedFiles, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int) ), 126 connect( d->selectedFiles, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int) ),
127 this,SLOT( playlistViewPressed( int, QListViewItem *, const QPoint&, int ) ) ); 127 this,SLOT( playlistViewPressed( int, QListViewItem *, const QPoint&, int ) ) );
128 connect( audioView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int ) ), 128 connect( audioView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int ) ),
129 this,SLOT( viewPressed( int, QListViewItem *, const QPoint&, int ) ) ); 129 this,SLOT( viewPressed( int, QListViewItem *, const QPoint&, int ) ) );
130 connect( audioView, SIGNAL( returnPressed( QListViewItem *) ), 130 connect( audioView, SIGNAL( returnPressed( QListViewItem *) ),
131 this,SLOT( playIt( QListViewItem *) ) ); 131 this,SLOT( playIt( QListViewItem *) ) );
132 connect( audioView, SIGNAL( doubleClicked( QListViewItem *) ), 132 connect( audioView, SIGNAL( doubleClicked( QListViewItem *) ),
133 this, SLOT( addToSelection( QListViewItem *) ) ); 133 this, SLOT( addToSelection( QListViewItem *) ) );
134 connect( videoView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int) ), 134 connect( videoView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int) ),
135 this,SLOT( viewPressed( int, QListViewItem *, const QPoint&, int) ) ); 135 this,SLOT( viewPressed( int, QListViewItem *, const QPoint&, int) ) );
136 connect( videoView, SIGNAL( returnPressed( QListViewItem *) ), 136 connect( videoView, SIGNAL( returnPressed( QListViewItem *) ),
137 this,SLOT( playIt( QListViewItem *) ) ); 137 this,SLOT( playIt( QListViewItem *) ) );
138 connect( videoView, SIGNAL( doubleClicked( QListViewItem *) ), 138 connect( videoView, SIGNAL( doubleClicked( QListViewItem *) ),
139 this, SLOT( addToSelection( QListViewItem *) ) ); 139 this, SLOT( addToSelection( QListViewItem *) ) );
140 connect( playLists, SIGNAL( fileSelected( const DocLnk &) ), 140 connect( playLists, SIGNAL( fileSelected( const DocLnk &) ),
141 this, SLOT( loadList( const DocLnk & ) ) ); 141 this, SLOT( loadList( const DocLnk & ) ) );
142 connect( tabWidget, SIGNAL ( currentChanged(QWidget*) ), 142 connect( tabWidget, SIGNAL ( currentChanged(QWidget*) ),
143 this, SLOT( tabChanged( QWidget* ) ) ); 143 this, SLOT( tabChanged( QWidget* ) ) );
144 connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), 144 connect( &mediaPlayerState, SIGNAL( playingToggled( bool ) ),
145 d->tbPlay, SLOT( setOn( bool ) ) ); 145 d->tbPlay, SLOT( setOn( bool ) ) );
146 connect( mediaPlayerState, SIGNAL( loopingToggled( bool ) ), 146 connect( &mediaPlayerState, SIGNAL( loopingToggled( bool ) ),
147 d->tbLoop, SLOT( setOn( bool ) ) ); 147 d->tbLoop, SLOT( setOn( bool ) ) );
148 connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), 148 connect( &mediaPlayerState, SIGNAL( shuffledToggled( bool ) ),
149 d->tbShuffle, SLOT( setOn( bool ) ) ); 149 d->tbShuffle, SLOT( setOn( bool ) ) );
150 connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ), 150 connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ),
151 this, SLOT( playIt( QListViewItem *) ) ); 151 this, SLOT( playIt( QListViewItem *) ) );
152 connect ( gammaSlider, SIGNAL( valueChanged( int ) ), 152 connect ( gammaSlider, SIGNAL( valueChanged( int ) ),
153 mediaPlayerState, SLOT( setVideoGamma( int ) ) ); 153 &mediaPlayerState, SLOT( setVideoGamma( int ) ) );
154 154
155 // see which skins are installed 155 // see which skins are installed
156 videoScan=false; 156 videoScan=false;
157 audioScan=false; 157 audioScan=false;
158 audioPopulated=false; 158 audioPopulated=false;
159 videoPopulated=false; 159 videoPopulated=false;
160 populateSkinsMenu(); 160 populateSkinsMenu();
161 initializeStates(); 161 initializeStates();
162 162
163 cfg.setGroup("PlayList"); 163 cfg.setGroup("PlayList");
164 QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "default"); 164 QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "default");
165 loadList(DocLnk( currentPlaylist ) ); 165 loadList(DocLnk( currentPlaylist ) );
166} 166}
167 167
168 168
169PlayListWidget::~PlayListWidget() { 169PlayListWidget::~PlayListWidget() {
170 delete d; 170 delete d;
171} 171}
172 172
173 173
174void PlayListWidget::initializeStates() { 174void PlayListWidget::initializeStates() {
175 d->tbPlay->setOn( mediaPlayerState->isPlaying() ); 175 d->tbPlay->setOn( mediaPlayerState.isPlaying() );
176 d->tbLoop->setOn( mediaPlayerState->isLooping() ); 176 d->tbLoop->setOn( mediaPlayerState.isLooping() );
177 d->tbShuffle->setOn( mediaPlayerState->isShuffled() ); 177 d->tbShuffle->setOn( mediaPlayerState.isShuffled() );
178 d->playListFrame->show(); 178 d->playListFrame->show();
179} 179}
180 180
181void PlayListWidget::writeDefaultPlaylist() { 181void PlayListWidget::writeDefaultPlaylist() {
182 182
183 Config config( "OpiePlayer" ); 183 Config config( "OpiePlayer" );
184 config.setGroup( "PlayList" ); 184 config.setGroup( "PlayList" );
185 QString filename=QPEApplication::documentDir() + "/default.m3u"; 185 QString filename=QPEApplication::documentDir() + "/default.m3u";
186 QString currentString = config.readEntry( "CurrentPlaylist", filename); 186 QString currentString = config.readEntry( "CurrentPlaylist", filename);
187 if( currentString == filename) { 187 if( currentString == filename) {
188 Om3u *m3uList; 188 Om3u *m3uList;
189 // qDebug("<<<<<<<<<<<<<default>>>>>>>>>>>>>>>>>>>"); 189 // qDebug("<<<<<<<<<<<<<default>>>>>>>>>>>>>>>>>>>");
190 if( d->selectedFiles->first() ) { 190 if( d->selectedFiles->first() ) {
191 m3uList = new Om3u(filename, IO_ReadWrite | IO_Truncate); 191 m3uList = new Om3u(filename, IO_ReadWrite | IO_Truncate);
192 do { 192 do {
193 // qDebug(d->selectedFiles->current()->file()); 193 // qDebug(d->selectedFiles->current()->file());
194 m3uList->add( d->selectedFiles->current()->file() ); 194 m3uList->add( d->selectedFiles->current()->file() );
195 } 195 }
196 while ( d->selectedFiles->next() ); 196 while ( d->selectedFiles->next() );
197 197
198 m3uList->write(); 198 m3uList->write();
199 m3uList->close(); 199 m3uList->close();
200 if(m3uList) delete m3uList; 200 if(m3uList) delete m3uList;
201 201
202 } 202 }
203 } 203 }
204} 204}
205 205
206void PlayListWidget::addToSelection( const DocLnk& lnk ) { 206void PlayListWidget::addToSelection( const DocLnk& lnk ) {
207 d->setDocumentUsed = FALSE; 207 d->setDocumentUsed = FALSE;
208 if( QFileInfo( lnk.file() ).exists() || 208 if( QFileInfo( lnk.file() ).exists() ||
209 lnk.file().left(4) == "http" ) { 209 lnk.file().left(4) == "http" ) {
210 d->selectedFiles->addToSelection( lnk ); 210 d->selectedFiles->addToSelection( lnk );
211 } 211 }
212// writeCurrentM3u(); 212// writeCurrentM3u();
213} 213}
214 214
215 215
216void PlayListWidget::clearList() { 216void PlayListWidget::clearList() {
217 while ( first() ) { 217 while ( first() ) {
218 d->selectedFiles->removeSelected(); 218 d->selectedFiles->removeSelected();
219 } 219 }
220} 220}
221 221
222void PlayListWidget::viewPressed( int mouse, QListViewItem *, const QPoint& , int) { 222void PlayListWidget::viewPressed( int mouse, QListViewItem *, const QPoint& , int) {
223 switch (mouse) { 223 switch (mouse) {
224 case 1: 224 case 1:
225 break; 225 break;
@@ -359,307 +359,307 @@ void PlayListWidget::addAllVideoToList() {
359 QString filename; 359 QString filename;
360 for ( ; videoIt.current(); ++videoIt ) { 360 for ( ; videoIt.current(); ++videoIt ) {
361 filename = videoIt.current()->text(3); 361 filename = videoIt.current()->text(3);
362 lnk.setName( QFileInfo(filename).baseName() ); //sets name 362 lnk.setName( QFileInfo(filename).baseName() ); //sets name
363 lnk.setFile( filename ); //sets file name 363 lnk.setFile( filename ); //sets file name
364 d->selectedFiles->addToSelection( lnk); 364 d->selectedFiles->addToSelection( lnk);
365 } 365 }
366 366
367 367
368 /* if(!videoScan) 368 /* if(!videoScan)
369 scanForVideo(); 369 scanForVideo();
370 QListIterator<DocLnk> dit( vFiles.children() ); 370 QListIterator<DocLnk> dit( vFiles.children() );
371 for ( ; dit.current(); ++dit ) { 371 for ( ; dit.current(); ++dit ) {
372 if( QFileInfo( dit.current()->file() ).exists() ) { 372 if( QFileInfo( dit.current()->file() ).exists() ) {
373 d->selectedFiles->addToSelection( **dit ); 373 d->selectedFiles->addToSelection( **dit );
374 } 374 }
375 } 375 }
376*/ 376*/
377 tabWidget->setCurrentPage(0); 377 tabWidget->setCurrentPage(0);
378 writeCurrentM3u(); 378 writeCurrentM3u();
379 d->selectedFiles->first(); 379 d->selectedFiles->first();
380} 380}
381 381
382 382
383void PlayListWidget::setDocument( const QString& fileref ) { 383void PlayListWidget::setDocument( const QString& fileref ) {
384 // qDebug( "<<<<<<<<set document>>>>>>>>>> "+fileref ); 384 // qDebug( "<<<<<<<<set document>>>>>>>>>> "+fileref );
385 fromSetDocument = TRUE; 385 fromSetDocument = TRUE;
386 if ( fileref.isNull() ) { 386 if ( fileref.isNull() ) {
387 QMessageBox::warning( this, tr( "Invalid File" ), 387 QMessageBox::warning( this, tr( "Invalid File" ),
388 tr( "There was a problem in getting the file." ) ); 388 tr( "There was a problem in getting the file." ) );
389 return; 389 return;
390 } 390 }
391 391
392 clearList(); 392 clearList();
393 if( fileref.find( "m3u", 0, TRUE) != -1 ) { //is m3u 393 if( fileref.find( "m3u", 0, TRUE) != -1 ) { //is m3u
394 readm3u( fileref ); 394 readm3u( fileref );
395 } else if( DocLnk( fileref).file().find( "m3u", 0, TRUE) != -1 ) { 395 } else if( DocLnk( fileref).file().find( "m3u", 0, TRUE) != -1 ) {
396 readm3u( DocLnk( fileref).file() ); 396 readm3u( DocLnk( fileref).file() );
397 } else if( fileref.find( "pls", 0, TRUE) != -1 ) { //is pls 397 } else if( fileref.find( "pls", 0, TRUE) != -1 ) { //is pls
398 readPls( fileref ); 398 readPls( fileref );
399 } else if( DocLnk( fileref).file().find( "pls", 0, TRUE) != -1 ) { 399 } else if( DocLnk( fileref).file().find( "pls", 0, TRUE) != -1 ) {
400 readPls( DocLnk( fileref).file() ); 400 readPls( DocLnk( fileref).file() );
401 } else { 401 } else {
402 clearList(); 402 clearList();
403 addToSelection( DocLnk( fileref ) ); 403 addToSelection( DocLnk( fileref ) );
404 writeCurrentM3u(); 404 writeCurrentM3u();
405 405
406 d->setDocumentUsed = TRUE; 406 d->setDocumentUsed = TRUE;
407 mediaPlayerState->setPlaying( FALSE ); 407 mediaPlayerState.setPlaying( FALSE );
408 mediaPlayerState->setPlaying( TRUE ); 408 mediaPlayerState.setPlaying( TRUE );
409 } 409 }
410} 410}
411 411
412 412
413void PlayListWidget::useSelectedDocument() { 413void PlayListWidget::useSelectedDocument() {
414 d->setDocumentUsed = FALSE; 414 d->setDocumentUsed = FALSE;
415} 415}
416 416
417 417
418const DocLnk *PlayListWidget::current() const { // this is fugly 418const DocLnk *PlayListWidget::current() const { // this is fugly
419 assert( currentTab() == CurrentPlayList ); 419 assert( currentTab() == CurrentPlayList );
420 420
421 const DocLnk *lnk = d->selectedFiles->current(); 421 const DocLnk *lnk = d->selectedFiles->current();
422 if ( !lnk ) { 422 if ( !lnk ) {
423 d->selectedFiles->first(); 423 d->selectedFiles->first();
424 lnk = d->selectedFiles->current(); 424 lnk = d->selectedFiles->current();
425 } 425 }
426 assert( lnk ); 426 assert( lnk );
427 return lnk; 427 return lnk;
428} 428}
429 429
430 430
431bool PlayListWidget::prev() { 431bool PlayListWidget::prev() {
432 if ( mediaPlayerState->isShuffled() ) { 432 if ( mediaPlayerState.isShuffled() ) {
433 const DocLnk *cur = current(); 433 const DocLnk *cur = current();
434 int j = 1 + (int)(97.0 * rand() / (RAND_MAX + 1.0)); 434 int j = 1 + (int)(97.0 * rand() / (RAND_MAX + 1.0));
435 for ( int i = 0; i < j; i++ ) { 435 for ( int i = 0; i < j; i++ ) {
436 if ( !d->selectedFiles->next() ) 436 if ( !d->selectedFiles->next() )
437 d->selectedFiles->first(); 437 d->selectedFiles->first();
438 } 438 }
439 if ( cur == current() ) 439 if ( cur == current() )
440 if ( !d->selectedFiles->next() ) { 440 if ( !d->selectedFiles->next() ) {
441 d->selectedFiles->first(); 441 d->selectedFiles->first();
442 } 442 }
443 return TRUE; 443 return TRUE;
444 } else { 444 } else {
445 if ( !d->selectedFiles->prev() ) { 445 if ( !d->selectedFiles->prev() ) {
446 if ( mediaPlayerState->isLooping() ) { 446 if ( mediaPlayerState.isLooping() ) {
447 return d->selectedFiles->last(); 447 return d->selectedFiles->last();
448 } else { 448 } else {
449 return FALSE; 449 return FALSE;
450 } 450 }
451 } 451 }
452 return TRUE; 452 return TRUE;
453 } 453 }
454} 454}
455 455
456 456
457bool PlayListWidget::next() { 457bool PlayListWidget::next() {
458//qDebug("<<<<<<<<<<<<next()"); 458//qDebug("<<<<<<<<<<<<next()");
459 if ( mediaPlayerState->isShuffled() ) { 459 if ( mediaPlayerState.isShuffled() ) {
460 return prev(); 460 return prev();
461 } else { 461 } else {
462 if ( !d->selectedFiles->next() ) { 462 if ( !d->selectedFiles->next() ) {
463 if ( mediaPlayerState->isLooping() ) { 463 if ( mediaPlayerState.isLooping() ) {
464 return d->selectedFiles->first(); 464 return d->selectedFiles->first();
465 } else { 465 } else {
466 return FALSE; 466 return FALSE;
467 } 467 }
468 } 468 }
469 return TRUE; 469 return TRUE;
470 } 470 }
471} 471}
472 472
473 473
474bool PlayListWidget::first() { 474bool PlayListWidget::first() {
475 return d->selectedFiles->first(); 475 return d->selectedFiles->first();
476} 476}
477 477
478 478
479bool PlayListWidget::last() { 479bool PlayListWidget::last() {
480 return d->selectedFiles->last(); 480 return d->selectedFiles->last();
481} 481}
482 482
483 483
484 void PlayListWidget::saveList() { 484 void PlayListWidget::saveList() {
485 writem3u(); 485 writem3u();
486 } 486 }
487 487
488 488
489void PlayListWidget::loadList( const DocLnk & lnk) { 489void PlayListWidget::loadList( const DocLnk & lnk) {
490 QString name = lnk.name(); 490 QString name = lnk.name();
491 // qDebug("<<<<<<<<<<<<<<<<<<<<<<<<currentList is "+name); 491 // qDebug("<<<<<<<<<<<<<<<<<<<<<<<<currentList is "+name);
492 492
493 if( name.length()>0) { 493 if( name.length()>0) {
494 setCaption("OpiePlayer: "+name); 494 setCaption("OpiePlayer: "+name);
495// qDebug("<<<<<<<<<<<<load list "+ lnk.file()); 495// qDebug("<<<<<<<<<<<<load list "+ lnk.file());
496 clearList(); 496 clearList();
497 readm3u(lnk.file()); 497 readm3u(lnk.file());
498 tabWidget->setCurrentPage(0); 498 tabWidget->setCurrentPage(0);
499 } 499 }
500} 500}
501 501
502void PlayListWidget::addSelected() { 502void PlayListWidget::addSelected() {
503 assert( inFileListMode() ); 503 assert( inFileListMode() );
504 504
505 QListView *fileListView = currentFileListView(); 505 QListView *fileListView = currentFileListView();
506 QListViewItemIterator it( fileListView ); 506 QListViewItemIterator it( fileListView );
507 for ( ; it.current(); ++it ) 507 for ( ; it.current(); ++it )
508 if ( it.current()->isSelected() ) { 508 if ( it.current()->isSelected() ) {
509 QString filename = it.current()->text(3); 509 QString filename = it.current()->text(3);
510 510
511 DocLnk lnk; 511 DocLnk lnk;
512 lnk.setName( QFileInfo( filename ).baseName() ); //sets name 512 lnk.setName( QFileInfo( filename ).baseName() ); //sets name
513 lnk.setFile( filename ); //sets file name 513 lnk.setFile( filename ); //sets file name
514 514
515 d->selectedFiles->addToSelection( lnk ); 515 d->selectedFiles->addToSelection( lnk );
516 } 516 }
517 517
518 fileListView->clearSelection(); 518 fileListView->clearSelection();
519 519
520 tabWidget->setCurrentPage( 0 ); 520 tabWidget->setCurrentPage( 0 );
521 writeCurrentM3u(); 521 writeCurrentM3u();
522} 522}
523 523
524 524
525void PlayListWidget::removeSelected() { 525void PlayListWidget::removeSelected() {
526 d->selectedFiles->removeSelected( ); 526 d->selectedFiles->removeSelected( );
527 writeCurrentM3u(); 527 writeCurrentM3u();
528} 528}
529 529
530 530
531void PlayListWidget::playIt( QListViewItem *it) { 531void PlayListWidget::playIt( QListViewItem *it) {
532 if(!it) return; 532 if(!it) return;
533 mediaPlayerState->setPlaying(FALSE); 533 mediaPlayerState.setPlaying(FALSE);
534 mediaPlayerState->setPlaying(TRUE); 534 mediaPlayerState.setPlaying(TRUE);
535 d->selectedFiles->unSelect(); 535 d->selectedFiles->unSelect();
536} 536}
537 537
538 538
539void PlayListWidget::addToSelection( QListViewItem *it) { 539void PlayListWidget::addToSelection( QListViewItem *it) {
540 d->setDocumentUsed = FALSE; 540 d->setDocumentUsed = FALSE;
541 541
542 if(it) { 542 if(it) {
543 if ( currentTab() == CurrentPlayList ) 543 if ( currentTab() == CurrentPlayList )
544 return; 544 return;
545 // case 1: { 545 // case 1: {
546 DocLnk lnk; 546 DocLnk lnk;
547 QString filename; 547 QString filename;
548 548
549 filename=it->text(3); 549 filename=it->text(3);
550 lnk.setName( QFileInfo(filename).baseName() ); //sets name 550 lnk.setName( QFileInfo(filename).baseName() ); //sets name
551 lnk.setFile( filename ); //sets file name 551 lnk.setFile( filename ); //sets file name
552 d->selectedFiles->addToSelection( lnk); 552 d->selectedFiles->addToSelection( lnk);
553 553
554 writeCurrentM3u(); 554 writeCurrentM3u();
555 tabWidget->setCurrentPage(0); 555 tabWidget->setCurrentPage(0);
556 556
557 } 557 }
558} 558}
559 559
560 560
561void PlayListWidget::tabChanged(QWidget *) { 561void PlayListWidget::tabChanged(QWidget *) {
562 562
563 d->tbPlay->setEnabled( true ); 563 d->tbPlay->setEnabled( true );
564 564
565 switch ( currentTab() ) { 565 switch ( currentTab() ) {
566 case CurrentPlayList: 566 case CurrentPlayList:
567 { 567 {
568 if( !tbDeletePlaylist->isHidden() ) { 568 if( !tbDeletePlaylist->isHidden() ) {
569 tbDeletePlaylist->hide(); 569 tbDeletePlaylist->hide();
570 } 570 }
571 d->tbRemoveFromList->setEnabled(TRUE); 571 d->tbRemoveFromList->setEnabled(TRUE);
572 d->tbAddToList->setEnabled(FALSE); 572 d->tbAddToList->setEnabled(FALSE);
573 573
574 d->tbPlay->setEnabled( !d->selectedFiles->isEmpty() ); 574 d->tbPlay->setEnabled( !d->selectedFiles->isEmpty() );
575 } 575 }
576 break; 576 break;
577 case AudioFiles: 577 case AudioFiles:
578 { 578 {
579 // audioView->clear(); 579 // audioView->clear();
580 if(!audioPopulated) populateAudioView(); 580 if(!audioPopulated) populateAudioView();
581 581
582 if( !tbDeletePlaylist->isHidden() ) { 582 if( !tbDeletePlaylist->isHidden() ) {
583 tbDeletePlaylist->hide(); 583 tbDeletePlaylist->hide();
584 } 584 }
585 d->tbRemoveFromList->setEnabled(FALSE); 585 d->tbRemoveFromList->setEnabled(FALSE);
586 d->tbAddToList->setEnabled(TRUE); 586 d->tbAddToList->setEnabled(TRUE);
587 } 587 }
588 break; 588 break;
589 case VideoFiles: 589 case VideoFiles:
590 { 590 {
591 // videoView->clear(); 591 // videoView->clear();
592 if(!videoPopulated) populateVideoView(); 592 if(!videoPopulated) populateVideoView();
593 if( !tbDeletePlaylist->isHidden() ) { 593 if( !tbDeletePlaylist->isHidden() ) {
594 tbDeletePlaylist->hide(); 594 tbDeletePlaylist->hide();
595 } 595 }
596 d->tbRemoveFromList->setEnabled(FALSE); 596 d->tbRemoveFromList->setEnabled(FALSE);
597 d->tbAddToList->setEnabled(TRUE); 597 d->tbAddToList->setEnabled(TRUE);
598 } 598 }
599 break; 599 break;
600 case PlayLists: 600 case PlayLists:
601 { 601 {
602 if( tbDeletePlaylist->isHidden() ) { 602 if( tbDeletePlaylist->isHidden() ) {
603 tbDeletePlaylist->show(); 603 tbDeletePlaylist->show();
604 } 604 }
605 playLists->reread(); 605 playLists->reread();
606 d->tbAddToList->setEnabled(FALSE); 606 d->tbAddToList->setEnabled(FALSE);
607 607
608 d->tbPlay->setEnabled( false ); 608 d->tbPlay->setEnabled( false );
609 } 609 }
610 break; 610 break;
611 }; 611 };
612} 612}
613 613
614 614
615void PlayListWidget::btnPlay(bool b) { 615void PlayListWidget::btnPlay(bool b) {
616// mediaPlayerState->setPlaying(false); 616// mediaPlayerState->setPlaying(false);
617 mediaPlayerState->setPlaying(b); 617 mediaPlayerState.setPlaying(b);
618 insanityBool=FALSE; 618 insanityBool=FALSE;
619} 619}
620 620
621void PlayListWidget::deletePlaylist() { 621void PlayListWidget::deletePlaylist() {
622 switch( QMessageBox::information( this, (tr("Remove Playlist?")), 622 switch( QMessageBox::information( this, (tr("Remove Playlist?")),
623 (tr("You really want to delete\nthis playlist?")), 623 (tr("You really want to delete\nthis playlist?")),
624 (tr("Yes")), (tr("No")), 0 )){ 624 (tr("Yes")), (tr("No")), 0 )){
625 case 0: // Yes clicked, 625 case 0: // Yes clicked,
626 QFile().remove(playLists->selectedDocument().file()); 626 QFile().remove(playLists->selectedDocument().file());
627 QFile().remove(playLists->selectedDocument().linkFile()); 627 QFile().remove(playLists->selectedDocument().linkFile());
628 playLists->reread(); 628 playLists->reread();
629 break; 629 break;
630 case 1: // Cancel 630 case 1: // Cancel
631 break; 631 break;
632 }; 632 };
633} 633}
634 634
635 635
636void PlayListWidget::playSelected() { 636void PlayListWidget::playSelected() {
637 btnPlay( TRUE); 637 btnPlay( TRUE);
638} 638}
639 639
640 640
641void PlayListWidget::scanForAudio() { 641void PlayListWidget::scanForAudio() {
642// qDebug("scan for audio"); 642// qDebug("scan for audio");
643 files.detachChildren(); 643 files.detachChildren();
644 QListIterator<DocLnk> sdit( files.children() ); 644 QListIterator<DocLnk> sdit( files.children() );
645 for ( ; sdit.current(); ++sdit ) { 645 for ( ; sdit.current(); ++sdit ) {
646 delete sdit.current(); 646 delete sdit.current();
647 } 647 }
648// Global::findDocuments( &files, "audio/*"); 648// Global::findDocuments( &files, "audio/*");
649 Global::findDocuments( &files, audioMimes); 649 Global::findDocuments( &files, audioMimes);
650 audioScan = true; 650 audioScan = true;
651 populateAudioView(); 651 populateAudioView();
652} 652}
653 653
654void PlayListWidget::scanForVideo() { 654void PlayListWidget::scanForVideo() {
655// qDebug("scan for video"); 655// qDebug("scan for video");
656 vFiles.detachChildren(); 656 vFiles.detachChildren();
657 QListIterator<DocLnk> sdit( vFiles.children() ); 657 QListIterator<DocLnk> sdit( vFiles.children() );
658 for ( ; sdit.current(); ++sdit ) { 658 for ( ; sdit.current(); ++sdit ) {
659 delete sdit.current(); 659 delete sdit.current();
660 } 660 }
661 Global::findDocuments(&vFiles, "video/*"); 661 Global::findDocuments(&vFiles, "video/*");
662 videoScan = true; 662 videoScan = true;
663 populateVideoView(); 663 populateVideoView();
664} 664}
665 665
@@ -1004,98 +1004,98 @@ void PlayListWidget::keyReleaseEvent( QKeyEvent *e ) {
1004 break; 1004 break;
1005 case Key_F12: //home 1005 case Key_F12: //home
1006 // doBlank(); 1006 // doBlank();
1007 break; 1007 break;
1008 case Key_F13: //mail 1008 case Key_F13: //mail
1009 // doUnblank(); 1009 // doUnblank();
1010 break; 1010 break;
1011 case Key_Q: //add to playlist 1011 case Key_Q: //add to playlist
1012 addSelected(); 1012 addSelected();
1013 break; 1013 break;
1014 case Key_R: //remove from playlist 1014 case Key_R: //remove from playlist
1015 removeSelected(); 1015 removeSelected();
1016 break; 1016 break;
1017 // case Key_P: //play 1017 // case Key_P: //play
1018 // qDebug("Play"); 1018 // qDebug("Play");
1019 // playSelected(); 1019 // playSelected();
1020 // break; 1020 // break;
1021 case Key_Space: 1021 case Key_Space:
1022 // playSelected(); puh 1022 // playSelected(); puh
1023 break; 1023 break;
1024 case Key_1: 1024 case Key_1:
1025 tabWidget->setCurrentPage( 0 ); 1025 tabWidget->setCurrentPage( 0 );
1026 break; 1026 break;
1027 case Key_2: 1027 case Key_2:
1028 tabWidget->setCurrentPage( 1 ); 1028 tabWidget->setCurrentPage( 1 );
1029 break; 1029 break;
1030 case Key_3: 1030 case Key_3:
1031 tabWidget->setCurrentPage( 2 ); 1031 tabWidget->setCurrentPage( 2 );
1032 break; 1032 break;
1033 case Key_4: 1033 case Key_4:
1034 tabWidget->setCurrentPage( 3 ); 1034 tabWidget->setCurrentPage( 3 );
1035 break; 1035 break;
1036 case Key_Down: 1036 case Key_Down:
1037 if ( !d->selectedFiles->next() ) 1037 if ( !d->selectedFiles->next() )
1038 d->selectedFiles->first(); 1038 d->selectedFiles->first();
1039 break; 1039 break;
1040 case Key_Up: 1040 case Key_Up:
1041 if ( !d->selectedFiles->prev() ) 1041 if ( !d->selectedFiles->prev() )
1042 // d->selectedFiles->last(); 1042 // d->selectedFiles->last();
1043 break; 1043 break;
1044 } 1044 }
1045} 1045}
1046 1046
1047void PlayListWidget::pmViewActivated(int index) { 1047void PlayListWidget::pmViewActivated(int index) {
1048// qDebug("%d", index); 1048// qDebug("%d", index);
1049 switch(index) { 1049 switch(index) {
1050 case -16: 1050 case -16:
1051 { 1051 {
1052 mediaPlayerState->toggleFullscreen(); 1052 mediaPlayerState.toggleFullscreen();
1053 bool b=mediaPlayerState->isFullscreen(); 1053 bool b=mediaPlayerState.isFullscreen();
1054 pmView->setItemChecked( index, b); 1054 pmView->setItemChecked( index, b);
1055 Config cfg( "OpiePlayer" ); 1055 Config cfg( "OpiePlayer" );
1056 cfg.writeEntry( "FullScreen", b ); 1056 cfg.writeEntry( "FullScreen", b );
1057 } 1057 }
1058 break; 1058 break;
1059 }; 1059 };
1060} 1060}
1061 1061
1062void PlayListWidget::populateSkinsMenu() { 1062void PlayListWidget::populateSkinsMenu() {
1063 int item = 0; 1063 int item = 0;
1064 defaultSkinIndex = 0; 1064 defaultSkinIndex = 0;
1065 QString skinName; 1065 QString skinName;
1066 Config cfg( "OpiePlayer" ); 1066 Config cfg( "OpiePlayer" );
1067 cfg.setGroup("Options" ); 1067 cfg.setGroup("Options" );
1068 QString skin = cfg.readEntry( "Skin", "default" ); 1068 QString skin = cfg.readEntry( "Skin", "default" );
1069 1069
1070 QDir skinsDir( QPEApplication::qpeDir() + "/pics/opieplayer2/skins" ); 1070 QDir skinsDir( QPEApplication::qpeDir() + "/pics/opieplayer2/skins" );
1071 skinsDir.setFilter( QDir::Dirs ); 1071 skinsDir.setFilter( QDir::Dirs );
1072 skinsDir.setSorting(QDir::Name ); 1072 skinsDir.setSorting(QDir::Name );
1073 const QFileInfoList *skinslist = skinsDir.entryInfoList(); 1073 const QFileInfoList *skinslist = skinsDir.entryInfoList();
1074 QFileInfoListIterator it( *skinslist ); 1074 QFileInfoListIterator it( *skinslist );
1075 QFileInfo *fi; 1075 QFileInfo *fi;
1076 while ( ( fi = it.current() ) ) { 1076 while ( ( fi = it.current() ) ) {
1077 skinName = fi->fileName(); 1077 skinName = fi->fileName();
1078// qDebug( fi->fileName() ); 1078// qDebug( fi->fileName() );
1079 if( skinName != "." && skinName != ".." && skinName !="CVS" ) { 1079 if( skinName != "." && skinName != ".." && skinName !="CVS" ) {
1080 item = skinsMenu->insertItem( fi->fileName() ) ; 1080 item = skinsMenu->insertItem( fi->fileName() ) ;
1081 } 1081 }
1082 if( skinName == "default" ) { 1082 if( skinName == "default" ) {
1083 defaultSkinIndex = item; 1083 defaultSkinIndex = item;
1084 } 1084 }
1085 if( skinName == skin ) { 1085 if( skinName == skin ) {
1086 skinsMenu->setItemChecked( item, TRUE ); 1086 skinsMenu->setItemChecked( item, TRUE );
1087 } 1087 }
1088 ++it; 1088 ++it;
1089 } 1089 }
1090} 1090}
1091 1091
1092void PlayListWidget::skinsMenuActivated( int item ) { 1092void PlayListWidget::skinsMenuActivated( int item ) {
1093 for(unsigned int i = defaultSkinIndex; i > defaultSkinIndex - skinsMenu->count(); i-- ) { 1093 for(unsigned int i = defaultSkinIndex; i > defaultSkinIndex - skinsMenu->count(); i-- ) {
1094 skinsMenu->setItemChecked( i, FALSE ); 1094 skinsMenu->setItemChecked( i, FALSE );
1095 } 1095 }
1096 skinsMenu->setItemChecked( item, TRUE ); 1096 skinsMenu->setItemChecked( item, TRUE );
1097 1097
1098 Config cfg( "OpiePlayer" ); 1098 Config cfg( "OpiePlayer" );
1099 cfg.setGroup("Options"); 1099 cfg.setGroup("Options");
1100 cfg.writeEntry("Skin", skinsMenu->text( item ) ); 1100 cfg.writeEntry("Skin", skinsMenu->text( item ) );
1101 QMessageBox::warning( this, tr( "OpiePlayer" ), 1101 QMessageBox::warning( this, tr( "OpiePlayer" ),
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.h b/noncore/multimedia/opieplayer2/playlistwidget.h
index fa2837a..3f52e63 100644
--- a/noncore/multimedia/opieplayer2/playlistwidget.h
+++ b/noncore/multimedia/opieplayer2/playlistwidget.h
@@ -24,117 +24,118 @@
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#ifndef PLAY_LIST_WIDGET_H 34#ifndef PLAY_LIST_WIDGET_H
35#define PLAY_LIST_WIDGET_H 35#define PLAY_LIST_WIDGET_H
36 36
37#include <qmainwindow.h> 37#include <qmainwindow.h>
38#include <qpe/applnk.h> 38#include <qpe/applnk.h>
39#include <qtabwidget.h> 39#include <qtabwidget.h>
40#include <qpe/fileselector.h> 40#include <qpe/fileselector.h>
41#include <qpushbutton.h> 41#include <qpushbutton.h>
42#include <qpopupmenu.h> 42#include <qpopupmenu.h>
43 43
44#include "playlistwidgetgui.h" 44#include "playlistwidgetgui.h"
45 45
46 46
47//class PlayListWidgetPrivate; 47//class PlayListWidgetPrivate;
48class Config; 48class Config;
49class QListViewItem; 49class QListViewItem;
50class QListView; 50class QListView;
51class QPoint; 51class QPoint;
52class QAction; 52class QAction;
53class QLabel; 53class QLabel;
54 54
55class PlayListWidget : public PlayListWidgetGui { 55class PlayListWidget : public PlayListWidgetGui {
56 Q_OBJECT 56 Q_OBJECT
57public: 57public:
58 enum TabType { CurrentPlayList, AudioFiles, VideoFiles, PlayLists }; 58 enum TabType { CurrentPlayList, AudioFiles, VideoFiles, PlayLists };
59 enum { TabTypeCount = 4 }; 59 enum { TabTypeCount = 4 };
60 60
61 struct Entry 61 struct Entry
62 { 62 {
63 Entry( const QString &_name, const QString &_fileName ) 63 Entry( const QString &_name, const QString &_fileName )
64 : name( _name ), file( _fileName ) {} 64 : name( _name ), file( _fileName ) {}
65 Entry( const QString &_fileName ) 65 Entry( const QString &_fileName )
66 : name( _fileName ), file( _fileName ) {} 66 : name( _fileName ), file( _fileName ) {}
67 67
68 QString name; 68 QString name;
69 QString file; 69 QString file;
70 }; 70 };
71 71
72 PlayListWidget( QWidget* parent=0, const char* name=0, WFlags fl=0 ); 72 PlayListWidget( MediaPlayerState &mediaPlayerState, QWidget* parent=0, const char* name=0 );
73 ~PlayListWidget(); 73 ~PlayListWidget();
74 DocLnkSet files; 74 DocLnkSet files;
75 DocLnkSet vFiles; 75 DocLnkSet vFiles;
76 bool fromSetDocument; 76 bool fromSetDocument;
77 bool insanityBool; 77 bool insanityBool;
78 QString setDocFileRef, currentPlayList; 78 QString setDocFileRef, currentPlayList;
79 // retrieve the current playlist entry (media file link) 79 // retrieve the current playlist entry (media file link)
80 const DocLnk *current() const; 80 const DocLnk *current() const;
81 void useSelectedDocument(); 81 void useSelectedDocument();
82 int selected; 82 int selected;
83 TabType currentTab() const; 83 TabType currentTab() const;
84 84
85 Entry currentEntry() const; 85 Entry currentEntry() const;
86 86
87public slots: 87public slots:
88 bool first(); 88 bool first();
89 bool last(); 89 bool last();
90 bool next(); 90 bool next();
91 bool prev(); 91 bool prev();
92 void writeDefaultPlaylist( ); 92 void writeDefaultPlaylist( );
93 QString currentFileListPathName() const; 93 QString currentFileListPathName() const;
94protected: 94protected:
95 void keyReleaseEvent( QKeyEvent *e); 95 void keyReleaseEvent( QKeyEvent *e);
96 96
97private: 97private:
98 int defaultSkinIndex; 98 int defaultSkinIndex;
99 bool audioScan, videoScan, audioPopulated, videoPopulated; 99 bool audioScan, videoScan, audioPopulated, videoPopulated;
100 void readm3u(const QString &); 100 void readm3u(const QString &);
101 void readPls(const QString &); 101 void readPls(const QString &);
102 void initializeStates(); 102 void initializeStates();
103 void populateAudioView(); 103 void populateAudioView();
104 void populateVideoView(); 104 void populateVideoView();
105 105
106 QListView *currentFileListView() const; 106 QListView *currentFileListView() const;
107 107
108 bool inFileListMode() const; 108 bool inFileListMode() const;
109 109
110private slots: 110private slots:
111 void populateSkinsMenu(); 111 void populateSkinsMenu();
112 void skinsMenuActivated(int); 112 void skinsMenuActivated(int);
113 void pmViewActivated(int); 113 void pmViewActivated(int);
114 void writem3u(); 114 void writem3u();
115 void writeCurrentM3u(); 115 void writeCurrentM3u();
116 void scanForAudio(); 116 void scanForAudio();
117 void scanForVideo(); 117 void scanForVideo();
118 void openFile(); 118 void openFile();
119 void setDocument( const QString& fileref ); 119 void setDocument( const QString& fileref );
120 void addToSelection( const DocLnk& ); // Add a media file to the playlist 120 void addToSelection( const DocLnk& ); // Add a media file to the playlist
121 void addToSelection( QListViewItem* ); // Add a media file to the playlist 121 void addToSelection( QListViewItem* ); // Add a media file to the playlist
122 void clearList(); 122 void clearList();
123 void addAllToList(); 123 void addAllToList();
124 void addAllMusicToList(); 124 void addAllMusicToList();
125 void addAllVideoToList(); 125 void addAllVideoToList();
126 void saveList(); // Save the playlist 126 void saveList(); // Save the playlist
127 void loadList( const DocLnk &); // Load a playlist 127 void loadList( const DocLnk &); // Load a playlist
128 void playIt( QListViewItem *); 128 void playIt( QListViewItem *);
129 void btnPlay(bool); 129 void btnPlay(bool);
130 void deletePlaylist(); 130 void deletePlaylist();
131 void addSelected(); 131 void addSelected();
132 void removeSelected(); 132 void removeSelected();
133 void tabChanged(QWidget*); 133 void tabChanged(QWidget*);
134 void viewPressed( int, QListViewItem *, const QPoint&, int); 134 void viewPressed( int, QListViewItem *, const QPoint&, int);
135 void playlistViewPressed( int, QListViewItem *, const QPoint&, int); 135 void playlistViewPressed( int, QListViewItem *, const QPoint&, int);
136 void playSelected(); 136 void playSelected();
137
137}; 138};
138 139
139#endif // PLAY_LIST_WIDGET_H 140#endif // PLAY_LIST_WIDGET_H
140 141
diff --git a/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp b/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp
index 8be7a2f..f47ddcc 100644
--- a/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp
+++ b/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp
@@ -14,100 +14,98 @@
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/qpemenubar.h> 34#include <qpe/qpemenubar.h>
35#include <qpe/qpetoolbar.h> 35#include <qpe/qpetoolbar.h>
36#include <qpe/fileselector.h> 36#include <qpe/fileselector.h>
37#include <qpe/qpeapplication.h> 37#include <qpe/qpeapplication.h>
38#include <qpe/storage.h> 38#include <qpe/storage.h>
39#include <qpe/mimetype.h> 39#include <qpe/mimetype.h>
40#include <qpe/config.h> 40#include <qpe/config.h>
41#include <qpe/global.h> 41#include <qpe/global.h>
42#include <qpe/resource.h> 42#include <qpe/resource.h>
43 43
44#include <qpopupmenu.h> 44#include <qpopupmenu.h>
45#include <qaction.h> 45#include <qaction.h>
46#include <qcursor.h> 46#include <qcursor.h>
47#include <qdir.h> 47#include <qdir.h>
48#include <qlayout.h> 48#include <qlayout.h>
49 49
50#include "playlistselection.h" 50#include "playlistselection.h"
51#include "playlistwidget.h" 51#include "playlistwidget.h"
52#include "mediaplayerstate.h" 52#include "mediaplayerstate.h"
53#include "inputDialog.h" 53#include "inputDialog.h"
54 54
55//only needed for the random play 55//only needed for the random play
56#include <stdlib.h> 56#include <stdlib.h>
57 57
58#include "audiowidget.h" 58#include "audiowidget.h"
59#include "videowidget.h" 59#include "videowidget.h"
60#include "mediaplayerstate.h" 60#include "mediaplayerstate.h"
61 61
62extern MediaPlayerState *mediaPlayerState; 62PlayListWidgetGui::PlayListWidgetGui( MediaPlayerState &_mediaPlayerState, QWidget* parent, const char* name )
63 63 : QMainWindow( parent, name ), mediaPlayerState( _mediaPlayerState ) {
64PlayListWidgetGui::PlayListWidgetGui( QWidget* parent, const char* name, WFlags fl )
65 : QMainWindow( parent, name, fl ) {
66 64
67 d = new PlayListWidgetPrivate; 65 d = new PlayListWidgetPrivate;
68 d->setDocumentUsed = FALSE; 66 d->setDocumentUsed = FALSE;
69 67
70 setBackgroundMode( PaletteButton ); 68 setBackgroundMode( PaletteButton );
71 setToolBarsMovable( FALSE ); 69 setToolBarsMovable( FALSE );
72 70
73 // Create Toolbar 71 // Create Toolbar
74 QPEToolBar *toolbar = new QPEToolBar( this ); 72 QPEToolBar *toolbar = new QPEToolBar( this );
75 toolbar->setHorizontalStretchable( TRUE ); 73 toolbar->setHorizontalStretchable( TRUE );
76 74
77 // Create Menubar 75 // Create Menubar
78 QPEMenuBar *menu = new QPEMenuBar( toolbar ); 76 QPEMenuBar *menu = new QPEMenuBar( toolbar );
79 menu->setMargin( 0 ); 77 menu->setMargin( 0 );
80 78
81 bar = new QPEToolBar( this ); 79 bar = new QPEToolBar( this );
82 bar->setLabel( tr( "Play Operations" ) ); 80 bar->setLabel( tr( "Play Operations" ) );
83 81
84 tbDeletePlaylist = new QPushButton( Resource::loadIconSet( "trash" ), "", bar, "close" ); 82 tbDeletePlaylist = new QPushButton( Resource::loadIconSet( "trash" ), "", bar, "close" );
85 tbDeletePlaylist->setFlat( TRUE ); 83 tbDeletePlaylist->setFlat( TRUE );
86 tbDeletePlaylist->setFixedSize( 20, 20 ); 84 tbDeletePlaylist->setFixedSize( 20, 20 );
87 85
88 tbDeletePlaylist->hide(); 86 tbDeletePlaylist->hide();
89 87
90 pmPlayList = new QPopupMenu( this ); 88 pmPlayList = new QPopupMenu( this );
91 menu->insertItem( tr( "File" ), pmPlayList ); 89 menu->insertItem( tr( "File" ), pmPlayList );
92 90
93 pmView = new QPopupMenu( this ); 91 pmView = new QPopupMenu( this );
94 menu->insertItem( tr( "View" ), pmView ); 92 menu->insertItem( tr( "View" ), pmView );
95 pmView->isCheckable(); 93 pmView->isCheckable();
96 94
97 skinsMenu = new QPopupMenu( this ); 95 skinsMenu = new QPopupMenu( this );
98 pmView->insertItem( tr( "Skins" ), skinsMenu ); 96 pmView->insertItem( tr( "Skins" ), skinsMenu );
99 skinsMenu->isCheckable(); 97 skinsMenu->isCheckable();
100 98
101 gammaMenu = new QPopupMenu( this ); 99 gammaMenu = new QPopupMenu( this );
102 pmView->insertItem( tr( "Gamma (Video)" ), gammaMenu ); 100 pmView->insertItem( tr( "Gamma (Video)" ), gammaMenu );
103 101
104 gammaSlider = new QSlider( QSlider::Vertical, gammaMenu ); 102 gammaSlider = new QSlider( QSlider::Vertical, gammaMenu );
105 gammaSlider->setRange( -40, 40 ); 103 gammaSlider->setRange( -40, 40 );
106 gammaSlider->setTickmarks( QSlider::Left ); 104 gammaSlider->setTickmarks( QSlider::Left );
107 gammaSlider->setTickInterval( 20 ); 105 gammaSlider->setTickInterval( 20 );
108 gammaSlider->setFocusPolicy( QWidget::StrongFocus ); 106 gammaSlider->setFocusPolicy( QWidget::StrongFocus );
109 gammaSlider->setValue( 0 ); 107 gammaSlider->setValue( 0 );
110 gammaSlider->setMinimumHeight( 50 ); 108 gammaSlider->setMinimumHeight( 50 );
111 109
112 gammaLCD = new QLCDNumber( 3, gammaMenu ); 110 gammaLCD = new QLCDNumber( 3, gammaMenu );
113 gammaLCD-> setFrameShape ( QFrame::NoFrame ); 111 gammaLCD-> setFrameShape ( QFrame::NoFrame );
@@ -176,53 +174,53 @@ PlayListWidgetGui::PlayListWidgetGui( QWidget* parent, const char* name, WFlags
176 videoView = new QListView( vTab, "Videoview" ); 174 videoView = new QListView( vTab, "Videoview" );
177 videoView->addColumn( tr( "Title" ), 140); 175 videoView->addColumn( tr( "Title" ), 140);
178 videoView->addColumn( tr( "Size" ), -1 ); 176 videoView->addColumn( tr( "Size" ), -1 );
179 videoView->addColumn(tr( "Media" ), 0 ); 177 videoView->addColumn(tr( "Media" ), 0 );
180 videoView->addColumn(tr( "Path" ), -1 ); 178 videoView->addColumn(tr( "Path" ), -1 );
181 videoView->setColumnAlignment( 1, Qt::AlignRight ); 179 videoView->setColumnAlignment( 1, Qt::AlignRight );
182 videoView->setColumnAlignment( 2, Qt::AlignRight ); 180 videoView->setColumnAlignment( 2, Qt::AlignRight );
183 videoView->setAllColumnsShowFocus( TRUE ); 181 videoView->setAllColumnsShowFocus( TRUE );
184 videoView->setSorting( 3, TRUE ); 182 videoView->setSorting( 3, TRUE );
185 videoView->setMultiSelection( TRUE ); 183 videoView->setMultiSelection( TRUE );
186 videoView->setSelectionMode( QListView::Extended ); 184 videoView->setSelectionMode( QListView::Extended );
187 Vlayout->addMultiCellWidget( videoView, 0, 0, 0, 1 ); 185 Vlayout->addMultiCellWidget( videoView, 0, 0, 0, 1 );
188 186
189 QPEApplication::setStylusOperation( videoView->viewport(), QPEApplication::RightOnHold ); 187 QPEApplication::setStylusOperation( videoView->viewport(), QPEApplication::RightOnHold );
190 188
191 tabWidget->insertTab( vTab, tr( "Video" ) ); 189 tabWidget->insertTab( vTab, tr( "Video" ) );
192 190
193 //playlists list 191 //playlists list
194 QWidget *LTab; 192 QWidget *LTab;
195 LTab = new QWidget( tabWidget, "LTab" ); 193 LTab = new QWidget( tabWidget, "LTab" );
196 QGridLayout *Llayout = new QGridLayout( LTab ); 194 QGridLayout *Llayout = new QGridLayout( LTab );
197 Llayout->setSpacing( 2 ); 195 Llayout->setSpacing( 2 );
198 Llayout->setMargin( 2 ); 196 Llayout->setMargin( 2 );
199 197
200 playLists = new FileSelector( "playlist/plain;audio/x-mpegurl", LTab, "fileselector" , FALSE, FALSE ); 198 playLists = new FileSelector( "playlist/plain;audio/x-mpegurl", LTab, "fileselector" , FALSE, FALSE );
201 Llayout->addMultiCellWidget( playLists, 0, 0, 0, 1 ); 199 Llayout->addMultiCellWidget( playLists, 0, 0, 0, 1 );
202 200
203 tabWidget->insertTab( LTab, tr( "Lists" ) ); 201 tabWidget->insertTab( LTab, tr( "Lists" ) );
204 202
205 setCentralWidget( vbox5 ); 203 setCentralWidget( vbox5 );
206} 204}
207 205
208 206
209 207
210PlayListWidgetGui::~PlayListWidgetGui() { 208PlayListWidgetGui::~PlayListWidgetGui() {
211} 209}
212 210
213void PlayListWidgetGui::setView( char view ) { 211void PlayListWidgetGui::setView( char view ) {
214 if ( view == 'l' ) 212 if ( view == 'l' )
215 showMaximized(); 213 showMaximized();
216 else 214 else
217 hide(); 215 hide();
218} 216}
219 217
220 218
221void PlayListWidgetGui::setActiveWindow() { 219void PlayListWidgetGui::setActiveWindow() {
222 // qDebug("SETTING active window"); 220 // qDebug("SETTING active window");
223 // When we get raised we need to ensure that it switches views 221 // When we get raised we need to ensure that it switches views
224 MediaPlayerState::DisplayType origDisplayType = mediaPlayerState->displayType(); 222 MediaPlayerState::DisplayType origDisplayType = mediaPlayerState.displayType();
225 mediaPlayerState->setDisplayType( MediaPlayerState::MediaSelection ); // invalidate 223 mediaPlayerState.setDisplayType( MediaPlayerState::MediaSelection ); // invalidate
226 mediaPlayerState->setDisplayType( origDisplayType ); // now switch back 224 mediaPlayerState.setDisplayType( origDisplayType ); // now switch back
227} 225}
228 226
diff --git a/noncore/multimedia/opieplayer2/playlistwidgetgui.h b/noncore/multimedia/opieplayer2/playlistwidgetgui.h
index 4eefb93..9b5252a 100644
--- a/noncore/multimedia/opieplayer2/playlistwidgetgui.h
+++ b/noncore/multimedia/opieplayer2/playlistwidgetgui.h
@@ -4,125 +4,127 @@
4              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org> 4              Copyright (c) 2002 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#ifndef PLAY_LIST_WIDGET_GUI_H 34#ifndef PLAY_LIST_WIDGET_GUI_H
35#define PLAY_LIST_WIDGET_GUI_H 35#define PLAY_LIST_WIDGET_GUI_H
36 36
37#include <qmainwindow.h> 37#include <qmainwindow.h>
38#include <qpe/applnk.h> 38#include <qpe/applnk.h>
39#include <qpe/resource.h> 39#include <qpe/resource.h>
40#include <qpe/qpemenubar.h> 40#include <qpe/qpemenubar.h>
41 41
42#include <qtabwidget.h> 42#include <qtabwidget.h>
43#include <qpe/fileselector.h> 43#include <qpe/fileselector.h>
44#include <qpushbutton.h> 44#include <qpushbutton.h>
45#include <qpopupmenu.h> 45#include <qpopupmenu.h>
46#include <qaction.h> 46#include <qaction.h>
47#include <qslider.h> 47#include <qslider.h>
48#include <qlcdnumber.h> 48#include <qlcdnumber.h>
49 49
50class PlayListWidgetPrivate; 50class PlayListWidgetPrivate;
51class PlayListSelection; 51class PlayListSelection;
52class MediaPlayerState;
52 53
53class Config; 54class Config;
54class QPEToolBar; 55class QPEToolBar;
55class QListViewItem; 56class QListViewItem;
56class QListView; 57class QListView;
57class QPoint; 58class QPoint;
58class QAction; 59class QAction;
59class QLabel; 60class QLabel;
60 61
61class PlayListWidgetPrivate { 62class PlayListWidgetPrivate {
62public: 63public:
63 QToolButton *tbPlay, *tbFull, *tbLoop, *tbShuffle, *tbAddToList, *tbRemoveFromList, *tbMoveUp, *tbMoveDown, *tbRemove; 64 QToolButton *tbPlay, *tbFull, *tbLoop, *tbShuffle, *tbAddToList, *tbRemoveFromList, *tbMoveUp, *tbMoveDown, *tbRemove;
64 QFrame *playListFrame; 65 QFrame *playListFrame;
65 PlayListSelection *selectedFiles; 66 PlayListSelection *selectedFiles;
66 bool setDocumentUsed; 67 bool setDocumentUsed;
67}; 68};
68 69
69 70
70class ToolButton : public QToolButton { 71class ToolButton : public QToolButton {
71public: 72public:
72 ToolButton( QWidget *parent, const char *name, const QString& icon, QObject *handler, const QString& slot, bool t = FALSE ) 73 ToolButton( QWidget *parent, const char *name, const QString& icon, QObject *handler, const QString& slot, bool t = FALSE )
73 : QToolButton( parent, name ) { 74 : QToolButton( parent, name ) {
74 setTextLabel( name ); 75 setTextLabel( name );
75 setPixmap( Resource::loadPixmap( icon ) ); 76 setPixmap( Resource::loadPixmap( icon ) );
76 setAutoRaise( TRUE ); 77 setAutoRaise( TRUE );
77 setFocusPolicy( QWidget::NoFocus ); 78 setFocusPolicy( QWidget::NoFocus );
78 setToggleButton( t ); 79 setToggleButton( t );
79 connect( this, t ? SIGNAL( toggled(bool) ) : SIGNAL( clicked() ), handler, slot ); 80 connect( this, t ? SIGNAL( toggled(bool) ) : SIGNAL( clicked() ), handler, slot );
80 QPEMenuToolFocusManager::manager()->addWidget( this ); 81 QPEMenuToolFocusManager::manager()->addWidget( this );
81 } 82 }
82}; 83};
83 84
84 85
85class MenuItem : public QAction { 86class MenuItem : public QAction {
86 87
87public: 88public:
88 MenuItem( QWidget *parent, const QString& text, QObject *handler, const QString& slot ) 89 MenuItem( QWidget *parent, const QString& text, QObject *handler, const QString& slot )
89 : QAction( text, QString::null, 0, 0 ) { 90 : QAction( text, QString::null, 0, 0 ) {
90 connect( this, SIGNAL( activated() ), handler, slot ); 91 connect( this, SIGNAL( activated() ), handler, slot );
91 addTo( parent ); 92 addTo( parent );
92 } 93 }
93}; 94};
94 95
95class PlayListWidgetGui : public QMainWindow { 96class PlayListWidgetGui : public QMainWindow {
96 Q_OBJECT 97 Q_OBJECT
97public: 98public:
98 PlayListWidgetGui( QWidget* parent=0, const char* name=0, WFlags fl=0 ); 99 PlayListWidgetGui( MediaPlayerState &_mediaPlayerState, QWidget* parent=0, const char* name=0 );
99 ~PlayListWidgetGui(); 100 ~PlayListWidgetGui();
100 101
101protected: 102protected:
102 QTabWidget * tabWidget; 103 QTabWidget * tabWidget;
103 QListView *audioView, *videoView, *playlistView; 104 QListView *audioView, *videoView, *playlistView;
104 QLabel *libString; 105 QLabel *libString;
105 QPopupMenu *pmView ; 106 QPopupMenu *pmView ;
106 QPopupMenu *gammaMenu; 107 QPopupMenu *gammaMenu;
107 QSlider *gammaSlider; 108 QSlider *gammaSlider;
108 QLCDNumber *gammaLCD; 109 QLCDNumber *gammaLCD;
109 bool fromSetDocument; 110 bool fromSetDocument;
110 bool insanityBool; 111 bool insanityBool;
111 QString setDocFileRef; 112 QString setDocFileRef;
112 // retrieve the current playlist entry (media file link) 113 // retrieve the current playlist entry (media file link)
113 QPushButton *tbDeletePlaylist; 114 QPushButton *tbDeletePlaylist;
114 int selected; 115 int selected;
115 QPopupMenu *pmPlayList; 116 QPopupMenu *pmPlayList;
116 FileSelector* playLists; 117 FileSelector* playLists;
117 QPopupMenu *skinsMenu; 118 QPopupMenu *skinsMenu;
118 PlayListWidgetPrivate *d; // Private implementation data 119 PlayListWidgetPrivate *d; // Private implementation data
119 QVBox *vbox1; 120 QVBox *vbox1;
120 QVBox *vbox5; 121 QVBox *vbox5;
121 QPEToolBar *bar; 122 QPEToolBar *bar;
122 void setActiveWindow(); // need to handle this to show the right view 123 void setActiveWindow(); // need to handle this to show the right view
123 void setView( char ); 124 void setView( char );
124 125
126 MediaPlayerState &mediaPlayerState;
125}; 127};
126 128
127#endif 129#endif
128 130