summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2002-09-04 23:38:09 (UTC)
committer llornkcor <llornkcor>2002-09-04 23:38:09 (UTC)
commit3f2a74813b552c6f7a4450ec6294bbbcc5b811c5 (patch) (unidiff)
treea29f6d3436365b13b71615052cf08817225d0d78
parent95d24f601f7845e49092068ad358030024fa6097 (diff)
downloadopie-3f2a74813b552c6f7a4450ec6294bbbcc5b811c5.zip
opie-3f2a74813b552c6f7a4450ec6294bbbcc5b811c5.tar.gz
opie-3f2a74813b552c6f7a4450ec6294bbbcc5b811c5.tar.bz2
change playing in file lists. no loop mode
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/audiowidget.cpp1
-rw-r--r--noncore/multimedia/opieplayer2/inputDialog.cpp1
-rw-r--r--noncore/multimedia/opieplayer2/mediaplayer.cpp100
-rw-r--r--noncore/multimedia/opieplayer2/mediaplayer.h3
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.cpp92
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.h3
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidgetgui.cpp2
7 files changed, 127 insertions, 75 deletions
diff --git a/noncore/multimedia/opieplayer2/audiowidget.cpp b/noncore/multimedia/opieplayer2/audiowidget.cpp
index 040e965..446fa45 100644
--- a/noncore/multimedia/opieplayer2/audiowidget.cpp
+++ b/noncore/multimedia/opieplayer2/audiowidget.cpp
@@ -408,96 +408,97 @@ void AudioWidget::stopSkip() {
408 408
409void AudioWidget::timerEvent( QTimerEvent * ) { 409void AudioWidget::timerEvent( QTimerEvent * ) {
410 if ( skipDirection == +1 ) { 410 if ( skipDirection == +1 ) {
411 mediaPlayerState->setPosition( mediaPlayerState->position() + 2 ); 411 mediaPlayerState->setPosition( mediaPlayerState->position() + 2 );
412 } else if ( skipDirection == -1 ) { 412 } else if ( skipDirection == -1 ) {
413 mediaPlayerState->setPosition( mediaPlayerState->position() - 2 ); 413 mediaPlayerState->setPosition( mediaPlayerState->position() - 2 );
414 } 414 }
415} 415}
416 416
417 417
418void AudioWidget::mouseMoveEvent( QMouseEvent *event ) { 418void AudioWidget::mouseMoveEvent( QMouseEvent *event ) {
419 for ( int i = 0; i < numButtons; i++ ) { 419 for ( int i = 0; i < numButtons; i++ ) {
420 if ( event->state() == QMouseEvent::LeftButton ) { 420 if ( event->state() == QMouseEvent::LeftButton ) {
421 // The test to see if the mouse click is inside the button or not 421 // The test to see if the mouse click is inside the button or not
422 int x = event->pos().x() - xoff; 422 int x = event->pos().x() - xoff;
423 int y = event->pos().y() - yoff; 423 int y = event->pos().y() - yoff;
424 424
425 bool isOnButton = ( x > 0 && y > 0 && x < imgButtonMask->width() 425 bool isOnButton = ( x > 0 && y > 0 && x < imgButtonMask->width()
426 && y < imgButtonMask->height() 426 && y < imgButtonMask->height()
427 && imgButtonMask->pixelIndex( x, y ) == i + 1 ); 427 && imgButtonMask->pixelIndex( x, y ) == i + 1 );
428 428
429 if ( isOnButton && !audioButtons[i].isHeld ) { 429 if ( isOnButton && !audioButtons[i].isHeld ) {
430 audioButtons[i].isHeld = TRUE; 430 audioButtons[i].isHeld = TRUE;
431 toggleButton(i); 431 toggleButton(i);
432 switch (i) { 432 switch (i) {
433 case AudioVolumeUp: 433 case AudioVolumeUp:
434 emit moreClicked(); 434 emit moreClicked();
435 return; 435 return;
436 case AudioVolumeDown: 436 case AudioVolumeDown:
437 emit lessClicked(); 437 emit lessClicked();
438 return; 438 return;
439 case AudioForward: 439 case AudioForward:
440 emit forwardClicked(); 440 emit forwardClicked();
441 return; 441 return;
442 case AudioBack: 442 case AudioBack:
443 emit backClicked(); 443 emit backClicked();
444 return; 444 return;
445 } 445 }
446 } else if ( !isOnButton && audioButtons[i].isHeld ) { 446 } else if ( !isOnButton && audioButtons[i].isHeld ) {
447 audioButtons[i].isHeld = FALSE; 447 audioButtons[i].isHeld = FALSE;
448 toggleButton(i); 448 toggleButton(i);
449 } 449 }
450 } else { 450 } else {
451 if ( audioButtons[i].isHeld ) { 451 if ( audioButtons[i].isHeld ) {
452 audioButtons[i].isHeld = FALSE; 452 audioButtons[i].isHeld = FALSE;
453 if ( !audioButtons[i].isToggle ) { 453 if ( !audioButtons[i].isToggle ) {
454 setToggleButton( i, FALSE ); 454 setToggleButton( i, FALSE );
455 } 455 }
456 qDebug("mouseEvent %d", i);
456 switch (i) { 457 switch (i) {
457 case AudioPlay: 458 case AudioPlay:
458 if( mediaPlayerState->isPaused ) { 459 if( mediaPlayerState->isPaused ) {
459// setToggleButton( i, FALSE ); 460// setToggleButton( i, FALSE );
460 mediaPlayerState->setPaused( FALSE ); 461 mediaPlayerState->setPaused( FALSE );
461 return; 462 return;
462 } else if( !mediaPlayerState->isPaused ) { 463 } else if( !mediaPlayerState->isPaused ) {
463// setToggleButton( i, TRUE ); 464// setToggleButton( i, TRUE );
464 mediaPlayerState->setPaused( TRUE ); 465 mediaPlayerState->setPaused( TRUE );
465 return; 466 return;
466 } else { 467 } else {
467 // setToggleButton( i, TRUE ); 468 // setToggleButton( i, TRUE );
468 // mediaPlayerState->setPlaying( videoButtons[i].isDown ); 469 // mediaPlayerState->setPlaying( videoButtons[i].isDown );
469 } 470 }
470 case AudioStop: mediaPlayerState->setPlaying(FALSE); return; 471 case AudioStop: mediaPlayerState->setPlaying(FALSE); return;
471 case AudioNext: mediaPlayerState->setNext(); return; 472 case AudioNext: mediaPlayerState->setNext(); return;
472 case AudioPrevious: mediaPlayerState->setPrev(); return; 473 case AudioPrevious: mediaPlayerState->setPrev(); return;
473 case AudioLoop: mediaPlayerState->setLooping(audioButtons[i].isDown); return; 474 case AudioLoop: mediaPlayerState->setLooping(audioButtons[i].isDown); return;
474 case AudioVolumeUp: emit moreReleased(); return; 475 case AudioVolumeUp: emit moreReleased(); return;
475 case AudioVolumeDown: emit lessReleased(); return; 476 case AudioVolumeDown: emit lessReleased(); return;
476 case AudioPlayList: mediaPlayerState->setList(); return; 477 case AudioPlayList: mediaPlayerState->setList(); return;
477 case AudioForward: emit forwardReleased(); return; 478 case AudioForward: emit forwardReleased(); return;
478 case AudioBack: emit backReleased(); return; 479 case AudioBack: emit backReleased(); return;
479 } 480 }
480 } 481 }
481 } 482 }
482 } 483 }
483} 484}
484 485
485 486
486void AudioWidget::mousePressEvent( QMouseEvent *event ) { 487void AudioWidget::mousePressEvent( QMouseEvent *event ) {
487 mouseMoveEvent( event ); 488 mouseMoveEvent( event );
488} 489}
489 490
490 491
491void AudioWidget::mouseReleaseEvent( QMouseEvent *event ) { 492void AudioWidget::mouseReleaseEvent( QMouseEvent *event ) {
492 mouseMoveEvent( event ); 493 mouseMoveEvent( event );
493} 494}
494 495
495 496
496void AudioWidget::showEvent( QShowEvent* ) { 497void AudioWidget::showEvent( QShowEvent* ) {
497 QMouseEvent event( QEvent::MouseMove, QPoint( 0, 0 ), 0, 0 ); 498 QMouseEvent event( QEvent::MouseMove, QPoint( 0, 0 ), 0, 0 );
498 mouseMoveEvent( &event ); 499 mouseMoveEvent( &event );
499} 500}
500 501
501 502
502void AudioWidget::closeEvent( QCloseEvent* ) { 503void AudioWidget::closeEvent( QCloseEvent* ) {
503 mediaPlayerState->setList(); 504 mediaPlayerState->setList();
diff --git a/noncore/multimedia/opieplayer2/inputDialog.cpp b/noncore/multimedia/opieplayer2/inputDialog.cpp
index 9edb1d3..62240b2 100644
--- a/noncore/multimedia/opieplayer2/inputDialog.cpp
+++ b/noncore/multimedia/opieplayer2/inputDialog.cpp
@@ -1,61 +1,62 @@
1#include "inputDialog.h" 1#include "inputDialog.h"
2 2
3#include <qpe/resource.h> 3#include <qpe/resource.h>
4 4
5#include <opie/ofiledialog.h> 5#include <opie/ofiledialog.h>
6 6
7#include <qlineedit.h> 7#include <qlineedit.h>
8#include <qlayout.h> 8#include <qlayout.h>
9#include <qvariant.h> 9#include <qvariant.h>
10#include <qpushbutton.h> 10#include <qpushbutton.h>
11#include <qwhatsthis.h> 11#include <qwhatsthis.h>
12 12
13InputDialog::InputDialog( QWidget* parent, const char* name, bool modal, WFlags fl ) 13InputDialog::InputDialog( QWidget* parent, const char* name, bool modal, WFlags fl )
14 : QDialog( parent, name, modal, fl ) { 14 : QDialog( parent, name, modal, fl ) {
15 if ( !name ) { 15 if ( !name ) {
16 setName( "InputDialog" ); 16 setName( "InputDialog" );
17 } 17 }
18 resize( 234, 115); 18 resize( 234, 115);
19 setMaximumSize( QSize( 240, 40)); 19 setMaximumSize( QSize( 240, 40));
20 setCaption( tr( name ) ); 20 setCaption( tr( name ) );
21 21
22 QPushButton *browserButton; 22 QPushButton *browserButton;
23 browserButton = new QPushButton( Resource::loadIconSet("fileopen"),"",this,"BrowseButton"); 23 browserButton = new QPushButton( Resource::loadIconSet("fileopen"),"",this,"BrowseButton");
24 browserButton->setGeometry( QRect( 205, 10, 22, 22)); 24 browserButton->setGeometry( QRect( 205, 10, 22, 22));
25 connect( browserButton, SIGNAL(released()),this,SLOT(browse())); 25 connect( browserButton, SIGNAL(released()),this,SLOT(browse()));
26 LineEdit1 = new QLineEdit( this, "LineEdit1" ); 26 LineEdit1 = new QLineEdit( this, "LineEdit1" );
27 LineEdit1->setGeometry( QRect( 4, 10, 190, 22 ) ); 27 LineEdit1->setGeometry( QRect( 4, 10, 190, 22 ) );
28 LineEdit1->setFocus();
28} 29}
29/* 30/*
30 * return the current text(input) 31 * return the current text(input)
31 */ 32 */
32QString InputDialog::text() const { 33QString InputDialog::text() const {
33 return LineEdit1->text(); 34 return LineEdit1->text();
34} 35}
35/* 36/*
36 * Destroys the object and frees any allocated resources 37 * Destroys the object and frees any allocated resources
37 */ 38 */
38InputDialog::~InputDialog() { 39InputDialog::~InputDialog() {
39} 40}
40 41
41void InputDialog::browse() { 42void InputDialog::browse() {
42 43
43 MimeTypes types; 44 MimeTypes types;
44 QStringList audio, video, all; 45 QStringList audio, video, all;
45 audio << "audio/*"; 46 audio << "audio/*";
46 audio << "playlist/plain"; 47 audio << "playlist/plain";
47 audio << "audio/x-mpegurl"; 48 audio << "audio/x-mpegurl";
48 49
49 video << "video/*"; 50 video << "video/*";
50 video << "playlist/plain"; 51 video << "playlist/plain";
51 52
52 all += audio; 53 all += audio;
53 all += video; 54 all += video;
54 types.insert("All Media Files", all ); 55 types.insert("All Media Files", all );
55 types.insert("Audio", audio ); 56 types.insert("Audio", audio );
56 types.insert("Video", video ); 57 types.insert("Video", video );
57 58
58 QString str = OFileDialog::getOpenFileName( 1,"/","", types, 0 ); 59 QString str = OFileDialog::getOpenFileName( 1,"/","", types, 0 );
59 LineEdit1->setText(str); 60 LineEdit1->setText(str);
60} 61}
61 62
diff --git a/noncore/multimedia/opieplayer2/mediaplayer.cpp b/noncore/multimedia/opieplayer2/mediaplayer.cpp
index bf2acc8..553e3c1 100644
--- a/noncore/multimedia/opieplayer2/mediaplayer.cpp
+++ b/noncore/multimedia/opieplayer2/mediaplayer.cpp
@@ -1,184 +1,214 @@
1#include <qpe/qpeapplication.h> 1#include <qpe/qpeapplication.h>
2#include <qpe/qlibrary.h> 2#include <qpe/qlibrary.h>
3#include <qpe/resource.h> 3#include <qpe/resource.h>
4#include <qpe/config.h> 4#include <qpe/config.h>
5#include <qpe/qcopenvelope_qws.h> 5#include <qpe/qcopenvelope_qws.h>
6#include <qfileinfo.h>
6 7
7#include <qmainwindow.h> 8#include <qmainwindow.h>
8#include <qmessagebox.h> 9#include <qmessagebox.h>
9#include <qwidgetstack.h> 10#include <qwidgetstack.h>
10#include <qfile.h> 11#include <qfile.h>
11 12
12#include "mediaplayer.h" 13#include "mediaplayer.h"
13#include "playlistwidget.h" 14#include "playlistwidget.h"
14#include "audiowidget.h" 15#include "audiowidget.h"
15#include "videowidget.h" 16#include "videowidget.h"
16#include "volumecontrol.h" 17#include "volumecontrol.h"
17 18
18#include "mediaplayerstate.h" 19#include "mediaplayerstate.h"
19 20
20// for setBacklight() 21// for setBacklight()
21#include <linux/fb.h> 22#include <linux/fb.h>
22#include <sys/file.h> 23#include <sys/file.h>
23#include <sys/ioctl.h> 24#include <sys/ioctl.h>
24 25
25 26
26extern AudioWidget *audioUI; 27extern AudioWidget *audioUI;
27extern VideoWidget *videoUI; 28extern VideoWidget *videoUI;
28extern PlayListWidget *playList; 29extern PlayListWidget *playList;
29extern MediaPlayerState *mediaPlayerState; 30extern MediaPlayerState *mediaPlayerState;
30 31
31 32
32#define FBIOBLANK 0x4611 33#define FBIOBLANK 0x4611
33 34
34MediaPlayer::MediaPlayer( QObject *parent, const char *name ) 35MediaPlayer::MediaPlayer( QObject *parent, const char *name )
35 : QObject( parent, name ), volumeDirection( 0 ), currentFile( NULL ) { 36 : QObject( parent, name ), volumeDirection( 0 ), currentFile( NULL ) {
36 37
37 playList->setCaption(tr("OpiePlayer: Initializating")); 38 playList->setCaption(tr("OpiePlayer: Initializating"));
38 39
39 qApp->processEvents(); 40 qApp->processEvents();
40 // QPEApplication::grabKeyboard(); // EVIL 41 // QPEApplication::grabKeyboard(); // EVIL
41 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); 42 connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) );
42 43
43 connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), this, SLOT( setPlaying( bool ) ) ); 44 connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), this, SLOT( setPlaying( bool ) ) );
44 45
45 connect( mediaPlayerState, SIGNAL( pausedToggled( bool ) ), this, SLOT( pauseCheck( bool ) ) ); 46 connect( mediaPlayerState, SIGNAL( pausedToggled( bool ) ), this, SLOT( pauseCheck( bool ) ) );
46 47
47 connect( mediaPlayerState, SIGNAL( next() ), this, SLOT( next() ) ); 48 connect( mediaPlayerState, SIGNAL( next() ), this, SLOT( next() ) );
48 connect( mediaPlayerState, SIGNAL( prev() ), this, SLOT( prev() ) ); 49 connect( mediaPlayerState, SIGNAL( prev() ), this, SLOT( prev() ) );
49 connect( mediaPlayerState, SIGNAL( blankToggled( bool ) ), this, SLOT ( blank( bool ) ) ); 50 connect( mediaPlayerState, SIGNAL( blankToggled( bool ) ), this, SLOT ( blank( bool ) ) );
50 51
51 connect( audioUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) ); 52 connect( audioUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) );
52 connect( audioUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) ); 53 connect( audioUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) );
53 connect( audioUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) ); 54 connect( audioUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) );
54 connect( audioUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) ); 55 connect( audioUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) );
55 56
56 connect( videoUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) ); 57 connect( videoUI, SIGNAL( moreClicked() ), this, SLOT( startIncreasingVolume() ) );
57 connect( videoUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) ); 58 connect( videoUI, SIGNAL( lessClicked() ), this, SLOT( startDecreasingVolume() ) );
58 connect( videoUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) ); 59 connect( videoUI, SIGNAL( moreReleased() ), this, SLOT( stopChangingVolume() ) );
59 connect( videoUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) ); 60 connect( videoUI, SIGNAL( lessReleased() ), this, SLOT( stopChangingVolume() ) );
60 61
61 volControl = new VolumeControl; 62 volControl = new VolumeControl;
62 xineControl = new XineControl(); 63 xineControl = new XineControl();
63 playList->setCaption(tr("OpiePlayer")); 64 playList->setCaption(tr("OpiePlayer"));
64} 65}
65 66
66MediaPlayer::~MediaPlayer() { 67MediaPlayer::~MediaPlayer() {
67 delete xineControl; 68 delete xineControl;
68 delete volControl; 69 delete volControl;
69} 70}
70 71
71void MediaPlayer::pauseCheck( bool b ) { 72void MediaPlayer::pauseCheck( bool b ) {
72 if ( b && !mediaPlayerState->playing() ) { 73 if ( b && !mediaPlayerState->playing() ) {
73 mediaPlayerState->setPaused( FALSE ); 74 mediaPlayerState->setPaused( FALSE );
74 } 75 }
75} 76}
76 77
77void MediaPlayer::play() { 78void MediaPlayer::play() {
78 mediaPlayerState->setPlaying( FALSE ); 79 mediaPlayerState->setPlaying( FALSE );
79 mediaPlayerState->setPlaying( TRUE ); 80 mediaPlayerState->setPlaying( TRUE );
80} 81}
81 82
82void MediaPlayer::setPlaying( bool play ) { 83void MediaPlayer::setPlaying( bool play ) {
83 if ( !play ) { 84 if ( !play ) {
84 return; 85 return;
85 } 86 }
86 87
87 if ( mediaPlayerState->paused() ) { 88 if ( mediaPlayerState->paused() ) {
88 mediaPlayerState->setPaused( FALSE ); 89 mediaPlayerState->setPaused( FALSE );
89 return; 90 return;
90 }
91
92 const DocLnk *playListCurrent = playList->current();
93 if ( playListCurrent != NULL ) {
94 currentFile = playListCurrent;
95 } 91 }
96 92
97 xineControl->play( currentFile->file() ); 93 QString tickerText, time, fileName;
98 94 if( playList->whichList() == 0 ) { //check for filelist
99 long seconds = mediaPlayerState->length();// 95 const DocLnk *playListCurrent = playList->current();
100 QString time; time.sprintf("%li:%02i", seconds/60, (int)seconds%60 ); 96 if ( playListCurrent != NULL ) {
101 qDebug(time); 97 currentFile = playListCurrent;
102 98 }
103 QString tickerText; 99 xineControl->play( currentFile->file() );
104 if( currentFile->file().left(4) == "http" ) 100 fileName = currentFile->name();
105 tickerText= tr( " File: " ) + currentFile->name(); 101 long seconds = mediaPlayerState->length();//
106 else 102 time.sprintf("%li:%02i", seconds/60, (int)seconds%60 );
107 tickerText = tr( " File: " ) + currentFile->name() + tr(", Length: ") + time; 103 qDebug(time);
108 104
109 audioUI->setTickerText( currentFile->file( ) ); 105 } else { //if playing in file list.. play in a different way
106 // random and looping settings enabled causes problems here,
107 // since there is no selected file in the playlist, but a selected file in the file list,
108 // so we remember and shutoff
109 l = mediaPlayerState->looping();
110 if(l)
111 mediaPlayerState->setLooping( false );
112 r = mediaPlayerState->shuffled();
113 mediaPlayerState->setShuffled(false);
114
115 fileName = playList->currentFileListPathName();
116 xineControl->play( fileName);
117 long seconds = mediaPlayerState->length();//
118 time.sprintf("%li:%02i", seconds/60, (int)seconds%60 );
119 qDebug(time);
120 if( fileName.left(4) != "http" )
121 fileName = QFileInfo( fileName).baseName();
110 122
123 }
124 if( fileName.left(4) == "http" )
125 tickerText= tr( " File: " ) + fileName;
126 else
127 tickerText = tr( " File: " ) + fileName + tr(", Length: ") + time;
128 audioUI->setTickerText( tickerText );
111} 129}
112 130
113 131
114void MediaPlayer::prev() { 132void MediaPlayer::prev() {
115 if ( playList->prev() ) { 133 if(playList->whichList() == 0) { //if using the playlist
116 play(); 134 if ( playList->prev() ) {
117 } else if ( mediaPlayerState->looping() ) {
118 if ( playList->last() ) {
119 play(); 135 play();
136 } else if ( mediaPlayerState->looping() ) {
137 if ( playList->last() ) {
138 play();
139 }
140 } else {
141 mediaPlayerState->setList();
120 } 142 }
121 } else {
122 mediaPlayerState->setList();
123 } 143 }
124} 144}
125 145
126 146
127void MediaPlayer::next() { 147void MediaPlayer::next() {
128 if ( playList->next() ) { 148
129 play(); 149 if(playList->whichList() == 0) { //if using the playlist
130 } else if ( mediaPlayerState->looping() ) { 150 if ( playList->next() ) {
131 if ( playList->first() ) {
132 play(); 151 play();
152 } else if ( mediaPlayerState->looping() ) {
153 if ( playList->first() ) {
154 play();
155 }
156 } else {
157 mediaPlayerState->setList();
133 } 158 }
134 } else { 159 } else { //if playing from file list, let's just stop
135 mediaPlayerState->setList(); 160 qDebug("<<<<<<<<<<<<<<<<<stop for filelists");
161 mediaPlayerState->setPlaying(false);
162 mediaPlayerState->setView('l');
163 if(l) mediaPlayerState->setLooping(l);
164 if(r) mediaPlayerState->setShuffled(r);
136 } 165 }
166 qApp->processEvents();
137} 167}
138 168
139 169
140void MediaPlayer::startDecreasingVolume() { 170void MediaPlayer::startDecreasingVolume() {
141 volumeDirection = -1; 171 volumeDirection = -1;
142 startTimer( 100 ); 172 startTimer( 100 );
143 volControl->decVol(2); 173 volControl->decVol(2);
144} 174}
145 175
146 176
147void MediaPlayer::startIncreasingVolume() { 177void MediaPlayer::startIncreasingVolume() {
148 volumeDirection = +1; 178 volumeDirection = +1;
149 startTimer( 100 ); 179 startTimer( 100 );
150 volControl->incVol(2); 180 volControl->incVol(2);
151} 181}
152 182
153 183
154bool drawnOnScreenDisplay = FALSE; 184bool drawnOnScreenDisplay = FALSE;
155unsigned int onScreenDisplayVolume = 0; 185unsigned int onScreenDisplayVolume = 0;
156const int yoff = 110; 186const int yoff = 110;
157 187
158void MediaPlayer::stopChangingVolume() { 188void MediaPlayer::stopChangingVolume() {
159 killTimers(); 189 killTimers();
160 // Get rid of the on-screen display stuff 190 // Get rid of the on-screen display stuff
161 drawnOnScreenDisplay = FALSE; 191 drawnOnScreenDisplay = FALSE;
162 onScreenDisplayVolume = 0; 192 onScreenDisplayVolume = 0;
163 int w=0; 193 int w=0;
164 int h=0; 194 int h=0;
165 if( !xineControl->hasVideo()) { 195 if( !xineControl->hasVideo()) {
166 w = audioUI->width(); 196 w = audioUI->width();
167 h = audioUI->height(); 197 h = audioUI->height();
168 audioUI->repaint( (w - 200) / 2, h - yoff, 200 + 9, 70, FALSE ); 198 audioUI->repaint( (w - 200) / 2, h - yoff, 200 + 9, 70, FALSE );
169 } else { 199 } else {
170 w = videoUI->width(); 200 w = videoUI->width();
171 h = videoUI->height(); 201 h = videoUI->height();
172 videoUI->repaint( (w - 200) / 2, h - yoff, 200 + 9, 70, FALSE ); 202 videoUI->repaint( (w - 200) / 2, h - yoff, 200 + 9, 70, FALSE );
173 } 203 }
174} 204}
175 205
176 206
177void MediaPlayer::timerEvent( QTimerEvent * ) { 207void MediaPlayer::timerEvent( QTimerEvent * ) {
178 if ( volumeDirection == +1 ) { 208 if ( volumeDirection == +1 ) {
179 volControl->incVol(2); 209 volControl->incVol(2);
180 } else if ( volumeDirection == -1 ) { 210 } else if ( volumeDirection == -1 ) {
181 volControl->decVol(2); 211 volControl->decVol(2);
182 } 212 }
183 213
184 214
diff --git a/noncore/multimedia/opieplayer2/mediaplayer.h b/noncore/multimedia/opieplayer2/mediaplayer.h
index 81fab88..05be128 100644
--- a/noncore/multimedia/opieplayer2/mediaplayer.h
+++ b/noncore/multimedia/opieplayer2/mediaplayer.h
@@ -1,47 +1,46 @@
1 1
2#ifndef MEDIA_PLAYER_H 2#ifndef MEDIA_PLAYER_H
3#define MEDIA_PLAYER_H 3#define MEDIA_PLAYER_H
4 4
5#include <qmainwindow.h> 5#include <qmainwindow.h>
6#include <qframe.h> 6#include <qframe.h>
7#include <qpe/qlibrary.h> 7#include <qpe/qlibrary.h>
8#include <qpe/mediaplayerplugininterface.h> 8#include <qpe/mediaplayerplugininterface.h>
9 9
10#include "xinecontrol.h" 10#include "xinecontrol.h"
11 11
12class DocLnk; 12class DocLnk;
13class VolumeControl; 13class VolumeControl;
14 14
15class MediaPlayer : public QObject { 15class MediaPlayer : public QObject {
16 Q_OBJECT 16 Q_OBJECT
17public: 17public:
18 MediaPlayer( QObject *parent, const char *name ); 18 MediaPlayer( QObject *parent, const char *name );
19 ~MediaPlayer(); 19 ~MediaPlayer();
20
21private slots: 20private slots:
22 void setPlaying( bool ); 21 void setPlaying( bool );
23 void pauseCheck( bool ); 22 void pauseCheck( bool );
24 void play(); 23 void play();
25 void next(); 24 void next();
26 void prev(); 25 void prev();
27 void startIncreasingVolume(); 26 void startIncreasingVolume();
28 void startDecreasingVolume(); 27 void startDecreasingVolume();
29 void stopChangingVolume(); 28 void stopChangingVolume();
30 void cleanUp(); 29 void cleanUp();
31 void blank( bool ); 30 void blank( bool );
32 31
33protected: 32protected:
34 void timerEvent( QTimerEvent *e ); 33 void timerEvent( QTimerEvent *e );
35 void keyReleaseEvent( QKeyEvent *e); 34 void keyReleaseEvent( QKeyEvent *e);
36private: 35private:
37 bool isBlanked; 36 bool isBlanked, l, r;
38 int fd; 37 int fd;
39 int volumeDirection; 38 int volumeDirection;
40 const DocLnk *currentFile; 39 const DocLnk *currentFile;
41 XineControl *xineControl; 40 XineControl *xineControl;
42 VolumeControl *volControl; 41 VolumeControl *volControl;
43}; 42};
44 43
45 44
46#endif // MEDIA_PLAYER_H 45#endif // MEDIA_PLAYER_H
47 46
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.cpp b/noncore/multimedia/opieplayer2/playlistwidget.cpp
index 3bd04bc..15c70c3 100644
--- a/noncore/multimedia/opieplayer2/playlistwidget.cpp
+++ b/noncore/multimedia/opieplayer2/playlistwidget.cpp
@@ -276,170 +276,171 @@ void PlayListWidget::addAllMusicToList() {
276} 276}
277 277
278 278
279void PlayListWidget::addAllVideoToList() { 279void PlayListWidget::addAllVideoToList() {
280 QListIterator<DocLnk> dit( vFiles.children() ); 280 QListIterator<DocLnk> dit( vFiles.children() );
281 for ( ; dit.current(); ++dit ) { 281 for ( ; dit.current(); ++dit ) {
282 if( QFileInfo( dit.current()->file() ).exists() ) { 282 if( QFileInfo( dit.current()->file() ).exists() ) {
283 d->selectedFiles->addToSelection( **dit ); 283 d->selectedFiles->addToSelection( **dit );
284 } 284 }
285 } 285 }
286} 286}
287 287
288 288
289void PlayListWidget::setDocument( const QString& fileref ) { 289void PlayListWidget::setDocument( const QString& fileref ) {
290 //qDebug( fileref ); 290 //qDebug( fileref );
291 fromSetDocument = TRUE; 291 fromSetDocument = TRUE;
292 if ( fileref.isNull() ) { 292 if ( fileref.isNull() ) {
293 QMessageBox::critical( 0, tr( "Invalid File" ), tr( "There was a problem in getting the file." ) ); 293 QMessageBox::critical( 0, tr( "Invalid File" ), tr( "There was a problem in getting the file." ) );
294 return; 294 return;
295 } 295 }
296 296
297 if( fileref.find( "m3u", 0, TRUE) != -1 ) { //is m3u 297 if( fileref.find( "m3u", 0, TRUE) != -1 ) { //is m3u
298 readm3u( fileref ); 298 readm3u( fileref );
299 } else if( fileref.find( "pls", 0, TRUE) != -1 ) { //is pls 299 } else if( fileref.find( "pls", 0, TRUE) != -1 ) { //is pls
300 readPls( fileref ); 300 readPls( fileref );
301 } else if( fileref.find( "playlist", 0, TRUE) != -1 ) {//is playlist 301 } else if( fileref.find( "playlist", 0, TRUE) != -1 ) {//is playlist
302 clearList(); 302 clearList();
303 loadList( DocLnk( fileref ) ); 303 loadList( DocLnk( fileref ) );
304 d->selectedFiles->first(); 304 d->selectedFiles->first();
305 } else { 305 } else {
306 clearList(); 306 clearList();
307 addToSelection( DocLnk( fileref ) ); 307 addToSelection( DocLnk( fileref ) );
308 d->setDocumentUsed = TRUE; 308 d->setDocumentUsed = TRUE;
309 mediaPlayerState->setPlaying( FALSE ); 309 mediaPlayerState->setPlaying( FALSE );
310 qApp->processEvents(); 310 qApp->processEvents();
311 mediaPlayerState->setPlaying( TRUE ); 311 mediaPlayerState->setPlaying( TRUE );
312 qApp->processEvents(); 312 qApp->processEvents();
313 setCaption( tr("OpiePlayer") ); 313 setCaption( tr("OpiePlayer") );
314 } 314 }
315} 315}
316 316
317 317
318void PlayListWidget::useSelectedDocument() { 318void PlayListWidget::useSelectedDocument() {
319 d->setDocumentUsed = FALSE; 319 d->setDocumentUsed = FALSE;
320} 320}
321 321
322 322
323const DocLnk *PlayListWidget::current() { // this is fugly 323const DocLnk *PlayListWidget::current() { // this is fugly
324 switch ( tabWidget->currentPageIndex() ) { 324 switch ( whichList() ) {
325 case 0: //playlist 325 case 0: //playlist
326 { 326 {
327// qDebug("playlist"); 327// qDebug("playlist");
328 if ( mediaPlayerState->playlist() ) { 328 if ( mediaPlayerState->playlist() ) {
329 return d->selectedFiles->current(); 329 return d->selectedFiles->current();
330 } else if ( d->setDocumentUsed && d->current ) { 330 } else if ( d->setDocumentUsed && d->current ) {
331 return d->current; 331 return d->current;
332 } else { 332 } else {
333 return d->files->selected(); 333 return d->files->selected();
334 } 334 }
335 } 335 }
336 break; 336 break;
337 case 1://audio 337 case 1://audio
338 { 338 {
339// qDebug("audioView"); 339// qDebug("audioView");
340 QListIterator<DocLnk> dit( files.children() ); 340 QListIterator<DocLnk> dit( files.children() );
341 for ( ; dit.current(); ++dit ) { 341 for ( ; dit.current(); ++dit ) {
342 if( dit.current()->name() == audioView->currentItem()->text( 0 ) && !insanityBool ) { 342 if( dit.current()->name() == audioView->currentItem()->text( 0 ) && !insanityBool ) {
343 insanityBool = TRUE; 343 insanityBool = TRUE;
344 return dit; 344 return dit;
345 } 345 }
346 } 346 }
347 } 347 }
348 break; 348 break;
349 case 2: // video 349 case 2: // video
350 { 350 {
351// qDebug("videoView"); 351// qDebug("videoView");
352 QListIterator<DocLnk> Vdit( vFiles.children() ); 352 QListIterator<DocLnk> Vdit( vFiles.children() );
353 for ( ; Vdit.current(); ++Vdit ) { 353 for ( ; Vdit.current(); ++Vdit ) {
354 if( Vdit.current()->name() == videoView->currentItem()->text( 0 ) && !insanityBool) { 354 if( Vdit.current()->name() == videoView->currentItem()->text( 0 ) && !insanityBool) {
355 insanityBool = TRUE; 355 insanityBool = TRUE;
356 return Vdit; 356 return Vdit;
357 } 357 }
358 } 358 }
359 } 359 }
360 break; 360 break;
361 }; 361 };
362 return 0; 362 return 0;
363} 363}
364 364
365 365
366bool PlayListWidget::prev() { 366bool PlayListWidget::prev() {
367 if ( mediaPlayerState->playlist() ) { 367 if ( mediaPlayerState->playlist() ) {
368 if ( mediaPlayerState->shuffled() ) { 368 if ( mediaPlayerState->shuffled() ) {
369 const DocLnk *cur = current(); 369 const DocLnk *cur = current();
370 int j = 1 + (int)(97.0 * rand() / (RAND_MAX + 1.0)); 370 int j = 1 + (int)(97.0 * rand() / (RAND_MAX + 1.0));
371 for ( int i = 0; i < j; i++ ) { 371 for ( int i = 0; i < j; i++ ) {
372 if ( !d->selectedFiles->next() ) 372 if ( !d->selectedFiles->next() )
373 d->selectedFiles->first(); 373 d->selectedFiles->first();
374 } 374 }
375 if ( cur == current() ) 375 if ( cur == current() )
376 if ( !d->selectedFiles->next() ) { 376 if ( !d->selectedFiles->next() ) {
377 d->selectedFiles->first(); 377 d->selectedFiles->first();
378 } 378 }
379 return TRUE; 379 return TRUE;
380 } else { 380 } else {
381 if ( !d->selectedFiles->prev() ) { 381 if ( !d->selectedFiles->prev() ) {
382 if ( mediaPlayerState->looping() ) { 382 if ( mediaPlayerState->looping() ) {
383 return d->selectedFiles->last(); 383 return d->selectedFiles->last();
384 } else { 384 } else {
385 return FALSE; 385 return FALSE;
386 } 386 }
387 } 387 }
388 return TRUE; 388 return TRUE;
389 } 389 }
390 } else { 390 } else {
391 return mediaPlayerState->looping(); 391 return mediaPlayerState->looping();
392 } 392 }
393} 393}
394 394
395 395
396bool PlayListWidget::next() { 396bool PlayListWidget::next() {
397 if ( mediaPlayerState->playlist() ) { 397qDebug("<<<<<<<<<<<<next()");
398 if ( mediaPlayerState->playlist() ) {
398 if ( mediaPlayerState->shuffled() ) { 399 if ( mediaPlayerState->shuffled() ) {
399 return prev(); 400 return prev();
400 } else { 401 } else {
401 if ( !d->selectedFiles->next() ) { 402 if ( !d->selectedFiles->next() ) {
402 if ( mediaPlayerState->looping() ) { 403 if ( mediaPlayerState->looping() ) {
403 return d->selectedFiles->first(); 404 return d->selectedFiles->first();
404 } else { 405 } else {
405 return FALSE; 406 return FALSE;
406 } 407 }
407 } 408 }
408 return TRUE; 409 return TRUE;
409 } 410 }
410 } else { 411 } else {
411 return mediaPlayerState->looping(); 412 return mediaPlayerState->looping();
412 } 413 }
413} 414}
414 415
415 416
416bool PlayListWidget::first() { 417bool PlayListWidget::first() {
417 if ( mediaPlayerState->playlist() ) 418 if ( mediaPlayerState->playlist() )
418 return d->selectedFiles->first(); 419 return d->selectedFiles->first();
419 else 420 else
420 return mediaPlayerState->looping(); 421 return mediaPlayerState->looping();
421} 422}
422 423
423 424
424bool PlayListWidget::last() { 425bool PlayListWidget::last() {
425 if ( mediaPlayerState->playlist() ) 426 if ( mediaPlayerState->playlist() )
426 return d->selectedFiles->last(); 427 return d->selectedFiles->last();
427 else 428 else
428 return mediaPlayerState->looping(); 429 return mediaPlayerState->looping();
429} 430}
430 431
431 432
432void PlayListWidget::saveList() { 433void PlayListWidget::saveList() {
433 434
434 QString filename; 435 QString filename;
435 InputDialog *fileDlg = 0l; 436 InputDialog *fileDlg = 0l;
436 fileDlg = new InputDialog(this,tr("Save Playlist"),TRUE, 0); 437 fileDlg = new InputDialog(this,tr("Save Playlist"),TRUE, 0);
437 fileDlg->exec(); 438 fileDlg->exec();
438 if( fileDlg->result() == 1 ) { 439 if( fileDlg->result() == 1 ) {
439 if ( d->current ) 440 if ( d->current )
440 delete d->current; 441 delete d->current;
441 filename = fileDlg->text();//+".playlist"; 442 filename = fileDlg->text();//+".playlist";
442 // qDebug("saving playlist "+filename+".playlist"); 443 // qDebug("saving playlist "+filename+".playlist");
443 Config cfg( filename +".playlist"); 444 Config cfg( filename +".playlist");
444 writeConfig( cfg ); 445 writeConfig( cfg );
445 446
@@ -452,368 +453,369 @@ void PlayListWidget::saveList() {
452 if(!lnk.writeLink()) { 453 if(!lnk.writeLink()) {
453 qDebug("Writing doclink did not work"); 454 qDebug("Writing doclink did not work");
454 } 455 }
455 } 456 }
456 Config config( "OpiePlayer" ); 457 Config config( "OpiePlayer" );
457 config.writeEntry("CurrentPlaylist",filename); 458 config.writeEntry("CurrentPlaylist",filename);
458 setCaption(tr("OpiePlayer: ")+filename); 459 setCaption(tr("OpiePlayer: ")+filename);
459 d->selectedFiles->first(); 460 d->selectedFiles->first();
460 if(fileDlg) { 461 if(fileDlg) {
461 delete fileDlg; 462 delete fileDlg;
462 } 463 }
463} 464}
464 465
465void PlayListWidget::loadList( const DocLnk & lnk) { 466void PlayListWidget::loadList( const DocLnk & lnk) {
466 QString name= lnk.name(); 467 QString name= lnk.name();
467 // qDebug("currentList is "+name); 468 // qDebug("currentList is "+name);
468 if( name.length()>1) { 469 if( name.length()>1) {
469 setCaption("OpiePlayer: "+name); 470 setCaption("OpiePlayer: "+name);
470 // qDebug("load list "+ name+".playlist"); 471 // qDebug("load list "+ name+".playlist");
471 clearList(); 472 clearList();
472 Config cfg( name+".playlist"); 473 Config cfg( name+".playlist");
473 readConfig(cfg); 474 readConfig(cfg);
474 475
475 tabWidget->setCurrentPage(0); 476 tabWidget->setCurrentPage(0);
476 477
477 Config config( "OpiePlayer" ); 478 Config config( "OpiePlayer" );
478 config.writeEntry("CurrentPlaylist", name); 479 config.writeEntry("CurrentPlaylist", name);
479 // d->selectedFiles->first(); 480 // d->selectedFiles->first();
480 } 481 }
481} 482}
482 483
483 484
484void PlayListWidget::setPlaylist( bool shown ) { 485void PlayListWidget::setPlaylist( bool shown ) {
485 if ( shown ) { 486 if ( shown ) {
486 d->playListFrame->show(); 487 d->playListFrame->show();
487 } else { 488 } else {
488 d->playListFrame->hide(); 489 d->playListFrame->hide();
489 } 490 }
490} 491}
491 492
492 493
493void PlayListWidget::addSelected() { 494void PlayListWidget::addSelected() {
494 495
495 Config cfg( "OpiePlayer" ); 496 Config cfg( "OpiePlayer" );
496 cfg.setGroup("PlayList"); 497 cfg.setGroup("PlayList");
497 QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); 498 QString currentPlaylist = cfg.readEntry("CurrentPlaylist","");
498 // int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); 499 // int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 );
499 500
500 switch (tabWidget->currentPageIndex()) { 501 switch (whichList()) {
501 case 0: //playlist 502 case 0: //playlist
502 break; 503 break;
503 case 1: { //audio 504 case 1: { //audio
504 QListViewItemIterator it( audioView ); 505 QListViewItemIterator it( audioView );
505 // iterate through all items of the listview 506 // iterate through all items of the listview
506 for ( ; it.current(); ++it ) { 507 for ( ; it.current(); ++it ) {
507 if ( it.current()->isSelected() ) { 508 if ( it.current()->isSelected() ) {
508 QListIterator<DocLnk> dit( files.children() ); 509 QListIterator<DocLnk> dit( files.children() );
509 for ( ; dit.current(); ++dit ) { 510 for ( ; dit.current(); ++dit ) {
510 if( dit.current()->name() == it.current()->text(0) ) { 511 if( dit.current()->name() == it.current()->text(0) ) {
511 if(QFileInfo( dit.current()->file()).exists()) 512 if(QFileInfo( dit.current()->file()).exists())
512 d->selectedFiles->addToSelection( **dit ); 513 d->selectedFiles->addToSelection( **dit );
513 } 514 }
514 } 515 }
515 audioView->setSelected( it.current(),FALSE); 516 audioView->setSelected( it.current(),FALSE);
516 } 517 }
517 } 518 }
518 tabWidget->setCurrentPage(0); 519 tabWidget->setCurrentPage(0);
519 } 520 }
520 break; 521 break;
521 case 2: { // video 522 case 2: { // video
522 QListViewItemIterator it( videoView ); 523 QListViewItemIterator it( videoView );
523 // iterate through all items of the listview 524 // iterate through all items of the listview
524 for ( ; it.current(); ++it ) { 525 for ( ; it.current(); ++it ) {
525 if ( it.current()->isSelected() ) { 526 if ( it.current()->isSelected() ) {
526 QListIterator<DocLnk> dit( vFiles.children() ); 527 QListIterator<DocLnk> dit( vFiles.children() );
527 for ( ; dit.current(); ++dit ) { 528 for ( ; dit.current(); ++dit ) {
528 if( dit.current()->name() == it.current()->text(0) ) { 529 if( dit.current()->name() == it.current()->text(0) ) {
529 if(QFileInfo( dit.current()->file()).exists()) 530 if(QFileInfo( dit.current()->file()).exists())
530 d->selectedFiles->addToSelection( **dit ); 531 d->selectedFiles->addToSelection( **dit );
531 } 532 }
532 } 533 }
533 videoView->setSelected( it.current(),FALSE); 534 videoView->setSelected( it.current(),FALSE);
534 } 535 }
535 } 536 }
536 tabWidget->setCurrentPage(0); 537 tabWidget->setCurrentPage(0);
537 } 538 }
538 break; 539 break;
539 }; 540 };
540} 541}
541 542
542 543
543void PlayListWidget::removeSelected() { 544void PlayListWidget::removeSelected() {
544 d->selectedFiles->removeSelected( ); 545 d->selectedFiles->removeSelected( );
545} 546}
546 547
547 548
548void PlayListWidget::playIt( QListViewItem *it) { 549void PlayListWidget::playIt( QListViewItem *it) {
549 if(!it) return; 550 if(!it) return;
550 mediaPlayerState->setPlaying(FALSE); 551 mediaPlayerState->setPlaying(FALSE);
551 mediaPlayerState->setPlaying(TRUE); 552 mediaPlayerState->setPlaying(TRUE);
552 d->selectedFiles->unSelect(); 553 d->selectedFiles->unSelect();
553} 554}
554 555
555 556
556void PlayListWidget::addToSelection( QListViewItem *it) { 557void PlayListWidget::addToSelection( QListViewItem *it) {
557 d->setDocumentUsed = FALSE; 558 d->setDocumentUsed = FALSE;
558 559
559 if(it) { 560 if(it) {
560 switch (tabWidget->currentPageIndex()) { 561 switch ( whichList()) {
561 case 1: { 562 case 1: {
562 QListIterator<DocLnk> dit( files.children() ); 563 QListIterator<DocLnk> dit( files.children() );
563 for ( ; dit.current(); ++dit ) { 564 for ( ; dit.current(); ++dit ) {
564 if( dit.current()->name() == it->text(0)) { 565 if( dit.current()->name() == it->text(0)) {
565 if(QFileInfo( dit.current()->file()).exists()) 566 if(QFileInfo( dit.current()->file()).exists())
566 d->selectedFiles->addToSelection( **dit ); 567 d->selectedFiles->addToSelection( **dit );
567 } 568 }
568 } 569 }
569 } 570 }
570 break; 571 break;
571 case 2: { 572 case 2: {
572 QListIterator<DocLnk> dit( vFiles.children() ); 573 QListIterator<DocLnk> dit( vFiles.children() );
573 for ( ; dit.current(); ++dit ) { 574 for ( ; dit.current(); ++dit ) {
574 if( dit.current()->name() == it->text(0)) { 575 if( dit.current()->name() == it->text(0)) {
575 if(QFileInfo( dit.current()->file()).exists()) 576 if(QFileInfo( dit.current()->file()).exists())
576 d->selectedFiles->addToSelection( **dit ); 577 d->selectedFiles->addToSelection( **dit );
577 } 578 }
578 } 579 }
579 } 580 }
580 break; 581 break;
581 case 0: 582 case 0:
582 break; 583 break;
583 }; 584 };
584 tabWidget->setCurrentPage(0); 585 tabWidget->setCurrentPage(0);
585 } 586 }
586} 587}
587 588
588 589
589void PlayListWidget::tabChanged(QWidget *) { 590void PlayListWidget::tabChanged(QWidget *) {
590 591
591 switch ( tabWidget->currentPageIndex()) { 592 switch ( whichList()) {
592 case 0: 593 case 0:
593 { 594 {
594 if( !tbDeletePlaylist->isHidden() ) { 595 if( !tbDeletePlaylist->isHidden() ) {
595 tbDeletePlaylist->hide(); 596 tbDeletePlaylist->hide();
596 } 597 }
597 d->tbRemoveFromList->setEnabled(TRUE); 598 d->tbRemoveFromList->setEnabled(TRUE);
598 d->tbAddToList->setEnabled(FALSE); 599 d->tbAddToList->setEnabled(FALSE);
599 } 600 }
600 break; 601 break;
601 case 1: 602 case 1:
602 { 603 {
603 audioView->clear(); 604 audioView->clear();
604 populateAudioView(); 605 populateAudioView();
605 606
606 if( !tbDeletePlaylist->isHidden() ) { 607 if( !tbDeletePlaylist->isHidden() ) {
607 tbDeletePlaylist->hide(); 608 tbDeletePlaylist->hide();
608 } 609 }
609 d->tbRemoveFromList->setEnabled(FALSE); 610 d->tbRemoveFromList->setEnabled(FALSE);
610 d->tbAddToList->setEnabled(TRUE); 611 d->tbAddToList->setEnabled(TRUE);
611 } 612 }
612 break; 613 break;
613 case 2: 614 case 2:
614 { 615 {
615 videoView->clear(); 616 videoView->clear();
616 populateVideoView(); 617 populateVideoView();
617 if( !tbDeletePlaylist->isHidden() ) { 618 if( !tbDeletePlaylist->isHidden() ) {
618 tbDeletePlaylist->hide(); 619 tbDeletePlaylist->hide();
619 } 620 }
620 d->tbRemoveFromList->setEnabled(FALSE); 621 d->tbRemoveFromList->setEnabled(FALSE);
621 d->tbAddToList->setEnabled(TRUE); 622 d->tbAddToList->setEnabled(TRUE);
622 } 623 }
623 break; 624 break;
624 case 3: 625 case 3:
625 { 626 {
626 if( tbDeletePlaylist->isHidden() ) { 627 if( tbDeletePlaylist->isHidden() ) {
627 tbDeletePlaylist->show(); 628 tbDeletePlaylist->show();
628 } 629 }
629 playLists->reread(); 630 playLists->reread();
630 } 631 }
631 break; 632 break;
632 }; 633 };
633} 634}
634 635
635 636
636void PlayListWidget::btnPlay(bool b) { 637void PlayListWidget::btnPlay(bool b) {
637 // mediaPlayerState->setPlaying(b); 638 mediaPlayerState->setPlaying(b);
638 switch ( tabWidget->currentPageIndex()) { 639 qApp->processEvents();
639 case 0: 640 insanityBool=FALSE;
640 { 641// switch ( whichList()) {
641 mediaPlayerState->setPlaying(b); 642// case 0:
642 } 643// {
643 break; 644// mediaPlayerState->setPlaying(b);
644 case 1: 645// }
645 { 646// break;
646 addToSelection( audioView->currentItem() ); 647// case 1:
647 mediaPlayerState->setPlaying(b); 648// {
648 d->selectedFiles->removeSelected( ); 649// mediaPlayerState->setPlaying(b);
649 tabWidget->setCurrentPage(1); 650// qApp->processEvents();
650 d->selectedFiles->unSelect(); 651// insanityBool=FALSE;
651 insanityBool=FALSE; 652// }// audioView->clearSelection();
652 }// audioView->clearSelection(); 653// break;
653 break; 654// case 2:
654 case 2: 655// {
655 { 656// // addToSelection( videoView->currentItem() );
656 addToSelection( videoView->currentItem() ); 657// mediaPlayerState->setPlaying(b);
657 mediaPlayerState->setPlaying(b); 658// qApp->processEvents();
658 qApp->processEvents(); 659// // d->selectedFiles->removeSelected( );
659 d->selectedFiles->removeSelected( ); 660// // tabWidget->setCurrentPage(2);
660 tabWidget->setCurrentPage(2); 661// // d->selectedFiles->unSelect();
661 d->selectedFiles->unSelect(); 662// insanityBool=FALSE;
662 insanityBool=FALSE; 663// }// videoView->clearSelection();
663 }// videoView->clearSelection(); 664// break;
664 break; 665// };
665 };
666 666
667} 667}
668 668
669void PlayListWidget::deletePlaylist() { 669void PlayListWidget::deletePlaylist() {
670 switch( QMessageBox::information( this, (tr("Remove Playlist?")), 670 switch( QMessageBox::information( this, (tr("Remove Playlist?")),
671 (tr("You really want to delete\nthis playlist?")), 671 (tr("You really want to delete\nthis playlist?")),
672 (tr("Yes")), (tr("No")), 0 )){ 672 (tr("Yes")), (tr("No")), 0 )){
673 case 0: // Yes clicked, 673 case 0: // Yes clicked,
674 QFile().remove(playLists->selected()->file()); 674 QFile().remove(playLists->selected()->file());
675 QFile().remove(playLists->selected()->linkFile()); 675 QFile().remove(playLists->selected()->linkFile());
676 playLists->reread(); 676 playLists->reread();
677 break; 677 break;
678 case 1: // Cancel 678 case 1: // Cancel
679 break; 679 break;
680 }; 680 };
681} 681}
682 682
683 683
684void PlayListWidget::playSelected() { 684void PlayListWidget::playSelected() {
685 btnPlay( TRUE); 685 btnPlay( TRUE);
686} 686}
687 687
688 688
689void PlayListWidget::scanForAudio() { 689void PlayListWidget::scanForAudio() {
690// qDebug("scan for audio"); 690// qDebug("scan for audio");
691 files.detachChildren(); 691 files.detachChildren();
692 QListIterator<DocLnk> sdit( files.children() ); 692 QListIterator<DocLnk> sdit( files.children() );
693 for ( ; sdit.current(); ++sdit ) { 693 for ( ; sdit.current(); ++sdit ) {
694 delete sdit.current(); 694 delete sdit.current();
695 } 695 }
696 Global::findDocuments(&files, "audio/*"); 696 Global::findDocuments(&files, "audio/*");
697 audioScan = TRUE; 697 audioScan = TRUE;
698} 698}
699 699
700void PlayListWidget::scanForVideo() { 700void PlayListWidget::scanForVideo() {
701// qDebug("scan for video"); 701// qDebug("scan for video");
702 vFiles.detachChildren(); 702 vFiles.detachChildren();
703 QListIterator<DocLnk> sdit( vFiles.children() ); 703 QListIterator<DocLnk> sdit( vFiles.children() );
704 for ( ; sdit.current(); ++sdit ) { 704 for ( ; sdit.current(); ++sdit ) {
705 delete sdit.current(); 705 delete sdit.current();
706 } 706 }
707 Global::findDocuments(&vFiles, "video/*"); 707 Global::findDocuments(&vFiles, "video/*");
708 videoScan = TRUE; 708 videoScan = TRUE;
709} 709}
710 710
711void PlayListWidget::populateAudioView() { 711void PlayListWidget::populateAudioView() {
712 audioView->clear(); 712 audioView->clear();
713 StorageInfo storageInfo; 713 StorageInfo storageInfo;
714 const QList<FileSystem> &fs = storageInfo.fileSystems(); 714 const QList<FileSystem> &fs = storageInfo.fileSystems();
715 if(!audioScan) { 715 if(!audioScan) {
716 scanForAudio(); 716 scanForAudio();
717 } 717 }
718 718
719 QListIterator<DocLnk> dit( files.children() ); 719 QListIterator<DocLnk> dit( files.children() );
720 QListIterator<FileSystem> it ( fs ); 720 QListIterator<FileSystem> it ( fs );
721 721
722 QString storage; 722 QString storage;
723 for ( ; dit.current(); ++dit ) { 723 for ( ; dit.current(); ++dit ) {
724 for( ; it.current(); ++it ){ 724 for( ; it.current(); ++it ){
725 const QString name = (*it)->name(); 725 const QString name = (*it)->name();
726 const QString path = (*it)->path(); 726 const QString path = (*it)->path();
727 if(dit.current()->file().find(path) != -1 ) { 727 if(dit.current()->file().find(path) != -1 ) {
728 storage = name; 728 storage = name;
729 } 729 }
730 } 730 }
731 731
732 QListViewItem * newItem; 732 QListViewItem * newItem;
733 if ( QFile( dit.current()->file()).exists() || dit.current()->file().left(4) == "http" ) { 733 if ( QFile( dit.current()->file()).exists() || dit.current()->file().left(4) == "http" ) {
734 long size; 734 long size;
735 if( dit.current()->file().left(4) == "http" ) 735 if( dit.current()->file().left(4) == "http" )
736 size=0; 736 size=0;
737 else 737 else
738 size = QFile( dit.current()->file() ).size(); 738 size = QFile( dit.current()->file() ).size();
739 newItem= /*(void)*/ new QListViewItem( audioView, dit.current()->name(), QString::number(size ), storage); 739 newItem= /*(void)*/ new QListViewItem( audioView, dit.current()->name(),
740 QString::number(size ), storage, dit.current()->file());
740 newItem->setPixmap( 0, Resource::loadPixmap( "opieplayer2/musicfile" ) ); 741 newItem->setPixmap( 0, Resource::loadPixmap( "opieplayer2/musicfile" ) );
741 } 742 }
742 } 743 }
743} 744}
744 745
745 746
746void PlayListWidget::populateVideoView() { 747void PlayListWidget::populateVideoView() {
747 videoView->clear(); 748 videoView->clear();
748 StorageInfo storageInfo; 749 StorageInfo storageInfo;
749 const QList<FileSystem> &fs = storageInfo.fileSystems(); 750 const QList<FileSystem> &fs = storageInfo.fileSystems();
750 751
751 if(!videoScan ) { 752 if(!videoScan ) {
752 scanForVideo(); 753 scanForVideo();
753 } 754 }
754 755
755 QListIterator<DocLnk> Vdit( vFiles.children() ); 756 QListIterator<DocLnk> Vdit( vFiles.children() );
756 QListIterator<FileSystem> it ( fs ); 757 QListIterator<FileSystem> it ( fs );
757 videoView->clear(); 758 videoView->clear();
758 QString storage; 759 QString storage, pathName;
759 for ( ; Vdit.current(); ++Vdit ) { 760 for ( ; Vdit.current(); ++Vdit ) {
760 for( ; it.current(); ++it ) { 761 for( ; it.current(); ++it ) {
761 const QString name = (*it)->name(); 762 const QString name = (*it)->name();
762 const QString path = (*it)->path(); 763 const QString path = (*it)->path();
763 if( Vdit.current()->file().find(path) != -1 ) { 764 if( Vdit.current()->file().find(path) != -1 ) {
764 storage=name; 765 storage=name;
766 pathName=path;
765 } 767 }
766 } 768 }
767 769
768 QListViewItem * newItem; 770 QListViewItem * newItem;
769 if ( QFile( Vdit.current()->file() ).exists() ) { 771 if ( QFile( Vdit.current()->file() ).exists() ) {
770 newItem= /*(void)*/ new QListViewItem( videoView, Vdit.current()->name(), 772 newItem= /*(void)*/ new QListViewItem( videoView, Vdit.current()->name(),
771 QString::number( QFile( Vdit.current()->file() ).size() ), storage ); 773 QString::number( QFile( Vdit.current()->file() ).size() ), storage, Vdit.current()->file());
772 newItem->setPixmap(0, Resource::loadPixmap( "opieplayer2/videofile" ) ); 774 newItem->setPixmap(0, Resource::loadPixmap( "opieplayer2/videofile" ) );
773 } 775 }
774 } 776 }
775} 777}
776 778
777 779
778void PlayListWidget::openFile() { 780void PlayListWidget::openFile() {
779 QString filename, name; 781 QString filename, name;
780 InputDialog *fileDlg; 782 InputDialog *fileDlg;
781 fileDlg = new InputDialog(this,tr("Open file or URL"),TRUE, 0); 783 fileDlg = new InputDialog(this,tr("Open file or URL"),TRUE, 0);
782 fileDlg->exec(); 784 fileDlg->exec();
783 if( fileDlg->result() == 1 ) { 785 if( fileDlg->result() == 1 ) {
784 filename = fileDlg->text(); 786 filename = fileDlg->text();
785 787
786 qDebug( "Selected filename is " + filename ); 788 qDebug( "Selected filename is " + filename );
787 if( filename.right( 3 ) == "m3u" ) { 789 if( filename.right( 3 ) == "m3u" ) {
788 readm3u( filename ); 790 readm3u( filename );
789 } else if( filename.right(3) == "pls" ) { 791 } else if( filename.right(3) == "pls" ) {
790 readPls( filename ); 792 readPls( filename );
791 } else { 793 } else {
792 // this doesnt need fixing 794 // this doesnt need fixing
793 DocLnk lnk; 795 DocLnk lnk;
794 lnk.setName( filename ); //sets file name 796 lnk.setName( filename ); //sets file name
795 lnk.setFile( filename ); //sets File property 797 lnk.setFile( filename ); //sets File property
796 //qWarning( "Mimetype: " + MimeType( QFile::encodeName(filename) ).id() ); 798 //qWarning( "Mimetype: " + MimeType( QFile::encodeName(filename) ).id() );
797 lnk.setType( MimeType( QFile::encodeName(filename) ).id() ); 799 lnk.setType( MimeType( QFile::encodeName(filename) ).id() );
798 lnk.setExec( "opieplayer" ); 800 lnk.setExec( "opieplayer" );
799 lnk.setIcon( "opieplayer2/MPEGPlayer" ); 801 lnk.setIcon( "opieplayer2/MPEGPlayer" );
800 802
801 if( !lnk.writeLink() ) { 803 if( !lnk.writeLink() ) {
802 qDebug( "Writing doclink did not work" ); 804 qDebug( "Writing doclink did not work" );
803 } 805 }
804 d->selectedFiles->addToSelection( lnk ); 806 d->selectedFiles->addToSelection( lnk );
805 } 807 }
806 } 808 }
807 if( fileDlg ) { 809 if( fileDlg ) {
808 delete fileDlg; 810 delete fileDlg;
809 } 811 }
810} 812}
811 813
812void PlayListWidget::keyReleaseEvent( QKeyEvent *e ) { 814void PlayListWidget::keyReleaseEvent( QKeyEvent *e ) {
813 switch ( e->key() ) { 815 switch ( e->key() ) {
814 ////////////////////////////// Zaurus keys 816 ////////////////////////////// Zaurus keys
815 case Key_F9: //activity 817 case Key_F9: //activity
816 // if(audioUI->isHidden()) 818 // if(audioUI->isHidden())
817 // audioUI->showMaximized(); 819 // audioUI->showMaximized();
818 break; 820 break;
819 case Key_F10: //contacts 821 case Key_F10: //contacts
@@ -1017,48 +1019,64 @@ void PlayListWidget::pmViewActivated(int index) {
1017 pmView->setItemChecked( index, b); 1019 pmView->setItemChecked( index, b);
1018 Config cfg( "OpiePlayer" ); 1020 Config cfg( "OpiePlayer" );
1019 cfg.writeEntry( "FullScreen", b ); 1021 cfg.writeEntry( "FullScreen", b );
1020 } 1022 }
1021 break; 1023 break;
1022 }; 1024 };
1023} 1025}
1024 1026
1025void PlayListWidget::populateSkinsMenu() { 1027void PlayListWidget::populateSkinsMenu() {
1026 int item = 0; 1028 int item = 0;
1027 defaultSkinIndex = 0; 1029 defaultSkinIndex = 0;
1028 QString skinName; 1030 QString skinName;
1029 Config cfg( "OpiePlayer" ); 1031 Config cfg( "OpiePlayer" );
1030 cfg.setGroup("Options" ); 1032 cfg.setGroup("Options" );
1031 QString skin = cfg.readEntry( "Skin", "default" ); 1033 QString skin = cfg.readEntry( "Skin", "default" );
1032 1034
1033 QDir skinsDir( QPEApplication::qpeDir() + "/pics/opieplayer2/skins" ); 1035 QDir skinsDir( QPEApplication::qpeDir() + "/pics/opieplayer2/skins" );
1034 skinsDir.setFilter( QDir::Dirs ); 1036 skinsDir.setFilter( QDir::Dirs );
1035 skinsDir.setSorting(QDir::Name ); 1037 skinsDir.setSorting(QDir::Name );
1036 const QFileInfoList *skinslist = skinsDir.entryInfoList(); 1038 const QFileInfoList *skinslist = skinsDir.entryInfoList();
1037 QFileInfoListIterator it( *skinslist ); 1039 QFileInfoListIterator it( *skinslist );
1038 QFileInfo *fi; 1040 QFileInfo *fi;
1039 while ( ( fi = it.current() ) ) { 1041 while ( ( fi = it.current() ) ) {
1040 skinName = fi->fileName(); 1042 skinName = fi->fileName();
1041 qDebug( fi->fileName() ); 1043 qDebug( fi->fileName() );
1042 if( skinName != "." && skinName != ".." && skinName !="CVS" ) { 1044 if( skinName != "." && skinName != ".." && skinName !="CVS" ) {
1043 item = skinsMenu->insertItem( fi->fileName() ) ; 1045 item = skinsMenu->insertItem( fi->fileName() ) ;
1044 } 1046 }
1045 if( skinName == "default" ) { 1047 if( skinName == "default" ) {
1046 defaultSkinIndex = item; 1048 defaultSkinIndex = item;
1047 } 1049 }
1048 if( skinName == skin ) { 1050 if( skinName == skin ) {
1049 skinsMenu->setItemChecked( item, TRUE ); 1051 skinsMenu->setItemChecked( item, TRUE );
1050 } 1052 }
1051 ++it; 1053 ++it;
1052 } 1054 }
1053} 1055}
1054 1056
1055void PlayListWidget::skinsMenuActivated( int item ) { 1057void PlayListWidget::skinsMenuActivated( int item ) {
1056 for( uint i = defaultSkinIndex; i > defaultSkinIndex - skinsMenu->count(); i-- ) { 1058 for( uint i = defaultSkinIndex; i > defaultSkinIndex - skinsMenu->count(); i-- ) {
1057 skinsMenu->setItemChecked( i, FALSE ); 1059 skinsMenu->setItemChecked( i, FALSE );
1058 } 1060 }
1059 skinsMenu->setItemChecked( item, TRUE ); 1061 skinsMenu->setItemChecked( item, TRUE );
1060 1062
1061 Config cfg( "OpiePlayer" ); 1063 Config cfg( "OpiePlayer" );
1062 cfg.setGroup("Options"); 1064 cfg.setGroup("Options");
1063 cfg.writeEntry("Skin", skinsMenu->text( item ) ); 1065 cfg.writeEntry("Skin", skinsMenu->text( item ) );
1064} 1066}
1067
1068int PlayListWidget::whichList() {
1069 return tabWidget->currentPageIndex();
1070}
1071
1072QString PlayListWidget::currentFileListPathName() {
1073 switch (whichList()) {
1074 case 1:
1075 return audioView->currentItem()->text(3);
1076 break;
1077 case 2:
1078 return videoView->currentItem()->text(3);
1079 break;
1080 };
1081 return "";
1082}
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.h b/noncore/multimedia/opieplayer2/playlistwidget.h
index dcfdd48..2873dca 100644
--- a/noncore/multimedia/opieplayer2/playlistwidget.h
+++ b/noncore/multimedia/opieplayer2/playlistwidget.h
@@ -21,100 +21,101 @@
21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
22..}^=.=       =       ; General Public License for more 22..}^=.=       =       ; General Public License for more
23++=   -.     .`     .: details. 23++=   -.     .`     .: details.
24 :     =  ...= . :.=- 24 :     =  ...= . :.=-
25 -.   .:....=;==+<; You should have received a copy of the GNU 25 -.   .:....=;==+<; You should have received a copy of the GNU
26  -_. . .   )=.  = General Public License along with 26  -_. . .   )=.  = General Public License along with
27    --        :-=` this library; see the file COPYING.LIB. 27    --        :-=` this library; see the file COPYING.LIB.
28 If not, write to the Free Software Foundation, 28 If not, write to the Free Software Foundation,
29 Inc., 59 Temple Place - Suite 330, 29 Inc., 59 Temple Place - Suite 330,
30 Boston, MA 02111-1307, USA. 30 Boston, MA 02111-1307, USA.
31 31
32*/ 32*/
33 33
34#ifndef PLAY_LIST_WIDGET_H 34#ifndef PLAY_LIST_WIDGET_H
35#define PLAY_LIST_WIDGET_H 35#define PLAY_LIST_WIDGET_H
36 36
37#include <qmainwindow.h> 37#include <qmainwindow.h>
38#include <qpe/applnk.h> 38#include <qpe/applnk.h>
39#include <qtabwidget.h> 39#include <qtabwidget.h>
40#include <qpe/fileselector.h> 40#include <qpe/fileselector.h>
41#include <qpushbutton.h> 41#include <qpushbutton.h>
42#include <qpopupmenu.h> 42#include <qpopupmenu.h>
43 43
44#include "playlistwidgetgui.h" 44#include "playlistwidgetgui.h"
45 45
46 46
47//class PlayListWidgetPrivate; 47//class PlayListWidgetPrivate;
48class Config; 48class Config;
49class QListViewItem; 49class QListViewItem;
50class QListView; 50class QListView;
51class QPoint; 51class QPoint;
52class QAction; 52class QAction;
53class QLabel; 53class QLabel;
54 54
55class PlayListWidget : public PlayListWidgetGui { 55class PlayListWidget : public PlayListWidgetGui {
56 Q_OBJECT 56 Q_OBJECT
57public: 57public:
58 PlayListWidget( QWidget* parent=0, const char* name=0, WFlags fl=0 ); 58 PlayListWidget( QWidget* parent=0, const char* name=0, WFlags fl=0 );
59 ~PlayListWidget(); 59 ~PlayListWidget();
60 DocLnkSet files; 60 DocLnkSet files;
61 DocLnkSet vFiles; 61 DocLnkSet vFiles;
62 bool fromSetDocument; 62 bool fromSetDocument;
63 bool insanityBool; 63 bool insanityBool;
64 QString setDocFileRef; 64 QString setDocFileRef;
65 // retrieve the current playlist entry (media file link) 65 // retrieve the current playlist entry (media file link)
66 const DocLnk *current(); 66 const DocLnk *current();
67 void useSelectedDocument(); 67 void useSelectedDocument();
68 int selected; 68 int selected;
69 int whichList();
69 70
70public slots: 71public slots:
71 bool first(); 72 bool first();
72 bool last(); 73 bool last();
73 bool next(); 74 bool next();
74 bool prev(); 75 bool prev();
75 void writeConfig( Config& cfg ) const; 76 void writeConfig( Config& cfg ) const;
76 77 QString currentFileListPathName();
77protected: 78protected:
78 void keyReleaseEvent( QKeyEvent *e); 79 void keyReleaseEvent( QKeyEvent *e);
79 80
80private: 81private:
81 int defaultSkinIndex; 82 int defaultSkinIndex;
82 bool audioScan, videoScan; 83 bool audioScan, videoScan;
83 void readm3u(const QString &); 84 void readm3u(const QString &);
84 void readPls(const QString &); 85 void readPls(const QString &);
85 void initializeStates(); 86 void initializeStates();
86 void readConfig( Config& cfg ); 87 void readConfig( Config& cfg );
87 void populateAudioView(); 88 void populateAudioView();
88 void populateVideoView(); 89 void populateVideoView();
89 90
90private slots: 91private slots:
91 void populateSkinsMenu(); 92 void populateSkinsMenu();
92 void skinsMenuActivated(int); 93 void skinsMenuActivated(int);
93 void pmViewActivated(int); 94 void pmViewActivated(int);
94 void writem3u(); 95 void writem3u();
95 void scanForAudio(); 96 void scanForAudio();
96 void scanForVideo(); 97 void scanForVideo();
97 void openFile(); 98 void openFile();
98 void setDocument( const QString& fileref ); 99 void setDocument( const QString& fileref );
99 void addToSelection( const DocLnk& ); // Add a media file to the playlist 100 void addToSelection( const DocLnk& ); // Add a media file to the playlist
100 void addToSelection( QListViewItem* ); // Add a media file to the playlist 101 void addToSelection( QListViewItem* ); // Add a media file to the playlist
101 void setPlaylist( bool ); // Show/Hide the playlist 102 void setPlaylist( bool ); // Show/Hide the playlist
102 void clearList(); 103 void clearList();
103 void addAllToList(); 104 void addAllToList();
104 void addAllMusicToList(); 105 void addAllMusicToList();
105 void addAllVideoToList(); 106 void addAllVideoToList();
106 void saveList(); // Save the playlist 107 void saveList(); // Save the playlist
107 void loadList( const DocLnk &); // Load a playlist 108 void loadList( const DocLnk &); // Load a playlist
108 void playIt( QListViewItem *); 109 void playIt( QListViewItem *);
109 void btnPlay(bool); 110 void btnPlay(bool);
110 void deletePlaylist(); 111 void deletePlaylist();
111 void addSelected(); 112 void addSelected();
112 void removeSelected(); 113 void removeSelected();
113 void tabChanged(QWidget*); 114 void tabChanged(QWidget*);
114 void viewPressed( int, QListViewItem *, const QPoint&, int); 115 void viewPressed( int, QListViewItem *, const QPoint&, int);
115 void playlistViewPressed( int, QListViewItem *, const QPoint&, int); 116 void playlistViewPressed( int, QListViewItem *, const QPoint&, int);
116 void playSelected(); 117 void playSelected();
117}; 118};
118 119
119#endif // PLAY_LIST_WIDGET_H 120#endif // PLAY_LIST_WIDGET_H
120 121
diff --git a/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp b/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp
index 250833c..f073102 100644
--- a/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp
+++ b/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp
@@ -110,117 +110,119 @@ PlayListWidgetGui::PlayListWidgetGui( QWidget* parent, const char* name, WFlags
110 gammaSlider->setFocusPolicy( QWidget::NoFocus ); 110 gammaSlider->setFocusPolicy( QWidget::NoFocus );
111 gammaSlider->setValue( 0 ); 111 gammaSlider->setValue( 0 );
112 gammaSlider->setMinimumHeight( 50 ); 112 gammaSlider->setMinimumHeight( 50 );
113 113
114 gammaLCD = new QLCDNumber( 3, gammaMenu ); 114 gammaLCD = new QLCDNumber( 3, gammaMenu );
115 115
116 gammaMenu->insertItem( gammaSlider ); 116 gammaMenu->insertItem( gammaSlider );
117 gammaMenu->insertItem( gammaLCD ); 117 gammaMenu->insertItem( gammaLCD );
118 118
119 connect( gammaSlider, SIGNAL( valueChanged( int ) ), gammaLCD, SLOT( display( int ) ) ); 119 connect( gammaSlider, SIGNAL( valueChanged( int ) ), gammaLCD, SLOT( display( int ) ) );
120 120
121 vbox5 = new QVBox( this ); 121 vbox5 = new QVBox( this );
122 QVBox *vbox4 = new QVBox( vbox5 ); 122 QVBox *vbox4 = new QVBox( vbox5 );
123 QHBox *hbox6 = new QHBox( vbox4 ); 123 QHBox *hbox6 = new QHBox( vbox4 );
124 124
125 tabWidget = new QTabWidget( hbox6, "tabWidget" ); 125 tabWidget = new QTabWidget( hbox6, "tabWidget" );
126 126
127 QWidget *pTab; 127 QWidget *pTab;
128 pTab = new QWidget( tabWidget, "pTab" ); 128 pTab = new QWidget( tabWidget, "pTab" );
129 tabWidget->insertTab( pTab, "Playlist"); 129 tabWidget->insertTab( pTab, "Playlist");
130 130
131 QGridLayout *Playout = new QGridLayout( pTab ); 131 QGridLayout *Playout = new QGridLayout( pTab );
132 Playout->setSpacing( 2); 132 Playout->setSpacing( 2);
133 Playout->setMargin( 2); 133 Playout->setMargin( 2);
134 134
135 // Add the playlist area 135 // Add the playlist area
136 QVBox *vbox3 = new QVBox( pTab ); 136 QVBox *vbox3 = new QVBox( pTab );
137 d->playListFrame = vbox3; 137 d->playListFrame = vbox3;
138 138
139 QHBox *hbox2 = new QHBox( vbox3 ); 139 QHBox *hbox2 = new QHBox( vbox3 );
140 d->selectedFiles = new PlayListSelection( hbox2 ); 140 d->selectedFiles = new PlayListSelection( hbox2 );
141 141
142 vbox1 = new QVBox( hbox2 ); 142 vbox1 = new QVBox( hbox2 );
143 QPEApplication::setStylusOperation( d->selectedFiles->viewport(), QPEApplication::RightOnHold ); 143 QPEApplication::setStylusOperation( d->selectedFiles->viewport(), QPEApplication::RightOnHold );
144 QVBox *stretch1 = new QVBox( vbox1 ); // add stretch 144 QVBox *stretch1 = new QVBox( vbox1 ); // add stretch
145 145
146 Playout->addMultiCellWidget( vbox3, 0, 0, 0, 1 ); 146 Playout->addMultiCellWidget( vbox3, 0, 0, 0, 1 );
147 147
148 QWidget *aTab; 148 QWidget *aTab;
149 aTab = new QWidget( tabWidget, "aTab" ); 149 aTab = new QWidget( tabWidget, "aTab" );
150 150
151 QGridLayout *Alayout = new QGridLayout( aTab ); 151 QGridLayout *Alayout = new QGridLayout( aTab );
152 Alayout->setSpacing( 2 ); 152 Alayout->setSpacing( 2 );
153 Alayout->setMargin( 2 ); 153 Alayout->setMargin( 2 );
154 audioView = new QListView( aTab, "Audioview" ); 154 audioView = new QListView( aTab, "Audioview" );
155 audioView->addColumn( tr( "Title" ), 140 ); 155 audioView->addColumn( tr( "Title" ), 140 );
156 audioView->addColumn( tr( "Size" ), -1 ); 156 audioView->addColumn( tr( "Size" ), -1 );
157 audioView->addColumn( tr( "Media" ), -1 ); 157 audioView->addColumn( tr( "Media" ), -1 );
158 audioView->addColumn( tr( "Path" ), 0 );
158 audioView->setColumnAlignment( 1, Qt::AlignRight ); 159 audioView->setColumnAlignment( 1, Qt::AlignRight );
159 audioView->setColumnAlignment( 2, Qt::AlignRight ); 160 audioView->setColumnAlignment( 2, Qt::AlignRight );
160 audioView->setAllColumnsShowFocus( TRUE ); 161 audioView->setAllColumnsShowFocus( TRUE );
161 audioView->setSorting( 0, TRUE ); 162 audioView->setSorting( 0, TRUE );
162 audioView->setMultiSelection( TRUE ); 163 audioView->setMultiSelection( TRUE );
163 audioView->setSelectionMode( QListView::Extended ); 164 audioView->setSelectionMode( QListView::Extended );
164 Alayout->addMultiCellWidget( audioView, 0, 0, 0, 1 ); 165 Alayout->addMultiCellWidget( audioView, 0, 0, 0, 1 );
165 tabWidget->insertTab( aTab, tr( "Audio" ) ); 166 tabWidget->insertTab( aTab, tr( "Audio" ) );
166 167
167 QPEApplication::setStylusOperation( audioView->viewport(), QPEApplication::RightOnHold ); 168 QPEApplication::setStylusOperation( audioView->viewport(), QPEApplication::RightOnHold );
168 169
169 QWidget *vTab; 170 QWidget *vTab;
170 vTab = new QWidget( tabWidget, "vTab" ); 171 vTab = new QWidget( tabWidget, "vTab" );
171 172
172 QGridLayout *Vlayout = new QGridLayout( vTab ); 173 QGridLayout *Vlayout = new QGridLayout( vTab );
173 Vlayout->setSpacing( 2 ); 174 Vlayout->setSpacing( 2 );
174 Vlayout->setMargin( 2 ); 175 Vlayout->setMargin( 2 );
175 videoView = new QListView( vTab, "Videoview" ); 176 videoView = new QListView( vTab, "Videoview" );
176 videoView->addColumn( tr( "Title" ), 140); 177 videoView->addColumn( tr( "Title" ), 140);
177 videoView->addColumn( tr( "Size" ), -1 ); 178 videoView->addColumn( tr( "Size" ), -1 );
178 videoView->addColumn(tr( "Media" ), -1 ); 179 videoView->addColumn(tr( "Media" ), -1 );
180 videoView->addColumn(tr( "Path" ), 0 );
179 videoView->setColumnAlignment( 1, Qt::AlignRight ); 181 videoView->setColumnAlignment( 1, Qt::AlignRight );
180 videoView->setColumnAlignment( 2, Qt::AlignRight ); 182 videoView->setColumnAlignment( 2, Qt::AlignRight );
181 videoView->setAllColumnsShowFocus( TRUE ); 183 videoView->setAllColumnsShowFocus( TRUE );
182 videoView->setSorting( 0, TRUE ); 184 videoView->setSorting( 0, TRUE );
183 videoView->setMultiSelection( TRUE ); 185 videoView->setMultiSelection( TRUE );
184 videoView->setSelectionMode( QListView::Extended ); 186 videoView->setSelectionMode( QListView::Extended );
185 Vlayout->addMultiCellWidget( videoView, 0, 0, 0, 1 ); 187 Vlayout->addMultiCellWidget( videoView, 0, 0, 0, 1 );
186 188
187 QPEApplication::setStylusOperation( videoView->viewport(), QPEApplication::RightOnHold ); 189 QPEApplication::setStylusOperation( videoView->viewport(), QPEApplication::RightOnHold );
188 190
189 tabWidget->insertTab( vTab, tr( "Video" ) ); 191 tabWidget->insertTab( vTab, tr( "Video" ) );
190 192
191 //playlists list 193 //playlists list
192 QWidget *LTab; 194 QWidget *LTab;
193 LTab = new QWidget( tabWidget, "LTab" ); 195 LTab = new QWidget( tabWidget, "LTab" );
194 QGridLayout *Llayout = new QGridLayout( LTab ); 196 QGridLayout *Llayout = new QGridLayout( LTab );
195 Llayout->setSpacing( 2 ); 197 Llayout->setSpacing( 2 );
196 Llayout->setMargin( 2 ); 198 Llayout->setMargin( 2 );
197 199
198 playLists = new FileSelector( "playlist/plain", LTab, "fileselector" , FALSE, FALSE ); //buggy 200 playLists = new FileSelector( "playlist/plain", LTab, "fileselector" , FALSE, FALSE ); //buggy
199 Llayout->addMultiCellWidget( playLists, 0, 0, 0, 1 ); 201 Llayout->addMultiCellWidget( playLists, 0, 0, 0, 1 );
200 202
201 tabWidget->insertTab( LTab, tr( "Lists" ) ); 203 tabWidget->insertTab( LTab, tr( "Lists" ) );
202 204
203 setCentralWidget( vbox5 ); 205 setCentralWidget( vbox5 );
204} 206}
205 207
206 208
207 209
208PlayListWidgetGui::~PlayListWidgetGui() { 210PlayListWidgetGui::~PlayListWidgetGui() {
209} 211}
210 212
211void PlayListWidgetGui::setView( char view ) { 213void PlayListWidgetGui::setView( char view ) {
212 if ( view == 'l' ) 214 if ( view == 'l' )
213 showMaximized(); 215 showMaximized();
214 else 216 else
215 hide(); 217 hide();
216} 218}
217 219
218 220
219void PlayListWidgetGui::setActiveWindow() { 221void PlayListWidgetGui::setActiveWindow() {
220 // qDebug("SETTING active window"); 222 // qDebug("SETTING active window");
221 // When we get raised we need to ensure that it switches views 223 // When we get raised we need to ensure that it switches views
222 char origView = mediaPlayerState->view(); 224 char origView = mediaPlayerState->view();
223 mediaPlayerState->setView( 'l' ); // invalidate 225 mediaPlayerState->setView( 'l' ); // invalidate
224 mediaPlayerState->setView( origView ); // now switch back 226 mediaPlayerState->setView( origView ); // now switch back
225} 227}
226 228