summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/opieplayer2.pro29
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.cpp1631
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidget.h71
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidgetgui.cpp207
-rw-r--r--noncore/multimedia/opieplayer2/playlistwidgetgui.h126
5 files changed, 1105 insertions, 959 deletions
diff --git a/noncore/multimedia/opieplayer2/opieplayer2.pro b/noncore/multimedia/opieplayer2/opieplayer2.pro
index 3a47c06..a83a624 100644
--- a/noncore/multimedia/opieplayer2/opieplayer2.pro
+++ b/noncore/multimedia/opieplayer2/opieplayer2.pro
@@ -1,23 +1,24 @@
TEMPLATE = app
-CONFIG = qt warn_on release
-#CONFIG = qt warn_on debug
+#CONFIG = qt warn_on release
+CONFIG = qt warn_on debug
DESTDIR = $(OPIEDIR)/bin
HEADERS = playlistselection.h mediaplayerstate.h xinecontrol.h mediadetect.h\
- videowidget.h audiowidget.h playlistwidget.h mediaplayer.h inputDialog.h \
- frame.h lib.h xinevideowidget.h volumecontrol.h\
- alphablend.h yuv2rgb.h
+ videowidget.h audiowidget.h playlistwidget.h mediaplayer.h inputDialog.h \
+ frame.h lib.h xinevideowidget.h volumecontrol.h playlistwidgetgui.h\
+ alphablend.h yuv2rgb.h
SOURCES = main.cpp \
- playlistselection.cpp mediaplayerstate.cpp xinecontrol.cpp mediadetect.cpp\
- videowidget.cpp audiowidget.cpp playlistwidget.cpp mediaplayer.cpp inputDialog.cpp \
- frame.cpp lib.cpp nullvideo.c xinevideowidget.cpp volumecontrol.cpp\
- alphablend.c yuv2rgb.c yuv2rgb_arm.c yuv2rgb_arm4l.S
+ playlistselection.cpp mediaplayerstate.cpp xinecontrol.cpp mediadetect.cpp\
+ videowidget.cpp audiowidget.cpp playlistwidget.cpp mediaplayer.cpp inputDialog.cpp \
+ frame.cpp lib.cpp nullvideo.c xinevideowidget.cpp volumecontrol.cpp \
+ playlistwidgetgui.cpp\
+ alphablend.c yuv2rgb.c yuv2rgb_arm.c yuv2rgb_arm4l.S
TARGET = opieplayer2
INCLUDEPATH += $(OPIEDIR)/include
DEPENDPATH += $(OPIEDIR)/include
-LIBS += -lqpe -lpthread -lopie -lxine -lxineutils
-MOC_DIR=qpeobj
-OBJECTS_DIR=qpeobj
+LIBS += -lqpe -lpthread -lopie -lxine -lxineutils
+MOC_DIR = qpeobj
+OBJECTS_DIR = qpeobj
-INCLUDEPATH += $(OPIEDIR)/include
-DEPENDPATH += $(OPIEDIR)/include
+#INCLUDEPATH += $(OPIEDIR)/include
+#DEPENDPATH += $(OPIEDIR)/include
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.cpp b/noncore/multimedia/opieplayer2/playlistwidget.cpp
index 098322b..6c7f6ba 100644
--- a/noncore/multimedia/opieplayer2/playlistwidget.cpp
+++ b/noncore/multimedia/opieplayer2/playlistwidget.cpp
@@ -1,802 +1,650 @@
+/*
+                This file is part of the Opie Project
+
+              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org>
+ Copyright (c) 2002 L. Potter <ljp@llornkcor.com>
+ Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
+ =.
+ .=l.
+           .>+-=
+ _;:,     .>    :=|. This program is free software; you can
+.> <`_,   >  .   <= redistribute it and/or modify it under
+:`=1 )Y*s>-.--   : the terms of the GNU General Public
+.="- .-=="i,     .._ License as published by the Free Software
+ - .   .-<_>     .<> Foundation; either version 2 of the License,
+     ._= =}       : or (at your option) any later version.
+    .%`+i>       _;_.
+    .i_,=:_.      -<s. This program is distributed in the hope that
+     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
+    : ..    .:,     . . . without even the implied warranty of
+    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
+  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
+..}^=.=       =       ; Library General Public License for more
+++=   -.     .`     .: details.
+ :     =  ...= . :.=-
+ -.   .:....=;==+<; You should have received a copy of the GNU
+  -_. . .   )=.  = Library General Public License along with
+    --        :-=` this library; see the file COPYING.LIB.
+ If not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+*/
-#define QTOPIA_INTERNAL_FSLP
-#include <qpe/qpemenubar.h>
#include <qpe/qpetoolbar.h>
-#include <qpe/fileselector.h>
#include <qpe/qpeapplication.h>
-#include <qpe/lnkproperties.h>
#include <qpe/storage.h>
#include <qpe/mimetype.h>
-
-#include <qpe/applnk.h>
-#include <qpopupmenu.h>
-#include <qpe/config.h>
#include <qpe/global.h>
#include <qpe/resource.h>
-#include <qaction.h>
-#include <qcursor.h>
-#include <qimage.h>
-#include <qfile.h>
+
#include <qdir.h>
-#include <qlayout.h>
-#include <qlabel.h>
-#include <qlist.h>
-#include <qlistbox.h>
-#include <qmainwindow.h>
#include <qmessagebox.h>
-#include <qtoolbutton.h>
-#include <qtabwidget.h>
-#include <qlistview.h>
-#include <qpoint.h>
-#include <qlineedit.h>
-#include <qpushbutton.h>
#include <qregexp.h>
#include <qtextstream.h>
-
#include "playlistselection.h"
#include "playlistwidget.h"
#include "mediaplayerstate.h"
-
#include "inputDialog.h"
+//only needed for the random play
#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;
-};
-
-
-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 );
- }
-};
-
-
-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 );
- }
-};
-
-
PlayListWidget::PlayListWidget( QWidget* parent, const char* name, WFlags fl )
- : QMainWindow( parent, name, fl ) {
-
- d = new PlayListWidgetPrivate;
- d->setDocumentUsed = FALSE;
- d->current = NULL;
- fromSetDocument = FALSE;
- insanityBool=FALSE;
- audioScan = FALSE;
- videoScan = FALSE;
-
- setBackgroundMode( PaletteButton );
-
-// setCaption( tr("OpiePlayer") );
-// setIcon( Resource::loadPixmap( "opieplayer2/MPEGPlayer" ) );
-
- setToolBarsMovable( FALSE );
-
- // Create Toolbar
- QPEToolBar *toolbar = new QPEToolBar( this );
- toolbar->setHorizontalStretchable( TRUE );
-
- // Create Menubar
- QPEMenuBar *menu = new QPEMenuBar( toolbar );
- menu->setMargin( 0 );
-
- 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);
-
- 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 );
- (void)new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) );
- (void)new MenuItem( pmPlayList, tr( "Add all audio files" ), this, SLOT( addAllMusicToList() ) );
- (void)new MenuItem( pmPlayList, tr( "Add all video files" ), this, SLOT( addAllVideoToList() ) );
- (void)new MenuItem( pmPlayList, tr( "Add all files" ), this, SLOT( addAllToList() ) );
- pmPlayList->insertSeparator(-1);
- (void)new MenuItem( pmPlayList, tr( "Save PlayList" ), this, SLOT( saveList() ) );
- (void)new MenuItem( pmPlayList, tr( "Export playlist to m3u" ), this, SLOT(writem3u() ) );
- pmPlayList->insertSeparator(-1);
- (void)new MenuItem( pmPlayList, tr( "Open File or URL" ), this,SLOT( openFile() ) );
- pmPlayList->insertSeparator(-1);
- (void)new MenuItem( pmPlayList, tr( "Rescan for Audio Files" ), this,SLOT( scanForAudio() ) );
- (void)new MenuItem( pmPlayList, tr( "Rescan for Video Files" ), this,SLOT( scanForVideo() ) );
-
- pmView = new QPopupMenu( this );
- menu->insertItem( tr( "View" ), pmView );
- pmView->isCheckable();
-
- 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 );
-
- // pmView->insertItem( Resource::loadPixmap("opieplayer/scale") , tr( "Scale"), mediaPlayerState, SLOT(toggleScaled() ) );
-
- pmView->insertSeparator(-1);
-
- 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 );
-
- QHBox *hbox6 = new QHBox( vbox4 ); hbox6->setBackgroundMode( PaletteButton );
-
- tabWidget = new QTabWidget( hbox6, "tabWidget" );
- // tabWidget->setTabShape(QTabWidget::Triangular);
-
- QWidget *pTab;
- pTab = new QWidget( tabWidget, "pTab" );
- tabWidget->insertTab( pTab,"Playlist");
-
-
- QGridLayout *Playout = new QGridLayout( pTab );
- Playout->setSpacing( 2);
- Playout->setMargin( 2);
-
- // Add the playlist area
-
- QVBox *vbox3 = new QVBox( pTab ); vbox3->setBackgroundMode( PaletteButton );
- d->playListFrame = vbox3;
-
- QHBox *hbox2 = new QHBox( vbox3 ); hbox2->setBackgroundMode( PaletteButton );
-
- d->selectedFiles = new PlayListSelection( hbox2);
- QVBox *vbox1 = new QVBox( hbox2 ); vbox1->setBackgroundMode( PaletteButton );
-
- QPEApplication::setStylusOperation( d->selectedFiles->viewport(),QPEApplication::RightOnHold);
-
- QVBox *stretch1 = new QVBox( vbox1 ); stretch1->setBackgroundMode( PaletteButton ); // add stretch
- (void)new ToolButton( vbox1, tr( "Move Up" ), "opieplayer2/up", d->selectedFiles, SLOT(moveSelectedUp()) );
- (void)new ToolButton( vbox1, tr( "Remove" ), "opieplayer2/cut", d->selectedFiles, SLOT(removeSelected()) );
- (void)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->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();
+ : PlayListWidgetGui( parent, name, fl ) {
+
+ 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 );
+
+ (void)new MenuItem( pmPlayList, tr( "Clear List" ), this, SLOT( clearList() ) );
+ (void)new MenuItem( pmPlayList, tr( "Add all audio files" ), this, SLOT( addAllMusicToList() ) );
+ (void)new MenuItem( pmPlayList, tr( "Add all video files" ), this, SLOT( addAllVideoToList() ) );
+ (void)new MenuItem( pmPlayList, tr( "Add all files" ), this, SLOT( addAllToList() ) );
+ pmPlayList->insertSeparator(-1);
+ (void)new MenuItem( pmPlayList, tr( "Save PlayList" ), this, SLOT( saveList() ) );
+ (void)new MenuItem( pmPlayList, tr( "Export playlist to m3u" ), this, SLOT(writem3u() ) );
+ pmPlayList->insertSeparator(-1);
+ (void)new MenuItem( pmPlayList, tr( "Open File or URL" ), this,SLOT( openFile() ) );
+ pmPlayList->insertSeparator(-1);
+ (void)new MenuItem( pmPlayList, tr( "Rescan for Audio Files" ), this,SLOT( scanForAudio() ) );
+ (void)new MenuItem( pmPlayList, tr( "Rescan for Video Files" ), this,SLOT( scanForVideo() ) );
+
+ 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 );
+
+ (void)new ToolButton( vbox1, tr( "Move Up" ), "opieplayer2/up", d->selectedFiles, SLOT(moveSelectedUp() ) );
+ (void)new ToolButton( vbox1, tr( "Remove" ), "opieplayer2/cut", d->selectedFiles, SLOT(removeSelected() ) );
+ (void)new ToolButton( vbox1, tr( "Move Down" ), "opieplayer2/down", d->selectedFiles, SLOT(moveSelectedDown() ) );
+ QVBox *stretch2 = new QVBox( vbox1 );
+
+ 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( 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 *) ) );
+
+ readConfig( cfg );
+ QString currentPlaylist = cfg.readEntry( "CurrentPlaylist", "" );
+ loadList(DocLnk( currentPlaylist ) );
+ setCaption( tr( "OpiePlayer: " ) + currentPlaylist );
+
+ // see which skins are installed
+ populateSkinsMenu();
+ initializeStates();
}
PlayListWidget::~PlayListWidget() {
/* fixing symptoms and not sources is entirely stupid - zecke */
// 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." )
- );
+ 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++;
}
- }
- 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 );
+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.exec( QCursor::pos() );
+ }
+ break;
}
- }
}
-void PlayListWidget::addAllMusicToList() {
- QListIterator<DocLnk> dit( files.children() );
- for ( ; dit.current(); ++dit ) {
- if(QFileInfo(dit.current()->file()).exists()) {
- d->selectedFiles->addToSelection( **dit );
+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;
}
- }
}
-void PlayListWidget::addAllVideoToList() {
- QListIterator<DocLnk> dit( vFiles.children() );
- for ( ; dit.current(); ++dit )
- if(QFileInfo( dit.current()->file()).exists())
- d->selectedFiles->addToSelection( **dit );
+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 );
+ }
+ }
}
-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;
- }
+void PlayListWidget::addAllMusicToList() {
+ QListIterator<DocLnk> dit( files.children() );
+ for ( ; dit.current(); ++dit ) {
+ if( QFileInfo(dit.current()->file() ).exists() ) {
+ d->selectedFiles->addToSelection( **dit );
+ }
+ }
+}
- 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::addAllVideoToList() {
+ QListIterator<DocLnk> dit( vFiles.children() );
+ for ( ; dit.current(); ++dit ) {
+ if( QFileInfo( dit.current()->file() ).exists() ) {
+ d->selectedFiles->addToSelection( **dit );
+ }
+ }
}
-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
+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;
+ }
+
+ 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::useSelectedDocument() {
- d->setDocumentUsed = FALSE;
+ d->setDocumentUsed = FALSE;
}
const DocLnk *PlayListWidget::current() { // this is fugly
-
- switch (tabWidget->currentPageIndex()) {
- case 0: //playlist
+ 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();
- }
+ 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
+ case 1://audio
{
// qDebug("audioView");
- QListIterator<DocLnk> dit( files.children() );
- for ( ; dit.current(); ++dit ) {
- if( dit.current()->name() == audioView->currentItem()->text(0) && !insanityBool) {
- insanityBool=TRUE;
- return dit;
+ QListIterator<DocLnk> dit( files.children() );
+ for ( ; dit.current(); ++dit ) {
+ if( dit.current()->name() == audioView->currentItem()->text( 0 ) && !insanityBool ) {
+ insanityBool = TRUE;
+ return dit;
+ }
}
- }
}
break;
- case 2: // video
+ 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;
+ 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;
+ };
+ 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;
- } else {
- if ( !d->selectedFiles->prev() ) {
- if ( mediaPlayerState->looping() ) {
- return d->selectedFiles->last();
+ 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 {
- return FALSE;
+ if ( !d->selectedFiles->prev() ) {
+ if ( mediaPlayerState->looping() ) {
+ return d->selectedFiles->last();
+ } else {
+ return FALSE;
+ }
+ }
+ return TRUE;
}
- }
- return TRUE;
- }
- } else {
- return mediaPlayerState->looping();
+ } else {
+ return mediaPlayerState->looping();
}
}
bool PlayListWidget::next() {
- if ( mediaPlayerState->playlist() ) {
- if ( mediaPlayerState->shuffled() ) {
- return prev();
- } else {
- if ( !d->selectedFiles->next() ) {
- if ( mediaPlayerState->looping() ) {
- return d->selectedFiles->first();
+ if ( mediaPlayerState->playlist() ) {
+ if ( mediaPlayerState->shuffled() ) {
+ return prev();
} else {
- return FALSE;
+ if ( !d->selectedFiles->next() ) {
+ if ( mediaPlayerState->looping() ) {
+ return d->selectedFiles->first();
+ } else {
+ return FALSE;
+ }
+ }
+ return TRUE;
}
- }
- return TRUE;
+ } else {
+ return mediaPlayerState->looping();
}
- } 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 = 0l;
- fileDlg = new InputDialog(this,tr("Save Playlist"),TRUE, 0);
- fileDlg->exec();
- if( fileDlg->result() == 1 ) {
- if ( d->current )
- delete d->current;
- filename = fileDlg->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");
+ QString filename;
+ InputDialog *fileDlg = 0l;
+ fileDlg = new InputDialog(this,tr("Save Playlist"),TRUE, 0);
+ fileDlg->exec();
+ if( fileDlg->result() == 1 ) {
+ if ( d->current )
+ delete d->current;
+ filename = fileDlg->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;
}
- }
- 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();
-}
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 );
- }
+ 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);
+ }
}
- audioView->setSelected( it.current(),FALSE);
- }
+ tabWidget->setCurrentPage(0);
}
- tabWidget->setCurrentPage(0);
- }
- break;
- case 2: { // video
- QListViewItemIterator it( videoView );
+ 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 );
- }
- }
+ 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);
}
- 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 );
- }
+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 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);
}
- break;
- case 0:
- break;
- };
- tabWidget->setCurrentPage(0);
- }
}
+
void PlayListWidget::tabChanged(QWidget *) {
- switch ( tabWidget->currentPageIndex()) {
- case 0:
+ switch ( tabWidget->currentPageIndex()) {
+ case 0:
{
- if( !tbDeletePlaylist->isHidden())
- tbDeletePlaylist->hide();
- d->tbRemoveFromList->setEnabled(TRUE);
- d->tbAddToList->setEnabled(FALSE);
+ if( !tbDeletePlaylist->isHidden() ) {
+ tbDeletePlaylist->hide();
+ }
+ d->tbRemoveFromList->setEnabled(TRUE);
+ d->tbAddToList->setEnabled(FALSE);
}
break;
- case 1:
+ case 1:
{
- audioView->clear();
- populateAudioView();
+ audioView->clear();
+ populateAudioView();
- if( !tbDeletePlaylist->isHidden())
- tbDeletePlaylist->hide();
- d->tbRemoveFromList->setEnabled(FALSE);
- d->tbAddToList->setEnabled(TRUE);
+ if( !tbDeletePlaylist->isHidden() ) {
+ tbDeletePlaylist->hide();
+ }
+ d->tbRemoveFromList->setEnabled(FALSE);
+ d->tbAddToList->setEnabled(TRUE);
}
break;
- case 2:
+ case 2:
{
- videoView->clear();
- populateVideoView();
- if( !tbDeletePlaylist->isHidden())
- tbDeletePlaylist->hide();
- d->tbRemoveFromList->setEnabled(FALSE);
- d->tbAddToList->setEnabled(TRUE);
+ videoView->clear();
+ populateVideoView();
+ if( !tbDeletePlaylist->isHidden() ) {
+ tbDeletePlaylist->hide();
+ }
+ d->tbRemoveFromList->setEnabled(FALSE);
+ d->tbAddToList->setEnabled(TRUE);
}
break;
- case 3:
+ case 3:
{
- if( tbDeletePlaylist->isHidden())
- tbDeletePlaylist->show();
- playLists->reread();
+ if( tbDeletePlaylist->isHidden() ) {
+ tbDeletePlaylist->show();
+ }
+ playLists->reread();
}
break;
- };
+ };
}
-void PlayListWidget::btnPlay(bool b) {
+void PlayListWidget::btnPlay(bool b) {
// 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;
}// audioView->clearSelection();
@@ -817,438 +665,393 @@ void PlayListWidget::btnPlay(bool b) {
}
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;
};
}
-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.exec( QCursor::pos() );
- }
- break;
- };
-}
void PlayListWidget::playSelected() {
- 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;
- };
+ btnPlay( TRUE);
}
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;
}
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;
}
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();
}
- 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" ));
+ 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" ) );
+ }
}
- }
}
+
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->text();
-
- qDebug("Selected filename is "+filename);
- if(filename.right(3) == "m3u") {
- readm3u( filename );
- } else if(filename.right(3) == "pls") {
- readPls( filename );
- } else {
- /* FIXME ....... AUDIO/X-MPEGURL is bad*/
- DocLnk lnk;
-
- lnk.setName(filename); //sets file name
- lnk.setFile(filename); //sets File property
- //qWarning( "Mimetype: " + MimeType( QFile::encodeName(filename) ).id() );
- lnk.setType( MimeType( QFile::encodeName(filename) ).id() );
- lnk.setExec("opieplayer");
- lnk.setIcon("opieplayer2/MPEGPlayer");
-
- if(!lnk.writeLink()) {
- qDebug("Writing doclink did not work");
- }
- d->selectedFiles->addToSelection( 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->text();
+
+ qDebug( "Selected filename is " + filename );
+ if( filename.right( 3 ) == "m3u" ) {
+ readm3u( filename );
+ } else if( filename.right(3) == "pls" ) {
+ readPls( filename );
+ } else {
+ /* FIXME ....... AUDIO/X-MPEGURL is bad*/
+ DocLnk lnk;
+ lnk.setName( filename ); //sets file name
+ lnk.setFile( filename ); //sets File property
+ //qWarning( "Mimetype: " + MimeType( QFile::encodeName(filename) ).id() );
+ lnk.setType( MimeType( QFile::encodeName(filename) ).id() );
+ 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(fileDlg) {
- delete fileDlg;
- }
}
-void PlayListWidget::keyReleaseEvent( QKeyEvent *e)
-{
+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
addSelected();
break;
case Key_R: //remove from playlist
removeSelected();
break;
// case Key_P: //play
// qDebug("Play");
// playSelected();
// break;
case Key_Space:
// playSelected(); puh
break;
case Key_1:
- tabWidget->setCurrentPage(0);
+ tabWidget->setCurrentPage( 0 );
break;
case Key_2:
- tabWidget->setCurrentPage(1);
+ tabWidget->setCurrentPage( 1 );
break;
case Key_3:
- tabWidget->setCurrentPage(2);
+ tabWidget->setCurrentPage( 2 );
break;
case Key_4:
- tabWidget->setCurrentPage(3);
+ 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;
}
}
-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;
- // }
-}
-
-
-
-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;
+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 );
+ 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++;
+ }
}
- 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->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++;
+ InputDialog *fileDlg;
+ fileDlg = new InputDialog( this, tr( "Save m3u Playlist " ), TRUE, 0);
+ fileDlg->exec();
+ QString filename, list;
+ if( fileDlg->result() == 1 ) {
+ filename = fileDlg->text();
+ qDebug( filename );
+ int noOfFiles = 0;
+ d->selectedFiles->first();
+ do {
+ // we dont check for existance because of url's
+ // qDebug(d->selectedFiles->current()->file());
+
+ // so maybe we should do some net checking to ,-)
+ 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();
+ }
+ 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);
+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 );
+ }
}
- lnk.setType("audio/x-mpegurl");
-
- qDebug("DocLnk add "+name);
- d->selectedFiles->addToSelection( lnk);
- }
+ i++;
}
- i++;
- }
}
void PlayListWidget::pmViewActivated(int index) {
// qDebug("%d", index);
- switch(index) {
- case -16:
+ switch(index) {
+ case -16:
{
-
- mediaPlayerState->toggleFullscreen();
- bool b=mediaPlayerState->fullscreen();
- pmView->setItemChecked( index,b);
- Config cfg( "OpiePlayer" );
- cfg.writeEntry("FullScreen", b);
-
+ mediaPlayerState->toggleFullscreen();
+ bool b=mediaPlayerState->fullscreen();
+ pmView->setItemChecked( index, b);
+ Config cfg( "OpiePlayer" );
+ cfg.writeEntry( "FullScreen", b );
}
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(uint i = defaultSkinIndex; i > defaultSkinIndex - skinsMenu->count(); i--) {
- skinsMenu->setItemChecked( i, FALSE);
- }
- skinsMenu->setItemChecked( item, TRUE);
+void PlayListWidget::skinsMenuActivated( int item ) {
+ for( uint 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 ) );
}
diff --git a/noncore/multimedia/opieplayer2/playlistwidget.h b/noncore/multimedia/opieplayer2/playlistwidget.h
index 8710a99..2742252 100644
--- a/noncore/multimedia/opieplayer2/playlistwidget.h
+++ b/noncore/multimedia/opieplayer2/playlistwidget.h
@@ -1,111 +1,120 @@
+/*
+                This file is part of the Opie Project
+
+              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org>
+ Copyright (c) 2002 L. Potter <ljp@llornkcor.com>
+ Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
+ =.
+ .=l.
+           .>+-=
+ _;:,     .>    :=|. This program is free software; you can
+.> <`_,   >  .   <= redistribute it and/or modify it under
+:`=1 )Y*s>-.--   : the terms of the GNU General Public
+.="- .-=="i,     .._ License as published by the Free Software
+ - .   .-<_>     .<> Foundation; either version 2 of the License,
+     ._= =}       : or (at your option) any later version.
+    .%`+i>       _;_.
+    .i_,=:_.      -<s. This program is distributed in the hope that
+     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
+    : ..    .:,     . . . without even the implied warranty of
+    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
+  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
+..}^=.=       =       ; Library General Public License for more
+++=   -.     .`     .: details.
+ :     =  ...= . :.=-
+ -.   .:....=;==+<; You should have received a copy of the GNU
+  -_. . .   )=.  = Library General Public License along with
+    --        :-=` this library; see the file COPYING.LIB.
+ If not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+*/
#ifndef PLAY_LIST_WIDGET_H
#define PLAY_LIST_WIDGET_H
#include <qmainwindow.h>
#include <qpe/applnk.h>
#include <qtabwidget.h>
#include <qpe/fileselector.h>
#include <qpushbutton.h>
#include <qpopupmenu.h>
-/* #include <qtimer.h> */
+#include "playlistwidgetgui.h"
-class PlayListWidgetPrivate;
+//class PlayListWidgetPrivate;
class Config;
class QListViewItem;
class QListView;
class QPoint;
class QAction;
class QLabel;
-class PlayListWidget : public QMainWindow {
+class PlayListWidget : public PlayListWidgetGui {
Q_OBJECT
public:
PlayListWidget( QWidget* parent=0, const char* name=0, WFlags fl=0 );
~PlayListWidget();
- QTabWidget * tabWidget;
-// MenuItem *fullScreenButton, *scaleButton;
-// QAction *fullScreenButton, *scaleButton;
DocLnkSet files;
DocLnkSet vFiles;
- QListView *audioView, *videoView, *playlistView;
- QLabel *libString;
- QPopupMenu *pmView ;
bool fromSetDocument;
bool insanityBool;
QString setDocFileRef;
// retrieve the current playlist entry (media file link)
const DocLnk *current();
void useSelectedDocument();
-/* QTimer * menuTimer; */
- FileSelector* playLists;
- QPushButton *tbDeletePlaylist;
int selected;
+
public slots:
bool first();
bool last();
bool next();
bool prev();
void writeConfig( Config& cfg ) const;
-/* void setFullScreen(); */
-/* void setScaled(); */
+
protected:
-/* void contentsMousePressEvent( QMouseEvent * e ); */
-/* void contentsMouseReleaseEvent( QMouseEvent * e ); */
-void keyReleaseEvent( QKeyEvent *e);
-void keyPressEvent( QKeyEvent *e);
+ void keyReleaseEvent( QKeyEvent *e);
+
private:
int defaultSkinIndex;
- QPopupMenu *skinsMenu;
bool audioScan, videoScan;
void readm3u(const QString &);
void readPls(const QString &);
-
void initializeStates();
void readConfig( Config& cfg );
- PlayListWidgetPrivate *d; // Private implementation data
void populateAudioView();
void populateVideoView();
+
private slots:
void populateSkinsMenu();
void skinsMenuActivated(int);
void pmViewActivated(int);
void writem3u();
void scanForAudio();
void scanForVideo();
void openFile();
void setDocument( const QString& fileref );
void addToSelection( const DocLnk& ); // Add a media file to the playlist
void addToSelection( QListViewItem* ); // Add a media file to the playlist
- void setActiveWindow(); // need to handle this to show the right view
void setPlaylist( bool ); // Show/Hide the playlist
- void setView( char );
void clearList();
void addAllToList();
void addAllMusicToList();
void addAllVideoToList();
void saveList(); // Save the playlist
void loadList( const DocLnk &); // Load a playlist
void playIt( QListViewItem *);
-
void btnPlay(bool);
void deletePlaylist();
void addSelected();
void removeSelected();
void tabChanged(QWidget*);
void viewPressed( int, QListViewItem *, const QPoint&, int);
void playlistViewPressed( int, QListViewItem *, const QPoint&, int);
void playSelected();
-
-protected slots:
-/* void cancelMenuTimer(); */
-/* void showFileMenu(); */
-
-
};
-
#endif // PLAY_LIST_WIDGET_H
diff --git a/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp b/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp
new file mode 100644
index 0000000..6ecd016
--- a/dev/null
+++ b/noncore/multimedia/opieplayer2/playlistwidgetgui.cpp
@@ -0,0 +1,207 @@
+/*
+                This file is part of the Opie Project
+
+              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org>
+ Copyright (c) 2002 L. Potter <ljp@llornkcor.com>
+ Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
+ =.
+ .=l.
+           .>+-=
+ _;:,     .>    :=|. This program is free software; you can
+.> <`_,   >  .   <= redistribute it and/or modify it under
+:`=1 )Y*s>-.--   : the terms of the GNU General Public
+.="- .-=="i,     .._ License as published by the Free Software
+ - .   .-<_>     .<> Foundation; either version 2 of the License,
+     ._= =}       : or (at your option) any later version.
+    .%`+i>       _;_.
+    .i_,=:_.      -<s. This program is distributed in the hope that
+     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
+    : ..    .:,     . . . without even the implied warranty of
+    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
+  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
+..}^=.=       =       ; Library General Public License for more
+++=   -.     .`     .: details.
+ :     =  ...= . :.=-
+ -.   .:....=;==+<; You should have received a copy of the GNU
+  -_. . .   )=.  = Library General Public License along with
+    --        :-=` this library; see the file COPYING.LIB.
+ If not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+*/
+
+#include <qpe/qpemenubar.h>
+#include <qpe/qpetoolbar.h>
+#include <qpe/fileselector.h>
+#include <qpe/qpeapplication.h>
+#include <qpe/storage.h>
+#include <qpe/mimetype.h>
+#include <qpe/config.h>
+#include <qpe/global.h>
+#include <qpe/resource.h>
+
+#include <qpopupmenu.h>
+#include <qaction.h>
+#include <qcursor.h>
+#include <qdir.h>
+#include <qlayout.h>
+
+#include "playlistselection.h"
+#include "playlistwidget.h"
+#include "mediaplayerstate.h"
+#include "inputDialog.h"
+
+//only needed for the random play
+#include <stdlib.h>
+
+#include "audiowidget.h"
+#include "videowidget.h"
+#include "mediaplayerstate.h"
+
+extern MediaPlayerState *mediaPlayerState;
+
+PlayListWidgetGui::PlayListWidgetGui( QWidget* parent, const char* name, WFlags fl )
+ : QMainWindow( parent, name, fl ) {
+
+ d = new PlayListWidgetPrivate;
+ d->setDocumentUsed = FALSE;
+ d->current = NULL;
+
+ setBackgroundMode( PaletteButton );
+ setToolBarsMovable( FALSE );
+
+ // Create Toolbar
+ QPEToolBar *toolbar = new QPEToolBar( this );
+ toolbar->setHorizontalStretchable( TRUE );
+
+ // Create Menubar
+ QPEMenuBar *menu = new QPEMenuBar( toolbar );
+ menu->setMargin( 0 );
+
+ 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->hide();
+
+ pmPlayList = new QPopupMenu( this );
+ menu->insertItem( tr( "File" ), pmPlayList );
+
+ pmView = new QPopupMenu( this );
+ menu->insertItem( tr( "View" ), pmView );
+ pmView->isCheckable();
+
+ skinsMenu = new QPopupMenu( this );
+ pmView->insertItem( tr( "Skins" ), skinsMenu );
+ skinsMenu->isCheckable();
+
+ vbox5 = new QVBox( this );
+ QVBox *vbox4 = new QVBox( vbox5 );
+ QHBox *hbox6 = new QHBox( vbox4 );
+
+ tabWidget = new QTabWidget( hbox6, "tabWidget" );
+
+ QWidget *pTab;
+ pTab = new QWidget( tabWidget, "pTab" );
+ tabWidget->insertTab( pTab,"Playlist");
+
+ QGridLayout *Playout = new QGridLayout( pTab );
+ Playout->setSpacing( 2);
+ Playout->setMargin( 2);
+
+ // Add the playlist area
+ QVBox *vbox3 = new QVBox( pTab );
+ d->playListFrame = vbox3;
+
+ QHBox *hbox2 = new QHBox( vbox3 );
+ d->selectedFiles = new PlayListSelection( hbox2 );
+
+ vbox1 = new QVBox( hbox2 );
+ QPEApplication::setStylusOperation( d->selectedFiles->viewport(), QPEApplication::RightOnHold );
+ QVBox *stretch1 = new QVBox( vbox1 ); // 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->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" ) );
+
+ setCentralWidget( vbox5 );
+}
+
+
+
+PlayListWidgetGui::~PlayListWidgetGui() {
+}
+
+void PlayListWidgetGui::setView( char view ) {
+ if ( view == 'l' )
+ showMaximized();
+ else
+ hide();
+}
+
+
+void PlayListWidgetGui::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
+}
+
diff --git a/noncore/multimedia/opieplayer2/playlistwidgetgui.h b/noncore/multimedia/opieplayer2/playlistwidgetgui.h
new file mode 100644
index 0000000..4c8d737
--- a/dev/null
+++ b/noncore/multimedia/opieplayer2/playlistwidgetgui.h
@@ -0,0 +1,126 @@
+/*
+                This file is part of the Opie Project
+
+              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org>
+ Copyright (c) 2002 L. Potter <ljp@llornkcor.com>
+ Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
+ =.
+ .=l.
+           .>+-=
+ _;:,     .>    :=|. This program is free software; you can
+.> <`_,   >  .   <= redistribute it and/or modify it under
+:`=1 )Y*s>-.--   : the terms of the GNU General Public
+.="- .-=="i,     .._ License as published by the Free Software
+ - .   .-<_>     .<> Foundation; either version 2 of the License,
+     ._= =}       : or (at your option) any later version.
+    .%`+i>       _;_.
+    .i_,=:_.      -<s. This program is distributed in the hope that
+     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
+    : ..    .:,     . . . without even the implied warranty of
+    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
+  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
+..}^=.=       =       ; Library General Public License for more
+++=   -.     .`     .: details.
+ :     =  ...= . :.=-
+ -.   .:....=;==+<; You should have received a copy of the GNU
+  -_. . .   )=.  = Library General Public License along with
+    --        :-=` this library; see the file COPYING.LIB.
+ If not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+*/
+
+#ifndef PLAY_LIST_WIDGET_GUI_H
+#define PLAY_LIST_WIDGET_GUI_H
+
+#include <qmainwindow.h>
+#include <qpe/applnk.h>
+#include <qpe/resource.h>
+#include <qpe/qpemenubar.h>
+
+#include <qtabwidget.h>
+#include <qpe/fileselector.h>
+#include <qpushbutton.h>
+#include <qpopupmenu.h>
+#include <qaction.h>
+
+
+class PlayListWidgetPrivate;
+class PlayListSelection;
+
+class Config;
+class QPEToolBar;
+class QListViewItem;
+class QListView;
+class QPoint;
+class QAction;
+class QLabel;
+
+class PlayListWidgetPrivate {
+public:
+ QToolButton *tbPlay, *tbFull, *tbLoop, *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 );
+ }
+};
+
+
+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 );
+ }
+};
+
+class PlayListWidgetGui : public QMainWindow {
+ Q_OBJECT
+public:
+ PlayListWidgetGui( QWidget* parent=0, const char* name=0, WFlags fl=0 );
+ ~PlayListWidgetGui();
+
+protected:
+ QTabWidget * tabWidget;
+ QListView *audioView, *videoView, *playlistView;
+ QLabel *libString;
+ QPopupMenu *pmView ;
+ bool fromSetDocument;
+ bool insanityBool;
+ QString setDocFileRef;
+ // retrieve the current playlist entry (media file link)
+ QPushButton *tbDeletePlaylist;
+ int selected;
+ QPopupMenu *pmPlayList;
+ FileSelector* playLists;
+ QPopupMenu *skinsMenu;
+ PlayListWidgetPrivate *d; // Private implementation data
+ QVBox *vbox1;
+ QVBox *vbox5;
+ QPEToolBar *bar;
+ void setActiveWindow(); // need to handle this to show the right view
+ void setView( char );
+
+};
+
+#endif
+