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