summaryrefslogtreecommitdiff
path: root/noncore/multimedia/opieplayer2/playlistfileview.cpp
Unidiff
Diffstat (limited to 'noncore/multimedia/opieplayer2/playlistfileview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/playlistfileview.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/noncore/multimedia/opieplayer2/playlistfileview.cpp b/noncore/multimedia/opieplayer2/playlistfileview.cpp
index 0ed1061..cb16415 100644
--- a/noncore/multimedia/opieplayer2/playlistfileview.cpp
+++ b/noncore/multimedia/opieplayer2/playlistfileview.cpp
@@ -1,21 +1,22 @@
1 1
2#include "playlistfileview.h" 2#include "playlistfileview.h"
3 3
4#include <qfile.h> 4#include <qfile.h>
5#include <qpe/global.h> 5#include <qpe/global.h>
6#include <qpe/resource.h> 6#include <qpe/resource.h>
7 7
8PlayListFileView::PlayListFileView( const QString &mimeTypePattern, const QString &itemPixmapName, QWidget *parent, const char *name ) 8PlayListFileView::PlayListFileView( const QString &mimeTypePattern, const QString &itemPixmapName, QWidget *parent, const char *name )
9 : PlayListView( parent, name ), m_mimeTypePattern( mimeTypePattern ), m_itemPixmapName( itemPixmapName ), m_scannedFiles( false ) 9 : PlayListView( parent, name ), m_mimeTypePattern( mimeTypePattern ), m_itemPixmapName( itemPixmapName ), m_scannedFiles( false ),
10 m_viewPopulated( false )
10{ 11{
11 addColumn( tr( "Title" ), 140); 12 addColumn( tr( "Title" ), 140);
12 addColumn( tr( "Size" ), -1 ); 13 addColumn( tr( "Size" ), -1 );
13 addColumn(tr( "Media" ), 0 ); 14 addColumn(tr( "Media" ), 0 );
14 addColumn(tr( "Path" ), -1 ); 15 addColumn(tr( "Path" ), -1 );
15 setColumnAlignment( 1, Qt::AlignRight ); 16 setColumnAlignment( 1, Qt::AlignRight );
16 setColumnAlignment( 2, Qt::AlignRight ); 17 setColumnAlignment( 2, Qt::AlignRight );
17 setAllColumnsShowFocus( TRUE ); 18 setAllColumnsShowFocus( TRUE );
18 setSorting( 3, TRUE ); 19 setSorting( 3, TRUE );
19 setMultiSelection( TRUE ); 20 setMultiSelection( TRUE );
20 setSelectionMode( QListView::Extended ); 21 setSelectionMode( QListView::Extended );
21} 22}
@@ -23,35 +24,46 @@ PlayListFileView::PlayListFileView( const QString &mimeTypePattern, const QStrin
23PlayListFileView::~PlayListFileView() 24PlayListFileView::~PlayListFileView()
24{ 25{
25} 26}
26 27
27void PlayListFileView::scanFiles() 28void PlayListFileView::scanFiles()
28{ 29{
29 m_files.detachChildren(); 30 m_files.detachChildren();
30 QListIterator<DocLnk> sdit( m_files.children() ); 31 QListIterator<DocLnk> sdit( m_files.children() );
31 for ( ; sdit.current(); ++sdit ) 32 for ( ; sdit.current(); ++sdit )
32 delete sdit.current(); 33 delete sdit.current();
33 34
34 Global::findDocuments( &m_files, m_mimeTypePattern ); 35 Global::findDocuments( &m_files, m_mimeTypePattern );
36
37 if ( m_viewPopulated ) {
38 m_viewPopulated = false;
39 populateView();
40 }
35} 41}
36 42
37void PlayListFileView::populateView() 43void PlayListFileView::populateView()
38{ 44{
45 if ( m_viewPopulated )
46 return;
47
39 clear(); 48 clear();
40 49
41 if( !m_scannedFiles ) { 50 if( !m_scannedFiles ) {
51 m_viewPopulated = false; // avoid a recursion :)
42 scanFiles(); 52 scanFiles();
43 m_scannedFiles = true; 53 m_scannedFiles = true;
44 } 54 }
45 55
56 m_viewPopulated = true;
57
46 QString storage; 58 QString storage;
47 QListIterator<DocLnk> dit( m_files.children() ); 59 QListIterator<DocLnk> dit( m_files.children() );
48 for ( ; dit.current(); ++dit ) { 60 for ( ; dit.current(); ++dit ) {
49 61
50 QListViewItem *newItem; 62 QListViewItem *newItem;
51 63
52 if ( QFile::exists( dit.current()->file() ) || 64 if ( QFile::exists( dit.current()->file() ) ||
53 dit.current()->file().left( 4 ) == "http" ) { 65 dit.current()->file().left( 4 ) == "http" ) {
54 66
55 unsigned long size = QFile( dit.current()->file() ).size(); 67 unsigned long size = QFile( dit.current()->file() ).size();
56 68
57 newItem = new QListViewItem( this, dit.current()->name(), 69 newItem = new QListViewItem( this, dit.current()->name(),