Diffstat (limited to 'noncore/multimedia/opieplayer2/playlistfileview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/multimedia/opieplayer2/playlistfileview.cpp | 14 |
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,66 +1,78 @@ | |||
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 | ||
8 | PlayListFileView::PlayListFileView( const QString &mimeTypePattern, const QString &itemPixmapName, QWidget *parent, const char *name ) | 8 | PlayListFileView::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 | } |
22 | 23 | ||
23 | PlayListFileView::~PlayListFileView() | 24 | PlayListFileView::~PlayListFileView() |
24 | { | 25 | { |
25 | } | 26 | } |
26 | 27 | ||
27 | void PlayListFileView::scanFiles() | 28 | void 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 | ||
37 | void PlayListFileView::populateView() | 43 | void 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(), |
58 | QString::number( size ), "" /*storage*/, | 70 | QString::number( size ), "" /*storage*/, |
59 | dit.current()->file() ); | 71 | dit.current()->file() ); |
60 | newItem->setPixmap( 0, Resource::loadPixmap( m_itemPixmapName ) ); | 72 | newItem->setPixmap( 0, Resource::loadPixmap( m_itemPixmapName ) ); |
61 | } | 73 | } |
62 | } | 74 | } |
63 | } | 75 | } |
64 | 76 | ||
65 | /* vim: et sw=4 ts=4 | 77 | /* vim: et sw=4 ts=4 |
66 | */ | 78 | */ |