summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/playlistwidget.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/core/multimedia/opieplayer/playlistwidget.cpp b/core/multimedia/opieplayer/playlistwidget.cpp
index 3171a84..cb58888 100644
--- a/core/multimedia/opieplayer/playlistwidget.cpp
+++ b/core/multimedia/opieplayer/playlistwidget.cpp
@@ -1,225 +1,226 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2000 Trolltech AS. All rights reserved. 2** Copyright (C) 2000 Trolltech AS. All rights reserved.
3** 3**
4** This file is part of Qtopia Environment. 4** This file is part of Qtopia Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 6** This file may be distributed and/or modified under the terms of the
7** GNU General Public License version 2 as published by the Free Software 7** GNU General Public License version 2 as published by the Free Software
8** Foundation and appearing in the file LICENSE.GPL included in the 8** Foundation and appearing in the file LICENSE.GPL included in the
9** packaging of this file. 9** packaging of this file.
10** 10**
11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 11** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 12** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
13** 13**
14** See http://www.trolltech.com/gpl/ for GPL licensing information. 14** See http://www.trolltech.com/gpl/ for GPL licensing information.
15** 15**
16** Contact info@trolltech.com if any conditions of this licensing are 16** Contact info@trolltech.com if any conditions of this licensing are
17** not clear to you. 17** not clear to you.
18** 18**
19**********************************************************************/ 19**********************************************************************/
20// code added by L. J. Potter Sat 03-02-2002 06:17:54 20// code added by L. J. Potter Sat 03-02-2002 06:17:54
21 21
22#include <qpe/qpemenubar.h> 22#include <qpe/qpemenubar.h>
23#include <qpe/qpetoolbar.h> 23#include <qpe/qpetoolbar.h>
24#include <qpe/fileselector.h> 24#include <qpe/fileselector.h>
25#include <qpe/qpeapplication.h> 25#include <qpe/qpeapplication.h>
26 26
27#include <qpe/applnk.h> 27#include <qpe/applnk.h>
28#include <qpe/config.h> 28#include <qpe/config.h>
29#include <qpe/global.h> 29#include <qpe/global.h>
30#include <qpe/resource.h> 30#include <qpe/resource.h>
31#include <qaction.h> 31#include <qaction.h>
32#include <qimage.h> 32#include <qimage.h>
33#include <qfile.h> 33#include <qfile.h>
34#include <qdir.h>
34#include <qlayout.h> 35#include <qlayout.h>
35#include <qlabel.h> 36#include <qlabel.h>
36#include <qlist.h> 37#include <qlist.h>
37#include <qlistbox.h> 38#include <qlistbox.h>
38#include <qmainwindow.h> 39#include <qmainwindow.h>
39#include <qmessagebox.h> 40#include <qmessagebox.h>
40#include <qtoolbutton.h> 41#include <qtoolbutton.h>
41#include <qtabwidget.h> 42#include <qtabwidget.h>
42#include <qlistview.h> 43#include <qlistview.h>
43#include <qpoint.h> 44#include <qpoint.h>
44#include <qlineedit.h> 45#include <qlineedit.h>
45#include <qpushbutton.h> 46#include <qpushbutton.h>
46 47
47//#include <qtimer.h> 48//#include <qtimer.h>
48 49
49#include "playlistselection.h" 50#include "playlistselection.h"
50#include "playlistwidget.h" 51#include "playlistwidget.h"
51#include "mediaplayerstate.h" 52#include "mediaplayerstate.h"
52 53
53#include "inputDialog.h" 54#include "inputDialog.h"
54 55
55#include <stdlib.h> 56#include <stdlib.h>
56 57
57#define BUTTONS_ON_TOOLBAR 58#define BUTTONS_ON_TOOLBAR
58#define SIDE_BUTTONS 59#define SIDE_BUTTONS
59#define CAN_SAVE_LOAD_PLAYLISTS 60#define CAN_SAVE_LOAD_PLAYLISTS
60 61
61extern MediaPlayerState *mediaPlayerState; 62extern MediaPlayerState *mediaPlayerState;
62 63
63// class myFileSelector { 64// class myFileSelector {
64 65
65// }; 66// };
66class PlayListWidgetPrivate { 67class PlayListWidgetPrivate {
67public: 68public:
68 QToolButton *tbPlay, *tbFull, *tbLoop, *tbScale, *tbShuffle, *tbAddToList, *tbRemoveFromList, *tbMoveUp, *tbMoveDown, *tbRemove; 69 QToolButton *tbPlay, *tbFull, *tbLoop, *tbScale, *tbShuffle, *tbAddToList, *tbRemoveFromList, *tbMoveUp, *tbMoveDown, *tbRemove;
69 QFrame *playListFrame; 70 QFrame *playListFrame;
70 FileSelector *files; 71 FileSelector *files;
71 PlayListSelection *selectedFiles; 72 PlayListSelection *selectedFiles;
72 bool setDocumentUsed; 73 bool setDocumentUsed;
73 DocLnk *current; 74 DocLnk *current;
74}; 75};
75 76
76 77
77class ToolButton : public QToolButton { 78class ToolButton : public QToolButton {
78public: 79public:
79 ToolButton( QWidget *parent, const char *name, const QString& icon, QObject *handler, const QString& slot, bool t = FALSE ) 80 ToolButton( QWidget *parent, const char *name, const QString& icon, QObject *handler, const QString& slot, bool t = FALSE )
80 : QToolButton( parent, name ) { 81 : QToolButton( parent, name ) {
81 setTextLabel( name ); 82 setTextLabel( name );
82 setPixmap( Resource::loadPixmap( icon ) ); 83 setPixmap( Resource::loadPixmap( icon ) );
83 setAutoRaise( TRUE ); 84 setAutoRaise( TRUE );
84 setFocusPolicy( QWidget::NoFocus ); 85 setFocusPolicy( QWidget::NoFocus );
85 setToggleButton( t ); 86 setToggleButton( t );
86 connect( this, t ? SIGNAL( toggled(bool) ) : SIGNAL( clicked() ), handler, slot ); 87 connect( this, t ? SIGNAL( toggled(bool) ) : SIGNAL( clicked() ), handler, slot );
87 QPEMenuToolFocusManager::manager()->addWidget( this ); 88 QPEMenuToolFocusManager::manager()->addWidget( this );
88 } 89 }
89}; 90};
90 91
91 92
92class MenuItem : public QAction { 93class MenuItem : public QAction {
93public: 94public:
94 MenuItem( QWidget *parent, const QString& text, QObject *handler, const QString& slot ) 95 MenuItem( QWidget *parent, const QString& text, QObject *handler, const QString& slot )
95 : QAction( text, QString::null, 0, 0 ) { 96 : QAction( text, QString::null, 0, 0 ) {
96 connect( this, SIGNAL( activated() ), handler, slot ); 97 connect( this, SIGNAL( activated() ), handler, slot );
97 addTo( parent ); 98 addTo( parent );
98 } 99 }
99}; 100};
100 101
101 102
102PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl ) 103PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl )
103 : QMainWindow( parent, name, fl ) { 104 : QMainWindow( parent, name, fl ) {
104 105
105 d = new PlayListWidgetPrivate; 106 d = new PlayListWidgetPrivate;
106 d->setDocumentUsed = FALSE; 107 d->setDocumentUsed = FALSE;
107 d->current = NULL; 108 d->current = NULL;
108// menuTimer = new QTimer( this ,"menu timer"), 109// menuTimer = new QTimer( this ,"menu timer"),
109// connect( menuTimer, SIGNAL( timeout() ), SLOT( addSelected() ) ); 110// connect( menuTimer, SIGNAL( timeout() ), SLOT( addSelected() ) );
110 111
111 setBackgroundMode( PaletteButton ); 112 setBackgroundMode( PaletteButton );
112 113
113 setCaption( tr("OpiePlayer") ); 114 setCaption( tr("OpiePlayer") );
114 setIcon( Resource::loadPixmap( "MPEGPlayer" ) ); 115 setIcon( Resource::loadPixmap( "MPEGPlayer" ) );
115 116
116 setToolBarsMovable( FALSE ); 117 setToolBarsMovable( FALSE );
117 118
118 // Create Toolbar 119 // Create Toolbar
119 QPEToolBar *toolbar = new QPEToolBar( this ); 120 QPEToolBar *toolbar = new QPEToolBar( this );
120 toolbar->setHorizontalStretchable( TRUE ); 121 toolbar->setHorizontalStretchable( TRUE );
121 122
122 // Create Menubar 123 // Create Menubar
123 QPEMenuBar *menu = new QPEMenuBar( toolbar ); 124 QPEMenuBar *menu = new QPEMenuBar( toolbar );
124 menu->setMargin( 0 ); 125 menu->setMargin( 0 );
125 126
126 QPEToolBar *bar = new QPEToolBar( this ); 127 QPEToolBar *bar = new QPEToolBar( this );
127 bar->setLabel( tr( "Play Operations" ) ); 128 bar->setLabel( tr( "Play Operations" ) );
128// d->tbPlayCurList = new ToolButton( bar, tr( "play List" ), "mpegplayer/play_current_list", 129// d->tbPlayCurList = new ToolButton( bar, tr( "play List" ), "mpegplayer/play_current_list",
129// this , SLOT( addSelected()) ); 130// this , SLOT( addSelected()) );
130 tbDeletePlaylist = new QPushButton( Resource::loadIconSet("trash"),"",bar,"close"); 131 tbDeletePlaylist = new QPushButton( Resource::loadIconSet("trash"),"",bar,"close");
131 tbDeletePlaylist->setFlat(TRUE); 132 tbDeletePlaylist->setFlat(TRUE);
132 tbDeletePlaylist->setFixedSize(20,20); 133 tbDeletePlaylist->setFixedSize(20,20);
133 connect(tbDeletePlaylist,(SIGNAL(released())),SLOT( deletePlaylist())); 134 connect(tbDeletePlaylist,(SIGNAL(released())),SLOT( deletePlaylist()));
134 135
135 d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ), "mpegplayer/add_to_playlist", 136 d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ), "mpegplayer/add_to_playlist",
136 this , SLOT(addSelected()) ); 137 this , SLOT(addSelected()) );
137 d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ), "mpegplayer/remove_from_playlist", 138 d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ), "mpegplayer/remove_from_playlist",
138 this , SLOT(removeSelected()) ); 139 this , SLOT(removeSelected()) );
139// d->tbPlay = new ToolButton( bar, tr( "Play" ), "mpegplayer/play", /*this */mediaPlayerState , SLOT(setPlaying(bool) /* btnPlay() */), TRUE ); 140// d->tbPlay = new ToolButton( bar, tr( "Play" ), "mpegplayer/play", /*this */mediaPlayerState , SLOT(setPlaying(bool) /* btnPlay() */), TRUE );
140 d->tbPlay = new ToolButton( bar, tr( "Play" ), "mpegplayer/play", 141 d->tbPlay = new ToolButton( bar, tr( "Play" ), "mpegplayer/play",
141 this , SLOT( btnPlay(bool) ), TRUE ); 142 this , SLOT( btnPlay(bool) ), TRUE );
142 d->tbShuffle = new ToolButton( bar, tr( "Randomize" ),"mpegplayer/shuffle", 143 d->tbShuffle = new ToolButton( bar, tr( "Randomize" ),"mpegplayer/shuffle",
143 mediaPlayerState, SLOT(setShuffled(bool)), TRUE ); 144 mediaPlayerState, SLOT(setShuffled(bool)), TRUE );
144 d->tbLoop = new ToolButton( bar, tr( "Loop" ),"mpegplayer/loop", 145 d->tbLoop = new ToolButton( bar, tr( "Loop" ),"mpegplayer/loop",
145 mediaPlayerState, SLOT(setLooping(bool)), TRUE ); 146 mediaPlayerState, SLOT(setLooping(bool)), TRUE );
146 tbDeletePlaylist->hide(); 147 tbDeletePlaylist->hide();
147 148
148 QPopupMenu *pmPlayList = new QPopupMenu( this ); 149 QPopupMenu *pmPlayList = new QPopupMenu( this );
149 menu->insertItem( tr( "File" ), pmPlayList ); 150 menu->insertItem( tr( "File" ), pmPlayList );
150 new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) ); 151 new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) );
151 new MenuItem( pmPlayList, tr( "Add all audio files" ), this, SLOT( addAllMusicToList() ) ); 152 new MenuItem( pmPlayList, tr( "Add all audio files" ), this, SLOT( addAllMusicToList() ) );
152 new MenuItem( pmPlayList, tr( "Add all video files" ), this, SLOT( addAllVideoToList() ) ); 153 new MenuItem( pmPlayList, tr( "Add all video files" ), this, SLOT( addAllVideoToList() ) );
153 new MenuItem( pmPlayList, tr( "Add all files" ), this, SLOT( addAllToList() ) ); 154 new MenuItem( pmPlayList, tr( "Add all files" ), this, SLOT( addAllToList() ) );
154 new MenuItem( pmPlayList, tr( "Save PlayList" ), this, SLOT( saveList() ) ); 155 new MenuItem( pmPlayList, tr( "Save PlayList" ), this, SLOT( saveList() ) );
155 // new MenuItem( pmPlayList, tr( "Load PlayList" ), this, SLOT( loadList() ) ); 156 // new MenuItem( pmPlayList, tr( "Load PlayList" ), this, SLOT( loadList() ) );
156 157
157 QPopupMenu *pmView = new QPopupMenu( this ); 158 QPopupMenu *pmView = new QPopupMenu( this );
158 menu->insertItem( tr( "View" ), pmView ); 159 menu->insertItem( tr( "View" ), pmView );
159 160
160 fullScreenButton = new QAction(tr("Full Screen"), Resource::loadPixmap("fullscreen"), QString::null, 0, this, 0); 161 fullScreenButton = new QAction(tr("Full Screen"), Resource::loadPixmap("fullscreen"), QString::null, 0, this, 0);
161 connect( fullScreenButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleFullscreen()) ); 162 connect( fullScreenButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleFullscreen()) );
162 fullScreenButton->addTo(pmView); 163 fullScreenButton->addTo(pmView);
163 scaleButton = new QAction(tr("Scale"), Resource::loadPixmap("mpegplayer/scale"), QString::null, 0, this, 0); 164 scaleButton = new QAction(tr("Scale"), Resource::loadPixmap("mpegplayer/scale"), QString::null, 0, this, 0);
164 connect( scaleButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleScaled()) ); 165 connect( scaleButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleScaled()) );
165 scaleButton->addTo(pmView); 166 scaleButton->addTo(pmView);
166 167
167 QVBox *vbox5 = new QVBox( this ); vbox5->setBackgroundMode( PaletteButton ); 168 QVBox *vbox5 = new QVBox( this ); vbox5->setBackgroundMode( PaletteButton );
168 QVBox *vbox4 = new QVBox( vbox5 ); vbox4->setBackgroundMode( PaletteButton ); 169 QVBox *vbox4 = new QVBox( vbox5 ); vbox4->setBackgroundMode( PaletteButton );
169 170
170 QHBox *hbox6 = new QHBox( vbox4 ); hbox6->setBackgroundMode( PaletteButton ); 171 QHBox *hbox6 = new QHBox( vbox4 ); hbox6->setBackgroundMode( PaletteButton );
171 172
172 tabWidget = new QTabWidget( hbox6, "tabWidget" ); 173 tabWidget = new QTabWidget( hbox6, "tabWidget" );
173 tabWidget->setTabShape(QTabWidget::Triangular); 174 tabWidget->setTabShape(QTabWidget::Triangular);
174 175
175 QWidget *pTab; 176 QWidget *pTab;
176 pTab = new QWidget( tabWidget, "pTab" ); 177 pTab = new QWidget( tabWidget, "pTab" );
177 playlistView = new QListView( pTab, "Videoview" ); 178 playlistView = new QListView( pTab, "Videoview" );
178 playlistView->setMinimumSize(236,260); 179 playlistView->setMinimumSize(236,260);
179 tabWidget->insertTab( pTab,"Playlist"); 180 tabWidget->insertTab( pTab,"Playlist");
180 181
181 // Add the playlist area 182 // Add the playlist area
182 183
183 QVBox *vbox3 = new QVBox( pTab ); vbox3->setBackgroundMode( PaletteButton ); 184 QVBox *vbox3 = new QVBox( pTab ); vbox3->setBackgroundMode( PaletteButton );
184 d->playListFrame = vbox3; 185 d->playListFrame = vbox3;
185 d->playListFrame ->setMinimumSize(235,260); 186 d->playListFrame ->setMinimumSize(235,260);
186 187
187 QHBox *hbox2 = new QHBox( vbox3 ); hbox2->setBackgroundMode( PaletteButton ); 188 QHBox *hbox2 = new QHBox( vbox3 ); hbox2->setBackgroundMode( PaletteButton );
188 189
189 d->selectedFiles = new PlayListSelection( hbox2); 190 d->selectedFiles = new PlayListSelection( hbox2);
190 QVBox *vbox1 = new QVBox( hbox2 ); vbox1->setBackgroundMode( PaletteButton ); 191 QVBox *vbox1 = new QVBox( hbox2 ); vbox1->setBackgroundMode( PaletteButton );
191 192
192 QVBox *stretch1 = new QVBox( vbox1 ); stretch1->setBackgroundMode( PaletteButton ); // add stretch 193 QVBox *stretch1 = new QVBox( vbox1 ); stretch1->setBackgroundMode( PaletteButton ); // add stretch
193 new ToolButton( vbox1, tr( "Move Up" ), "mpegplayer/up", d->selectedFiles, SLOT(moveSelectedUp()) ); 194 new ToolButton( vbox1, tr( "Move Up" ), "mpegplayer/up", d->selectedFiles, SLOT(moveSelectedUp()) );
194 new ToolButton( vbox1, tr( "Remove" ), "mpegplayer/cut", d->selectedFiles, SLOT(removeSelected()) ); 195 new ToolButton( vbox1, tr( "Remove" ), "mpegplayer/cut", d->selectedFiles, SLOT(removeSelected()) );
195 new ToolButton( vbox1, tr( "Move Down" ), "mpegplayer/down", d->selectedFiles, SLOT(moveSelectedDown()) ); 196 new ToolButton( vbox1, tr( "Move Down" ), "mpegplayer/down", d->selectedFiles, SLOT(moveSelectedDown()) );
196 QVBox *stretch2 = new QVBox( vbox1 ); stretch2->setBackgroundMode( PaletteButton ); // add stretch 197 QVBox *stretch2 = new QVBox( vbox1 ); stretch2->setBackgroundMode( PaletteButton ); // add stretch
197 198
198 QWidget *aTab; 199 QWidget *aTab;
199 aTab = new QWidget( tabWidget, "aTab" ); 200 aTab = new QWidget( tabWidget, "aTab" );
200 audioView = new QListView( aTab, "Audioview" ); 201 audioView = new QListView( aTab, "Audioview" );
201 audioView->setMinimumSize(233,260); 202 audioView->setMinimumSize(233,260);
202 audioView->addColumn( "Title",150); 203 audioView->addColumn( "Title",150);
203 audioView->addColumn("Size", 45); 204 audioView->addColumn("Size", 45);
204 audioView->addColumn("Media",35); 205 audioView->addColumn("Media",35);
205 audioView->setColumnAlignment(1, Qt::AlignRight); 206 audioView->setColumnAlignment(1, Qt::AlignRight);
206 audioView->setColumnAlignment(2, Qt::AlignRight); 207 audioView->setColumnAlignment(2, Qt::AlignRight);
207 tabWidget->insertTab(aTab,"Audio"); 208 tabWidget->insertTab(aTab,"Audio");
208// audioView 209// audioView
209 Global::findDocuments(&files, "audio/*"); 210 Global::findDocuments(&files, "audio/*");
210 QListIterator<DocLnk> dit( files.children() ); 211 QListIterator<DocLnk> dit( files.children() );
211 QString storage; 212 QString storage;
212 for ( ; dit.current(); ++dit ) { 213 for ( ; dit.current(); ++dit ) {
213 QListViewItem * newItem; 214 QListViewItem * newItem;
214 if(dit.current()->file().find("/mnt/cf") != -1 ) storage="CF"; 215 if(dit.current()->file().find("/mnt/cf") != -1 ) storage="CF";
215 else if(dit.current()->file().find("/mnt/hda") != -1 ) storage="CF"; 216 else if(dit.current()->file().find("/mnt/hda") != -1 ) storage="CF";
216 else if(dit.current()->file().find("/mnt/card") != -1 ) storage="SD"; 217 else if(dit.current()->file().find("/mnt/card") != -1 ) storage="SD";
217 else storage="RAM"; 218 else storage="RAM";
218 if ( QFile( dit.current()->file()).exists() ) { 219 if ( QFile( dit.current()->file()).exists() ) {
219 newItem= /*(void)*/ new QListViewItem( audioView, dit.current()->name(), QString::number( QFile( dit.current()->file()).size() ), storage); 220 newItem= /*(void)*/ new QListViewItem( audioView, dit.current()->name(), QString::number( QFile( dit.current()->file()).size() ), storage);
220 newItem->setPixmap(0, Resource::loadPixmap( "mpegplayer/musicfile" )); 221 newItem->setPixmap(0, Resource::loadPixmap( "mpegplayer/musicfile" ));
221 } 222 }
222 } 223 }
223// videowidget 224// videowidget
224 225
225 QWidget *vTab; 226 QWidget *vTab;
@@ -351,389 +352,389 @@ void PlayListWidget::writeConfig( Config& cfg ) const {
351 // the way writing lnks doesn't really check for out 352 // the way writing lnks doesn't really check for out
352 // of disk space, but check it anyway. 353 // of disk space, but check it anyway.
353 if ( !lnk->writeLink() ) { 354 if ( !lnk->writeLink() ) {
354 QMessageBox::critical( 0, tr("Out of space"), 355 QMessageBox::critical( 0, tr("Out of space"),
355 tr( "There was a problem saving " 356 tr( "There was a problem saving "
356 "the playlist.\n" 357 "the playlist.\n"
357 "Your playlist " 358 "Your playlist "
358 "may be missing some entries\n" 359 "may be missing some entries\n"
359 "the next time you start it." ) 360 "the next time you start it." )
360 ); 361 );
361 } 362 }
362 } 363 }
363 noOfFiles++; 364 noOfFiles++;
364 } 365 }
365 } while ( d->selectedFiles->next() ); 366 } while ( d->selectedFiles->next() );
366 367
367 cfg.writeEntry("NumberOfFiles", noOfFiles ); 368 cfg.writeEntry("NumberOfFiles", noOfFiles );
368 369
369 370
370} 371}
371 372
372 373
373void PlayListWidget::addToSelection( const DocLnk& lnk ) { 374void PlayListWidget::addToSelection( const DocLnk& lnk ) {
374 qDebug("add"); 375 qDebug("add");
375 d->setDocumentUsed = FALSE; 376 d->setDocumentUsed = FALSE;
376 if ( mediaPlayerState->playlist() ) 377 if ( mediaPlayerState->playlist() )
377 d->selectedFiles->addToSelection( lnk ); 378 d->selectedFiles->addToSelection( lnk );
378 else 379 else
379 mediaPlayerState->setPlaying( TRUE ); 380 mediaPlayerState->setPlaying( TRUE );
380} 381}
381 382
382 383
383void PlayListWidget::clearList() { 384void PlayListWidget::clearList() {
384 while ( first() ) 385 while ( first() )
385 d->selectedFiles->removeSelected(); 386 d->selectedFiles->removeSelected();
386} 387}
387 388
388 389
389void PlayListWidget::addAllToList() { 390void PlayListWidget::addAllToList() {
390 DocLnkSet files; 391 DocLnkSet files;
391 Global::findDocuments(&files, "video/*;audio/*"); 392 Global::findDocuments(&files, "video/*;audio/*");
392 QListIterator<DocLnk> dit( files.children() ); 393 QListIterator<DocLnk> dit( files.children() );
393 for ( ; dit.current(); ++dit ) 394 for ( ; dit.current(); ++dit )
394 d->selectedFiles->addToSelection( **dit ); 395 d->selectedFiles->addToSelection( **dit );
395} 396}
396 397
397 398
398void PlayListWidget::addAllMusicToList() { 399void PlayListWidget::addAllMusicToList() {
399 DocLnkSet files; 400 DocLnkSet files;
400 Global::findDocuments(&files, "audio/*"); 401 Global::findDocuments(&files, "audio/*");
401 QListIterator<DocLnk> dit( files.children() ); 402 QListIterator<DocLnk> dit( files.children() );
402 for ( ; dit.current(); ++dit ) 403 for ( ; dit.current(); ++dit )
403 d->selectedFiles->addToSelection( **dit ); 404 d->selectedFiles->addToSelection( **dit );
404} 405}
405 406
406 407
407void PlayListWidget::addAllVideoToList() { 408void PlayListWidget::addAllVideoToList() {
408 DocLnkSet files; 409 DocLnkSet files;
409 Global::findDocuments(&files, "video/*"); 410 Global::findDocuments(&files, "video/*");
410 QListIterator<DocLnk> dit( files.children() ); 411 QListIterator<DocLnk> dit( files.children() );
411 for ( ; dit.current(); ++dit ) 412 for ( ; dit.current(); ++dit )
412 d->selectedFiles->addToSelection( **dit ); 413 d->selectedFiles->addToSelection( **dit );
413} 414}
414 415
415 416
416void PlayListWidget::setDocument(const QString& fileref) { 417void PlayListWidget::setDocument(const QString& fileref) {
417 if ( fileref.isNull() ) { 418 if ( fileref.isNull() ) {
418 QMessageBox::critical( 0, tr( "Invalid File" ), tr( "There was a problem in getting the file." ) ); 419 QMessageBox::critical( 0, tr( "Invalid File" ), tr( "There was a problem in getting the file." ) );
419 return; 420 return;
420 } 421 }
421 if(fileref.find("playlist",0,TRUE) == -1) { 422 if(fileref.find("playlist",0,TRUE) == -1) {
422 addToSelection( DocLnk( fileref ) ); 423 addToSelection( DocLnk( fileref ) );
423 d->setDocumentUsed = TRUE; 424 d->setDocumentUsed = TRUE;
424 qApp->processEvents(); 425 qApp->processEvents();
425 mediaPlayerState->setPlaying( FALSE ); 426 mediaPlayerState->setPlaying( FALSE );
426 qApp->processEvents(); 427 qApp->processEvents();
427 mediaPlayerState->setPlaying( TRUE ); 428 mediaPlayerState->setPlaying( TRUE );
428 d->selectedFiles->removeSelected( ); 429 d->selectedFiles->removeSelected( );
429 } else { 430 } else {
430 loadList(DocLnk(fileref)); 431 loadList(DocLnk(fileref));
431 d->selectedFiles->first(); 432 d->selectedFiles->first();
432// mediaPlayerState->setPlaying( TRUE ); 433// mediaPlayerState->setPlaying( TRUE );
433// mediaPlayerState->setPlaying( FALSE ); 434// mediaPlayerState->setPlaying( FALSE );
434 435
435 } 436 }
436} 437}
437 438
438 439
439void PlayListWidget::setActiveWindow() { 440void PlayListWidget::setActiveWindow() {
440 // When we get raised we need to ensure that it switches views 441 // When we get raised we need to ensure that it switches views
441 char origView = mediaPlayerState->view(); 442 char origView = mediaPlayerState->view();
442 mediaPlayerState->setView( 'l' ); // invalidate 443 mediaPlayerState->setView( 'l' ); // invalidate
443 mediaPlayerState->setView( origView ); // now switch back 444 mediaPlayerState->setView( origView ); // now switch back
444} 445}
445 446
446 447
447void PlayListWidget::useSelectedDocument() { 448void PlayListWidget::useSelectedDocument() {
448 d->setDocumentUsed = FALSE; 449 d->setDocumentUsed = FALSE;
449} 450}
450 451
451 452
452const DocLnk *PlayListWidget::current() { 453const DocLnk *PlayListWidget::current() {
453 454
454// qDebug("in Playlist widget ::current"); 455// qDebug("in Playlist widget ::current");
455 if ( mediaPlayerState->playlist() ) { 456 if ( mediaPlayerState->playlist() ) {
456 return d->selectedFiles->current(); 457 return d->selectedFiles->current();
457 } 458 }
458 else if ( d->setDocumentUsed && d->current ) { 459 else if ( d->setDocumentUsed && d->current ) {
459 return d->current; 460 return d->current;
460 } else { 461 } else {
461 return d->files->selected(); 462 return d->files->selected();
462 } 463 }
463} 464}
464 465
465 466
466bool PlayListWidget::prev() { 467bool PlayListWidget::prev() {
467 if ( mediaPlayerState->playlist() ) { 468 if ( mediaPlayerState->playlist() ) {
468 if ( mediaPlayerState->shuffled() ) { 469 if ( mediaPlayerState->shuffled() ) {
469 const DocLnk *cur = current(); 470 const DocLnk *cur = current();
470 int j = 1 + (int)(97.0 * rand() / (RAND_MAX + 1.0)); 471 int j = 1 + (int)(97.0 * rand() / (RAND_MAX + 1.0));
471 for ( int i = 0; i < j; i++ ) { 472 for ( int i = 0; i < j; i++ ) {
472 if ( !d->selectedFiles->next() ) 473 if ( !d->selectedFiles->next() )
473 d->selectedFiles->first(); 474 d->selectedFiles->first();
474 } 475 }
475 if ( cur == current() ) 476 if ( cur == current() )
476 if ( !d->selectedFiles->next() ) 477 if ( !d->selectedFiles->next() )
477 d->selectedFiles->first(); 478 d->selectedFiles->first();
478 return TRUE; 479 return TRUE;
479 } else { 480 } else {
480 if ( !d->selectedFiles->prev() ) { 481 if ( !d->selectedFiles->prev() ) {
481 if ( mediaPlayerState->looping() ) { 482 if ( mediaPlayerState->looping() ) {
482 return d->selectedFiles->last(); 483 return d->selectedFiles->last();
483 } else { 484 } else {
484 return FALSE; 485 return FALSE;
485 } 486 }
486 } 487 }
487 return TRUE; 488 return TRUE;
488 } 489 }
489 } else { 490 } else {
490 return mediaPlayerState->looping(); 491 return mediaPlayerState->looping();
491 } 492 }
492} 493}
493 494
494 495
495bool PlayListWidget::next() { 496bool PlayListWidget::next() {
496 if ( mediaPlayerState->playlist() ) { 497 if ( mediaPlayerState->playlist() ) {
497 if ( mediaPlayerState->shuffled() ) { 498 if ( mediaPlayerState->shuffled() ) {
498 return prev(); 499 return prev();
499 } else { 500 } else {
500 if ( !d->selectedFiles->next() ) { 501 if ( !d->selectedFiles->next() ) {
501 if ( mediaPlayerState->looping() ) { 502 if ( mediaPlayerState->looping() ) {
502 return d->selectedFiles->first(); 503 return d->selectedFiles->first();
503 } else { 504 } else {
504 return FALSE; 505 return FALSE;
505 } 506 }
506 } 507 }
507 return TRUE; 508 return TRUE;
508 } 509 }
509 } else { 510 } else {
510 return mediaPlayerState->looping(); 511 return mediaPlayerState->looping();
511 } 512 }
512} 513}
513 514
514 515
515bool PlayListWidget::first() { 516bool PlayListWidget::first() {
516 if ( mediaPlayerState->playlist() ) 517 if ( mediaPlayerState->playlist() )
517 return d->selectedFiles->first(); 518 return d->selectedFiles->first();
518 else 519 else
519 return mediaPlayerState->looping(); 520 return mediaPlayerState->looping();
520} 521}
521 522
522 523
523bool PlayListWidget::last() { 524bool PlayListWidget::last() {
524 if ( mediaPlayerState->playlist() ) 525 if ( mediaPlayerState->playlist() )
525 return d->selectedFiles->last(); 526 return d->selectedFiles->last();
526 else 527 else
527 return mediaPlayerState->looping(); 528 return mediaPlayerState->looping();
528} 529}
529 530
530 531
531void PlayListWidget::saveList() { 532void PlayListWidget::saveList() {
532 533
533 QString filename; 534 QString filename;
534 InputDialog *fileDlg; 535 InputDialog *fileDlg;
535 fileDlg=new InputDialog(this,"Save Playlist",TRUE, 0); 536 fileDlg=new InputDialog(this,"Save Playlist",TRUE, 0);
536 fileDlg->exec(); 537 fileDlg->exec();
537 if( fileDlg->result() == 1 ) { 538 if( fileDlg->result() == 1 ) {
538 filename = fileDlg->LineEdit1->text();//+".playlist"; 539 filename = fileDlg->LineEdit1->text();//+".playlist";
539 qDebug("saving playlist "+filename+".playlist"); 540 qDebug("saving playlist "+filename+".playlist");
540 Config cfg( filename +".playlist"); 541 Config cfg( filename +".playlist");
541 writeConfig( cfg ); 542 writeConfig( cfg );
542 DocLnk lnk; 543 DocLnk lnk;
543 lnk.setName( filename); //sets file name
544// lnk.setComment( ""); 544// lnk.setComment( "");
545 lnk.setFile(QPEApplication::qpeDir()+"Settings/"+filename+".playlist.conf"); //sets File property 545 lnk.setFile(QDir::homeDirPath()+"/Settings/"+filename+".playlist.conf"); //sets File property
546 lnk.setType("playlist/plain");// hey is this a REGISTERED mime type?!?!? ;D 546 lnk.setType("playlist/plain");// hey is this a REGISTERED mime type?!?!? ;D
547 lnk.setIcon("mpegplayer/playlist2"); 547 lnk.setIcon("mpegplayer/playlist2");
548 lnk.setName( filename); //sets file name
548 if(!lnk.writeLink()) 549 if(!lnk.writeLink())
549 qDebug("Writing doclink did not work"); 550 qDebug("Writing doclink did not work");
550 } 551 }
551 552
552 if(fileDlg) 553 if(fileDlg)
553 delete fileDlg; 554 delete fileDlg;
554 555
555} 556}
556 557
557 558
558void PlayListWidget::loadList( const DocLnk & lnk) { 559void PlayListWidget::loadList( const DocLnk & lnk) {
559 qDebug("load list "+ lnk.name()+".playlist"); 560 qDebug("load list "+ lnk.name()+".playlist");
560 clearList(); 561 clearList();
561 Config cfg( lnk.name()+".playlist"); 562 Config cfg( lnk.name()+".playlist");
562 readConfig(cfg); 563 readConfig(cfg);
563 tabWidget->setCurrentPage(0); 564 tabWidget->setCurrentPage(0);
564 setCaption("OpiePlayer: "+lnk.name()); 565 setCaption("OpiePlayer: "+lnk.name());
565} 566}
566 567
567 568
568void PlayListWidget::setPlaylist( bool shown ) { 569void PlayListWidget::setPlaylist( bool shown ) {
569 if ( shown ) 570 if ( shown )
570 d->playListFrame->show(); 571 d->playListFrame->show();
571 else 572 else
572 d->playListFrame->hide(); 573 d->playListFrame->hide();
573} 574}
574 575
575 576
576void PlayListWidget::setView( char view ) { 577void PlayListWidget::setView( char view ) {
577 if ( view == 'l' ) 578 if ( view == 'l' )
578 showMaximized(); 579 showMaximized();
579 else 580 else
580 hide(); 581 hide();
581} 582}
582 583
583void PlayListWidget::addSelected() { 584void PlayListWidget::addSelected() {
584 585
585 switch (tabWidget->currentPageIndex()) { 586 switch (tabWidget->currentPageIndex()) {
586 case 0: //playlist 587 case 0: //playlist
587 break; 588 break;
588 case 1: { //audio 589 case 1: { //audio
589 addToSelection( audioView->selectedItem() ); 590 addToSelection( audioView->selectedItem() );
590 } 591 }
591 break; 592 break;
592 case 2: { // video 593 case 2: { // video
593 addToSelection( videoView->selectedItem() ); 594 addToSelection( videoView->selectedItem() );
594 } 595 }
595 break; 596 break;
596 }; 597 };
597} 598}
598 599
599void PlayListWidget::removeSelected() { 600void PlayListWidget::removeSelected() {
600 d->selectedFiles->removeSelected( ); 601 d->selectedFiles->removeSelected( );
601} 602}
602 603
603 604
604void PlayListWidget::playIt( QListViewItem *it) { 605void PlayListWidget::playIt( QListViewItem *it) {
605// d->setDocumentUsed = FALSE; 606// d->setDocumentUsed = FALSE;
606 mediaPlayerState->setPlaying(TRUE); 607 mediaPlayerState->setPlaying(TRUE);
607} 608}
608 609
609void PlayListWidget::addToSelection( QListViewItem *it) { 610void PlayListWidget::addToSelection( QListViewItem *it) {
610 d->setDocumentUsed = FALSE; 611 d->setDocumentUsed = FALSE;
611 612
612 if(it) { 613 if(it) {
613// qDebug("add to selection"); 614// qDebug("add to selection");
614 switch (tabWidget->currentPageIndex()) { 615 switch (tabWidget->currentPageIndex()) {
615 case 1: { 616 case 1: {
616// qDebug("case 1"); 617// qDebug("case 1");
617 QListIterator<DocLnk> dit( files.children() ); 618 QListIterator<DocLnk> dit( files.children() );
618 for ( ; dit.current(); ++dit ) { 619 for ( ; dit.current(); ++dit ) {
619// qDebug(dit.current()->name()); 620// qDebug(dit.current()->name());
620 if( dit.current()->name() == it->text(0)) { 621 if( dit.current()->name() == it->text(0)) {
621 d->selectedFiles->addToSelection( **dit ); 622 d->selectedFiles->addToSelection( **dit );
622 } 623 }
623 } 624 }
624 } 625 }
625 break; 626 break;
626 case 2: { 627 case 2: {
627// qDebug("case 2"); 628// qDebug("case 2");
628 QListIterator<DocLnk> dit( vFiles.children() ); 629 QListIterator<DocLnk> dit( vFiles.children() );
629 for ( ; dit.current(); ++dit ) { 630 for ( ; dit.current(); ++dit ) {
630// qDebug(dit.current()->name()); 631// qDebug(dit.current()->name());
631 if( dit.current()->name() == it->text(0)) { 632 if( dit.current()->name() == it->text(0)) {
632 d->selectedFiles->addToSelection( **dit ); 633 d->selectedFiles->addToSelection( **dit );
633 } 634 }
634 } 635 }
635 } 636 }
636 break; 637 break;
637 case 0: 638 case 0:
638 break; 639 break;
639 }; 640 };
640 tabWidget->setCurrentPage(0); 641 tabWidget->setCurrentPage(0);
641// mediaPlayerState->setPlaying( TRUE ); 642// mediaPlayerState->setPlaying( TRUE );
642 } 643 }
643} 644}
644 645
645void PlayListWidget::tabChanged(QWidget *widg) { 646void PlayListWidget::tabChanged(QWidget *widg) {
646 647
647 switch ( tabWidget->currentPageIndex()) { 648 switch ( tabWidget->currentPageIndex()) {
648 case 0: 649 case 0:
649 { 650 {
650 if( !tbDeletePlaylist->isHidden()) 651 if( !tbDeletePlaylist->isHidden())
651 tbDeletePlaylist->hide(); 652 tbDeletePlaylist->hide();
652 d->tbRemoveFromList->setEnabled(TRUE); 653 d->tbRemoveFromList->setEnabled(TRUE);
653 d->tbAddToList->setEnabled(FALSE); 654 d->tbAddToList->setEnabled(FALSE);
654 } 655 }
655 break; 656 break;
656 case 1: 657 case 1:
657 { 658 {
658 if( !tbDeletePlaylist->isHidden()) 659 if( !tbDeletePlaylist->isHidden())
659 tbDeletePlaylist->hide(); 660 tbDeletePlaylist->hide();
660 d->tbRemoveFromList->setEnabled(FALSE); 661 d->tbRemoveFromList->setEnabled(FALSE);
661 d->tbAddToList->setEnabled(TRUE); 662 d->tbAddToList->setEnabled(TRUE);
662 } 663 }
663 break; 664 break;
664 case 2: 665 case 2:
665 { 666 {
666 if( !tbDeletePlaylist->isHidden()) 667 if( !tbDeletePlaylist->isHidden())
667 tbDeletePlaylist->hide(); 668 tbDeletePlaylist->hide();
668 d->tbRemoveFromList->setEnabled(FALSE); 669 d->tbRemoveFromList->setEnabled(FALSE);
669 d->tbAddToList->setEnabled(TRUE); 670 d->tbAddToList->setEnabled(TRUE);
670 } 671 }
671 break; 672 break;
672 case 3: 673 case 3:
673 { 674 {
674 if( tbDeletePlaylist->isHidden()) 675 if( tbDeletePlaylist->isHidden())
675 tbDeletePlaylist->show(); 676 tbDeletePlaylist->show();
676 playLists->reread(); 677 playLists->reread();
677 } 678 }
678 break; 679 break;
679 }; 680 };
680} 681}
681 682
682/* 683/*
683 list is right clicked*/ 684 list is right clicked*/
684void PlayListWidget::fauxPlay(QListViewItem *it) { 685void PlayListWidget::fauxPlay(QListViewItem *it) {
685 686
686 switch (tabWidget->currentPageIndex()) { 687 switch (tabWidget->currentPageIndex()) {
687 case 0: //playlist 688 case 0: //playlist
688 break; 689 break;
689 case 1: { //audio 690 case 1: { //audio
690 QListIterator<DocLnk> dit( files.children() ); 691 QListIterator<DocLnk> dit( files.children() );
691 for ( ; dit.current(); ++dit ) { 692 for ( ; dit.current(); ++dit ) {
692// qDebug(dit.current()->name()); 693// qDebug(dit.current()->name());
693 if( dit.current()->name() == it->text(0)) { 694 if( dit.current()->name() == it->text(0)) {
694 d->selectedFiles->addToSelection( **dit ); 695 d->selectedFiles->addToSelection( **dit );
695 } 696 }
696 } 697 }
697 } 698 }
698 break; 699 break;
699 case 2: { // video 700 case 2: { // video
700 QListIterator<DocLnk> dit( vFiles.children() ); 701 QListIterator<DocLnk> dit( vFiles.children() );
701 for ( ; dit.current(); ++dit ) { 702 for ( ; dit.current(); ++dit ) {
702// qDebug(dit.current()->name()); 703// qDebug(dit.current()->name());
703 if( dit.current()->name() == it->text(0)) { 704 if( dit.current()->name() == it->text(0)) {
704 d->selectedFiles->addToSelection( **dit ); 705 d->selectedFiles->addToSelection( **dit );
705 } 706 }
706 } 707 }
707 } 708 }
708 break; 709 break;
709 }; 710 };
710 mediaPlayerState->setPlaying( TRUE ); 711 mediaPlayerState->setPlaying( TRUE );
711// tabWidget->setCurrentPage(0); 712// tabWidget->setCurrentPage(0);
712 d->selectedFiles->removeSelected(); 713 d->selectedFiles->removeSelected();
713} 714}
714 715
715/* 716/*
716 play button is pressed*/ 717 play button is pressed*/
717void PlayListWidget::btnPlay(bool b) { // this is fugly 718void PlayListWidget::btnPlay(bool b) { // this is fugly
718 switch ( tabWidget->currentPageIndex()) { 719 switch ( tabWidget->currentPageIndex()) {
719 case 0: 720 case 0:
720 { 721 {
721 mediaPlayerState->setPlaying(b); 722 mediaPlayerState->setPlaying(b);
722 } 723 }
723 break; 724 break;
724 case 1: 725 case 1:
725 { 726 {
726 addToSelection( audioView->selectedItem() ); 727 addToSelection( audioView->selectedItem() );
727 mediaPlayerState->setPlaying(b); 728 mediaPlayerState->setPlaying(b);
728 qApp->processEvents(); 729 qApp->processEvents();
729 d->selectedFiles->removeSelected( ); 730 d->selectedFiles->removeSelected( );
730 tabWidget->setCurrentPage(1); 731 tabWidget->setCurrentPage(1);
731 } 732 }
732 break; 733 break;
733 case 2: 734 case 2:
734 { 735 {
735 addToSelection( videoView->selectedItem() ); 736 addToSelection( videoView->selectedItem() );
736 mediaPlayerState->setPlaying(b); 737 mediaPlayerState->setPlaying(b);
737 qApp->processEvents(); 738 qApp->processEvents();
738 d->selectedFiles->removeSelected( ); 739 d->selectedFiles->removeSelected( );
739 tabWidget->setCurrentPage(2); 740 tabWidget->setCurrentPage(2);