summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/audiowidget.cpp7
-rw-r--r--core/multimedia/opieplayer/playlistwidget.cpp163
2 files changed, 74 insertions, 96 deletions
diff --git a/core/multimedia/opieplayer/audiowidget.cpp b/core/multimedia/opieplayer/audiowidget.cpp
index ef7c8dc..9a55608 100644
--- a/core/multimedia/opieplayer/audiowidget.cpp
+++ b/core/multimedia/opieplayer/audiowidget.cpp
@@ -55,103 +55,104 @@ MediaButton audioButtons[] = {
55 { TRUE, FALSE, FALSE }, // repeat/loop 55 { TRUE, FALSE, FALSE }, // repeat/loop
56 { FALSE, FALSE, FALSE }, // playlist 56 { FALSE, FALSE, FALSE }, // playlist
57 { FALSE, FALSE, FALSE }, // forward 57 { FALSE, FALSE, FALSE }, // forward
58 { FALSE, FALSE, FALSE } // back 58 { FALSE, FALSE, FALSE } // back
59}; 59};
60 60
61const char *skin_mask_file_names[10] = { 61const char *skin_mask_file_names[10] = {
62 "play", "stop", "next", "prev", "up", 62 "play", "stop", "next", "prev", "up",
63 "down", "loop", "playlist", "forward", "back" 63 "down", "loop", "playlist", "forward", "back"
64}; 64};
65 65
66static void changeTextColor( QWidget *w ) { 66static void changeTextColor( QWidget *w ) {
67 QPalette p = w->palette(); 67 QPalette p = w->palette();
68 p.setBrush( QColorGroup::Background, QColor( 167, 212, 167 ) ); 68 p.setBrush( QColorGroup::Background, QColor( 167, 212, 167 ) );
69 p.setBrush( QColorGroup::Base, QColor( 167, 212, 167 ) ); 69 p.setBrush( QColorGroup::Base, QColor( 167, 212, 167 ) );
70 w->setPalette( p ); 70 w->setPalette( p );
71} 71}
72 72
73static const int numButtons = (sizeof(audioButtons)/sizeof(MediaButton)); 73static const int numButtons = (sizeof(audioButtons)/sizeof(MediaButton));
74 74
75AudioWidget::AudioWidget(QWidget* parent, const char* name, WFlags f) : 75AudioWidget::AudioWidget(QWidget* parent, const char* name, WFlags f) :
76 QWidget( parent, name, f ), songInfo( this ), slider( Qt::Horizontal, this ), time( this ) 76 QWidget( parent, name, f ), songInfo( this ), slider( Qt::Horizontal, this ), time( this )
77{ 77{
78 setCaption( tr("OpiePlayer") ); 78 setCaption( tr("OpiePlayer") );
79 qDebug("<<<<<audioWidget"); 79 qDebug("<<<<<audioWidget");
80 80
81 Config cfg("OpiePlayer"); 81 Config cfg("OpiePlayer");
82 cfg.setGroup("Options"); 82 cfg.setGroup("Options");
83 skin = cfg.readEntry("Skin","default"); 83 skin = cfg.readEntry("Skin","default");
84 //skin = "scaleTest"; 84 //skin = "scaleTest";
85// color of background, frame, degree of transparency 85// color of background, frame, degree of transparency
86 86
87// QString skinPath = "opieplayer/skins/" + skin;
87 QString skinPath = "opieplayer2/skins/" + skin; 88 QString skinPath = "opieplayer2/skins/" + skin;
88 qDebug("skin path "+skinPath); 89 qDebug("skin path "+skinPath);
89 90
90 pixBg = new QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) ); 91 pixBg = new QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) );
91 imgUp = new QImage( Resource::loadImage( QString("%1/skin_up").arg(skinPath) ) ); 92 imgUp = new QImage( Resource::loadImage( QString("%1/skin_up").arg(skinPath) ) );
92 imgDn = new QImage( Resource::loadImage( QString("%1/skin_down").arg(skinPath) ) ); 93 imgDn = new QImage( Resource::loadImage( QString("%1/skin_down").arg(skinPath) ) );
93 94
94 imgButtonMask = new QImage( imgUp->width(), imgUp->height(), 8, 255 ); 95 imgButtonMask = new QImage( imgUp->width(), imgUp->height(), 8, 255 );
95 imgButtonMask->fill( 0 ); 96 imgButtonMask->fill( 0 );
96 97
97 for ( int i = 0; i < 10; i++ ) { 98 for ( int i = 0; i < 10; i++ ) {
98 QString filename = QString(getenv("OPIEDIR")) + "/pics/" + skinPath + "/skin_mask_" + skin_mask_file_names[i] + ".png"; 99 QString filename = QString(getenv("OPIEDIR")) + "/pics/" + skinPath + "/skin_mask_" + skin_mask_file_names[i] + ".png";
99 masks[i] = new QBitmap( filename ); 100 masks[i] = new QBitmap( filename );
100 101
101 if ( !masks[i]->isNull() ) { 102 if ( !masks[i]->isNull() ) {
102 QImage imgMask = masks[i]->convertToImage(); 103 QImage imgMask = masks[i]->convertToImage();
103 uchar **dest = imgButtonMask->jumpTable(); 104 uchar **dest = imgButtonMask->jumpTable();
104 for ( int y = 0; y < imgUp->height(); y++ ) { 105 for ( int y = 0; y < imgUp->height(); y++ ) {
105 uchar *line = dest[y]; 106 uchar *line = dest[y];
106 for ( int x = 0; x < imgUp->width(); x++ ) 107 for ( int x = 0; x < imgUp->width(); x++ )
107 if ( !qRed( imgMask.pixel( x, y ) ) ) 108 if ( !qRed( imgMask.pixel( x, y ) ) )
108 line[x] = i + 1; 109 line[x] = i + 1;
109 } 110 }
110 } 111 }
111 112
112 } 113 }
113 114
114 for ( int i = 0; i < 11; i++ ) { 115 for ( int i = 0; i < 11; i++ ) {
115 buttonPixUp[i] = NULL; 116 buttonPixUp[i] = NULL;
116 buttonPixDown[i] = NULL; 117 buttonPixDown[i] = NULL;
117 } 118 }
118 119
119 setBackgroundPixmap( *pixBg ); 120 setBackgroundPixmap( *pixBg );
120 121
121 songInfo.setFocusPolicy( QWidget::NoFocus ); 122 songInfo.setFocusPolicy( QWidget::NoFocus );
122 123
123 changeTextColor( &songInfo ); 124// changeTextColor( &songInfo );
124 songInfo.setBackgroundColor( QColor( 167, 212, 167 )); 125// songInfo.setBackgroundColor( QColor( 167, 212, 167 ));
125 songInfo.setFrameStyle( QFrame::NoFrame); 126// songInfo.setFrameStyle( QFrame::NoFrame);
126// songInfo.setFrameStyle( QFrame::WinPanel | QFrame::Sunken ); 127// songInfo.setFrameStyle( QFrame::WinPanel | QFrame::Sunken );
127 //NoFrame 128 //NoFrame
128// songInfo.setForegroundColor(Qt::white); 129// songInfo.setForegroundColor(Qt::white);
129 130
130 slider.setFixedHeight( 20 ); 131 slider.setFixedHeight( 20 );
131 slider.setMinValue( 0 ); 132 slider.setMinValue( 0 );
132 slider.setMaxValue( 1 ); 133 slider.setMaxValue( 1 );
133 slider.setFocusPolicy( QWidget::NoFocus ); 134 slider.setFocusPolicy( QWidget::NoFocus );
134 slider.setBackgroundPixmap( *pixBg ); 135 slider.setBackgroundPixmap( *pixBg );
135 136
136 time.setFocusPolicy( QWidget::NoFocus ); 137 time.setFocusPolicy( QWidget::NoFocus );
137 time.setAlignment( Qt::AlignCenter ); 138 time.setAlignment( Qt::AlignCenter );
138 time.setFrame(FALSE); 139 time.setFrame(FALSE);
139 changeTextColor( &time ); 140 changeTextColor( &time );
140 141
141 resizeEvent( NULL ); 142 resizeEvent( NULL );
142 143
143 connect( &slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) ); 144 connect( &slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) );
144 connect( &slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) ); 145 connect( &slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) );
145 146
146 connect( mediaPlayerState, SIGNAL( lengthChanged(long) ), this, SLOT( setLength(long) ) ); 147 connect( mediaPlayerState, SIGNAL( lengthChanged(long) ), this, SLOT( setLength(long) ) );
147 connect( mediaPlayerState, SIGNAL( viewChanged(char) ), this, SLOT( setView(char) ) ); 148 connect( mediaPlayerState, SIGNAL( viewChanged(char) ), this, SLOT( setView(char) ) );
148 connect( mediaPlayerState, SIGNAL( loopingToggled(bool) ), this, SLOT( setLooping(bool) ) ); 149 connect( mediaPlayerState, SIGNAL( loopingToggled(bool) ), this, SLOT( setLooping(bool) ) );
149// connect( mediaPlayerState, SIGNAL( pausedToggled(bool) ), this, SLOT( setPaused(bool) ) ); 150// connect( mediaPlayerState, SIGNAL( pausedToggled(bool) ), this, SLOT( setPaused(bool) ) );
150 connect( mediaPlayerState, SIGNAL( playingToggled(bool) ), this, SLOT( setPlaying(bool) ) ); 151 connect( mediaPlayerState, SIGNAL( playingToggled(bool) ), this, SLOT( setPlaying(bool) ) );
151 152
152 // Intialise state 153 // Intialise state
153 setLength( mediaPlayerState->length() ); 154 setLength( mediaPlayerState->length() );
154 setPosition( mediaPlayerState->position() ); 155 setPosition( mediaPlayerState->position() );
155 setLooping( mediaPlayerState->fullscreen() ); 156 setLooping( mediaPlayerState->fullscreen() );
156// setPaused( mediaPlayerState->paused() ); 157// setPaused( mediaPlayerState->paused() );
157 setPlaying( mediaPlayerState->playing() ); 158 setPlaying( mediaPlayerState->playing() );
diff --git a/core/multimedia/opieplayer/playlistwidget.cpp b/core/multimedia/opieplayer/playlistwidget.cpp
index a937d7c..c28548c 100644
--- a/core/multimedia/opieplayer/playlistwidget.cpp
+++ b/core/multimedia/opieplayer/playlistwidget.cpp
@@ -215,142 +215,145 @@ PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl )
215// playlistView->setMinimumSize(236,260); 215// playlistView->setMinimumSize(236,260);
216 tabWidget->insertTab( pTab,"Playlist"); 216 tabWidget->insertTab( pTab,"Playlist");
217 217
218 218
219 // Add the playlist area 219 // Add the playlist area
220 220
221 QVBox *vbox3 = new QVBox( pTab ); vbox3->setBackgroundMode( PaletteButton ); 221 QVBox *vbox3 = new QVBox( pTab ); vbox3->setBackgroundMode( PaletteButton );
222 d->playListFrame = vbox3; 222 d->playListFrame = vbox3;
223 d->playListFrame ->setMinimumSize(235,260); 223 d->playListFrame ->setMinimumSize(235,260);
224 224
225 QHBox *hbox2 = new QHBox( vbox3 ); hbox2->setBackgroundMode( PaletteButton ); 225 QHBox *hbox2 = new QHBox( vbox3 ); hbox2->setBackgroundMode( PaletteButton );
226 226
227 d->selectedFiles = new PlayListSelection( hbox2); 227 d->selectedFiles = new PlayListSelection( hbox2);
228 QVBox *vbox1 = new QVBox( hbox2 ); vbox1->setBackgroundMode( PaletteButton ); 228 QVBox *vbox1 = new QVBox( hbox2 ); vbox1->setBackgroundMode( PaletteButton );
229 229
230 QPEApplication::setStylusOperation( d->selectedFiles->viewport(),QPEApplication::RightOnHold); 230 QPEApplication::setStylusOperation( d->selectedFiles->viewport(),QPEApplication::RightOnHold);
231 231
232 232
233 233
234 QVBox *stretch1 = new QVBox( vbox1 ); stretch1->setBackgroundMode( PaletteButton ); // add stretch 234 QVBox *stretch1 = new QVBox( vbox1 ); stretch1->setBackgroundMode( PaletteButton ); // add stretch
235 new ToolButton( vbox1, tr( "Move Up" ), "opieplayer/up", d->selectedFiles, SLOT(moveSelectedUp()) ); 235 new ToolButton( vbox1, tr( "Move Up" ), "opieplayer/up", d->selectedFiles, SLOT(moveSelectedUp()) );
236 new ToolButton( vbox1, tr( "Remove" ), "opieplayer/cut", d->selectedFiles, SLOT(removeSelected()) ); 236 new ToolButton( vbox1, tr( "Remove" ), "opieplayer/cut", d->selectedFiles, SLOT(removeSelected()) );
237 new ToolButton( vbox1, tr( "Move Down" ), "opieplayer/down", d->selectedFiles, SLOT(moveSelectedDown()) ); 237 new ToolButton( vbox1, tr( "Move Down" ), "opieplayer/down", d->selectedFiles, SLOT(moveSelectedDown()) );
238 QVBox *stretch2 = new QVBox( vbox1 ); stretch2->setBackgroundMode( PaletteButton ); // add stretch 238 QVBox *stretch2 = new QVBox( vbox1 ); stretch2->setBackgroundMode( PaletteButton ); // add stretch
239 239
240 QWidget *aTab; 240 QWidget *aTab;
241 aTab = new QWidget( tabWidget, "aTab" ); 241 aTab = new QWidget( tabWidget, "aTab" );
242 audioView = new QListView( aTab, "Audioview" ); 242 audioView = new QListView( aTab, "Audioview" );
243 audioView->setMinimumSize(233,260); 243 audioView->setMinimumSize(233,260);
244 audioView->addColumn( tr("Title"),140); 244 audioView->addColumn( tr("Title"),140);
245 audioView->addColumn(tr("Size"), -1); 245 audioView->addColumn(tr("Size"), -1);
246 audioView->addColumn(tr("Media"),-1); 246 audioView->addColumn(tr("Media"),-1);
247 audioView->addColumn( tr( "Path" ), 0 );
248
247 audioView->setColumnAlignment(1, Qt::AlignRight); 249 audioView->setColumnAlignment(1, Qt::AlignRight);
248 audioView->setColumnAlignment(2, Qt::AlignRight); 250 audioView->setColumnAlignment(2, Qt::AlignRight);
249 audioView->setAllColumnsShowFocus(TRUE); 251 audioView->setAllColumnsShowFocus(TRUE);
250 252
251 audioView->setMultiSelection( TRUE ); 253 audioView->setMultiSelection( TRUE );
252 audioView->setSelectionMode( QListView::Extended); 254 audioView->setSelectionMode( QListView::Extended);
253 255
254 tabWidget->insertTab(aTab,tr("Audio")); 256 tabWidget->insertTab(aTab,tr("Audio"));
255 257
256 QPEApplication::setStylusOperation( audioView->viewport(),QPEApplication::RightOnHold); 258 QPEApplication::setStylusOperation( audioView->viewport(),QPEApplication::RightOnHold);
257 259
258// audioView 260// audioView
259// populateAudioView(); 261// populateAudioView();
260// videowidget 262// videowidget
261 263
262 QWidget *vTab; 264 QWidget *vTab;
263 vTab = new QWidget( tabWidget, "vTab" ); 265 vTab = new QWidget( tabWidget, "vTab" );
264 videoView = new QListView( vTab, "Videoview" ); 266 videoView = new QListView( vTab, "Videoview" );
265 videoView->setMinimumSize(233,260); 267 videoView->setMinimumSize(233,260);
266 268
267 videoView->addColumn(tr("Title"),140); 269 videoView->addColumn(tr("Title"),140);
268 videoView->addColumn(tr("Size"),-1); 270 videoView->addColumn(tr("Size"),-1);
269 videoView->addColumn(tr("Media"),-1); 271 videoView->addColumn(tr("Media"),-1);
272 videoView->addColumn(tr( "Path" ), 0 );
270 videoView->setColumnAlignment(1, Qt::AlignRight); 273 videoView->setColumnAlignment(1, Qt::AlignRight);
271 videoView->setColumnAlignment(2, Qt::AlignRight); 274 videoView->setColumnAlignment(2, Qt::AlignRight);
272 videoView->setAllColumnsShowFocus(TRUE); 275 videoView->setAllColumnsShowFocus(TRUE);
273 videoView->setMultiSelection( TRUE ); 276 videoView->setMultiSelection( TRUE );
274 videoView->setSelectionMode( QListView::Extended); 277 videoView->setSelectionMode( QListView::Extended);
275 278
276 QPEApplication::setStylusOperation( videoView->viewport(),QPEApplication::RightOnHold); 279 QPEApplication::setStylusOperation( videoView->viewport(),QPEApplication::RightOnHold);
277 280
278 tabWidget->insertTab( vTab,tr("Video")); 281 tabWidget->insertTab( vTab,tr("Video"));
279 282
280 QWidget *LTab; 283 QWidget *LTab;
281 LTab = new QWidget( tabWidget, "LTab" ); 284 LTab = new QWidget( tabWidget, "LTab" );
282 playLists = new FileSelector( "playlist/plain", LTab, "fileselector" , FALSE, FALSE); //buggy 285 playLists = new FileSelector( "playlist/plain", LTab, "fileselector" , FALSE, FALSE); //buggy
283 playLists->setMinimumSize(233,260); 286 playLists->setMinimumSize(233,260);
284 tabWidget->insertTab(LTab,tr("Lists")); 287 tabWidget->insertTab(LTab,tr("Lists"));
285 288
286 connect(tbDeletePlaylist,(SIGNAL(released())),SLOT( deletePlaylist())); 289 connect(tbDeletePlaylist,(SIGNAL(released())),SLOT( deletePlaylist()));
287 connect( fullScreenButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleFullscreen()) ); 290 connect( fullScreenButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleFullscreen()) );
288 connect( scaleButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleScaled()) ); 291 connect( scaleButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleScaled()) );
289 292
290 connect( d->selectedFiles, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), 293 connect( d->selectedFiles, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)),
291 this,SLOT( playlistViewPressed(int, QListViewItem *, const QPoint&, int)) ); 294 this,SLOT( playlistViewPressed(int, QListViewItem *, const QPoint&, int)) );
292 295
293 connect( audioView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), 296 connect( audioView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)),
294 this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) ); 297 this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) );
295 298
296 connect( audioView, SIGNAL( returnPressed( QListViewItem *)), 299 connect( audioView, SIGNAL( returnPressed( QListViewItem *)),
297 this,SLOT( playIt( QListViewItem *)) ); 300 this,SLOT( playIt( QListViewItem *)) );
298 connect( audioView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) ); 301 connect( audioView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) );
299 302
300 connect( videoView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), 303 connect( videoView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)),
301 this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) ); 304 this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) );
302 connect( videoView, SIGNAL( returnPressed( QListViewItem *)), 305 connect( videoView, SIGNAL( returnPressed( QListViewItem *)),
303 this,SLOT( playIt( QListViewItem *)) ); 306 this,SLOT( playIt( QListViewItem *)) );
304 connect( videoView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) ); 307 connect( videoView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) );
305 308
306 connect( playLists, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( loadList( const DocLnk & ) ) ); 309 connect( playLists, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( loadList( const DocLnk & ) ) );
307 310
308 311
309 connect( tabWidget, SIGNAL (currentChanged(QWidget*)),this,SLOT(tabChanged(QWidget*))); 312 connect( tabWidget, SIGNAL (currentChanged(QWidget*)),this,SLOT(tabChanged(QWidget*)));
310 313
311// connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), d->tbPlay, SLOT( setOn( bool ) ) ); 314// connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), d->tbPlay, SLOT( setOn( bool ) ) );
312 connect( mediaPlayerState, SIGNAL( loopingToggled( bool ) ), d->tbLoop, SLOT( setOn( bool ) ) ); 315 connect( mediaPlayerState, SIGNAL( loopingToggled( bool ) ), d->tbLoop, SLOT( setOn( bool ) ) );
313 connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), d->tbShuffle, SLOT( setOn( bool ) ) ); 316 connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), d->tbShuffle, SLOT( setOn( bool ) ) );
314 connect( mediaPlayerState, SIGNAL( playlistToggled( bool ) ), this, SLOT( setPlaylist( bool ) ) ); 317 connect( mediaPlayerState, SIGNAL( playlistToggled( bool ) ), this, SLOT( setPlaylist( bool ) ) );
315 318
316 connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) ); 319 connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) );
317 320
318 setCentralWidget( vbox5 ); 321 setCentralWidget( vbox5 );
319 322
320 Config cfg( "OpiePlayer" ); 323 Config cfg( "OpiePlayer" );
321 readConfig( cfg ); 324 readConfig( cfg );
322 QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); 325 QString currentPlaylist = cfg.readEntry("CurrentPlaylist","default");
323 loadList(DocLnk( currentPlaylist)); 326 loadList(DocLnk( currentPlaylist));
324 setCaption(tr("OpiePlayer: ")+ currentPlaylist ); 327 setCaption(tr("OpiePlayer: ")+ QFileInfo(currentPlaylist).baseName());
325 328
326 initializeStates(); 329 initializeStates();
327} 330}
328 331
329 332
330PlayListWidget::~PlayListWidget() { 333PlayListWidget::~PlayListWidget() {
331 Config cfg( "OpiePlayer" ); 334 Config cfg( "OpiePlayer" );
332 writeConfig( cfg ); 335 writeConfig( cfg );
333 336
334 if ( d->current ) 337 if ( d->current )
335 delete d->current; 338 delete d->current;
336 delete d; 339 delete d;
337} 340}
338 341
339 342
340void PlayListWidget::initializeStates() { 343void PlayListWidget::initializeStates() {
341 344
342 d->tbPlay->setOn( mediaPlayerState->playing() ); 345 d->tbPlay->setOn( mediaPlayerState->playing() );
343 d->tbLoop->setOn( mediaPlayerState->looping() ); 346 d->tbLoop->setOn( mediaPlayerState->looping() );
344 d->tbShuffle->setOn( mediaPlayerState->shuffled() ); 347 d->tbShuffle->setOn( mediaPlayerState->shuffled() );
345 setPlaylist( true); 348 setPlaylist( true);
346} 349}
347 350
348 351
349void PlayListWidget::readConfig( Config& cfg ) { 352void PlayListWidget::readConfig( Config& cfg ) {
350 cfg.setGroup("PlayList"); 353 cfg.setGroup("PlayList");
351 QString currentString = cfg.readEntry("current", "" ); 354 QString currentString = cfg.readEntry("current", "" );
352 int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); 355 int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 );
353 for ( int i = 0; i < noOfFiles; i++ ) { 356 for ( int i = 0; i < noOfFiles; i++ ) {
354 QString entryName; 357 QString entryName;
355 entryName.sprintf( "File%i", i + 1 ); 358 entryName.sprintf( "File%i", i + 1 );
356 QString linkFile = cfg.readEntry( entryName ); 359 QString linkFile = cfg.readEntry( entryName );
@@ -394,80 +397,92 @@ void PlayListWidget::writeConfig( Config& cfg ) const {
394 noOfFiles++; 397 noOfFiles++;
395 } 398 }
396 } 399 }
397 while ( d->selectedFiles->next() ); 400 while ( d->selectedFiles->next() );
398 cfg.writeEntry("NumberOfFiles", noOfFiles ); 401 cfg.writeEntry("NumberOfFiles", noOfFiles );
399} 402}
400 403
401 404
402void PlayListWidget::addToSelection( const DocLnk& lnk ) { 405void PlayListWidget::addToSelection( const DocLnk& lnk ) {
403 d->setDocumentUsed = false; 406 d->setDocumentUsed = false;
404 if ( mediaPlayerState->playlist() ) { 407 if ( mediaPlayerState->playlist() ) {
405 if(QFileInfo(lnk.file()).exists() || lnk.file().left(4) == "http" ) 408 if(QFileInfo(lnk.file()).exists() || lnk.file().left(4) == "http" )
406 d->selectedFiles->addToSelection( lnk ); 409 d->selectedFiles->addToSelection( lnk );
407 } 410 }
408 else 411 else
409 mediaPlayerState->setPlaying( true); 412 mediaPlayerState->setPlaying( true);
410} 413}
411 414
412 415
413void PlayListWidget::clearList() { 416void PlayListWidget::clearList() {
414 while ( first() ) 417 while ( first() )
415 d->selectedFiles->removeSelected(); 418 d->selectedFiles->removeSelected();
416} 419}
417 420
418 421
419void PlayListWidget::addAllToList() { 422void PlayListWidget::addAllToList() {
420 DocLnkSet filesAll; 423 DocLnkSet filesAll;
421 Global::findDocuments(&filesAll, "video/*;audio/*"); 424 Global::findDocuments(&filesAll, "video/*;audio/*");
422 QListIterator<DocLnk> Adit( filesAll.children() ); 425 QListIterator<DocLnk> Adit( filesAll.children() );
423 for ( ; Adit.current(); ++Adit ) 426 for ( ; Adit.current(); ++Adit )
424 if(QFileInfo(Adit.current()->file()).exists()) 427 if(QFileInfo(Adit.current()->file()).exists())
425 d->selectedFiles->addToSelection( **Adit ); 428 d->selectedFiles->addToSelection( **Adit );
429 tabWidget->setCurrentPage(0);
430
431 writeCurrentM3u();
432 d->selectedFiles->first();
426} 433}
427 434
428 435
429void PlayListWidget::addAllMusicToList() { 436void PlayListWidget::addAllMusicToList() {
430 QListIterator<DocLnk> dit( files.children() ); 437 QListIterator<DocLnk> dit( files.children() );
431 for ( ; dit.current(); ++dit ) 438 for ( ; dit.current(); ++dit )
432 if(QFileInfo(dit.current()->file()).exists()) 439 if(QFileInfo(dit.current()->file()).exists())
433 d->selectedFiles->addToSelection( **dit ); 440 d->selectedFiles->addToSelection( **dit );
441 tabWidget->setCurrentPage(0);
442
443 writeCurrentM3u();
444 d->selectedFiles->first();
434} 445}
435 446
436 447
437void PlayListWidget::addAllVideoToList() { 448void PlayListWidget::addAllVideoToList() {
438 QListIterator<DocLnk> dit( vFiles.children() ); 449 QListIterator<DocLnk> dit( vFiles.children() );
439 for ( ; dit.current(); ++dit ) 450 for ( ; dit.current(); ++dit )
440 if(QFileInfo( dit.current()->file()).exists()) 451 if(QFileInfo( dit.current()->file()).exists())
441 d->selectedFiles->addToSelection( **dit ); 452 d->selectedFiles->addToSelection( **dit );
453 tabWidget->setCurrentPage(0);
454
455 writeCurrentM3u();
456 d->selectedFiles->first();
442} 457}
443 458
444 459
445void PlayListWidget::setDocument(const QString& fileref) { 460void PlayListWidget::setDocument(const QString& fileref) {
446 qDebug(fileref); 461 qDebug(fileref);
447 fromSetDocument = TRUE; 462 fromSetDocument = TRUE;
448 if ( fileref.isNull() ) { 463 if ( fileref.isNull() ) {
449 QMessageBox::critical( 0, tr( "Invalid File" ), tr( "There was a problem in getting the file." ) ); 464 QMessageBox::critical( 0, tr( "Invalid File" ), tr( "There was a problem in getting the file." ) );
450 return; 465 return;
451 } 466 }
452// qDebug("setDocument "+fileref); 467// qDebug("setDocument "+fileref);
453 if(fileref.find("m3u",0,TRUE) != -1) { //is m3u 468 if(fileref.find("m3u",0,TRUE) != -1) { //is m3u
454 readm3u( fileref); 469 readm3u( fileref);
455 } 470 }
456 else if(fileref.find("pls",0,TRUE) != -1) { //is pls 471 else if(fileref.find("pls",0,TRUE) != -1) { //is pls
457 readPls( fileref); 472 readPls( fileref);
458 } 473 }
459 else if(fileref.find("playlist",0,TRUE) != -1) {//is playlist 474 else if(fileref.find("playlist",0,TRUE) != -1) {//is playlist
460 clearList(); 475 clearList();
461 loadList(DocLnk(fileref)); 476 loadList(DocLnk(fileref));
462 d->selectedFiles->first(); 477 d->selectedFiles->first();
463 } else { 478 } else {
464 clearList(); 479 clearList();
465 addToSelection( DocLnk( fileref ) ); 480 addToSelection( DocLnk( fileref ) );
466 d->setDocumentUsed = TRUE; 481 d->setDocumentUsed = TRUE;
467 mediaPlayerState->setPlaying( FALSE ); 482 mediaPlayerState->setPlaying( FALSE );
468 qApp->processEvents(); 483 qApp->processEvents();
469 mediaPlayerState->setPlaying( TRUE ); 484 mediaPlayerState->setPlaying( TRUE );
470 qApp->processEvents(); 485 qApp->processEvents();
471 setCaption(tr("OpiePlayer")); 486 setCaption(tr("OpiePlayer"));
472 } 487 }
473} 488}
@@ -616,168 +631,128 @@ bool PlayListWidget::last() {
616void PlayListWidget::saveList() { 631void PlayListWidget::saveList() {
617 writem3u(); 632 writem3u();
618} 633}
619 634
620void PlayListWidget::loadList( const DocLnk & lnk) { 635void PlayListWidget::loadList( const DocLnk & lnk) {
621 QString name = lnk.name(); 636 QString name = lnk.name();
622// qDebug("<<<<<<<<<<<<<<<<<<<<<<<<currentList is "+name); 637// qDebug("<<<<<<<<<<<<<<<<<<<<<<<<currentList is "+name);
623 638
624 if( name.length()>0) { 639 if( name.length()>0) {
625 setCaption("OpiePlayer: "+name); 640 setCaption("OpiePlayer: "+name);
626// qDebug("<<<<<<<<<<<<load list "+ lnk.file()); 641// qDebug("<<<<<<<<<<<<load list "+ lnk.file());
627 clearList(); 642 clearList();
628 readm3u(lnk.file()); 643 readm3u(lnk.file());
629 tabWidget->setCurrentPage(0); 644 tabWidget->setCurrentPage(0);
630 } 645 }
631} 646}
632 647
633void PlayListWidget::setPlaylist( bool shown ) { 648void PlayListWidget::setPlaylist( bool shown ) {
634 if ( shown ) 649 if ( shown )
635 d->playListFrame->show(); 650 d->playListFrame->show();
636 else 651 else
637 d->playListFrame->hide(); 652 d->playListFrame->hide();
638} 653}
639 654
640void PlayListWidget::setView( char view ) { 655void PlayListWidget::setView( char view ) {
641 if ( view == 'l' ) 656 if ( view == 'l' )
642 showMaximized(); 657 showMaximized();
643 else 658 else
644 hide(); 659 hide();
645} 660}
646 661
647void PlayListWidget::addSelected() { 662void PlayListWidget::addSelected() {
663 qDebug("addSelected");
664 DocLnk lnk;
665 QString filename;
666 switch (tabWidget->currentPageIndex()) {
648 667
649 Config cfg( "OpiePlayer" ); 668 case 0: //playlist
650 cfg.setGroup("PlayList"); 669 return;
651 QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); 670 break;
652// int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); 671 case 1: { //audio
672 filename=audioView->currentItem()->text(3);
673 // d->selectedFiles->next();
674 }
675 break;
676
677 case 2: { // video
678 filename=videoView->currentItem()->text(3);
679 // tabWidget->setCurrentPage(0);
680
681 }
682 break;
683 };
684 lnk.setName( QFileInfo(filename).baseName() ); //sets name
685 lnk.setFile( filename ); //sets file name
686 d->selectedFiles->addToSelection( lnk);
687 tabWidget->setCurrentPage(0);
688 writeCurrentM3u();
653 689
654 switch (tabWidget->currentPageIndex()) {
655 case 0: //playlist
656 break;
657 case 1: { //audio
658// QString entryName;
659// entryName.sprintf( "File%i", i + 1 );
660// QString linkFile = cfg.readEntry( entryName );
661 QListViewItemIterator it( audioView );
662 // iterate through all items of the listview
663 for ( ; it.current(); ++it ) {
664 if ( it.current()->isSelected() ) {
665 QListIterator<DocLnk> dit( files.children() );
666 for ( ; dit.current(); ++dit ) {
667 if( dit.current()->name() == it.current()->text(0) ) {
668 d->selectedFiles->addToSelection( **dit );
669 }
670 }
671 audioView->setSelected( it.current(),FALSE);
672 }
673 }
674 tabWidget->setCurrentPage(0);
675 }
676 break;
677 case 2: { // video
678 QListViewItemIterator it( videoView );
679 // iterate through all items of the listview
680 for ( ; it.current(); ++it ) {
681 if ( it.current()->isSelected() ) {
682 QListIterator<DocLnk> dit( vFiles.children() );
683 for ( ; dit.current(); ++dit ) {
684 if( dit.current()->name() == it.current()->text(0) ) {
685 d->selectedFiles->addToSelection( **dit );
686 }
687 }
688
689 videoView->setSelected( it.current(),FALSE);
690 }
691 }
692// for ( int i = 0; i < noOfFiles; i++ ) {
693// QString entryName;
694// entryName.sprintf( "File%i", i + 1 );
695// QString linkFile = cfg.readEntry( entryName );
696// if( DocLnk( linkFile).name() == videoView->selectedItem()->text(0) ) {
697// int result= QMessageBox::warning(this,tr("OpiePlayer"),
698// tr("This is all ready in your playlist.\nContinue?"),
699// tr("Yes"),tr("No"),0,0,1);
700// if (result !=0)
701// return;
702// }
703// }
704// addToSelection( videoView->selectedItem() );
705 tabWidget->setCurrentPage(0);
706 }
707 break;
708 };
709} 690}
710 691
711void PlayListWidget::removeSelected() { 692void PlayListWidget::removeSelected() {
712 d->selectedFiles->removeSelected( ); 693 d->selectedFiles->removeSelected( );
713} 694}
714 695
715void PlayListWidget::playIt( QListViewItem *) { 696void PlayListWidget::playIt( QListViewItem *) {
716// d->setDocumentUsed = FALSE; 697// d->setDocumentUsed = FALSE;
717// mediaPlayerState->curPosition =0; 698// mediaPlayerState->curPosition =0;
718 qDebug("playIt"); 699 qDebug("playIt");
719 mediaPlayerState->setPlaying(FALSE); 700 mediaPlayerState->setPlaying(FALSE);
720 mediaPlayerState->setPlaying(TRUE); 701 mediaPlayerState->setPlaying(TRUE);
721 d->selectedFiles->unSelect(); 702 d->selectedFiles->unSelect();
722} 703}
723 704
724void PlayListWidget::addToSelection( QListViewItem *it) { 705void PlayListWidget::addToSelection( QListViewItem *it) {
725 d->setDocumentUsed = FALSE; 706 d->setDocumentUsed = FALSE;
726 707
727 if(it) { 708 if(it) {
728 switch (tabWidget->currentPageIndex()) { 709 switch ( tabWidget->currentPageIndex()) {
729 case 1: { 710 case 0: //playlist
730 QListIterator<DocLnk> dit( files.children() ); 711 return;
731 for ( ; dit.current(); ++dit ) { 712 break;
732 if( dit.current()->name() == it->text(0)) { 713 };
733 d->selectedFiles->addToSelection( **dit ); 714 // case 1: {
734 } 715 DocLnk lnk;
735 } 716 QString filename;
736 } 717
737 break; 718 filename=it->text(3);
738 case 2: { 719 lnk.setName( QFileInfo(filename).baseName() ); //sets name
739 QListIterator<DocLnk> dit( vFiles.children() ); 720 lnk.setFile( filename ); //sets file name
740 for ( ; dit.current(); ++dit ) { 721 d->selectedFiles->addToSelection( lnk);
741 if( dit.current()->name() == it->text(0)) { 722
742 d->selectedFiles->addToSelection( **dit ); 723 writeCurrentM3u();
743 } 724 tabWidget->setCurrentPage(0);
744 } 725
745 } 726 }
746 break;
747 case 0:
748 break;
749 };
750 tabWidget->setCurrentPage(0);
751 }
752} 727}
753 728
754void PlayListWidget::tabChanged(QWidget *) { 729void PlayListWidget::tabChanged(QWidget *) {
755 730
756 switch ( tabWidget->currentPageIndex()) { 731 switch ( tabWidget->currentPageIndex()) {
757 case 0: 732 case 0:
758 { 733 {
759 if( !tbDeletePlaylist->isHidden()) 734 if( !tbDeletePlaylist->isHidden())
760 tbDeletePlaylist->hide(); 735 tbDeletePlaylist->hide();
761 d->tbRemoveFromList->setEnabled(TRUE); 736 d->tbRemoveFromList->setEnabled(TRUE);
762 d->tbAddToList->setEnabled(FALSE); 737 d->tbAddToList->setEnabled(FALSE);
763 } 738 }
764 break; 739 break;
765 case 1: 740 case 1:
766 { 741 {
767 audioView->clear(); 742 audioView->clear();
768 populateAudioView(); 743 populateAudioView();
769 744
770 if( !tbDeletePlaylist->isHidden()) 745 if( !tbDeletePlaylist->isHidden())
771 tbDeletePlaylist->hide(); 746 tbDeletePlaylist->hide();
772 d->tbRemoveFromList->setEnabled(FALSE); 747 d->tbRemoveFromList->setEnabled(FALSE);
773 d->tbAddToList->setEnabled(TRUE); 748 d->tbAddToList->setEnabled(TRUE);
774 } 749 }
775 break; 750 break;
776 case 2: 751 case 2:
777 { 752 {
778 videoView->clear(); 753 videoView->clear();
779 populateVideoView(); 754 populateVideoView();
780 if( !tbDeletePlaylist->isHidden()) 755 if( !tbDeletePlaylist->isHidden())
781 tbDeletePlaylist->hide(); 756 tbDeletePlaylist->hide();
782 d->tbRemoveFromList->setEnabled(FALSE); 757 d->tbRemoveFromList->setEnabled(FALSE);
783 d->tbAddToList->setEnabled(TRUE); 758 d->tbAddToList->setEnabled(TRUE);
@@ -960,138 +935,141 @@ void PlayListWidget::scanForVideo() {
960 } 935 }
961 Global::findDocuments(&vFiles, "video/*"); 936 Global::findDocuments(&vFiles, "video/*");
962 videoScan = true; 937 videoScan = true;
963} 938}
964 939
965void PlayListWidget::populateAudioView() { 940void PlayListWidget::populateAudioView() {
966 941
967 audioView->clear(); 942 audioView->clear();
968 StorageInfo storageInfo; 943 StorageInfo storageInfo;
969 const QList<FileSystem> &fs = storageInfo.fileSystems(); 944 const QList<FileSystem> &fs = storageInfo.fileSystems();
970 if(!audioScan) scanForAudio(); 945 if(!audioScan) scanForAudio();
971 946
972 QListIterator<DocLnk> dit( files.children() ); 947 QListIterator<DocLnk> dit( files.children() );
973 QListIterator<FileSystem> it ( fs ); 948 QListIterator<FileSystem> it ( fs );
974 949
975 QString storage; 950 QString storage;
976 for ( ; dit.current(); ++dit ) { 951 for ( ; dit.current(); ++dit ) {
977 for( ; it.current(); ++it ){ 952 for( ; it.current(); ++it ){
978 const QString name = (*it)->name(); 953 const QString name = (*it)->name();
979 const QString path = (*it)->path(); 954 const QString path = (*it)->path();
980 if(dit.current()->file().find(path) != -1 ) storage=name; 955 if(dit.current()->file().find(path) != -1 ) storage=name;
981 } 956 }
982 957
983 QListViewItem * newItem; 958 QListViewItem * newItem;
984 if ( QFile( dit.current()->file()).exists() || dit.current()->file().left(4) == "http" ) { 959 if ( QFile( dit.current()->file()).exists() || dit.current()->file().left(4) == "http" ) {
985 long size; 960 long size;
986 if( dit.current()->file().left(4) == "http" ) 961 if( dit.current()->file().left(4) == "http" )
987 size=0; 962 size=0;
988 else 963 else
989 size = QFile( dit.current()->file() ).size(); 964 size = QFile( dit.current()->file() ).size();
990// qDebug(dit.current()->name()); 965// qDebug(dit.current()->name());
991 newItem= /*(void)*/ new QListViewItem( audioView, dit.current()->name(), 966 newItem= /*(void)*/ new QListViewItem( audioView, dit.current()->name(),
992 QString::number(size ), storage); 967 QString::number(size ), storage, dit.current()->file());
993 newItem->setPixmap(0, Resource::loadPixmap( "opieplayer/musicfile" )); 968 newItem->setPixmap(0, Resource::loadPixmap( "opieplayer/musicfile" ));
994 } 969 }
995 } 970 }
996 971
997} 972}
998 973
999void PlayListWidget::populateVideoView() { 974void PlayListWidget::populateVideoView() {
1000 videoView->clear(); 975 videoView->clear();
1001 StorageInfo storageInfo; 976 StorageInfo storageInfo;
1002 const QList<FileSystem> &fs = storageInfo.fileSystems(); 977 const QList<FileSystem> &fs = storageInfo.fileSystems();
1003 978
1004 if(!videoScan ) scanForVideo(); 979 if(!videoScan ) scanForVideo();
1005 980
1006 QListIterator<DocLnk> Vdit( vFiles.children() ); 981 QListIterator<DocLnk> Vdit( vFiles.children() );
1007 QListIterator<FileSystem> it ( fs ); 982 QListIterator<FileSystem> it ( fs );
1008 videoView->clear(); 983 videoView->clear();
1009 QString storage; 984 QString storage;
1010 for ( ; Vdit.current(); ++Vdit ) { 985 for ( ; Vdit.current(); ++Vdit ) {
1011 for( ; it.current(); ++it ){ 986 for( ; it.current(); ++it ){
1012 const QString name = (*it)->name(); 987 const QString name = (*it)->name();
1013 const QString path = (*it)->path(); 988 const QString path = (*it)->path();
1014 if( Vdit.current()->file().find(path) != -1 ) storage=name; 989 if( Vdit.current()->file().find(path) != -1 ) storage=name;
1015 } 990 }
1016 991
1017 QListViewItem * newItem; 992 QListViewItem * newItem;
1018 if ( QFile( Vdit.current()->file()).exists() ) { 993 if ( QFile( Vdit.current()->file()).exists() ) {
1019 newItem= /*(void)*/ new QListViewItem( videoView, Vdit.current()->name(), 994 newItem= /*(void)*/ new QListViewItem( videoView, Vdit.current()->name(),
1020 QString::number( QFile( Vdit.current()->file()).size() ), storage); 995 QString::number( QFile( Vdit.current()->file() ).size() ),
996 storage, Vdit.current()->file());
1021 newItem->setPixmap(0, Resource::loadPixmap( "opieplayer/videofile" )); 997 newItem->setPixmap(0, Resource::loadPixmap( "opieplayer/videofile" ));
1022 } 998 }
1023 } 999 }
1024} 1000}
1025 1001
1026void PlayListWidget::openFile() { 1002void PlayListWidget::openFile() {
1027 qDebug("<<<<<<<<<OPEN File"); 1003 qDebug("<<<<<<<<<OPEN File");
1028 QString filename, name; 1004 QString filename, name;
1029 InputDialog *fileDlg; 1005 InputDialog *fileDlg;
1030 fileDlg = new InputDialog(this,tr("Open file or URL"),TRUE, 0); 1006 fileDlg = new InputDialog(this,tr("Open file or URL"),TRUE, 0);
1031 fileDlg->exec(); 1007 fileDlg->exec();
1032 if( fileDlg->result() == 1 ) { 1008 if( fileDlg->result() == 1 ) {
1033 filename = fileDlg->text(); 1009 filename = fileDlg->text();
1034 qDebug( "Selected filename is " + filename ); 1010 qDebug( "Selected filename is " + filename );
1035// Om3u *m3uList; 1011// Om3u *m3uList;
1036 DocLnk lnk; 1012 DocLnk lnk;
1037 Config cfg( "OpiePlayer" ); 1013 Config cfg( "OpiePlayer" );
1038 cfg.setGroup("PlayList"); 1014 cfg.setGroup("PlayList");
1039 1015
1040 if(filename.left(4) == "http") { 1016 if(filename.left(4) == "http") {
1041 QString m3uFile, m3uFilePath; 1017 QString m3uFile, m3uFilePath;
1042 if(filename.find(":",8,TRUE) != -1) { //found a port 1018 if(filename.find(":",8,TRUE) != -1) { //found a port
1043 m3uFile = filename.left( filename.find( ":",8,TRUE)); 1019 m3uFile = filename.left( filename.find( ":",8,TRUE));
1044 m3uFile = m3uFile.right( 7); 1020 m3uFile = m3uFile.right( 7);
1045 } else if(filename.left(4) == "http"){ 1021 } else if(filename.left(4) == "http"){
1046 m3uFile=filename; 1022 m3uFile=filename;
1047 m3uFile = m3uFile.right( m3uFile.length() - 7); 1023 m3uFile = m3uFile.right( m3uFile.length() - 7);
1048 } else{ 1024 } else{
1049 m3uFile=filename; 1025 m3uFile=filename;
1050 } 1026 }
1051 1027
1052// qDebug("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"+ m3uFile); 1028// qDebug("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"+ m3uFile);
1053 lnk.setName( filename ); //sets name 1029 lnk.setName( filename ); //sets name
1054 lnk.setFile( filename ); //sets file name 1030 lnk.setFile( filename ); //sets file name
1055 lnk.setIcon("opieplayer2/musicfile"); 1031 lnk.setIcon("opieplayer2/musicfile");
1056 d->selectedFiles->addToSelection( lnk ); 1032 d->selectedFiles->addToSelection( lnk );
1057 writeCurrentM3u(); 1033 writeCurrentM3u();
1058 } 1034 }
1059 else if( filename.right( 3) == "m3u" ) { 1035 else if( filename.right( 3) == "m3u" ) {
1060 readm3u( filename ); 1036 readm3u( filename );
1061 1037
1062 } else if( filename.right(3) == "pls" ) { 1038 } else if( filename.right(3) == "pls" ) {
1063 readPls( filename ); 1039 readPls( filename );
1064 } else { 1040 } else {
1065 d->selectedFiles->addToSelection( DocLnk(filename) ); 1041 lnk.setName( QFileInfo(filename).baseName() ); //sets name
1042 lnk.setFile( filename ); //sets file name
1043 d->selectedFiles->addToSelection( lnk);
1066 writeCurrentM3u(); 1044 writeCurrentM3u();
1067 } 1045 }
1068 } 1046 }
1069 1047
1070 if( fileDlg ) { 1048 if( fileDlg ) {
1071 delete fileDlg; 1049 delete fileDlg;
1072 } 1050 }
1073} 1051}
1074 1052
1075 1053
1076/* 1054/*
1077reads m3u and shows files/urls to playlist widget */ 1055reads m3u and shows files/urls to playlist widget */
1078void PlayListWidget::readm3u( const QString &filename ) { 1056void PlayListWidget::readm3u( const QString &filename ) {
1079 qDebug( "read m3u filename " + filename ); 1057 qDebug( "read m3u filename " + filename );
1080 1058
1081 Om3u *m3uList; 1059 Om3u *m3uList;
1082 QString s, name; 1060 QString s, name;
1083 m3uList = new Om3u( filename, IO_ReadOnly ); 1061 m3uList = new Om3u( filename, IO_ReadOnly );
1084 m3uList->readM3u(); 1062 m3uList->readM3u();
1085 DocLnk lnk; 1063 DocLnk lnk;
1086 for ( QStringList::ConstIterator it = m3uList->begin(); it != m3uList->end(); ++it ) { 1064 for ( QStringList::ConstIterator it = m3uList->begin(); it != m3uList->end(); ++it ) {
1087 s = *it; 1065 s = *it;
1088// qDebug("reading "+ s); 1066// qDebug("reading "+ s);
1089 if(s.left(4)=="http") { 1067 if(s.left(4)=="http") {
1090 lnk.setName( s ); //sets file name 1068 lnk.setName( s ); //sets file name
1091 lnk.setIcon("opieplayer2/musicfile"); 1069 lnk.setIcon("opieplayer2/musicfile");
1092 if(s.right(4) != '.' || s.right(5) != '.') 1070 if(s.right(4) != '.' || s.right(5) != '.')
1093 lnk.setFile( s+"/"); //if url with no extension 1071 lnk.setFile( s+"/"); //if url with no extension
1094 else 1072 else
1095 lnk.setFile( s ); //sets file name 1073 lnk.setFile( s ); //sets file name
1096 1074
1097 } else { 1075 } else {
@@ -1148,69 +1126,68 @@ void PlayListWidget::readPls( const QString &filename ) {
1148 } else { 1126 } else {
1149 name = s; 1127 name = s;
1150 } 1128 }
1151 1129
1152 name = name.right( name.length() - name.findRev( "\\", -1, TRUE) - 1 ); 1130 name = name.right( name.length() - name.findRev( "\\", -1, TRUE) - 1 );
1153 1131
1154 lnk.setName( name ); 1132 lnk.setName( name );
1155 if( s.at( s.length() - 4) == '.') {// if this is probably a file 1133 if( s.at( s.length() - 4) == '.') {// if this is probably a file
1156 lnk.setFile( s ); 1134 lnk.setFile( s );
1157 } else { //if its a url 1135 } else { //if its a url
1158 if( name.right( 1 ).find( '/' ) == -1) { 1136 if( name.right( 1 ).find( '/' ) == -1) {
1159 s += "/"; 1137 s += "/";
1160 } 1138 }
1161 lnk.setFile( s ); 1139 lnk.setFile( s );
1162 } 1140 }
1163 lnk.setType( "audio/x-mpegurl" ); 1141 lnk.setType( "audio/x-mpegurl" );
1164 1142
1165 lnk.writeLink(); 1143 lnk.writeLink();
1166 d->selectedFiles->addToSelection( lnk ); 1144 d->selectedFiles->addToSelection( lnk );
1167 } 1145 }
1168 1146
1169 m3uList->close(); 1147 m3uList->close();
1170 if(m3uList) delete m3uList; 1148 if(m3uList) delete m3uList;
1171} 1149}
1172 1150
1173/* 1151/*
1174 writes current playlist to current m3u file */ 1152 writes current playlist to current m3u file */
1175void PlayListWidget::writeCurrentM3u() { 1153void PlayListWidget::writeCurrentM3u() {
1176 qDebug("writing to current m3u"); 1154 qDebug("writing to current m3u");
1177 Config cfg( "OpiePlayer" ); 1155 Config cfg( "OpiePlayer" );
1178 cfg.setGroup("PlayList"); 1156 cfg.setGroup("PlayList");
1179 QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); 1157 QString currentPlaylist = cfg.readEntry("CurrentPlaylist","");
1180
1181 if( d->selectedFiles->first()) {
1182 Om3u *m3uList; 1158 Om3u *m3uList;
1183 m3uList = new Om3u( currentPlaylist, IO_ReadWrite | IO_Truncate ); 1159 m3uList = new Om3u( currentPlaylist, IO_ReadWrite | IO_Truncate );
1184 1160
1161 if( d->selectedFiles->first()) {
1185 do { 1162 do {
1186 qDebug( "writeCurrentM3u " +d->selectedFiles->current()->file()); 1163 qDebug( "writeCurrentM3u " +d->selectedFiles->current()->file());
1187 m3uList->add( d->selectedFiles->current()->file() ); 1164 m3uList->add( d->selectedFiles->current()->file() );
1188 } 1165 }
1189 while ( d->selectedFiles->next() ); 1166 while ( d->selectedFiles->next() );
1190 qDebug( "<<<<<<<<<<<<>>>>>>>>>>>>>>>>>" ); 1167 qDebug( "<<<<<<<<<<<<>>>>>>>>>>>>>>>>>" );
1191 m3uList->write(); 1168 m3uList->write();
1192 m3uList->close(); 1169 m3uList->close();
1193 1170
1194 if(m3uList) delete m3uList; 1171 if(m3uList) delete m3uList;
1195 } 1172 }
1196} 1173}
1197 1174
1198 /* 1175 /*
1199 writes current playlist to m3u file */ 1176 writes current playlist to m3u file */
1200void PlayListWidget::writem3u() { 1177void PlayListWidget::writem3u() {
1201 InputDialog *fileDlg; 1178 InputDialog *fileDlg;
1202 fileDlg = new InputDialog( this, tr( "Save m3u Playlist " ), TRUE, 0); 1179 fileDlg = new InputDialog( this, tr( "Save m3u Playlist " ), TRUE, 0);
1203 fileDlg->exec(); 1180 fileDlg->exec();
1204 QString name, filename, list; 1181 QString name, filename, list;
1205 Om3u *m3uList; 1182 Om3u *m3uList;
1206 1183
1207 if( fileDlg->result() == 1 ) { 1184 if( fileDlg->result() == 1 ) {
1208 name = fileDlg->text(); 1185 name = fileDlg->text();
1209// qDebug( filename ); 1186// qDebug( filename );
1210 1187
1211 if( name.left( 1) != "/" ) { 1188 if( name.left( 1) != "/" ) {
1212 filename = QPEApplication::documentDir() + "/" + name; 1189 filename = QPEApplication::documentDir() + "/" + name;
1213 } 1190 }
1214 1191
1215 if( name.right( 3 ) != "m3u" ) { 1192 if( name.right( 3 ) != "m3u" ) {
1216 filename = QPEApplication::documentDir() + "/" +name+".m3u"; 1193 filename = QPEApplication::documentDir() + "/" +name+".m3u";