summaryrefslogtreecommitdiff
authordwmw2 <dwmw2>2002-05-17 13:57:07 (UTC)
committer dwmw2 <dwmw2>2002-05-17 13:57:07 (UTC)
commit6f83bacd1602663454350011bf47f2c86d9cc975 (patch) (unidiff)
tree714b082c74a8e4fd3417b1651d47c539aba67432
parente52cf1a1dc88cea3f2bac03a06d7c429e49a9f7e (diff)
downloadopie-6f83bacd1602663454350011bf47f2c86d9cc975.zip
opie-6f83bacd1602663454350011bf47f2c86d9cc975.tar.gz
opie-6f83bacd1602663454350011bf47f2c86d9cc975.tar.bz2
include qcursor.h
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/playlistwidget.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/core/multimedia/opieplayer/playlistwidget.cpp b/core/multimedia/opieplayer/playlistwidget.cpp
index ec5500f..7a79be1 100644
--- a/core/multimedia/opieplayer/playlistwidget.cpp
+++ b/core/multimedia/opieplayer/playlistwidget.cpp
@@ -1,804 +1,805 @@
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#define QTOPIA_INTERNAL_FSLP 21#define QTOPIA_INTERNAL_FSLP
22#include <qpe/qcopenvelope_qws.h> 22#include <qpe/qcopenvelope_qws.h>
23 23
24#include <qpe/qpemenubar.h> 24#include <qpe/qpemenubar.h>
25#include <qpe/qpetoolbar.h> 25#include <qpe/qpetoolbar.h>
26#include <qpe/fileselector.h> 26#include <qpe/fileselector.h>
27#include <qpe/qpeapplication.h> 27#include <qpe/qpeapplication.h>
28#include <qpe/lnkproperties.h> 28#include <qpe/lnkproperties.h>
29#include <qpe/storage.h> 29#include <qpe/storage.h>
30 30
31#include <qpe/applnk.h> 31#include <qpe/applnk.h>
32#include <qpe/config.h> 32#include <qpe/config.h>
33#include <qpe/global.h> 33#include <qpe/global.h>
34#include <qpe/resource.h> 34#include <qpe/resource.h>
35 35
36#include <qaction.h> 36#include <qaction.h>
37#include <qcursor.h>
37#include <qimage.h> 38#include <qimage.h>
38#include <qfile.h> 39#include <qfile.h>
39#include <qdir.h> 40#include <qdir.h>
40#include <qlayout.h> 41#include <qlayout.h>
41#include <qlabel.h> 42#include <qlabel.h>
42#include <qlist.h> 43#include <qlist.h>
43#include <qlistbox.h> 44#include <qlistbox.h>
44#include <qmainwindow.h> 45#include <qmainwindow.h>
45#include <qmessagebox.h> 46#include <qmessagebox.h>
46#include <qtoolbutton.h> 47#include <qtoolbutton.h>
47#include <qtabwidget.h> 48#include <qtabwidget.h>
48#include <qlistview.h> 49#include <qlistview.h>
49#include <qpoint.h> 50#include <qpoint.h>
50#include <qlineedit.h> 51#include <qlineedit.h>
51#include <qpushbutton.h> 52#include <qpushbutton.h>
52#include <qregexp.h> 53#include <qregexp.h>
53#include <qtextstream.h> 54#include <qtextstream.h>
54 55
55//#include <qtimer.h> 56//#include <qtimer.h>
56 57
57#include "playlistselection.h" 58#include "playlistselection.h"
58#include "playlistwidget.h" 59#include "playlistwidget.h"
59#include "mediaplayerstate.h" 60#include "mediaplayerstate.h"
60 61
61#include "inputDialog.h" 62#include "inputDialog.h"
62 63
63#include <stdlib.h> 64#include <stdlib.h>
64#include "audiowidget.h" 65#include "audiowidget.h"
65#include "videowidget.h" 66#include "videowidget.h"
66 67
67#include <unistd.h> 68#include <unistd.h>
68#include <sys/file.h> 69#include <sys/file.h>
69#include <sys/ioctl.h> 70#include <sys/ioctl.h>
70#include <sys/soundcard.h> 71#include <sys/soundcard.h>
71 72
72// for setBacklight() 73// for setBacklight()
73#include <linux/fb.h> 74#include <linux/fb.h>
74#include <sys/types.h> 75#include <sys/types.h>
75#include <sys/stat.h> 76#include <sys/stat.h>
76#include <stdlib.h> 77#include <stdlib.h>
77 78
78#define BUTTONS_ON_TOOLBAR 79#define BUTTONS_ON_TOOLBAR
79#define SIDE_BUTTONS 80#define SIDE_BUTTONS
80#define CAN_SAVE_LOAD_PLAYLISTS 81#define CAN_SAVE_LOAD_PLAYLISTS
81 82
82extern AudioWidget *audioUI; 83extern AudioWidget *audioUI;
83extern VideoWidget *videoUI; 84extern VideoWidget *videoUI;
84extern MediaPlayerState *mediaPlayerState; 85extern MediaPlayerState *mediaPlayerState;
85 86
86// class myFileSelector { 87// class myFileSelector {
87 88
88// }; 89// };
89class PlayListWidgetPrivate { 90class PlayListWidgetPrivate {
90public: 91public:
91 QToolButton *tbPlay, *tbFull, *tbLoop, *tbScale, *tbShuffle, *tbAddToList, *tbRemoveFromList, *tbMoveUp, *tbMoveDown, *tbRemove; 92 QToolButton *tbPlay, *tbFull, *tbLoop, *tbScale, *tbShuffle, *tbAddToList, *tbRemoveFromList, *tbMoveUp, *tbMoveDown, *tbRemove;
92 QFrame *playListFrame; 93 QFrame *playListFrame;
93 FileSelector *files; 94 FileSelector *files;
94 PlayListSelection *selectedFiles; 95 PlayListSelection *selectedFiles;
95 bool setDocumentUsed; 96 bool setDocumentUsed;
96 DocLnk *current; 97 DocLnk *current;
97}; 98};
98 99
99 100
100class ToolButton : public QToolButton { 101class ToolButton : public QToolButton {
101public: 102public:
102 ToolButton( QWidget *parent, const char *name, const QString& icon, QObject *handler, const QString& slot, bool t = FALSE ) 103 ToolButton( QWidget *parent, const char *name, const QString& icon, QObject *handler, const QString& slot, bool t = FALSE )
103 : QToolButton( parent, name ) { 104 : QToolButton( parent, name ) {
104 setTextLabel( name ); 105 setTextLabel( name );
105 setPixmap( Resource::loadPixmap( icon ) ); 106 setPixmap( Resource::loadPixmap( icon ) );
106 setAutoRaise( TRUE ); 107 setAutoRaise( TRUE );
107 setFocusPolicy( QWidget::NoFocus ); 108 setFocusPolicy( QWidget::NoFocus );
108 setToggleButton( t ); 109 setToggleButton( t );
109 connect( this, t ? SIGNAL( toggled(bool) ) : SIGNAL( clicked() ), handler, slot ); 110 connect( this, t ? SIGNAL( toggled(bool) ) : SIGNAL( clicked() ), handler, slot );
110 QPEMenuToolFocusManager::manager()->addWidget( this ); 111 QPEMenuToolFocusManager::manager()->addWidget( this );
111 } 112 }
112}; 113};
113 114
114 115
115class MenuItem : public QAction { 116class MenuItem : public QAction {
116public: 117public:
117 MenuItem( QWidget *parent, const QString& text, QObject *handler, const QString& slot ) 118 MenuItem( QWidget *parent, const QString& text, QObject *handler, const QString& slot )
118 : QAction( text, QString::null, 0, 0 ) { 119 : QAction( text, QString::null, 0, 0 ) {
119 connect( this, SIGNAL( activated() ), handler, slot ); 120 connect( this, SIGNAL( activated() ), handler, slot );
120 addTo( parent ); 121 addTo( parent );
121 } 122 }
122}; 123};
123 124
124 125
125PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl ) 126PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl )
126 : QMainWindow( parent, name, fl ) { 127 : QMainWindow( parent, name, fl ) {
127 128
128 d = new PlayListWidgetPrivate; 129 d = new PlayListWidgetPrivate;
129 d->setDocumentUsed = FALSE; 130 d->setDocumentUsed = FALSE;
130 d->current = NULL; 131 d->current = NULL;
131 fromSetDocument = FALSE; 132 fromSetDocument = FALSE;
132 insanityBool=FALSE; 133 insanityBool=FALSE;
133// menuTimer = new QTimer( this ,"menu timer"), 134// menuTimer = new QTimer( this ,"menu timer"),
134// connect( menuTimer, SIGNAL( timeout() ), SLOT( addSelected() ) ); 135// connect( menuTimer, SIGNAL( timeout() ), SLOT( addSelected() ) );
135 136
136 setBackgroundMode( PaletteButton ); 137 setBackgroundMode( PaletteButton );
137 138
138 setCaption( tr("OpiePlayer") ); 139 setCaption( tr("OpiePlayer") );
139 setIcon( Resource::loadPixmap( "opieplayer/MPEGPlayer" ) ); 140 setIcon( Resource::loadPixmap( "opieplayer/MPEGPlayer" ) );
140 141
141 setToolBarsMovable( FALSE ); 142 setToolBarsMovable( FALSE );
142 143
143 // Create Toolbar 144 // Create Toolbar
144 QPEToolBar *toolbar = new QPEToolBar( this ); 145 QPEToolBar *toolbar = new QPEToolBar( this );
145 toolbar->setHorizontalStretchable( TRUE ); 146 toolbar->setHorizontalStretchable( TRUE );
146 147
147 // Create Menubar 148 // Create Menubar
148 QPEMenuBar *menu = new QPEMenuBar( toolbar ); 149 QPEMenuBar *menu = new QPEMenuBar( toolbar );
149 menu->setMargin( 0 ); 150 menu->setMargin( 0 );
150 151
151 QPEToolBar *bar = new QPEToolBar( this ); 152 QPEToolBar *bar = new QPEToolBar( this );
152 bar->setLabel( tr( "Play Operations" ) ); 153 bar->setLabel( tr( "Play Operations" ) );
153// d->tbPlayCurList = new ToolButton( bar, tr( "play List" ), "opieplayer/play_current_list", 154// d->tbPlayCurList = new ToolButton( bar, tr( "play List" ), "opieplayer/play_current_list",
154// this , SLOT( addSelected()) ); 155// this , SLOT( addSelected()) );
155 tbDeletePlaylist = new QPushButton( Resource::loadIconSet("trash"),"",bar,"close"); 156 tbDeletePlaylist = new QPushButton( Resource::loadIconSet("trash"),"",bar,"close");
156 tbDeletePlaylist->setFlat(TRUE); 157 tbDeletePlaylist->setFlat(TRUE);
157 tbDeletePlaylist->setFixedSize(20,20); 158 tbDeletePlaylist->setFixedSize(20,20);
158 connect(tbDeletePlaylist,(SIGNAL(released())),SLOT( deletePlaylist())); 159 connect(tbDeletePlaylist,(SIGNAL(released())),SLOT( deletePlaylist()));
159 160
160 d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ), "opieplayer/add_to_playlist", 161 d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ), "opieplayer/add_to_playlist",
161 this , SLOT(addSelected()) ); 162 this , SLOT(addSelected()) );
162 d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ), "opieplayer/remove_from_playlist", 163 d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ), "opieplayer/remove_from_playlist",
163 this , SLOT(removeSelected()) ); 164 this , SLOT(removeSelected()) );
164// d->tbPlay = new ToolButton( bar, tr( "Play" ), "opieplayer/play", /*this */mediaPlayerState , SLOT(setPlaying(bool) /* btnPlay() */), TRUE ); 165// d->tbPlay = new ToolButton( bar, tr( "Play" ), "opieplayer/play", /*this */mediaPlayerState , SLOT(setPlaying(bool) /* btnPlay() */), TRUE );
165 d->tbPlay = new ToolButton( bar, tr( "Play" ), "opieplayer/play", 166 d->tbPlay = new ToolButton( bar, tr( "Play" ), "opieplayer/play",
166 this , SLOT( btnPlay(bool) ), TRUE ); 167 this , SLOT( btnPlay(bool) ), TRUE );
167 d->tbShuffle = new ToolButton( bar, tr( "Randomize" ),"opieplayer/shuffle", 168 d->tbShuffle = new ToolButton( bar, tr( "Randomize" ),"opieplayer/shuffle",
168 mediaPlayerState, SLOT(setShuffled(bool)), TRUE ); 169 mediaPlayerState, SLOT(setShuffled(bool)), TRUE );
169 d->tbLoop = new ToolButton( bar, tr( "Loop" ),"opieplayer/loop", 170 d->tbLoop = new ToolButton( bar, tr( "Loop" ),"opieplayer/loop",
170 mediaPlayerState, SLOT(setLooping(bool)), TRUE ); 171 mediaPlayerState, SLOT(setLooping(bool)), TRUE );
171 tbDeletePlaylist->hide(); 172 tbDeletePlaylist->hide();
172 173
173 QPopupMenu *pmPlayList = new QPopupMenu( this ); 174 QPopupMenu *pmPlayList = new QPopupMenu( this );
174 menu->insertItem( tr( "File" ), pmPlayList ); 175 menu->insertItem( tr( "File" ), pmPlayList );
175 new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) ); 176 new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) );
176 new MenuItem( pmPlayList, tr( "Add all audio files" ), this, SLOT( addAllMusicToList() ) ); 177 new MenuItem( pmPlayList, tr( "Add all audio files" ), this, SLOT( addAllMusicToList() ) );
177 new MenuItem( pmPlayList, tr( "Add all video files" ), this, SLOT( addAllVideoToList() ) ); 178 new MenuItem( pmPlayList, tr( "Add all video files" ), this, SLOT( addAllVideoToList() ) );
178 new MenuItem( pmPlayList, tr( "Add all files" ), this, SLOT( addAllToList() ) ); 179 new MenuItem( pmPlayList, tr( "Add all files" ), this, SLOT( addAllToList() ) );
179// pmPlayList->insertSeparator(-1); 180// pmPlayList->insertSeparator(-1);
180 new MenuItem( pmPlayList, tr( "Save PlayList" ), this, SLOT( saveList() ) ); 181 new MenuItem( pmPlayList, tr( "Save PlayList" ), this, SLOT( saveList() ) );
181 pmPlayList->insertSeparator(-1); 182 pmPlayList->insertSeparator(-1);
182 new MenuItem( pmPlayList, tr( "Open File or URL" ), this,SLOT( openFile() ) ); 183 new MenuItem( pmPlayList, tr( "Open File or URL" ), this,SLOT( openFile() ) );
183 184
184 QPopupMenu *pmView = new QPopupMenu( this ); 185 QPopupMenu *pmView = new QPopupMenu( this );
185 menu->insertItem( tr( "View" ), pmView ); 186 menu->insertItem( tr( "View" ), pmView );
186 187
187 fullScreenButton = new QAction(tr("Full Screen"), Resource::loadPixmap("fullscreen"), QString::null, 0, this, 0); 188 fullScreenButton = new QAction(tr("Full Screen"), Resource::loadPixmap("fullscreen"), QString::null, 0, this, 0);
188 connect( fullScreenButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleFullscreen()) ); 189 connect( fullScreenButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleFullscreen()) );
189 fullScreenButton->addTo(pmView); 190 fullScreenButton->addTo(pmView);
190 scaleButton = new QAction(tr("Scale"), Resource::loadPixmap("opieplayer/scale"), QString::null, 0, this, 0); 191 scaleButton = new QAction(tr("Scale"), Resource::loadPixmap("opieplayer/scale"), QString::null, 0, this, 0);
191 connect( scaleButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleScaled()) ); 192 connect( scaleButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleScaled()) );
192 scaleButton->addTo(pmView); 193 scaleButton->addTo(pmView);
193 194
194 QVBox *vbox5 = new QVBox( this ); vbox5->setBackgroundMode( PaletteButton ); 195 QVBox *vbox5 = new QVBox( this ); vbox5->setBackgroundMode( PaletteButton );
195 QVBox *vbox4 = new QVBox( vbox5 ); vbox4->setBackgroundMode( PaletteButton ); 196 QVBox *vbox4 = new QVBox( vbox5 ); vbox4->setBackgroundMode( PaletteButton );
196 197
197 QHBox *hbox6 = new QHBox( vbox4 ); hbox6->setBackgroundMode( PaletteButton ); 198 QHBox *hbox6 = new QHBox( vbox4 ); hbox6->setBackgroundMode( PaletteButton );
198 199
199 tabWidget = new QTabWidget( hbox6, "tabWidget" ); 200 tabWidget = new QTabWidget( hbox6, "tabWidget" );
200 tabWidget->setTabShape(QTabWidget::Triangular); 201 tabWidget->setTabShape(QTabWidget::Triangular);
201 202
202 QWidget *pTab; 203 QWidget *pTab;
203 pTab = new QWidget( tabWidget, "pTab" ); 204 pTab = new QWidget( tabWidget, "pTab" );
204// playlistView = new QListView( pTab, "playlistview" ); 205// playlistView = new QListView( pTab, "playlistview" );
205// playlistView->setMinimumSize(236,260); 206// playlistView->setMinimumSize(236,260);
206 tabWidget->insertTab( pTab,"Playlist"); 207 tabWidget->insertTab( pTab,"Playlist");
207 208
208 209
209 // Add the playlist area 210 // Add the playlist area
210 211
211 QVBox *vbox3 = new QVBox( pTab ); vbox3->setBackgroundMode( PaletteButton ); 212 QVBox *vbox3 = new QVBox( pTab ); vbox3->setBackgroundMode( PaletteButton );
212 d->playListFrame = vbox3; 213 d->playListFrame = vbox3;
213 d->playListFrame ->setMinimumSize(235,260); 214 d->playListFrame ->setMinimumSize(235,260);
214 215
215 QHBox *hbox2 = new QHBox( vbox3 ); hbox2->setBackgroundMode( PaletteButton ); 216 QHBox *hbox2 = new QHBox( vbox3 ); hbox2->setBackgroundMode( PaletteButton );
216 217
217 d->selectedFiles = new PlayListSelection( hbox2); 218 d->selectedFiles = new PlayListSelection( hbox2);
218 QVBox *vbox1 = new QVBox( hbox2 ); vbox1->setBackgroundMode( PaletteButton ); 219 QVBox *vbox1 = new QVBox( hbox2 ); vbox1->setBackgroundMode( PaletteButton );
219 220
220 QPEApplication::setStylusOperation( d->selectedFiles->viewport(),QPEApplication::RightOnHold); 221 QPEApplication::setStylusOperation( d->selectedFiles->viewport(),QPEApplication::RightOnHold);
221 222
222 connect( d->selectedFiles, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), 223 connect( d->selectedFiles, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)),
223 this,SLOT( playlistViewPressed(int, QListViewItem *, const QPoint&, int)) ); 224 this,SLOT( playlistViewPressed(int, QListViewItem *, const QPoint&, int)) );
224 225
225 226
226 QVBox *stretch1 = new QVBox( vbox1 ); stretch1->setBackgroundMode( PaletteButton ); // add stretch 227 QVBox *stretch1 = new QVBox( vbox1 ); stretch1->setBackgroundMode( PaletteButton ); // add stretch
227 new ToolButton( vbox1, tr( "Move Up" ), "opieplayer/up", d->selectedFiles, SLOT(moveSelectedUp()) ); 228 new ToolButton( vbox1, tr( "Move Up" ), "opieplayer/up", d->selectedFiles, SLOT(moveSelectedUp()) );
228 new ToolButton( vbox1, tr( "Remove" ), "opieplayer/cut", d->selectedFiles, SLOT(removeSelected()) ); 229 new ToolButton( vbox1, tr( "Remove" ), "opieplayer/cut", d->selectedFiles, SLOT(removeSelected()) );
229 new ToolButton( vbox1, tr( "Move Down" ), "opieplayer/down", d->selectedFiles, SLOT(moveSelectedDown()) ); 230 new ToolButton( vbox1, tr( "Move Down" ), "opieplayer/down", d->selectedFiles, SLOT(moveSelectedDown()) );
230 QVBox *stretch2 = new QVBox( vbox1 ); stretch2->setBackgroundMode( PaletteButton ); // add stretch 231 QVBox *stretch2 = new QVBox( vbox1 ); stretch2->setBackgroundMode( PaletteButton ); // add stretch
231 232
232 QWidget *aTab; 233 QWidget *aTab;
233 aTab = new QWidget( tabWidget, "aTab" ); 234 aTab = new QWidget( tabWidget, "aTab" );
234 audioView = new QListView( aTab, "Audioview" ); 235 audioView = new QListView( aTab, "Audioview" );
235 audioView->setMinimumSize(233,260); 236 audioView->setMinimumSize(233,260);
236 audioView->addColumn( tr("Title"),140); 237 audioView->addColumn( tr("Title"),140);
237 audioView->addColumn(tr("Size"), -1); 238 audioView->addColumn(tr("Size"), -1);
238 audioView->addColumn(tr("Media"),-1); 239 audioView->addColumn(tr("Media"),-1);
239 audioView->setColumnAlignment(1, Qt::AlignRight); 240 audioView->setColumnAlignment(1, Qt::AlignRight);
240 audioView->setColumnAlignment(2, Qt::AlignRight); 241 audioView->setColumnAlignment(2, Qt::AlignRight);
241 audioView->setAllColumnsShowFocus(TRUE); 242 audioView->setAllColumnsShowFocus(TRUE);
242 243
243 audioView->setMultiSelection( TRUE ); 244 audioView->setMultiSelection( TRUE );
244 audioView->setSelectionMode( QListView::Extended); 245 audioView->setSelectionMode( QListView::Extended);
245 246
246 tabWidget->insertTab(aTab,tr("Audio")); 247 tabWidget->insertTab(aTab,tr("Audio"));
247 248
248 QPEApplication::setStylusOperation( audioView->viewport(),QPEApplication::RightOnHold); 249 QPEApplication::setStylusOperation( audioView->viewport(),QPEApplication::RightOnHold);
249 connect( audioView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), 250 connect( audioView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)),
250 this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) ); 251 this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) );
251 252
252 connect( audioView, SIGNAL( returnPressed( QListViewItem *)), 253 connect( audioView, SIGNAL( returnPressed( QListViewItem *)),
253 this,SLOT( playIt( QListViewItem *)) ); 254 this,SLOT( playIt( QListViewItem *)) );
254 255
255// audioView 256// audioView
256 populateAudioView(); 257 populateAudioView();
257// videowidget 258// videowidget
258 259
259 QWidget *vTab; 260 QWidget *vTab;
260 vTab = new QWidget( tabWidget, "vTab" ); 261 vTab = new QWidget( tabWidget, "vTab" );
261 videoView = new QListView( vTab, "Videoview" ); 262 videoView = new QListView( vTab, "Videoview" );
262 videoView->setMinimumSize(233,260); 263 videoView->setMinimumSize(233,260);
263 264
264 videoView->addColumn(tr("Title"),140); 265 videoView->addColumn(tr("Title"),140);
265 videoView->addColumn(tr("Size"),-1); 266 videoView->addColumn(tr("Size"),-1);
266 videoView->addColumn(tr("Media"),-1); 267 videoView->addColumn(tr("Media"),-1);
267 videoView->setColumnAlignment(1, Qt::AlignRight); 268 videoView->setColumnAlignment(1, Qt::AlignRight);
268 videoView->setColumnAlignment(2, Qt::AlignRight); 269 videoView->setColumnAlignment(2, Qt::AlignRight);
269 videoView->setAllColumnsShowFocus(TRUE); 270 videoView->setAllColumnsShowFocus(TRUE);
270 videoView->setMultiSelection( TRUE ); 271 videoView->setMultiSelection( TRUE );
271 videoView->setSelectionMode( QListView::Extended); 272 videoView->setSelectionMode( QListView::Extended);
272 273
273 QPEApplication::setStylusOperation( videoView->viewport(),QPEApplication::RightOnHold); 274 QPEApplication::setStylusOperation( videoView->viewport(),QPEApplication::RightOnHold);
274 275
275 connect( videoView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), 276 connect( videoView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)),
276 this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) ); 277 this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) );
277 connect( videoView, SIGNAL( returnPressed( QListViewItem *)), 278 connect( videoView, SIGNAL( returnPressed( QListViewItem *)),
278 this,SLOT( playIt( QListViewItem *)) ); 279 this,SLOT( playIt( QListViewItem *)) );
279 280
280 tabWidget->insertTab( vTab,tr("Video")); 281 tabWidget->insertTab( vTab,tr("Video"));
281populateVideoView(); 282populateVideoView();
282 283
283//playlists list 284//playlists list
284 QWidget *LTab; 285 QWidget *LTab;
285 LTab = new QWidget( tabWidget, "LTab" ); 286 LTab = new QWidget( tabWidget, "LTab" );
286 playLists = new FileSelector( "playlist/plain", LTab, "fileselector" , FALSE, FALSE); //buggy 287 playLists = new FileSelector( "playlist/plain", LTab, "fileselector" , FALSE, FALSE); //buggy
287 playLists->setMinimumSize(233,260);; 288 playLists->setMinimumSize(233,260);;
288 tabWidget->insertTab(LTab,tr("Lists")); 289 tabWidget->insertTab(LTab,tr("Lists"));
289 290
290 connect( playLists, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( loadList( const DocLnk & ) ) ); 291 connect( playLists, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( loadList( const DocLnk & ) ) );
291// connect( playLists, SIGNAL( newSelected( const DocLnk &) ), this, SLOT( newFile( const DocLnk & ) ) ); 292// connect( playLists, SIGNAL( newSelected( const DocLnk &) ), this, SLOT( newFile( const DocLnk & ) ) );
292 293
293 294
294// add the library area 295// add the library area
295 296
296// connect( audioView, SIGNAL( rightButtonClicked( QListViewItem *, const QPoint &, int)), 297// connect( audioView, SIGNAL( rightButtonClicked( QListViewItem *, const QPoint &, int)),
297// this, SLOT( fauxPlay( QListViewItem *) ) ); 298// this, SLOT( fauxPlay( QListViewItem *) ) );
298// connect( videoView, SIGNAL( rightButtonClicked( QListViewItem *, const QPoint &, int)), 299// connect( videoView, SIGNAL( rightButtonClicked( QListViewItem *, const QPoint &, int)),
299// this, SLOT( fauxPlay( QListViewItem *)) ); 300// this, SLOT( fauxPlay( QListViewItem *)) );
300 301
301// connect( audioView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( fauxPlay( QListViewItem *) ) ); 302// connect( audioView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( fauxPlay( QListViewItem *) ) );
302// connect( videoView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( fauxPlay( QListViewItem *) ) ); 303// connect( videoView, SIGNAL( clicked( QListViewItem *) ), this, SLOT( fauxPlay( QListViewItem *) ) );
303 304
304 connect( audioView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) ); 305 connect( audioView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) );
305 connect( videoView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) ); 306 connect( videoView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) );
306 307
307 connect( tabWidget, SIGNAL (currentChanged(QWidget*)),this,SLOT(tabChanged(QWidget*))); 308 connect( tabWidget, SIGNAL (currentChanged(QWidget*)),this,SLOT(tabChanged(QWidget*)));
308 connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), d->tbPlay, SLOT( setOn( bool ) ) ); 309 connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), d->tbPlay, SLOT( setOn( bool ) ) );
309 connect( mediaPlayerState, SIGNAL( loopingToggled( bool ) ), d->tbLoop, SLOT( setOn( bool ) ) ); 310 connect( mediaPlayerState, SIGNAL( loopingToggled( bool ) ), d->tbLoop, SLOT( setOn( bool ) ) );
310 connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), d->tbShuffle, SLOT( setOn( bool ) ) ); 311 connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), d->tbShuffle, SLOT( setOn( bool ) ) );
311 connect( mediaPlayerState, SIGNAL( playlistToggled( bool ) ), this, SLOT( setPlaylist( bool ) ) ); 312 connect( mediaPlayerState, SIGNAL( playlistToggled( bool ) ), this, SLOT( setPlaylist( bool ) ) );
312 313
313 connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) ); 314 connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) );
314// connect( d->selectedFiles, SIGNAL( fileSelected( const DocLnk & ) ), this, SLOT( addToSelection( const DocLnk & ) ) ); 315// connect( d->selectedFiles, SIGNAL( fileSelected( const DocLnk & ) ), this, SLOT( addToSelection( const DocLnk & ) ) );
315 316
316 setCentralWidget( vbox5 ); 317 setCentralWidget( vbox5 );
317 318
318 Config cfg( "OpiePlayer" ); 319 Config cfg( "OpiePlayer" );
319 readConfig( cfg ); 320 readConfig( cfg );
320 QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); 321 QString currentPlaylist = cfg.readEntry("CurrentPlaylist","");
321// qDebug("currentList is "+currentPlaylist); 322// qDebug("currentList is "+currentPlaylist);
322 loadList(DocLnk( currentPlaylist)); 323 loadList(DocLnk( currentPlaylist));
323 setCaption(tr("OpiePlayer: ")+ currentPlaylist ); 324 setCaption(tr("OpiePlayer: ")+ currentPlaylist );
324 325
325 initializeStates(); 326 initializeStates();
326} 327}
327 328
328 329
329PlayListWidget::~PlayListWidget() { 330PlayListWidget::~PlayListWidget() {
330 Config cfg( "OpiePlayer" ); 331 Config cfg( "OpiePlayer" );
331 writeConfig( cfg ); 332 writeConfig( cfg );
332 333
333 334
334 if ( d->current ) 335 if ( d->current )
335 delete d->current; 336 delete d->current;
336 delete d; 337 delete d;
337} 338}
338 339
339 340
340void PlayListWidget::initializeStates() { 341void PlayListWidget::initializeStates() {
341 342
342 d->tbPlay->setOn( mediaPlayerState->playing() ); 343 d->tbPlay->setOn( mediaPlayerState->playing() );
343 d->tbLoop->setOn( mediaPlayerState->looping() ); 344 d->tbLoop->setOn( mediaPlayerState->looping() );
344 d->tbShuffle->setOn( mediaPlayerState->shuffled() ); 345 d->tbShuffle->setOn( mediaPlayerState->shuffled() );
345// d->tbFull->setOn( mediaPlayerState->fullscreen() ); 346// d->tbFull->setOn( mediaPlayerState->fullscreen() );
346// d->tbScale->setOn( mediaPlayerState->scaled() ); 347// d->tbScale->setOn( mediaPlayerState->scaled() );
347// d->tbScale->setEnabled( mediaPlayerState->fullscreen() ); 348// d->tbScale->setEnabled( mediaPlayerState->fullscreen() );
348// setPlaylist( mediaPlayerState->playlist() ); 349// setPlaylist( mediaPlayerState->playlist() );
349 setPlaylist( true); 350 setPlaylist( true);
350// d->selectedFiles->first(); 351// d->selectedFiles->first();
351 352
352} 353}
353 354
354 355
355void PlayListWidget::readConfig( Config& cfg ) { 356void PlayListWidget::readConfig( Config& cfg ) {
356 cfg.setGroup("PlayList"); 357 cfg.setGroup("PlayList");
357 QString currentString = cfg.readEntry("current", "" ); 358 QString currentString = cfg.readEntry("current", "" );
358 int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); 359 int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 );
359 for ( int i = 0; i < noOfFiles; i++ ) { 360 for ( int i = 0; i < noOfFiles; i++ ) {
360 QString entryName; 361 QString entryName;
361 entryName.sprintf( "File%i", i + 1 ); 362 entryName.sprintf( "File%i", i + 1 );
362 QString linkFile = cfg.readEntry( entryName ); 363 QString linkFile = cfg.readEntry( entryName );
363 DocLnk lnk( linkFile ); 364 DocLnk lnk( linkFile );
364 if ( lnk.isValid() ) { 365 if ( lnk.isValid() ) {
365 d->selectedFiles->addToSelection( lnk ); 366 d->selectedFiles->addToSelection( lnk );
366 } 367 }
367 } 368 }
368 d->selectedFiles->setSelectedItem( currentString); 369 d->selectedFiles->setSelectedItem( currentString);
369// d->selectedFiles->setSelectedItem( (const QString &)currentString); 370// d->selectedFiles->setSelectedItem( (const QString &)currentString);
370} 371}
371 372
372 373
373void PlayListWidget::writeConfig( Config& cfg ) const { 374void PlayListWidget::writeConfig( Config& cfg ) const {
374 375
375 d->selectedFiles->writeCurrent( cfg); 376 d->selectedFiles->writeCurrent( cfg);
376 cfg.setGroup("PlayList"); 377 cfg.setGroup("PlayList");
377 int noOfFiles = 0; 378 int noOfFiles = 0;
378 d->selectedFiles->first(); 379 d->selectedFiles->first();
379 do { 380 do {
380 const DocLnk *lnk = d->selectedFiles->current(); 381 const DocLnk *lnk = d->selectedFiles->current();
381 if ( lnk ) { 382 if ( lnk ) {
382 QString entryName; 383 QString entryName;
383 entryName.sprintf( "File%i", noOfFiles + 1 ); 384 entryName.sprintf( "File%i", noOfFiles + 1 );
384// qDebug(entryName); 385// qDebug(entryName);
385 cfg.writeEntry( entryName, lnk->linkFile() ); 386 cfg.writeEntry( entryName, lnk->linkFile() );
386 // if this link does exist, add it so we have the file 387 // if this link does exist, add it so we have the file
387 // next time... 388 // next time...
388 if ( !QFile::exists( lnk->linkFile() ) ) { 389 if ( !QFile::exists( lnk->linkFile() ) ) {
389 // the way writing lnks doesn't really check for out 390 // the way writing lnks doesn't really check for out
390 // of disk space, but check it anyway. 391 // of disk space, but check it anyway.
391 if ( !lnk->writeLink() ) { 392 if ( !lnk->writeLink() ) {
392 QMessageBox::critical( 0, tr("Out of space"), 393 QMessageBox::critical( 0, tr("Out of space"),
393 tr( "There was a problem saving " 394 tr( "There was a problem saving "
394 "the playlist.\n" 395 "the playlist.\n"
395 "Your playlist " 396 "Your playlist "
396 "may be missing some entries\n" 397 "may be missing some entries\n"
397 "the next time you start it." ) 398 "the next time you start it." )
398 ); 399 );
399 } 400 }
400 } 401 }
401 noOfFiles++; 402 noOfFiles++;
402 } 403 }
403 } 404 }
404 while ( d->selectedFiles->next() ); 405 while ( d->selectedFiles->next() );
405 cfg.writeEntry("NumberOfFiles", noOfFiles ); 406 cfg.writeEntry("NumberOfFiles", noOfFiles );
406} 407}
407 408
408 409
409void PlayListWidget::addToSelection( const DocLnk& lnk ) { 410void PlayListWidget::addToSelection( const DocLnk& lnk ) {
410// qDebug("add"); 411// qDebug("add");
411 d->setDocumentUsed = FALSE; 412 d->setDocumentUsed = FALSE;
412 if ( mediaPlayerState->playlist() ) 413 if ( mediaPlayerState->playlist() )
413 d->selectedFiles->addToSelection( lnk ); 414 d->selectedFiles->addToSelection( lnk );
414 else 415 else
415 mediaPlayerState->setPlaying( TRUE ); 416 mediaPlayerState->setPlaying( TRUE );
416} 417}
417 418
418 419
419void PlayListWidget::clearList() { 420void PlayListWidget::clearList() {
420 while ( first() ) 421 while ( first() )
421 d->selectedFiles->removeSelected(); 422 d->selectedFiles->removeSelected();
422} 423}
423 424
424 425
425void PlayListWidget::addAllToList() { 426void PlayListWidget::addAllToList() {
426 DocLnkSet filesAll; 427 DocLnkSet filesAll;
427 Global::findDocuments(&filesAll, "video/*;audio/*"); 428 Global::findDocuments(&filesAll, "video/*;audio/*");
428 QListIterator<DocLnk> Adit( filesAll.children() ); 429 QListIterator<DocLnk> Adit( filesAll.children() );
429 for ( ; Adit.current(); ++Adit ) 430 for ( ; Adit.current(); ++Adit )
430 d->selectedFiles->addToSelection( **Adit ); 431 d->selectedFiles->addToSelection( **Adit );
431} 432}
432 433
433 434
434void PlayListWidget::addAllMusicToList() { 435void PlayListWidget::addAllMusicToList() {
435// DocLnkSet files; 436// DocLnkSet files;
436// Global::findDocuments(&files, "audio/*"); 437// Global::findDocuments(&files, "audio/*");
437 QListIterator<DocLnk> dit( files.children() ); 438 QListIterator<DocLnk> dit( files.children() );
438 for ( ; dit.current(); ++dit ) 439 for ( ; dit.current(); ++dit )
439 d->selectedFiles->addToSelection( **dit ); 440 d->selectedFiles->addToSelection( **dit );
440} 441}
441 442
442 443
443void PlayListWidget::addAllVideoToList() { 444void PlayListWidget::addAllVideoToList() {
444 QListIterator<DocLnk> dit( vFiles.children() ); 445 QListIterator<DocLnk> dit( vFiles.children() );
445 for ( ; dit.current(); ++dit ) 446 for ( ; dit.current(); ++dit )
446 d->selectedFiles->addToSelection( **dit ); 447 d->selectedFiles->addToSelection( **dit );
447} 448}
448 449
449 450
450void PlayListWidget::setDocument(const QString& fileref) { 451void PlayListWidget::setDocument(const QString& fileref) {
451 qDebug(fileref); 452 qDebug(fileref);
452 fromSetDocument = TRUE; 453 fromSetDocument = TRUE;
453 if ( fileref.isNull() ) { 454 if ( fileref.isNull() ) {
454 QMessageBox::critical( 0, tr( "Invalid File" ), tr( "There was a problem in getting the file." ) ); 455 QMessageBox::critical( 0, tr( "Invalid File" ), tr( "There was a problem in getting the file." ) );
455 return; 456 return;
456 } 457 }
457// qDebug("setDocument "+fileref); 458// qDebug("setDocument "+fileref);
458// if(fileref.find("m3u",0,TRUE) != -1) { //is m3u 459// if(fileref.find("m3u",0,TRUE) != -1) { //is m3u
459// clearList(); 460// clearList();
460// addToSelection( DocLnk( fileref ) ); 461// addToSelection( DocLnk( fileref ) );
461// d->setDocumentUsed = TRUE; 462// d->setDocumentUsed = TRUE;
462// d->selectedFiles->first(); 463// d->selectedFiles->first();
463// qApp->processEvents(); 464// qApp->processEvents();
464// } 465// }
465// else 466// else
466 if(fileref.find("playlist",0,TRUE) != -1) {//is playlist 467 if(fileref.find("playlist",0,TRUE) != -1) {//is playlist
467 clearList(); 468 clearList();
468 loadList(DocLnk(fileref)); 469 loadList(DocLnk(fileref));
469 d->selectedFiles->first(); 470 d->selectedFiles->first();
470 } else { 471 } else {
471 clearList(); 472 clearList();
472 addToSelection( DocLnk( fileref ) ); 473 addToSelection( DocLnk( fileref ) );
473 d->setDocumentUsed = TRUE; 474 d->setDocumentUsed = TRUE;
474 mediaPlayerState->setPlaying( FALSE ); 475 mediaPlayerState->setPlaying( FALSE );
475 qApp->processEvents(); 476 qApp->processEvents();
476 mediaPlayerState->setPlaying( TRUE ); 477 mediaPlayerState->setPlaying( TRUE );
477 qApp->processEvents(); 478 qApp->processEvents();
478 setCaption(tr("OpiePlayer")); 479 setCaption(tr("OpiePlayer"));
479 } 480 }
480} 481}
481 482
482 483
483void PlayListWidget::setActiveWindow() { 484void PlayListWidget::setActiveWindow() {
484 // When we get raised we need to ensure that it switches views 485 // When we get raised we need to ensure that it switches views
485 char origView = mediaPlayerState->view(); 486 char origView = mediaPlayerState->view();
486 mediaPlayerState->setView( 'l' ); // invalidate 487 mediaPlayerState->setView( 'l' ); // invalidate
487 mediaPlayerState->setView( origView ); // now switch back 488 mediaPlayerState->setView( origView ); // now switch back
488} 489}
489 490
490 491
491void PlayListWidget::useSelectedDocument() { 492void PlayListWidget::useSelectedDocument() {
492 d->setDocumentUsed = FALSE; 493 d->setDocumentUsed = FALSE;
493} 494}
494 495
495 496
496const DocLnk *PlayListWidget::current() { // this is fugly 497const DocLnk *PlayListWidget::current() { // this is fugly
497 498
498// if( fromSetDocument) { 499// if( fromSetDocument) {
499// qDebug("from setDoc"); 500// qDebug("from setDoc");
500// DocLnkSet files; 501// DocLnkSet files;
501// Global::findDocuments(&files, "video/*;audio/*"); 502// Global::findDocuments(&files, "video/*;audio/*");
502// QListIterator<DocLnk> dit( files.children() ); 503// QListIterator<DocLnk> dit( files.children() );
503// for ( ; dit.current(); ++dit ) { 504// for ( ; dit.current(); ++dit ) {
504// if(dit.current()->linkFile() == setDocFileRef) { 505// if(dit.current()->linkFile() == setDocFileRef) {
505// qDebug(setDocFileRef); 506// qDebug(setDocFileRef);
506// return dit; 507// return dit;
507// } 508// }
508// } 509// }
509// } else 510// } else
510 511
511 512
512 switch (tabWidget->currentPageIndex()) { 513 switch (tabWidget->currentPageIndex()) {
513 case 0: //playlist 514 case 0: //playlist
514 { 515 {
515 qDebug("playlist"); 516 qDebug("playlist");
516 if ( mediaPlayerState->playlist() ) { 517 if ( mediaPlayerState->playlist() ) {
517 return d->selectedFiles->current(); 518 return d->selectedFiles->current();
518 } 519 }
519 else if ( d->setDocumentUsed && d->current ) { 520 else if ( d->setDocumentUsed && d->current ) {
520 return d->current; 521 return d->current;
521 } else { 522 } else {
522 return d->files->selected(); 523 return d->files->selected();
523 } 524 }
524 } 525 }
525 break; 526 break;
526 case 1://audio 527 case 1://audio
527 { 528 {
528 qDebug("audioView"); 529 qDebug("audioView");
529// Global::findDocuments(&files, "audio/*"); 530// Global::findDocuments(&files, "audio/*");
530 QListIterator<DocLnk> dit( files.children() ); 531 QListIterator<DocLnk> dit( files.children() );
531 for ( ; dit.current(); ++dit ) { 532 for ( ; dit.current(); ++dit ) {
532 if( dit.current()->name() == audioView->currentItem()->text(0) && !insanityBool) { 533 if( dit.current()->name() == audioView->currentItem()->text(0) && !insanityBool) {
533 qDebug("here"); 534 qDebug("here");
534 insanityBool=TRUE; 535 insanityBool=TRUE;
535 return dit; 536 return dit;
536 } 537 }
537 } 538 }
538 } 539 }
539 break; 540 break;
540 case 2: // video 541 case 2: // video
541 { 542 {
542 qDebug("videoView"); 543 qDebug("videoView");
543// Global::findDocuments(&vFiles, "video/*"); 544// Global::findDocuments(&vFiles, "video/*");
544 QListIterator<DocLnk> Vdit( vFiles.children() ); 545 QListIterator<DocLnk> Vdit( vFiles.children() );
545 for ( ; Vdit.current(); ++Vdit ) { 546 for ( ; Vdit.current(); ++Vdit ) {
546 if( Vdit.current()->name() == videoView->currentItem()->text(0) && !insanityBool) { 547 if( Vdit.current()->name() == videoView->currentItem()->text(0) && !insanityBool) {
547 insanityBool=TRUE; 548 insanityBool=TRUE;
548 return Vdit; 549 return Vdit;
549 } 550 }
550 } 551 }
551 } 552 }
552 break; 553 break;
553 }; 554 };
554 return 0; 555 return 0;
555} 556}
556 557
557bool PlayListWidget::prev() { 558bool PlayListWidget::prev() {
558 if ( mediaPlayerState->playlist() ) { 559 if ( mediaPlayerState->playlist() ) {
559 if ( mediaPlayerState->shuffled() ) { 560 if ( mediaPlayerState->shuffled() ) {
560 const DocLnk *cur = current(); 561 const DocLnk *cur = current();
561 int j = 1 + (int)(97.0 * rand() / (RAND_MAX + 1.0)); 562 int j = 1 + (int)(97.0 * rand() / (RAND_MAX + 1.0));
562 for ( int i = 0; i < j; i++ ) { 563 for ( int i = 0; i < j; i++ ) {
563 if ( !d->selectedFiles->next() ) 564 if ( !d->selectedFiles->next() )
564 d->selectedFiles->first(); 565 d->selectedFiles->first();
565 } 566 }
566 if ( cur == current() ) 567 if ( cur == current() )
567 if ( !d->selectedFiles->next() ) 568 if ( !d->selectedFiles->next() )
568 d->selectedFiles->first(); 569 d->selectedFiles->first();
569 return TRUE; 570 return TRUE;
570 } else { 571 } else {
571 if ( !d->selectedFiles->prev() ) { 572 if ( !d->selectedFiles->prev() ) {
572 if ( mediaPlayerState->looping() ) { 573 if ( mediaPlayerState->looping() ) {
573 return d->selectedFiles->last(); 574 return d->selectedFiles->last();
574 } else { 575 } else {
575 return FALSE; 576 return FALSE;
576 } 577 }
577 } 578 }
578 return TRUE; 579 return TRUE;
579 } 580 }
580 } else { 581 } else {
581 return mediaPlayerState->looping(); 582 return mediaPlayerState->looping();
582 } 583 }
583} 584}
584 585
585 586
586bool PlayListWidget::next() { 587bool PlayListWidget::next() {
587 if ( mediaPlayerState->playlist() ) { 588 if ( mediaPlayerState->playlist() ) {
588 if ( mediaPlayerState->shuffled() ) { 589 if ( mediaPlayerState->shuffled() ) {
589 return prev(); 590 return prev();
590 } else { 591 } else {
591 if ( !d->selectedFiles->next() ) { 592 if ( !d->selectedFiles->next() ) {
592 if ( mediaPlayerState->looping() ) { 593 if ( mediaPlayerState->looping() ) {
593 return d->selectedFiles->first(); 594 return d->selectedFiles->first();
594 } else { 595 } else {
595 return FALSE; 596 return FALSE;
596 } 597 }
597 } 598 }
598 return TRUE; 599 return TRUE;
599 } 600 }
600 } else { 601 } else {
601 return mediaPlayerState->looping(); 602 return mediaPlayerState->looping();
602 } 603 }
603} 604}
604 605
605 606
606bool PlayListWidget::first() { 607bool PlayListWidget::first() {
607 if ( mediaPlayerState->playlist() ) 608 if ( mediaPlayerState->playlist() )
608 return d->selectedFiles->first(); 609 return d->selectedFiles->first();
609 else 610 else
610 return mediaPlayerState->looping(); 611 return mediaPlayerState->looping();
611} 612}
612 613
613 614
614bool PlayListWidget::last() { 615bool PlayListWidget::last() {
615 if ( mediaPlayerState->playlist() ) 616 if ( mediaPlayerState->playlist() )
616 return d->selectedFiles->last(); 617 return d->selectedFiles->last();
617 else 618 else
618 return mediaPlayerState->looping(); 619 return mediaPlayerState->looping();
619} 620}
620 621
621 622
622void PlayListWidget::saveList() { 623void PlayListWidget::saveList() {
623 624
624 QString filename; 625 QString filename;
625 InputDialog *fileDlg; 626 InputDialog *fileDlg;
626 fileDlg = new InputDialog(this,tr("Save Playlist"),TRUE, 0); 627 fileDlg = new InputDialog(this,tr("Save Playlist"),TRUE, 0);
627 fileDlg->exec(); 628 fileDlg->exec();
628 if( fileDlg->result() == 1 ) { 629 if( fileDlg->result() == 1 ) {
629 if ( d->current ) 630 if ( d->current )
630 delete d->current; 631 delete d->current;
631 filename = fileDlg->LineEdit1->text();//+".playlist"; 632 filename = fileDlg->LineEdit1->text();//+".playlist";
632// qDebug("saving playlist "+filename+".playlist"); 633// qDebug("saving playlist "+filename+".playlist");
633 Config cfg( filename +".playlist"); 634 Config cfg( filename +".playlist");
634 writeConfig( cfg ); 635 writeConfig( cfg );
635 636
636 DocLnk lnk; 637 DocLnk lnk;
637// lnk.setComment( ""); 638// lnk.setComment( "");
638 lnk.setFile(QDir::homeDirPath()+"/Settings/"+filename+".playlist.conf"); //sets File property 639 lnk.setFile(QDir::homeDirPath()+"/Settings/"+filename+".playlist.conf"); //sets File property
639 lnk.setType("playlist/plain");// hey is this a REGISTERED mime type?!?!? ;D 640 lnk.setType("playlist/plain");// hey is this a REGISTERED mime type?!?!? ;D
640 lnk.setIcon("opieplayer/playlist2"); 641 lnk.setIcon("opieplayer/playlist2");
641 lnk.setName( filename); //sets file name 642 lnk.setName( filename); //sets file name
642// qDebug(filename); 643// qDebug(filename);
643 if(!lnk.writeLink()) 644 if(!lnk.writeLink())
644 qDebug("Writing doclink did not work"); 645 qDebug("Writing doclink did not work");
645 } 646 }
646 Config config( "OpiePlayer" ); 647 Config config( "OpiePlayer" );
647 config.writeEntry("CurrentPlaylist",filename); 648 config.writeEntry("CurrentPlaylist",filename);
648 setCaption(tr("OpiePlayer: ")+filename); 649 setCaption(tr("OpiePlayer: ")+filename);
649 d->selectedFiles->first(); 650 d->selectedFiles->first();
650 if(fileDlg) 651 if(fileDlg)
651 delete fileDlg; 652 delete fileDlg;
652} 653}
653 654
654void PlayListWidget::loadList( const DocLnk & lnk) { 655void PlayListWidget::loadList( const DocLnk & lnk) {
655 QString name= lnk.name(); 656 QString name= lnk.name();
656// qDebug("currentList is "+name); 657// qDebug("currentList is "+name);
657 if( name.length()>1) { 658 if( name.length()>1) {
658 setCaption("OpiePlayer: "+name); 659 setCaption("OpiePlayer: "+name);
659// qDebug("load list "+ name+".playlist"); 660// qDebug("load list "+ name+".playlist");
660 clearList(); 661 clearList();
661 Config cfg( name+".playlist"); 662 Config cfg( name+".playlist");
662 readConfig(cfg); 663 readConfig(cfg);
663 664
664 tabWidget->setCurrentPage(0); 665 tabWidget->setCurrentPage(0);
665 666
666 Config config( "OpiePlayer" ); 667 Config config( "OpiePlayer" );
667 config.writeEntry("CurrentPlaylist", name); 668 config.writeEntry("CurrentPlaylist", name);
668// d->selectedFiles->first(); 669// d->selectedFiles->first();
669 } 670 }
670 671
671} 672}
672 673
673void PlayListWidget::setPlaylist( bool shown ) { 674void PlayListWidget::setPlaylist( bool shown ) {
674 if ( shown ) 675 if ( shown )
675 d->playListFrame->show(); 676 d->playListFrame->show();
676 else 677 else
677 d->playListFrame->hide(); 678 d->playListFrame->hide();
678} 679}
679 680
680void PlayListWidget::setView( char view ) { 681void PlayListWidget::setView( char view ) {
681 if ( view == 'l' ) 682 if ( view == 'l' )
682 showMaximized(); 683 showMaximized();
683 else 684 else
684 hide(); 685 hide();
685} 686}
686 687
687void PlayListWidget::addSelected() { 688void PlayListWidget::addSelected() {
688 689
689 Config cfg( "OpiePlayer" ); 690 Config cfg( "OpiePlayer" );
690 cfg.setGroup("PlayList"); 691 cfg.setGroup("PlayList");
691 QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); 692 QString currentPlaylist = cfg.readEntry("CurrentPlaylist","");
692 int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); 693 int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 );
693 694
694 switch (tabWidget->currentPageIndex()) { 695 switch (tabWidget->currentPageIndex()) {
695 case 0: //playlist 696 case 0: //playlist
696 break; 697 break;
697 case 1: { //audio 698 case 1: { //audio
698// QString entryName; 699// QString entryName;
699// entryName.sprintf( "File%i", i + 1 ); 700// entryName.sprintf( "File%i", i + 1 );
700// QString linkFile = cfg.readEntry( entryName ); 701// QString linkFile = cfg.readEntry( entryName );
701 QListViewItemIterator it( audioView ); 702 QListViewItemIterator it( audioView );
702 // iterate through all items of the listview 703 // iterate through all items of the listview
703 for ( ; it.current(); ++it ) { 704 for ( ; it.current(); ++it ) {
704 if ( it.current()->isSelected() ) { 705 if ( it.current()->isSelected() ) {
705 QListIterator<DocLnk> dit( files.children() ); 706 QListIterator<DocLnk> dit( files.children() );
706 for ( ; dit.current(); ++dit ) { 707 for ( ; dit.current(); ++dit ) {
707 if( dit.current()->name() == it.current()->text(0) ) { 708 if( dit.current()->name() == it.current()->text(0) ) {
708 d->selectedFiles->addToSelection( **dit ); 709 d->selectedFiles->addToSelection( **dit );
709 } 710 }
710 } 711 }
711 audioView->setSelected( it.current(),FALSE); 712 audioView->setSelected( it.current(),FALSE);
712 } 713 }
713 } 714 }
714 tabWidget->setCurrentPage(0); 715 tabWidget->setCurrentPage(0);
715 } 716 }
716 break; 717 break;
717 case 2: { // video 718 case 2: { // video
718 QListViewItemIterator it( videoView ); 719 QListViewItemIterator it( videoView );
719 // iterate through all items of the listview 720 // iterate through all items of the listview
720 for ( ; it.current(); ++it ) { 721 for ( ; it.current(); ++it ) {
721 if ( it.current()->isSelected() ) { 722 if ( it.current()->isSelected() ) {
722 QListIterator<DocLnk> dit( vFiles.children() ); 723 QListIterator<DocLnk> dit( vFiles.children() );
723 for ( ; dit.current(); ++dit ) { 724 for ( ; dit.current(); ++dit ) {
724 if( dit.current()->name() == it.current()->text(0) ) { 725 if( dit.current()->name() == it.current()->text(0) ) {
725 d->selectedFiles->addToSelection( **dit ); 726 d->selectedFiles->addToSelection( **dit );
726 } 727 }
727 } 728 }
728 729
729 videoView->setSelected( it.current(),FALSE); 730 videoView->setSelected( it.current(),FALSE);
730 } 731 }
731 } 732 }
732// for ( int i = 0; i < noOfFiles; i++ ) { 733// for ( int i = 0; i < noOfFiles; i++ ) {
733// QString entryName; 734// QString entryName;
734// entryName.sprintf( "File%i", i + 1 ); 735// entryName.sprintf( "File%i", i + 1 );
735// QString linkFile = cfg.readEntry( entryName ); 736// QString linkFile = cfg.readEntry( entryName );
736// if( DocLnk( linkFile).name() == videoView->selectedItem()->text(0) ) { 737// if( DocLnk( linkFile).name() == videoView->selectedItem()->text(0) ) {
737// int result= QMessageBox::warning(this,tr("OpiePlayer"), 738// int result= QMessageBox::warning(this,tr("OpiePlayer"),
738// tr("This is all ready in your playlist.\nContinue?"), 739// tr("This is all ready in your playlist.\nContinue?"),
739// tr("Yes"),tr("No"),0,0,1); 740// tr("Yes"),tr("No"),0,0,1);
740// if (result !=0) 741// if (result !=0)
741// return; 742// return;
742// } 743// }
743// } 744// }
744// addToSelection( videoView->selectedItem() ); 745// addToSelection( videoView->selectedItem() );
745 tabWidget->setCurrentPage(0); 746 tabWidget->setCurrentPage(0);
746 } 747 }
747 break; 748 break;
748 }; 749 };
749} 750}
750 751
751void PlayListWidget::removeSelected() { 752void PlayListWidget::removeSelected() {
752 d->selectedFiles->removeSelected( ); 753 d->selectedFiles->removeSelected( );
753} 754}
754 755
755void PlayListWidget::playIt( QListViewItem *it) { 756void PlayListWidget::playIt( QListViewItem *it) {
756// d->setDocumentUsed = FALSE; 757// d->setDocumentUsed = FALSE;
757 mediaPlayerState->setPlaying(FALSE); 758 mediaPlayerState->setPlaying(FALSE);
758 mediaPlayerState->setPlaying(TRUE); 759 mediaPlayerState->setPlaying(TRUE);
759 d->selectedFiles->unSelect(); 760 d->selectedFiles->unSelect();
760} 761}
761 762
762void PlayListWidget::addToSelection( QListViewItem *it) { 763void PlayListWidget::addToSelection( QListViewItem *it) {
763 d->setDocumentUsed = FALSE; 764 d->setDocumentUsed = FALSE;
764 765
765 if(it) { 766 if(it) {
766 switch (tabWidget->currentPageIndex()) { 767 switch (tabWidget->currentPageIndex()) {
767 case 1: { 768 case 1: {
768 QListIterator<DocLnk> dit( files.children() ); 769 QListIterator<DocLnk> dit( files.children() );
769 for ( ; dit.current(); ++dit ) { 770 for ( ; dit.current(); ++dit ) {
770 if( dit.current()->name() == it->text(0)) { 771 if( dit.current()->name() == it->text(0)) {
771 d->selectedFiles->addToSelection( **dit ); 772 d->selectedFiles->addToSelection( **dit );
772 } 773 }
773 } 774 }
774 } 775 }
775 break; 776 break;
776 case 2: { 777 case 2: {
777 QListIterator<DocLnk> dit( vFiles.children() ); 778 QListIterator<DocLnk> dit( vFiles.children() );
778 for ( ; dit.current(); ++dit ) { 779 for ( ; dit.current(); ++dit ) {
779 if( dit.current()->name() == it->text(0)) { 780 if( dit.current()->name() == it->text(0)) {
780 d->selectedFiles->addToSelection( **dit ); 781 d->selectedFiles->addToSelection( **dit );
781 } 782 }
782 } 783 }
783 } 784 }
784 break; 785 break;
785 case 0: 786 case 0:
786 break; 787 break;
787 }; 788 };
788 tabWidget->setCurrentPage(0); 789 tabWidget->setCurrentPage(0);
789 } 790 }
790} 791}
791 792
792void PlayListWidget::tabChanged(QWidget *widg) { 793void PlayListWidget::tabChanged(QWidget *widg) {
793 794
794 switch ( tabWidget->currentPageIndex()) { 795 switch ( tabWidget->currentPageIndex()) {
795 case 0: 796 case 0:
796 { 797 {
797 if( !tbDeletePlaylist->isHidden()) 798 if( !tbDeletePlaylist->isHidden())
798 tbDeletePlaylist->hide(); 799 tbDeletePlaylist->hide();
799 d->tbRemoveFromList->setEnabled(TRUE); 800 d->tbRemoveFromList->setEnabled(TRUE);
800 d->tbAddToList->setEnabled(FALSE); 801 d->tbAddToList->setEnabled(FALSE);
801 } 802 }
802 break; 803 break;
803 case 1: 804 case 1:
804 { 805 {