-rw-r--r-- | noncore/multimedia/opieplayer2/playlistwidget.cpp | 1913 |
1 files changed, 956 insertions, 957 deletions
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.cpp b/noncore/multimedia/opieplayer2/playlistwidget.cpp index 0c3ea74..874800a 100644 --- a/noncore/multimedia/opieplayer2/playlistwidget.cpp +++ b/noncore/multimedia/opieplayer2/playlistwidget.cpp @@ -39,1249 +39,1248 @@ #include "inputDialog.h" #include <stdlib.h> #include "audiowidget.h" #include "videowidget.h" #define BUTTONS_ON_TOOLBAR #define SIDE_BUTTONS #define CAN_SAVE_LOAD_PLAYLISTS extern MediaPlayerState *mediaPlayerState; class PlayListWidgetPrivate { public: - QToolButton *tbPlay, *tbFull, *tbLoop, *tbScale, *tbShuffle, *tbAddToList, *tbRemoveFromList, *tbMoveUp, *tbMoveDown, *tbRemove; - QFrame *playListFrame; - FileSelector *files; - PlayListSelection *selectedFiles; - bool setDocumentUsed; - DocLnk *current; + QToolButton *tbPlay, *tbFull, *tbLoop, *tbScale, *tbShuffle, *tbAddToList, *tbRemoveFromList, *tbMoveUp, *tbMoveDown, *tbRemove; + QFrame *playListFrame; + FileSelector *files; + PlayListSelection *selectedFiles; + bool setDocumentUsed; + DocLnk *current; }; class ToolButton : public QToolButton { public: - ToolButton( QWidget *parent, const char *name, const QString& icon, QObject *handler, const QString& slot, bool t = FALSE ) - : QToolButton( parent, name ) { - setTextLabel( name ); - setPixmap( Resource::loadPixmap( icon ) ); - setAutoRaise( TRUE ); - setFocusPolicy( QWidget::NoFocus ); - setToggleButton( t ); - connect( this, t ? SIGNAL( toggled(bool) ) : SIGNAL( clicked() ), handler, slot ); - QPEMenuToolFocusManager::manager()->addWidget( this ); - } + ToolButton( QWidget *parent, const char *name, const QString& icon, QObject *handler, const QString& slot, bool t = FALSE ) + : QToolButton( parent, name ) { + setTextLabel( name ); + setPixmap( Resource::loadPixmap( icon ) ); + setAutoRaise( TRUE ); + setFocusPolicy( QWidget::NoFocus ); + setToggleButton( t ); + connect( this, t ? SIGNAL( toggled(bool) ) : SIGNAL( clicked() ), handler, slot ); + QPEMenuToolFocusManager::manager()->addWidget( this ); + } }; class MenuItem : public QAction { public: - MenuItem( QWidget *parent, const QString& text, QObject *handler, const QString& slot ) - : QAction( text, QString::null, 0, 0 ) { - connect( this, SIGNAL( activated() ), handler, slot ); - addTo( parent ); - } + MenuItem( QWidget *parent, const QString& text, QObject *handler, const QString& slot ) + : QAction( text, QString::null, 0, 0 ) { + connect( this, SIGNAL( activated() ), handler, slot ); + addTo( parent ); + } }; PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl ) - : QMainWindow( parent, name, fl ) { + : QMainWindow( parent, name, fl ) { - d = new PlayListWidgetPrivate; - d->setDocumentUsed = FALSE; - d->current = NULL; - fromSetDocument = FALSE; - insanityBool=FALSE; - audioScan = FALSE; - videoScan = FALSE; + d = new PlayListWidgetPrivate; + d->setDocumentUsed = FALSE; + d->current = NULL; + fromSetDocument = FALSE; + insanityBool=FALSE; + audioScan = FALSE; + videoScan = FALSE; - setBackgroundMode( PaletteButton ); + setBackgroundMode( PaletteButton ); - setCaption( tr("OpiePlayer") ); - setIcon( Resource::loadPixmap( "opieplayer2/MPEGPlayer" ) ); + setCaption( tr("OpiePlayer") ); + setIcon( Resource::loadPixmap( "opieplayer2/MPEGPlayer" ) ); - setToolBarsMovable( FALSE ); + setToolBarsMovable( FALSE ); - // Create Toolbar - QPEToolBar *toolbar = new QPEToolBar( this ); - toolbar->setHorizontalStretchable( TRUE ); + // Create Toolbar + QPEToolBar *toolbar = new QPEToolBar( this ); + toolbar->setHorizontalStretchable( TRUE ); - // Create Menubar - QPEMenuBar *menu = new QPEMenuBar( toolbar ); - menu->setMargin( 0 ); + // Create Menubar + QPEMenuBar *menu = new QPEMenuBar( toolbar ); + menu->setMargin( 0 ); - QPEToolBar *bar = new QPEToolBar( this ); - bar->setLabel( tr( "Play Operations" ) ); + QPEToolBar *bar = new QPEToolBar( this ); + bar->setLabel( tr( "Play Operations" ) ); - tbDeletePlaylist = new QPushButton( Resource::loadIconSet("trash"),"",bar,"close"); - tbDeletePlaylist->setFlat(TRUE); - tbDeletePlaylist->setFixedSize(20,20); + tbDeletePlaylist = new QPushButton( Resource::loadIconSet("trash"),"",bar,"close"); + tbDeletePlaylist->setFlat(TRUE); + tbDeletePlaylist->setFixedSize(20,20); - d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ), "opieplayer2/add_to_playlist", - this , SLOT(addSelected()) ); - d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ), "opieplayer2/remove_from_playlist", - this , SLOT(removeSelected()) ); - d->tbPlay = new ToolButton( bar, tr( "Play" ), "opieplayer2/play", - this , SLOT( btnPlay(bool) ), TRUE ); - d->tbShuffle = new ToolButton( bar, tr( "Randomize" ),"opieplayer2/shuffle", - mediaPlayerState, SLOT(setShuffled(bool)), TRUE ); - d->tbLoop = new ToolButton( bar, tr( "Loop" ),"opieplayer2/loop", - mediaPlayerState, SLOT(setLooping(bool)), TRUE ); - tbDeletePlaylist->hide(); + d->tbAddToList = new ToolButton( bar, tr( "Add to Playlist" ), "opieplayer2/add_to_playlist", + this , SLOT(addSelected()) ); + d->tbRemoveFromList = new ToolButton( bar, tr( "Remove from Playlist" ), "opieplayer2/remove_from_playlist", + this , SLOT(removeSelected()) ); + d->tbPlay = new ToolButton( bar, tr( "Play" ), "opieplayer2/play", + this , SLOT( btnPlay(bool) ), TRUE ); + d->tbShuffle = new ToolButton( bar, tr( "Randomize" ),"opieplayer2/shuffle", + mediaPlayerState, SLOT(setShuffled(bool)), TRUE ); + d->tbLoop = new ToolButton( bar, tr( "Loop" ),"opieplayer2/loop", + mediaPlayerState, SLOT(setLooping(bool)), TRUE ); + tbDeletePlaylist->hide(); - QPopupMenu *pmPlayList = new QPopupMenu( this ); - menu->insertItem( tr( "File" ), pmPlayList ); - new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) ); - new MenuItem( pmPlayList, tr( "Add all audio files" ), this, SLOT( addAllMusicToList() ) ); - new MenuItem( pmPlayList, tr( "Add all video files" ), this, SLOT( addAllVideoToList() ) ); - new MenuItem( pmPlayList, tr( "Add all files" ), this, SLOT( addAllToList() ) ); - pmPlayList->insertSeparator(-1); - new MenuItem( pmPlayList, tr( "Save PlayList" ), this, SLOT( saveList() ) ); - new MenuItem( pmPlayList, tr( "Export playlist to m3u" ), this, SLOT(writem3u() ) ); - pmPlayList->insertSeparator(-1); - new MenuItem( pmPlayList, tr( "Open File or URL" ), this,SLOT( openFile() ) ); - pmPlayList->insertSeparator(-1); - new MenuItem( pmPlayList, tr( "Rescan for Audio Files" ), this,SLOT( scanForAudio() ) ); - new MenuItem( pmPlayList, tr( "Rescan for Video Files" ), this,SLOT( scanForVideo() ) ); + QPopupMenu *pmPlayList = new QPopupMenu( this ); + menu->insertItem( tr( "File" ), pmPlayList ); + new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) ); + new MenuItem( pmPlayList, tr( "Add all audio files" ), this, SLOT( addAllMusicToList() ) ); + new MenuItem( pmPlayList, tr( "Add all video files" ), this, SLOT( addAllVideoToList() ) ); + new MenuItem( pmPlayList, tr( "Add all files" ), this, SLOT( addAllToList() ) ); + pmPlayList->insertSeparator(-1); + new MenuItem( pmPlayList, tr( "Save PlayList" ), this, SLOT( saveList() ) ); + new MenuItem( pmPlayList, tr( "Export playlist to m3u" ), this, SLOT(writem3u() ) ); + pmPlayList->insertSeparator(-1); + new MenuItem( pmPlayList, tr( "Open File or URL" ), this,SLOT( openFile() ) ); + pmPlayList->insertSeparator(-1); + new MenuItem( pmPlayList, tr( "Rescan for Audio Files" ), this,SLOT( scanForAudio() ) ); + new MenuItem( pmPlayList, tr( "Rescan for Video Files" ), this,SLOT( scanForVideo() ) ); - pmView = new QPopupMenu( this ); - menu->insertItem( tr( "View" ), pmView ); - pmView->isCheckable(); + pmView = new QPopupMenu( this ); + menu->insertItem( tr( "View" ), pmView ); + pmView->isCheckable(); - pmView->insertItem( Resource::loadPixmap("fullscreen") , tr( "Full Screen"), mediaPlayerState, SLOT( toggleFullscreen() ) ); + pmView->insertItem( Resource::loadPixmap("fullscreen") , tr( "Full Screen"), mediaPlayerState, SLOT( toggleFullscreen() ) ); - Config cfg( "OpiePlayer" ); - bool b= cfg.readBoolEntry("FullScreen", 0); - mediaPlayerState->setFullscreen( b ); - pmView->setItemChecked( -16, b ); + Config cfg( "OpiePlayer" ); + bool b= cfg.readBoolEntry("FullScreen", 0); + mediaPlayerState->setFullscreen( b ); + pmView->setItemChecked( -16, b ); - // pmView->insertItem( Resource::loadPixmap("opieplayer/scale") , tr( "Scale"), mediaPlayerState, SLOT(toggleScaled() ) ); + // pmView->insertItem( Resource::loadPixmap("opieplayer/scale") , tr( "Scale"), mediaPlayerState, SLOT(toggleScaled() ) ); - pmView->insertSeparator(-1); + pmView->insertSeparator(-1); - skinsMenu = new QPopupMenu( this ); - pmView->insertItem( tr( "Skins" ), skinsMenu ); - skinsMenu->isCheckable(); - populateSkinsMenu(); + skinsMenu = new QPopupMenu( this ); + pmView->insertItem( tr( "Skins" ), skinsMenu ); + skinsMenu->isCheckable(); + populateSkinsMenu(); - QVBox *vbox5 = new QVBox( this ); vbox5->setBackgroundMode( PaletteButton ); - QVBox *vbox4 = new QVBox( vbox5 ); vbox4->setBackgroundMode( PaletteButton ); + QVBox *vbox5 = new QVBox( this ); vbox5->setBackgroundMode( PaletteButton ); + QVBox *vbox4 = new QVBox( vbox5 ); vbox4->setBackgroundMode( PaletteButton ); - QHBox *hbox6 = new QHBox( vbox4 ); hbox6->setBackgroundMode( PaletteButton ); + QHBox *hbox6 = new QHBox( vbox4 ); hbox6->setBackgroundMode( PaletteButton ); - tabWidget = new QTabWidget( hbox6, "tabWidget" ); -// tabWidget->setTabShape(QTabWidget::Triangular); + tabWidget = new QTabWidget( hbox6, "tabWidget" ); + // tabWidget->setTabShape(QTabWidget::Triangular); - QWidget *pTab; - pTab = new QWidget( tabWidget, "pTab" ); - tabWidget->insertTab( pTab,"Playlist"); + QWidget *pTab; + pTab = new QWidget( tabWidget, "pTab" ); + tabWidget->insertTab( pTab,"Playlist"); - QGridLayout *Playout = new QGridLayout( pTab ); - Playout->setSpacing( 2); - Playout->setMargin( 2); + QGridLayout *Playout = new QGridLayout( pTab ); + Playout->setSpacing( 2); + Playout->setMargin( 2); - // Add the playlist area + // Add the playlist area - QVBox *vbox3 = new QVBox( pTab ); vbox3->setBackgroundMode( PaletteButton ); - d->playListFrame = vbox3; + QVBox *vbox3 = new QVBox( pTab ); vbox3->setBackgroundMode( PaletteButton ); + d->playListFrame = vbox3; - QHBox *hbox2 = new QHBox( vbox3 ); hbox2->setBackgroundMode( PaletteButton ); + QHBox *hbox2 = new QHBox( vbox3 ); hbox2->setBackgroundMode( PaletteButton ); - d->selectedFiles = new PlayListSelection( hbox2); - QVBox *vbox1 = new QVBox( hbox2 ); vbox1->setBackgroundMode( PaletteButton ); + d->selectedFiles = new PlayListSelection( hbox2); + QVBox *vbox1 = new QVBox( hbox2 ); vbox1->setBackgroundMode( PaletteButton ); - QPEApplication::setStylusOperation( d->selectedFiles->viewport(),QPEApplication::RightOnHold); + QPEApplication::setStylusOperation( d->selectedFiles->viewport(),QPEApplication::RightOnHold); - QVBox *stretch1 = new QVBox( vbox1 ); stretch1->setBackgroundMode( PaletteButton ); // add stretch - new ToolButton( vbox1, tr( "Move Up" ), "opieplayer2/up", d->selectedFiles, SLOT(moveSelectedUp()) ); - new ToolButton( vbox1, tr( "Remove" ), "opieplayer2/cut", d->selectedFiles, SLOT(removeSelected()) ); - new ToolButton( vbox1, tr( "Move Down" ), "opieplayer2/down", d->selectedFiles, SLOT(moveSelectedDown()) ); - QVBox *stretch2 = new QVBox( vbox1 ); stretch2->setBackgroundMode( PaletteButton ); // add stretch + QVBox *stretch1 = new QVBox( vbox1 ); stretch1->setBackgroundMode( PaletteButton ); // add stretch + new ToolButton( vbox1, tr( "Move Up" ), "opieplayer2/up", d->selectedFiles, SLOT(moveSelectedUp()) ); + new ToolButton( vbox1, tr( "Remove" ), "opieplayer2/cut", d->selectedFiles, SLOT(removeSelected()) ); + new ToolButton( vbox1, tr( "Move Down" ), "opieplayer2/down", d->selectedFiles, SLOT(moveSelectedDown()) ); + QVBox *stretch2 = new QVBox( vbox1 ); stretch2->setBackgroundMode( PaletteButton ); // add stretch - Playout->addMultiCellWidget( vbox3, 0, 0, 0, 1 ); - - QWidget *aTab; - aTab = new QWidget( tabWidget, "aTab" ); - - QGridLayout *Alayout = new QGridLayout( aTab ); - Alayout->setSpacing( 2); - Alayout->setMargin( 2); - - audioView = new QListView( aTab, "Audioview" ); - audioView->addColumn( tr("Title"),140); - audioView->addColumn(tr("Size"), -1); - audioView->addColumn(tr("Media"),-1); - audioView->setColumnAlignment(1, Qt::AlignRight); - audioView->setColumnAlignment(2, Qt::AlignRight); - audioView->setAllColumnsShowFocus(TRUE); - - audioView->setMultiSelection( TRUE ); - audioView->setSelectionMode( QListView::Extended); - - Alayout->addMultiCellWidget( audioView, 0, 0, 0, 1 ); - - tabWidget->insertTab(aTab,tr("Audio")); - - QPEApplication::setStylusOperation( audioView->viewport(),QPEApplication::RightOnHold); - - QWidget *vTab; - vTab = new QWidget( tabWidget, "vTab" ); - - QGridLayout *Vlayout = new QGridLayout( vTab ); - Vlayout->setSpacing( 2); - Vlayout->setMargin( 2); - - videoView = new QListView( vTab, "Videoview" ); - - videoView->addColumn(tr("Title"),140); - videoView->addColumn(tr("Size"),-1); - videoView->addColumn(tr("Media"),-1); - videoView->setColumnAlignment(1, Qt::AlignRight); - videoView->setColumnAlignment(2, Qt::AlignRight); - videoView->setAllColumnsShowFocus(TRUE); - videoView->setMultiSelection( TRUE ); - videoView->setSelectionMode( QListView::Extended); - -// d->playListFrame->setMaximumSize(235,240); -// audioView->setMaximumSize(233,240); -// videoView->setMaximumSize(233,240); - - Vlayout->addMultiCellWidget( videoView, 0, 0, 0, 1 ); - - QPEApplication::setStylusOperation( videoView->viewport(),QPEApplication::RightOnHold); - - tabWidget->insertTab( vTab,tr("Video")); - - //playlists list - QWidget *LTab; - LTab = new QWidget( tabWidget, "LTab" ); - QGridLayout *Llayout = new QGridLayout( LTab ); - Llayout->setSpacing( 2); - Llayout->setMargin( 2); - - playLists = new FileSelector( "playlist/plain", LTab, "fileselector" , FALSE, FALSE); //buggy - // playLists->setMinimumSize(233,260); - Llayout->addMultiCellWidget( playLists, 0, 0, 0, 1 ); - - tabWidget->insertTab(LTab,tr("Lists")); - - connect(tbDeletePlaylist,(SIGNAL(released())),SLOT( deletePlaylist())); - - connect( pmView, SIGNAL( activated(int)), this, SLOT( pmViewActivated(int) ) ); - - connect( skinsMenu, SIGNAL( activated(int)), this, SLOT(skinsMenuActivated(int) ) ); - -// connect( scaleButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleScaled() ) ); - - connect( d->selectedFiles, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), - this,SLOT( playlistViewPressed(int, QListViewItem *, const QPoint&, int)) ); - connect( audioView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), - this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) ); - connect( audioView, SIGNAL( returnPressed( QListViewItem *)), - this,SLOT( playIt( QListViewItem *)) ); - connect( audioView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) ); - connect( videoView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), - this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) ); - connect( videoView, SIGNAL( returnPressed( QListViewItem *)), - this,SLOT( playIt( QListViewItem *)) ); - connect( videoView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) ); - connect( playLists, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( loadList( const DocLnk & ) ) ); - connect( tabWidget, SIGNAL (currentChanged(QWidget*)),this,SLOT(tabChanged(QWidget*))); - connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), d->tbPlay, SLOT( setOn( bool ) ) ); - connect( mediaPlayerState, SIGNAL( loopingToggled( bool ) ), d->tbLoop, SLOT( setOn( bool ) ) ); - connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), d->tbShuffle, SLOT( setOn( bool ) ) ); - connect( mediaPlayerState, SIGNAL( playlistToggled( bool ) ), this, SLOT( setPlaylist( bool ) ) ); - connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) ); - - setCentralWidget( vbox5 ); - - readConfig( cfg ); - QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); - loadList(DocLnk( currentPlaylist)); - setCaption(tr("OpiePlayer: ")+ currentPlaylist ); - - initializeStates(); + Playout->addMultiCellWidget( vbox3, 0, 0, 0, 1 ); + + QWidget *aTab; + aTab = new QWidget( tabWidget, "aTab" ); + + QGridLayout *Alayout = new QGridLayout( aTab ); + Alayout->setSpacing( 2); + Alayout->setMargin( 2); + + audioView = new QListView( aTab, "Audioview" ); + audioView->addColumn( tr("Title"),140); + audioView->addColumn(tr("Size"), -1); + audioView->addColumn(tr("Media"),-1); + audioView->setColumnAlignment(1, Qt::AlignRight); + audioView->setColumnAlignment(2, Qt::AlignRight); + audioView->setAllColumnsShowFocus(TRUE); + audioView->setSorting(0,TRUE); + + audioView->setMultiSelection( TRUE ); + audioView->setSelectionMode( QListView::Extended); + + Alayout->addMultiCellWidget( audioView, 0, 0, 0, 1 ); + + tabWidget->insertTab(aTab,tr("Audio")); + + QPEApplication::setStylusOperation( audioView->viewport(),QPEApplication::RightOnHold); + + QWidget *vTab; + vTab = new QWidget( tabWidget, "vTab" ); + + QGridLayout *Vlayout = new QGridLayout( vTab ); + Vlayout->setSpacing( 2); + Vlayout->setMargin( 2); + + videoView = new QListView( vTab, "Videoview" ); + + videoView->addColumn(tr("Title"),140); + videoView->addColumn(tr("Size"),-1); + videoView->addColumn(tr("Media"),-1); + videoView->setColumnAlignment(1, Qt::AlignRight); + videoView->setColumnAlignment(2, Qt::AlignRight); + videoView->setAllColumnsShowFocus(TRUE); + videoView->setSorting(0,TRUE); + + videoView->setMultiSelection( TRUE ); + videoView->setSelectionMode( QListView::Extended); + + Vlayout->addMultiCellWidget( videoView, 0, 0, 0, 1 ); + + QPEApplication::setStylusOperation( videoView->viewport(),QPEApplication::RightOnHold); + + tabWidget->insertTab( vTab,tr("Video")); + + //playlists list + QWidget *LTab; + LTab = new QWidget( tabWidget, "LTab" ); + QGridLayout *Llayout = new QGridLayout( LTab ); + Llayout->setSpacing( 2); + Llayout->setMargin( 2); + + playLists = new FileSelector( "playlist/plain", LTab, "fileselector" , FALSE, FALSE); //buggy + Llayout->addMultiCellWidget( playLists, 0, 0, 0, 1 ); + + tabWidget->insertTab(LTab,tr("Lists")); + + connect(tbDeletePlaylist,(SIGNAL(released())),SLOT( deletePlaylist())); + + connect( pmView, SIGNAL( activated(int)), this, SLOT( pmViewActivated(int) ) ); + + connect( skinsMenu, SIGNAL( activated(int)), this, SLOT(skinsMenuActivated(int) ) ); + + // connect( scaleButton, SIGNAL(activated()), mediaPlayerState, SLOT(toggleScaled() ) ); + + connect( d->selectedFiles, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), + this,SLOT( playlistViewPressed(int, QListViewItem *, const QPoint&, int)) ); + connect( audioView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), + this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) ); + connect( audioView, SIGNAL( returnPressed( QListViewItem *)), + this,SLOT( playIt( QListViewItem *)) ); + connect( audioView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) ); + connect( videoView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), + this,SLOT( viewPressed(int, QListViewItem *, const QPoint&, int)) ); + connect( videoView, SIGNAL( returnPressed( QListViewItem *)), + this,SLOT( playIt( QListViewItem *)) ); + connect( videoView, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( addToSelection( QListViewItem *) ) ); + connect( playLists, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( loadList( const DocLnk & ) ) ); + connect( tabWidget, SIGNAL (currentChanged(QWidget*)),this,SLOT(tabChanged(QWidget*))); + connect( mediaPlayerState, SIGNAL( playingToggled( bool ) ), d->tbPlay, SLOT( setOn( bool ) ) ); + connect( mediaPlayerState, SIGNAL( loopingToggled( bool ) ), d->tbLoop, SLOT( setOn( bool ) ) ); + connect( mediaPlayerState, SIGNAL( shuffledToggled( bool ) ), d->tbShuffle, SLOT( setOn( bool ) ) ); + connect( mediaPlayerState, SIGNAL( playlistToggled( bool ) ), this, SLOT( setPlaylist( bool ) ) ); + connect( d->selectedFiles, SIGNAL( doubleClicked( QListViewItem *) ), this, SLOT( playIt( QListViewItem *) ) ); + + setCentralWidget( vbox5 ); + + readConfig( cfg ); + QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); + loadList(DocLnk( currentPlaylist)); + setCaption(tr("OpiePlayer: ")+ currentPlaylist ); + + initializeStates(); } PlayListWidget::~PlayListWidget() { - Config cfg( "OpiePlayer" ); - writeConfig( cfg ); + Config cfg( "OpiePlayer" ); + writeConfig( cfg ); - if ( d->current ) { - delete d->current; - } - delete d; + if ( d->current ) { + delete d->current; + } + delete d; } void PlayListWidget::initializeStates() { - d->tbPlay->setOn( mediaPlayerState->playing() ); - d->tbLoop->setOn( mediaPlayerState->looping() ); - d->tbShuffle->setOn( mediaPlayerState->shuffled() ); - setPlaylist( true); + d->tbPlay->setOn( mediaPlayerState->playing() ); + d->tbLoop->setOn( mediaPlayerState->looping() ); + d->tbShuffle->setOn( mediaPlayerState->shuffled() ); + setPlaylist( true); } void PlayListWidget::readConfig( Config& cfg ) { - cfg.setGroup("PlayList"); - QString currentString = cfg.readEntry("current", "" ); - int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); - for ( int i = 0; i < noOfFiles; i++ ) { - QString entryName; - entryName.sprintf( "File%i", i + 1 ); - QString linkFile = cfg.readEntry( entryName ); - if(QFileInfo( linkFile).exists() ) { - DocLnk lnk( linkFile ); - if ( QFileInfo( lnk.file()).exists() || linkFile.find("http",0,TRUE) != -1) { - d->selectedFiles->addToSelection( lnk ); - } - } + cfg.setGroup("PlayList"); + QString currentString = cfg.readEntry("current", "" ); + int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); + for ( int i = 0; i < noOfFiles; i++ ) { + QString entryName; + entryName.sprintf( "File%i", i + 1 ); + QString linkFile = cfg.readEntry( entryName ); + if(QFileInfo( linkFile).exists() ) { + DocLnk lnk( linkFile ); + if ( QFileInfo( lnk.file()).exists() || linkFile.find("http",0,TRUE) != -1) { + d->selectedFiles->addToSelection( lnk ); + } } -d->selectedFiles->setSelectedItem( currentString); + } + d->selectedFiles->setSelectedItem( currentString); } void PlayListWidget::writeConfig( Config& cfg ) const { - d->selectedFiles->writeCurrent( cfg); - cfg.setGroup("PlayList"); - int noOfFiles = 0; - d->selectedFiles->first(); - do { - const DocLnk *lnk = d->selectedFiles->current(); - if ( lnk ) { - QString entryName; - entryName.sprintf( "File%i", noOfFiles + 1 ); - cfg.writeEntry( entryName, lnk->linkFile() ); - // if this link does exist, add it so we have the file - // next time... - if ( !QFile::exists( lnk->linkFile() ) ) { - // the way writing lnks doesn't really check for out - // of disk space, but check it anyway. - if ( !lnk->writeLink() ) { - QMessageBox::critical( 0, tr("Out of space"), - tr( "There was a problem saving " - "the playlist.\n" - "Your playlist " - "may be missing some entries\n" - "the next time you start it." ) - ); - } - } - noOfFiles++; + d->selectedFiles->writeCurrent( cfg); + cfg.setGroup("PlayList"); + int noOfFiles = 0; + d->selectedFiles->first(); + do { + const DocLnk *lnk = d->selectedFiles->current(); + if ( lnk ) { + QString entryName; + entryName.sprintf( "File%i", noOfFiles + 1 ); + cfg.writeEntry( entryName, lnk->linkFile() ); + // if this link does exist, add it so we have the file + // next time... + if ( !QFile::exists( lnk->linkFile() ) ) { + // the way writing lnks doesn't really check for out + // of disk space, but check it anyway. + if ( !lnk->writeLink() ) { + QMessageBox::critical( 0, tr("Out of space"), + tr( "There was a problem saving " + "the playlist.\n" + "Your playlist " + "may be missing some entries\n" + "the next time you start it." ) + ); } + } + noOfFiles++; } - while ( d->selectedFiles->next() ); - cfg.writeEntry("NumberOfFiles", noOfFiles ); + } + while ( d->selectedFiles->next() ); + cfg.writeEntry("NumberOfFiles", noOfFiles ); } void PlayListWidget::addToSelection( const DocLnk& lnk ) { - d->setDocumentUsed = FALSE; - if ( mediaPlayerState->playlist() ) { - if(QFileInfo(lnk.file()).exists() || lnk.file().left(4) == "http" ) - d->selectedFiles->addToSelection( lnk ); - } - else - mediaPlayerState->setPlaying( TRUE ); + d->setDocumentUsed = FALSE; + if ( mediaPlayerState->playlist() ) { + if(QFileInfo(lnk.file()).exists() || lnk.file().left(4) == "http" ) + d->selectedFiles->addToSelection( lnk ); + } + else + mediaPlayerState->setPlaying( TRUE ); } void PlayListWidget::clearList() { - while ( first() ) { - d->selectedFiles->removeSelected(); - } + while ( first() ) { + d->selectedFiles->removeSelected(); + } } void PlayListWidget::addAllToList() { - DocLnkSet filesAll; - Global::findDocuments(&filesAll, "video/*;audio/*"); - QListIterator<DocLnk> Adit( filesAll.children() ); - for ( ; Adit.current(); ++Adit ) { - if(QFileInfo(Adit.current()->file()).exists()) { - d->selectedFiles->addToSelection( **Adit ); - } + DocLnkSet filesAll; + Global::findDocuments(&filesAll, "video/*;audio/*"); + QListIterator<DocLnk> Adit( filesAll.children() ); + for ( ; Adit.current(); ++Adit ) { + if(QFileInfo(Adit.current()->file()).exists()) { + d->selectedFiles->addToSelection( **Adit ); } + } } void PlayListWidget::addAllMusicToList() { - QListIterator<DocLnk> dit( files.children() ); - for ( ; dit.current(); ++dit ) { - if(QFileInfo(dit.current()->file()).exists()) { - d->selectedFiles->addToSelection( **dit ); - } + QListIterator<DocLnk> dit( files.children() ); + for ( ; dit.current(); ++dit ) { + if(QFileInfo(dit.current()->file()).exists()) { + d->selectedFiles->addToSelection( **dit ); } + } } void PlayListWidget::addAllVideoToList() { - QListIterator<DocLnk> dit( vFiles.children() ); - for ( ; dit.current(); ++dit ) - if(QFileInfo( dit.current()->file()).exists()) - d->selectedFiles->addToSelection( **dit ); + QListIterator<DocLnk> dit( vFiles.children() ); + for ( ; dit.current(); ++dit ) + if(QFileInfo( dit.current()->file()).exists()) + d->selectedFiles->addToSelection( **dit ); } void PlayListWidget::setDocument(const QString& fileref) { - qDebug(fileref); - fromSetDocument = TRUE; - if ( fileref.isNull() ) { - QMessageBox::critical( 0, tr( "Invalid File" ), tr( "There was a problem in getting the file." ) ); - return; - } + qDebug(fileref); + fromSetDocument = TRUE; + if ( fileref.isNull() ) { + QMessageBox::critical( 0, tr( "Invalid File" ), tr( "There was a problem in getting the file." ) ); + return; + } - if(fileref.find("m3u",0,TRUE) != -1) { //is m3u - readm3u( fileref); - } else if(fileref.find("pls",0,TRUE) != -1) { //is pls - readPls( fileref); - } else if(fileref.find("playlist",0,TRUE) != -1) {//is playlist - clearList(); - loadList(DocLnk(fileref)); - d->selectedFiles->first(); - } else { - clearList(); - addToSelection( DocLnk( fileref ) ); - d->setDocumentUsed = TRUE; - mediaPlayerState->setPlaying( FALSE ); - qApp->processEvents(); - mediaPlayerState->setPlaying( TRUE ); - qApp->processEvents(); - setCaption(tr("OpiePlayer")); - } + if(fileref.find("m3u",0,TRUE) != -1) { //is m3u + readm3u( fileref); + } else if(fileref.find("pls",0,TRUE) != -1) { //is pls + readPls( fileref); + } else if(fileref.find("playlist",0,TRUE) != -1) {//is playlist + clearList(); + loadList(DocLnk(fileref)); + d->selectedFiles->first(); + } else { + clearList(); + addToSelection( DocLnk( fileref ) ); + d->setDocumentUsed = TRUE; + mediaPlayerState->setPlaying( FALSE ); + qApp->processEvents(); + mediaPlayerState->setPlaying( TRUE ); + qApp->processEvents(); + setCaption(tr("OpiePlayer")); + } } void PlayListWidget::setActiveWindow() { - qDebug("SETTING active window"); - // When we get raised we need to ensure that it switches views - char origView = mediaPlayerState->view(); - mediaPlayerState->setView( 'l' ); // invalidate - mediaPlayerState->setView( origView ); // now switch back + qDebug("SETTING active window"); + // When we get raised we need to ensure that it switches views + char origView = mediaPlayerState->view(); + mediaPlayerState->setView( 'l' ); // invalidate + mediaPlayerState->setView( origView ); // now switch back } void PlayListWidget::useSelectedDocument() { - d->setDocumentUsed = FALSE; + d->setDocumentUsed = FALSE; } const DocLnk *PlayListWidget::current() { // this is fugly - switch (tabWidget->currentPageIndex()) { - case 0: //playlist - { - qDebug("playlist"); - if ( mediaPlayerState->playlist() ) { - return d->selectedFiles->current(); - } else if ( d->setDocumentUsed && d->current ) { - return d->current; - } else { - return d->files->selected(); - } + switch (tabWidget->currentPageIndex()) { + case 0: //playlist + { + qDebug("playlist"); + if ( mediaPlayerState->playlist() ) { + return d->selectedFiles->current(); + } else if ( d->setDocumentUsed && d->current ) { + return d->current; + } else { + return d->files->selected(); } - break; - case 1://audio - { - qDebug("audioView"); - QListIterator<DocLnk> dit( files.children() ); - for ( ; dit.current(); ++dit ) { - if( dit.current()->name() == audioView->currentItem()->text(0) && !insanityBool) { - qDebug("here"); - insanityBool=TRUE; - return dit; - } - } + } + break; + case 1://audio + { + qDebug("audioView"); + QListIterator<DocLnk> dit( files.children() ); + for ( ; dit.current(); ++dit ) { + if( dit.current()->name() == audioView->currentItem()->text(0) && !insanityBool) { + qDebug("here"); + insanityBool=TRUE; + return dit; + } } - break; - case 2: // video - { - qDebug("videoView"); - QListIterator<DocLnk> Vdit( vFiles.children() ); - for ( ; Vdit.current(); ++Vdit ) { - if( Vdit.current()->name() == videoView->currentItem()->text(0) && !insanityBool) { - insanityBool=TRUE; - return Vdit; - } - } + } + break; + case 2: // video + { + qDebug("videoView"); + QListIterator<DocLnk> Vdit( vFiles.children() ); + for ( ; Vdit.current(); ++Vdit ) { + if( Vdit.current()->name() == videoView->currentItem()->text(0) && !insanityBool) { + insanityBool=TRUE; + return Vdit; + } } - break; - }; - return 0; + } + break; + }; + return 0; } bool PlayListWidget::prev() { - if ( mediaPlayerState->playlist() ) { - if ( mediaPlayerState->shuffled() ) { - const DocLnk *cur = current(); - int j = 1 + (int)(97.0 * rand() / (RAND_MAX + 1.0)); - for ( int i = 0; i < j; i++ ) { - if ( !d->selectedFiles->next() ) - d->selectedFiles->first(); - } - if ( cur == current() ) - if ( !d->selectedFiles->next() ) - d->selectedFiles->first(); - return TRUE; + if ( mediaPlayerState->playlist() ) { + if ( mediaPlayerState->shuffled() ) { + const DocLnk *cur = current(); + int j = 1 + (int)(97.0 * rand() / (RAND_MAX + 1.0)); + for ( int i = 0; i < j; i++ ) { + if ( !d->selectedFiles->next() ) + d->selectedFiles->first(); + } + if ( cur == current() ) + if ( !d->selectedFiles->next() ) + d->selectedFiles->first(); + return TRUE; + } else { + if ( !d->selectedFiles->prev() ) { + if ( mediaPlayerState->looping() ) { + return d->selectedFiles->last(); } else { - if ( !d->selectedFiles->prev() ) { - if ( mediaPlayerState->looping() ) { - return d->selectedFiles->last(); - } else { - return FALSE; - } - } - return TRUE; + return FALSE; } - } else { - return mediaPlayerState->looping(); + } + return TRUE; } + } else { + return mediaPlayerState->looping(); + } } bool PlayListWidget::next() { - if ( mediaPlayerState->playlist() ) { - if ( mediaPlayerState->shuffled() ) { - return prev(); + if ( mediaPlayerState->playlist() ) { + if ( mediaPlayerState->shuffled() ) { + return prev(); + } else { + if ( !d->selectedFiles->next() ) { + if ( mediaPlayerState->looping() ) { + return d->selectedFiles->first(); } else { - if ( !d->selectedFiles->next() ) { - if ( mediaPlayerState->looping() ) { - return d->selectedFiles->first(); - } else { - return FALSE; - } - } - return TRUE; + return FALSE; } - } else { - return mediaPlayerState->looping(); + } + return TRUE; } + } else { + return mediaPlayerState->looping(); + } } bool PlayListWidget::first() { - if ( mediaPlayerState->playlist() ) - return d->selectedFiles->first(); - else - return mediaPlayerState->looping(); + if ( mediaPlayerState->playlist() ) + return d->selectedFiles->first(); + else + return mediaPlayerState->looping(); } bool PlayListWidget::last() { - if ( mediaPlayerState->playlist() ) - return d->selectedFiles->last(); - else - return mediaPlayerState->looping(); + if ( mediaPlayerState->playlist() ) + return d->selectedFiles->last(); + else + return mediaPlayerState->looping(); } void PlayListWidget::saveList() { - QString filename; - InputDialog *fileDlg; - fileDlg = new InputDialog(this,tr("Save Playlist"),TRUE, 0); - fileDlg->exec(); - if( fileDlg->result() == 1 ) { - if ( d->current ) - delete d->current; - filename = fileDlg->LineEdit1->text();//+".playlist"; - // qDebug("saving playlist "+filename+".playlist"); - Config cfg( filename +".playlist"); - writeConfig( cfg ); - - DocLnk lnk; - lnk.setFile(QDir::homeDirPath()+"/Settings/"+filename+".playlist.conf"); //sets File property - lnk.setType("playlist/plain");// hey is this a REGISTERED mime type?!?!? ;D - lnk.setIcon("opieplayer2/playlist2"); - lnk.setName( filename); //sets file name - // qDebug(filename); - if(!lnk.writeLink()) { - qDebug("Writing doclink did not work"); - } - } - Config config( "OpiePlayer" ); - config.writeEntry("CurrentPlaylist",filename); - setCaption(tr("OpiePlayer: ")+filename); - d->selectedFiles->first(); - if(fileDlg) { - delete fileDlg; + QString filename; + InputDialog *fileDlg; + fileDlg = new InputDialog(this,tr("Save Playlist"),TRUE, 0); + fileDlg->exec(); + if( fileDlg->result() == 1 ) { + if ( d->current ) + delete d->current; + filename = fileDlg->LineEdit1->text();//+".playlist"; + // qDebug("saving playlist "+filename+".playlist"); + Config cfg( filename +".playlist"); + writeConfig( cfg ); + + DocLnk lnk; + lnk.setFile(QDir::homeDirPath()+"/Settings/"+filename+".playlist.conf"); //sets File property + lnk.setType("playlist/plain");// hey is this a REGISTERED mime type?!?!? ;D + lnk.setIcon("opieplayer2/playlist2"); + lnk.setName( filename); //sets file name + // qDebug(filename); + if(!lnk.writeLink()) { + qDebug("Writing doclink did not work"); } + } + Config config( "OpiePlayer" ); + config.writeEntry("CurrentPlaylist",filename); + setCaption(tr("OpiePlayer: ")+filename); + d->selectedFiles->first(); + if(fileDlg) { + delete fileDlg; + } } void PlayListWidget::loadList( const DocLnk & lnk) { - QString name= lnk.name(); - // qDebug("currentList is "+name); - if( name.length()>1) { - setCaption("OpiePlayer: "+name); - // qDebug("load list "+ name+".playlist"); - clearList(); - Config cfg( name+".playlist"); - readConfig(cfg); - - tabWidget->setCurrentPage(0); - - Config config( "OpiePlayer" ); - config.writeEntry("CurrentPlaylist", name); - // d->selectedFiles->first(); - } + QString name= lnk.name(); + // qDebug("currentList is "+name); + if( name.length()>1) { + setCaption("OpiePlayer: "+name); + // qDebug("load list "+ name+".playlist"); + clearList(); + Config cfg( name+".playlist"); + readConfig(cfg); + + tabWidget->setCurrentPage(0); + + Config config( "OpiePlayer" ); + config.writeEntry("CurrentPlaylist", name); + // d->selectedFiles->first(); + } } void PlayListWidget::setPlaylist( bool shown ) { - if ( shown ) { - d->playListFrame->show(); - } else { - d->playListFrame->hide(); - } + if ( shown ) { + d->playListFrame->show(); + } else { + d->playListFrame->hide(); + } } void PlayListWidget::setView( char view ) { - if ( view == 'l' ) - showMaximized(); - else - hide(); + if ( view == 'l' ) + showMaximized(); + else + hide(); } void PlayListWidget::addSelected() { - Config cfg( "OpiePlayer" ); - cfg.setGroup("PlayList"); - QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); -// int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); + Config cfg( "OpiePlayer" ); + cfg.setGroup("PlayList"); + QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); + // int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); - switch (tabWidget->currentPageIndex()) { - case 0: //playlist - break; - case 1: { //audio - QListViewItemIterator it( audioView ); - // iterate through all items of the listview - for ( ; it.current(); ++it ) { - if ( it.current()->isSelected() ) { - QListIterator<DocLnk> dit( files.children() ); - for ( ; dit.current(); ++dit ) { - if( dit.current()->name() == it.current()->text(0) ) { - if(QFileInfo( dit.current()->file()).exists()) - d->selectedFiles->addToSelection( **dit ); - } - } - audioView->setSelected( it.current(),FALSE); - } + switch (tabWidget->currentPageIndex()) { + case 0: //playlist + break; + case 1: { //audio + QListViewItemIterator it( audioView ); + // iterate through all items of the listview + for ( ; it.current(); ++it ) { + if ( it.current()->isSelected() ) { + QListIterator<DocLnk> dit( files.children() ); + for ( ; dit.current(); ++dit ) { + if( dit.current()->name() == it.current()->text(0) ) { + if(QFileInfo( dit.current()->file()).exists()) + d->selectedFiles->addToSelection( **dit ); } - tabWidget->setCurrentPage(0); + } + audioView->setSelected( it.current(),FALSE); } - break; - case 2: { // video - QListViewItemIterator it( videoView ); - // iterate through all items of the listview - for ( ; it.current(); ++it ) { - if ( it.current()->isSelected() ) { - QListIterator<DocLnk> dit( vFiles.children() ); - for ( ; dit.current(); ++dit ) { - if( dit.current()->name() == it.current()->text(0) ) { - if(QFileInfo( dit.current()->file()).exists()) - d->selectedFiles->addToSelection( **dit ); - } - } - videoView->setSelected( it.current(),FALSE); - } + } + tabWidget->setCurrentPage(0); + } + break; + case 2: { // video + QListViewItemIterator it( videoView ); + // iterate through all items of the listview + for ( ; it.current(); ++it ) { + if ( it.current()->isSelected() ) { + QListIterator<DocLnk> dit( vFiles.children() ); + for ( ; dit.current(); ++dit ) { + if( dit.current()->name() == it.current()->text(0) ) { + if(QFileInfo( dit.current()->file()).exists()) + d->selectedFiles->addToSelection( **dit ); } - tabWidget->setCurrentPage(0); + } + videoView->setSelected( it.current(),FALSE); } - break; - }; + } + tabWidget->setCurrentPage(0); + } + break; + }; } void PlayListWidget::removeSelected() { - d->selectedFiles->removeSelected( ); + d->selectedFiles->removeSelected( ); } void PlayListWidget::playIt( QListViewItem *it) { - if(!it) return; - mediaPlayerState->setPlaying(FALSE); - mediaPlayerState->setPlaying(TRUE); - d->selectedFiles->unSelect(); + if(!it) return; + mediaPlayerState->setPlaying(FALSE); + mediaPlayerState->setPlaying(TRUE); + d->selectedFiles->unSelect(); } void PlayListWidget::addToSelection( QListViewItem *it) { - d->setDocumentUsed = FALSE; - - if(it) { - switch (tabWidget->currentPageIndex()) { - case 1: { - QListIterator<DocLnk> dit( files.children() ); - for ( ; dit.current(); ++dit ) { - if( dit.current()->name() == it->text(0)) { - if(QFileInfo( dit.current()->file()).exists()) - d->selectedFiles->addToSelection( **dit ); - } - } - } - break; - case 2: { - QListIterator<DocLnk> dit( vFiles.children() ); - for ( ; dit.current(); ++dit ) { - if( dit.current()->name() == it->text(0)) { - if(QFileInfo( dit.current()->file()).exists()) - d->selectedFiles->addToSelection( **dit ); - } - } - } - break; - case 0: - break; - }; - tabWidget->setCurrentPage(0); - } -} - -void PlayListWidget::tabChanged(QWidget *) { + d->setDocumentUsed = FALSE; - switch ( tabWidget->currentPageIndex()) { - case 0: - { - if( !tbDeletePlaylist->isHidden()) - tbDeletePlaylist->hide(); - d->tbRemoveFromList->setEnabled(TRUE); - d->tbAddToList->setEnabled(FALSE); - } - break; - case 1: - { - audioView->clear(); - populateAudioView(); - - if( !tbDeletePlaylist->isHidden()) - tbDeletePlaylist->hide(); - d->tbRemoveFromList->setEnabled(FALSE); - d->tbAddToList->setEnabled(TRUE); + if(it) { + switch (tabWidget->currentPageIndex()) { + case 1: { + QListIterator<DocLnk> dit( files.children() ); + for ( ; dit.current(); ++dit ) { + if( dit.current()->name() == it->text(0)) { + if(QFileInfo( dit.current()->file()).exists()) + d->selectedFiles->addToSelection( **dit ); + } } + } break; - case 2: - { - videoView->clear(); - populateVideoView(); - if( !tbDeletePlaylist->isHidden()) - tbDeletePlaylist->hide(); - d->tbRemoveFromList->setEnabled(FALSE); - d->tbAddToList->setEnabled(TRUE); + case 2: { + QListIterator<DocLnk> dit( vFiles.children() ); + for ( ; dit.current(); ++dit ) { + if( dit.current()->name() == it->text(0)) { + if(QFileInfo( dit.current()->file()).exists()) + d->selectedFiles->addToSelection( **dit ); + } } + } break; - case 3: - { - if( tbDeletePlaylist->isHidden()) - tbDeletePlaylist->show(); - playLists->reread(); - } + case 0: break; }; + tabWidget->setCurrentPage(0); + } +} + +void PlayListWidget::tabChanged(QWidget *) { + + switch ( tabWidget->currentPageIndex()) { + case 0: + { + if( !tbDeletePlaylist->isHidden()) + tbDeletePlaylist->hide(); + d->tbRemoveFromList->setEnabled(TRUE); + d->tbAddToList->setEnabled(FALSE); + } + break; + case 1: + { + audioView->clear(); + populateAudioView(); + + if( !tbDeletePlaylist->isHidden()) + tbDeletePlaylist->hide(); + d->tbRemoveFromList->setEnabled(FALSE); + d->tbAddToList->setEnabled(TRUE); + } + break; + case 2: + { + videoView->clear(); + populateVideoView(); + if( !tbDeletePlaylist->isHidden()) + tbDeletePlaylist->hide(); + d->tbRemoveFromList->setEnabled(FALSE); + d->tbAddToList->setEnabled(TRUE); + } + break; + case 3: + { + if( tbDeletePlaylist->isHidden()) + tbDeletePlaylist->show(); + playLists->reread(); + } + break; + }; } void PlayListWidget::btnPlay(bool b) { -// mediaPlayerState->setPlaying(b); - switch ( tabWidget->currentPageIndex()) { - case 0: - { - mediaPlayerState->setPlaying(b); - } - break; - case 1: + // mediaPlayerState->setPlaying(b); + switch ( tabWidget->currentPageIndex()) { + case 0: + { + mediaPlayerState->setPlaying(b); + } + break; + case 1: { - addToSelection( audioView->currentItem() ); - mediaPlayerState->setPlaying(b); - d->selectedFiles->removeSelected( ); - tabWidget->setCurrentPage(1); - d->selectedFiles->unSelect(); - insanityBool=FALSE; + addToSelection( audioView->currentItem() ); + mediaPlayerState->setPlaying(b); + d->selectedFiles->removeSelected( ); + tabWidget->setCurrentPage(1); + d->selectedFiles->unSelect(); + insanityBool=FALSE; }// audioView->clearSelection(); break; - case 2: + case 2: { - addToSelection( videoView->currentItem() ); - mediaPlayerState->setPlaying(b); - qApp->processEvents(); - d->selectedFiles->removeSelected( ); - tabWidget->setCurrentPage(2); - d->selectedFiles->unSelect(); - insanityBool=FALSE; + addToSelection( videoView->currentItem() ); + mediaPlayerState->setPlaying(b); + qApp->processEvents(); + d->selectedFiles->removeSelected( ); + tabWidget->setCurrentPage(2); + d->selectedFiles->unSelect(); + insanityBool=FALSE; }// videoView->clearSelection(); break; - }; + }; } void PlayListWidget::deletePlaylist() { - switch( QMessageBox::information( this, (tr("Remove Playlist?")), - (tr("You really want to delete\nthis playlist?")), - (tr("Yes")), (tr("No")), 0 )){ - case 0: // Yes clicked, - QFile().remove(playLists->selected()->file()); - QFile().remove(playLists->selected()->linkFile()); - playLists->reread(); - break; - case 1: // Cancel - break; - }; + switch( QMessageBox::information( this, (tr("Remove Playlist?")), + (tr("You really want to delete\nthis playlist?")), + (tr("Yes")), (tr("No")), 0 )){ + case 0: // Yes clicked, + QFile().remove(playLists->selected()->file()); + QFile().remove(playLists->selected()->linkFile()); + playLists->reread(); + break; + case 1: // Cancel + break; + }; } void PlayListWidget::viewPressed( int mouse, QListViewItem *, const QPoint& , int) { - switch (mouse) { - case 1: - break; - case 2:{ - QPopupMenu m; - m.insertItem( tr( "Play" ), this, SLOT( playSelected() )); - m.insertItem( tr( "Add to Playlist" ), this, SLOT( addSelected() )); - m.insertSeparator(); - m.insertItem( tr( "Properties" ), this, SLOT( listDelete() )); - m.exec( QCursor::pos() ); - } - break; - }; + switch (mouse) { + case 1: + break; + case 2:{ + QPopupMenu m; + m.insertItem( tr( "Play" ), this, SLOT( playSelected() )); + m.insertItem( tr( "Add to Playlist" ), this, SLOT( addSelected() )); + m.insertSeparator(); + m.insertItem( tr( "Properties" ), this, SLOT( listDelete() )); + m.exec( QCursor::pos() ); + } + break; + }; } void PlayListWidget::playSelected() { - btnPlay( TRUE); + btnPlay( TRUE); } void PlayListWidget::playlistViewPressed( int mouse, QListViewItem *, const QPoint& , int ) { - switch (mouse) { - case 1: - - break; - case 2: - { - QPopupMenu m; - m.insertItem( tr( "Play Selected" ), this, SLOT( playSelected() )); - m.insertItem( tr( "Remove" ), this, SLOT( removeSelected() )); - m.exec( QCursor::pos() ); - } - break; - }; + switch (mouse) { + case 1: + + break; + case 2: + { + QPopupMenu m; + m.insertItem( tr( "Play Selected" ), this, SLOT( playSelected() )); + m.insertItem( tr( "Remove" ), this, SLOT( removeSelected() )); + m.exec( QCursor::pos() ); + } + break; + }; } void PlayListWidget::listDelete() { - Config cfg( "OpiePlayer" ); - cfg.setGroup("PlayList"); - QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); - QString file; -// int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); - switch ( tabWidget->currentPageIndex()) { - case 0: - break; - case 1: - { - file = audioView->currentItem()->text(0); - QListIterator<DocLnk> Pdit( files.children() ); - for ( ; Pdit.current(); ++Pdit ) { - if( Pdit.current()->name() == file) { - LnkProperties prop( Pdit.current() ); - prop.showMaximized(); - prop.exec(); - } - } - populateAudioView(); + Config cfg( "OpiePlayer" ); + cfg.setGroup("PlayList"); + QString currentPlaylist = cfg.readEntry("CurrentPlaylist",""); + QString file; + // int noOfFiles = cfg.readNumEntry("NumberOfFiles", 0 ); + switch ( tabWidget->currentPageIndex()) { + case 0: + break; + case 1: + { + file = audioView->currentItem()->text(0); + QListIterator<DocLnk> Pdit( files.children() ); + for ( ; Pdit.current(); ++Pdit ) { + if( Pdit.current()->name() == file) { + LnkProperties prop( Pdit.current() ); + prop.showMaximized(); + prop.exec(); + } } - break; - case 2: - { + populateAudioView(); + } + break; + case 2: + { - } - break; - }; + } + break; + }; } void PlayListWidget::scanForAudio() { - qDebug("scan for audio"); - files.detachChildren(); - QListIterator<DocLnk> sdit( files.children() ); - for ( ; sdit.current(); ++sdit ) { - delete sdit.current(); - } - Global::findDocuments(&files, "audio/*"); - audioScan = TRUE; + qDebug("scan for audio"); + files.detachChildren(); + QListIterator<DocLnk> sdit( files.children() ); + for ( ; sdit.current(); ++sdit ) { + delete sdit.current(); + } + Global::findDocuments(&files, "audio/*"); + audioScan = TRUE; } + void PlayListWidget::scanForVideo() { - qDebug("scan for video"); - vFiles.detachChildren(); - QListIterator<DocLnk> sdit( vFiles.children() ); - for ( ; sdit.current(); ++sdit ) { - delete sdit.current(); - } - Global::findDocuments(&vFiles, "video/*"); - videoScan = TRUE; + qDebug("scan for video"); + vFiles.detachChildren(); + QListIterator<DocLnk> sdit( vFiles.children() ); + for ( ; sdit.current(); ++sdit ) { + delete sdit.current(); + } + Global::findDocuments(&vFiles, "video/*"); + videoScan = TRUE; } void PlayListWidget::populateAudioView() { - audioView->clear(); - StorageInfo storageInfo; - const QList<FileSystem> &fs = storageInfo.fileSystems(); - if(!audioScan) scanForAudio(); + audioView->clear(); + StorageInfo storageInfo; + const QList<FileSystem> &fs = storageInfo.fileSystems(); + if(!audioScan) scanForAudio(); - QListIterator<DocLnk> dit( files.children() ); - QListIterator<FileSystem> it ( fs ); + QListIterator<DocLnk> dit( files.children() ); + QListIterator<FileSystem> it ( fs ); - QString storage; - for ( ; dit.current(); ++dit ) { - for( ; it.current(); ++it ){ - const QString name = (*it)->name(); - const QString path = (*it)->path(); - if(dit.current()->file().find(path) != -1 ) storage=name; - } + QString storage; + for ( ; dit.current(); ++dit ) { + for( ; it.current(); ++it ){ + const QString name = (*it)->name(); + const QString path = (*it)->path(); + if(dit.current()->file().find(path) != -1 ) storage=name; + } - QListViewItem * newItem; - if ( QFile( dit.current()->file()).exists() ) { - // qDebug(dit.current()->name()); - newItem= /*(void)*/ new QListViewItem( audioView, dit.current()->name(), - QString::number( QFile( dit.current()->file()).size() ), storage); - newItem->setPixmap(0, Resource::loadPixmap( "opieplayer2/musicfile" )); - } + QListViewItem * newItem; + if ( QFile( dit.current()->file()).exists() ) { + // qDebug(dit.current()->name()); + newItem= /*(void)*/ new QListViewItem( audioView, dit.current()->name(), + QString::number( QFile( dit.current()->file()).size() ), storage); + newItem->setPixmap(0, Resource::loadPixmap( "opieplayer2/musicfile" )); } + } } void PlayListWidget::populateVideoView() { - videoView->clear(); - StorageInfo storageInfo; - const QList<FileSystem> &fs = storageInfo.fileSystems(); - - if(!videoScan ) scanForVideo(); - - QListIterator<DocLnk> Vdit( vFiles.children() ); - QListIterator<FileSystem> it ( fs ); - videoView->clear(); - QString storage; - for ( ; Vdit.current(); ++Vdit ) { - for( ; it.current(); ++it ){ - const QString name = (*it)->name(); - const QString path = (*it)->path(); - if( Vdit.current()->file().find(path) != -1 ) storage=name; - } + videoView->clear(); + StorageInfo storageInfo; + const QList<FileSystem> &fs = storageInfo.fileSystems(); + + if(!videoScan ) scanForVideo(); + + QListIterator<DocLnk> Vdit( vFiles.children() ); + QListIterator<FileSystem> it ( fs ); + videoView->clear(); + QString storage; + for ( ; Vdit.current(); ++Vdit ) { + for( ; it.current(); ++it ){ + const QString name = (*it)->name(); + const QString path = (*it)->path(); + if( Vdit.current()->file().find(path) != -1 ) storage=name; + } - QListViewItem * newItem; - if ( QFile( Vdit.current()->file()).exists() ) { - newItem= /*(void)*/ new QListViewItem( videoView, Vdit.current()->name(), - QString::number( QFile( Vdit.current()->file()).size() ), storage); - newItem->setPixmap(0, Resource::loadPixmap( "opieplayer2/videofile" )); - } + QListViewItem * newItem; + if ( QFile( Vdit.current()->file()).exists() ) { + newItem= /*(void)*/ new QListViewItem( videoView, Vdit.current()->name(), + QString::number( QFile( Vdit.current()->file()).size() ), storage); + newItem->setPixmap(0, Resource::loadPixmap( "opieplayer2/videofile" )); } + } } void PlayListWidget::openFile() { - QString filename, name; - InputDialog *fileDlg; - fileDlg = new InputDialog(this,tr("Open file or URL"),TRUE, 0); - fileDlg->exec(); - if( fileDlg->result() == 1 ) { - filename = fileDlg->LineEdit1->text(); - - qDebug("Selected filename is "+filename); - if(filename.right(3) == "m3u") { - readm3u( filename ); - } else if(filename.right(3) == "pls") { - readPls( filename ); - } else { - DocLnk lnk; + QString filename, name; + InputDialog *fileDlg; + fileDlg = new InputDialog(this,tr("Open file or URL"),TRUE, 0); + fileDlg->exec(); + if( fileDlg->result() == 1 ) { + filename = fileDlg->LineEdit1->text(); + + qDebug("Selected filename is "+filename); + if(filename.right(3) == "m3u") { + readm3u( filename ); + } else if(filename.right(3) == "pls") { + readPls( filename ); + } else { + DocLnk lnk; - lnk.setName(filename); //sets file name - lnk.setFile(filename); //sets File property - lnk.setType("audio/x-mpegurl"); - lnk.setExec("opieplayer"); - lnk.setIcon("opieplayer2/MPEGPlayer"); + lnk.setName(filename); //sets file name + lnk.setFile(filename); //sets File property + lnk.setType("audio/x-mpegurl"); + lnk.setExec("opieplayer"); + lnk.setIcon("opieplayer2/MPEGPlayer"); - if(!lnk.writeLink()) { - qDebug("Writing doclink did not work"); - } - d->selectedFiles->addToSelection( lnk); - } - } - if(fileDlg) { - delete fileDlg; + if(!lnk.writeLink()) { + qDebug("Writing doclink did not work"); + } + d->selectedFiles->addToSelection( lnk); } + } + if(fileDlg) { + delete fileDlg; + } } void PlayListWidget::keyReleaseEvent( QKeyEvent *e) { - switch ( e->key() ) { -////////////////////////////// Zaurus keys - case Key_F9: //activity -// if(audioUI->isHidden()) -// audioUI->showMaximized(); - break; - case Key_F10: //contacts -// if( videoUI->isHidden()) -// videoUI->showMaximized(); - break; - case Key_F11: //menu - break; - case Key_F12: //home -// doBlank(); - break; - case Key_F13: //mail -// doUnblank(); - break; - case Key_Q: //add to playlist - qDebug("Add"); - addSelected(); - break; - case Key_R: //remove from playlist - removeSelected(); - break; -// case Key_P: //play -// qDebug("Play"); -// playSelected(); -// break; - case Key_Space: - qDebug("Play"); -// playSelected(); puh - break; - case Key_1: - tabWidget->setCurrentPage(0); - break; - case Key_2: - tabWidget->setCurrentPage(1); - break; - case Key_3: - tabWidget->setCurrentPage(2); - break; - case Key_4: - tabWidget->setCurrentPage(3); - break; - case Key_Down: - if ( !d->selectedFiles->next() ) - d->selectedFiles->first(); + switch ( e->key() ) { + ////////////////////////////// Zaurus keys + case Key_F9: //activity + // if(audioUI->isHidden()) + // audioUI->showMaximized(); + break; + case Key_F10: //contacts + // if( videoUI->isHidden()) + // videoUI->showMaximized(); + break; + case Key_F11: //menu + break; + case Key_F12: //home + // doBlank(); + break; + case Key_F13: //mail + // doUnblank(); + break; + case Key_Q: //add to playlist + qDebug("Add"); + addSelected(); + break; + case Key_R: //remove from playlist + removeSelected(); + break; + // case Key_P: //play + // qDebug("Play"); + // playSelected(); + // break; + case Key_Space: + qDebug("Play"); + // playSelected(); puh + break; + case Key_1: + tabWidget->setCurrentPage(0); + break; + case Key_2: + tabWidget->setCurrentPage(1); + break; + case Key_3: + tabWidget->setCurrentPage(2); + break; + case Key_4: + tabWidget->setCurrentPage(3); + break; + case Key_Down: + if ( !d->selectedFiles->next() ) + d->selectedFiles->first(); - break; - case Key_Up: - if ( !d->selectedFiles->prev() ) - // d->selectedFiles->last(); + break; + case Key_Up: + if ( !d->selectedFiles->prev() ) + // d->selectedFiles->last(); break; - } + } } void PlayListWidget::keyPressEvent( QKeyEvent *) { -// qDebug("Key press"); -// switch ( e->key() ) { -// ////////////////////////////// Zaurus keys -// case Key_A: //add to playlist -// qDebug("Add"); -// addSelected(); -// break; -// case Key_R: //remove from playlist -// removeSelected(); -// break; -// case Key_P: //play -// qDebug("Play"); -// playSelected(); -// break; -// case Key_Space: -// qDebug("Play"); -// playSelected(); -// break; -// } + // qDebug("Key press"); + // switch ( e->key() ) { + // ////////////////////////////// Zaurus keys + // case Key_A: //add to playlist + // qDebug("Add"); + // addSelected(); + // break; + // case Key_R: //remove from playlist + // removeSelected(); + // break; + // case Key_P: //play + // qDebug("Play"); + // playSelected(); + // break; + // case Key_Space: + // qDebug("Play"); + // playSelected(); + // break; + // } } void PlayListWidget::readm3u(const QString &filename) { - qDebug("m3u filename is "+filename); - QFile f(filename); - - if(f.open(IO_ReadOnly)) { - QTextStream t(&f); - QString s;//, first, second; - int i=0; - while ( !t.atEnd()) { - s=t.readLine(); - - if(s.find("#",0,TRUE) == -1) { - if(s.find(" ",0,TRUE) == -1) { // not sure if this is neede since cf uses vfat - if(s.left(2) == "E:" || s.left(2) == "P:") { - s=s.right(s.length()-2); - if(QFile(s).exists()) { - DocLnk lnk( s ); - QFileInfo f(s); - QString name = f.baseName(); - name = name.right( name.length()-name.findRev( "\\",-1,TRUE ) -1 ); - lnk.setName( name ); - s=s.replace( QRegExp("\\"),"/"); - lnk.setFile( s ); - lnk.writeLink(); - qDebug("add "+name); - d->selectedFiles->addToSelection( lnk); - } - } else { // is url - s.replace(QRegExp("%20")," "); - DocLnk lnk( s ); - QString name; - if(name.left(4)=="http") { - name = s.right( s.length() - 7); - } else { - name = s; - } - lnk.setName(name); - if(s.at(s.length()-4) == '.') { - lnk.setFile( s); - } else { - lnk.setFile( s+"/"); - } - lnk.setType("audio/x-mpegurl"); - lnk.writeLink(); - d->selectedFiles->addToSelection( lnk); - } - i++; - } + qDebug("m3u filename is "+filename); + QFile f(filename); + + if(f.open(IO_ReadOnly)) { + QTextStream t(&f); + QString s;//, first, second; + int i=0; + while ( !t.atEnd()) { + s=t.readLine(); + + if(s.find("#",0,TRUE) == -1) { + if(s.find(" ",0,TRUE) == -1) { // not sure if this is neede since cf uses vfat + if(s.left(2) == "E:" || s.left(2) == "P:") { + s=s.right(s.length()-2); + // if(QFile(s).exists()) { + DocLnk lnk( s ); + QFileInfo f(s); + QString name = f.baseName(); + name = name.right( name.length()-name.findRev( "\\",-1,TRUE ) -1 ); + lnk.setName( name ); + s=s.replace( QRegExp("\\"),"/"); + lnk.setFile( s ); + lnk.writeLink(); + qDebug("add "+name); + d->selectedFiles->addToSelection( lnk); + // } + } else { // is url + s.replace(QRegExp("%20")," "); + DocLnk lnk( s ); + QString name; + if(name.left(4)=="http") { + name = s.right( s.length() - 7); + } else { + name = s; + } + lnk.setName(name); + if(s.at(s.length()-4) == '.') { + lnk.setFile( s); + } else { + lnk.setFile( s+"/"); } + lnk.setType("audio/x-mpegurl"); + lnk.writeLink(); + d->selectedFiles->addToSelection( lnk); + } + i++; } + } } - f.close(); + } + f.close(); } void PlayListWidget::writem3u() { - InputDialog *fileDlg; - fileDlg = new InputDialog(this,tr("Save m3u Playlist "),TRUE, 0); - fileDlg->exec(); - QString filename,list; - if( fileDlg->result() == 1 ) { - filename = fileDlg->LineEdit1->text(); - qDebug(filename); - int noOfFiles = 0; - d->selectedFiles->first(); - do { - // we dont check for existance because of url's - // qDebug(d->selectedFiles->current()->file()); - list += d->selectedFiles->current()->file()+"\n"; - noOfFiles++; - } - while ( d->selectedFiles->next() ); - qDebug(list); - if(filename.left(1) != "/") - filename=QPEApplication::documentDir()+"/"+filename; - if(filename.right(3) != "m3u") - filename=filename+".m3u"; - - QFile f(filename); - f.open(IO_WriteOnly); - f.writeBlock(list, list.length()); - f.close(); + InputDialog *fileDlg; + fileDlg = new InputDialog(this,tr("Save m3u Playlist "),TRUE, 0); + fileDlg->exec(); + QString filename,list; + if( fileDlg->result() == 1 ) { + filename = fileDlg->LineEdit1->text(); + qDebug(filename); + int noOfFiles = 0; + d->selectedFiles->first(); + do { + // we dont check for existance because of url's + // qDebug(d->selectedFiles->current()->file()); + list += d->selectedFiles->current()->file()+"\n"; + noOfFiles++; } - if(fileDlg) delete fileDlg; + while ( d->selectedFiles->next() ); + qDebug(list); + if(filename.left(1) != "/") + filename=QPEApplication::documentDir()+"/"+filename; + if(filename.right(3) != "m3u") + filename=filename+".m3u"; + + QFile f(filename); + f.open(IO_WriteOnly); + f.writeBlock(list, list.length()); + f.close(); + } + if(fileDlg) delete fileDlg; } void PlayListWidget::readPls(const QString &filename) { - qDebug("pls filename is "+filename); - QFile f(filename); - - if(f.open(IO_ReadOnly)) { - QTextStream t(&f); - QString s;//, first, second; - int i=0; - while ( !t.atEnd()) { - s=t.readLine(); - if(s.left(4) == "File") { - s=s.right(s.length() - 6); - s.replace(QRegExp("%20")," "); - qDebug("adding "+s+" to playlist"); - // numberofentries=2 - // File1=http - // Title - // Length - // Version - // File2=http - s=s.replace( QRegExp("\\"),"/"); - DocLnk lnk( s ); - QFileInfo f(s); - QString name = f.baseName(); - if(name.left(4)=="http") - name = s.right( s.length() - 7); - else - name=s; - name = name.right(name.length()-name.findRev("\\",-1,TRUE)-1); - lnk.setName( name); - if(s.at(s.length()-4) == '.') // if this is probably a file - lnk.setFile( s); - else { //if its a url - if( name.right(1).find('/') == -1) - s+="/"; - lnk.setFile( s); - } - lnk.setType("audio/x-mpegurl"); - - qDebug("DocLnk add "+name); - d->selectedFiles->addToSelection( lnk); - } + qDebug("pls filename is "+filename); + QFile f(filename); + + if(f.open(IO_ReadOnly)) { + QTextStream t(&f); + QString s;//, first, second; + int i=0; + while ( !t.atEnd()) { + s=t.readLine(); + if(s.left(4) == "File") { + s=s.right(s.length() - 6); + s.replace(QRegExp("%20")," "); + qDebug("adding "+s+" to playlist"); + // numberofentries=2 + // File1=http + // Title + // Length + // Version + // File2=http + s=s.replace( QRegExp("\\"),"/"); + DocLnk lnk( s ); + QFileInfo f(s); + QString name = f.baseName(); + if(name.left(4)=="http") + name = s.right( s.length() - 7); + else + name=s; + name = name.right(name.length()-name.findRev("\\",-1,TRUE)-1); + lnk.setName( name); + if(s.at(s.length()-4) == '.') // if this is probably a file + lnk.setFile( s); + else { //if its a url + if( name.right(1).find('/') == -1) + s+="/"; + lnk.setFile( s); } - i++; + lnk.setType("audio/x-mpegurl"); + + qDebug("DocLnk add "+name); + d->selectedFiles->addToSelection( lnk); + } } + i++; + } } void PlayListWidget::pmViewActivated(int index) { -qDebug("%d", index); -switch(index) { + qDebug("%d", index); + switch(index) { case -16: - { + { mediaPlayerState->toggleFullscreen(); bool b=mediaPlayerState->fullscreen(); pmView->setItemChecked( index,b); Config cfg( "OpiePlayer" ); cfg.writeEntry("FullScreen", b); - } - break; -}; + } + break; + }; } void PlayListWidget::populateSkinsMenu() { - int item=0; - defaultSkinIndex=0; - QString skinName; - Config cfg( "OpiePlayer" ); - cfg.setGroup("Options"); - QString skin = cfg.readEntry("Skin","default"); - - QDir skinsDir(QPEApplication::qpeDir()+"/pics/opieplayer2/skins"); - skinsDir.setFilter( QDir::Dirs); - skinsDir.setSorting(QDir::Name); - const QFileInfoList *skinslist = skinsDir.entryInfoList(); - QFileInfoListIterator it( *skinslist ); - QFileInfo *fi; - while ( (fi=it.current()) ) { - skinName = fi->fileName(); - qDebug( fi->fileName()); - if( skinName != "." && skinName != ".." && skinName !="CVS") - item = skinsMenu->insertItem( fi->fileName()); - if( skinName == "default") - defaultSkinIndex = item; - if( skinName == skin) - skinsMenu->setItemChecked( item, TRUE); - - ++it; - } + int item=0; + defaultSkinIndex=0; + QString skinName; + Config cfg( "OpiePlayer" ); + cfg.setGroup("Options"); + QString skin = cfg.readEntry("Skin","default"); + + QDir skinsDir(QPEApplication::qpeDir()+"/pics/opieplayer2/skins"); + skinsDir.setFilter( QDir::Dirs); + skinsDir.setSorting(QDir::Name); + const QFileInfoList *skinslist = skinsDir.entryInfoList(); + QFileInfoListIterator it( *skinslist ); + QFileInfo *fi; + while ( (fi=it.current()) ) { + skinName = fi->fileName(); + qDebug( fi->fileName()); + if( skinName != "." && skinName != ".." && skinName !="CVS") + item = skinsMenu->insertItem( fi->fileName()); + if( skinName == "default") + defaultSkinIndex = item; + if( skinName == skin) + skinsMenu->setItemChecked( item, TRUE); + + ++it; + } } void PlayListWidget::skinsMenuActivated(int item) { - for(int i = defaultSkinIndex; i > defaultSkinIndex - skinsMenu->count(); i--) { - skinsMenu->setItemChecked( i, FALSE); - } - skinsMenu->setItemChecked( item, TRUE); + for(int i = defaultSkinIndex; i > defaultSkinIndex - skinsMenu->count(); i--) { + skinsMenu->setItemChecked( i, FALSE); + } + skinsMenu->setItemChecked( item, TRUE); - Config cfg( "OpiePlayer" ); - cfg.setGroup("Options"); - cfg.writeEntry("Skin", skinsMenu->text( item)); + Config cfg( "OpiePlayer" ); + cfg.setGroup("Options"); + cfg.writeEntry("Skin", skinsMenu->text( item)); } |