summaryrefslogtreecommitdiff
path: root/noncore/graphics/opie-eye/impl/dir/dir_lister.cpp
Unidiff
Diffstat (limited to 'noncore/graphics/opie-eye/impl/dir/dir_lister.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/impl/dir/dir_lister.cpp53
1 files changed, 36 insertions, 17 deletions
diff --git a/noncore/graphics/opie-eye/impl/dir/dir_lister.cpp b/noncore/graphics/opie-eye/impl/dir/dir_lister.cpp
index d8b332a..ff33cf2 100644
--- a/noncore/graphics/opie-eye/impl/dir/dir_lister.cpp
+++ b/noncore/graphics/opie-eye/impl/dir/dir_lister.cpp
@@ -1,92 +1,111 @@
1/* 1/*
2 * GPLv2 zecke@handhelds.org 2 * GPLv2 zecke@handhelds.org
3 */ 3 */
4 4
5#include "dir_lister.h" 5#include "dir_lister.h"
6 6
7#include <lib/slavemaster.h> 7#include <lib/slavemaster.h>
8 8
9/* OPIE */ 9/* OPIE */
10#include <opie2/odebug.h> 10#include <opie2/odebug.h>
11#include <qpe/config.h> 11#include <qpe/config.h>
12#include <qpe/qpeapplication.h> 12#include <qpe/qpeapplication.h>
13using namespace Opie::Core; 13using namespace Opie::Core;
14 14
15/* QT */ 15/* QT */
16#include <qdir.h> 16#include <qdir.h>
17#include <qfileinfo.h> 17#include <qfileinfo.h>
18 18
19Dir_DirLister::Dir_DirLister( bool list ) 19Dir_DirLister::Dir_DirLister( bool list,bool rec,int recdepth )
20 : PDirLister( "dir_dir_lister" ) 20 : PDirLister( "dir_dir_lister" )
21{ 21{
22 m_allFiles = list; 22 m_allFiles = list;
23 m_recursive = rec;
24 m_recDepth = recdepth;
25 if (m_recDepth<1) m_recDepth = 1;
26 if (m_recDepth>10) m_recDepth = 10;
23 owarn << "All Files " << m_allFiles << "" << oendl; 27 owarn << "All Files " << m_allFiles << "" << oendl;
24 SlaveHelper::slaveConnectSignals( this ); 28 SlaveHelper::slaveConnectSignals( this );
29 m_Filter = (m_allFiles?"*":"*.jpg;*.jpeg;*.JPG;*.PNG;*.GIF;*.BMP;*.png;*.bmp;*.gif");
25} 30}
26 31
27QString Dir_DirLister::defaultPath()const { 32QString Dir_DirLister::defaultPath()const {
28 return QPEApplication::documentDir(); 33 return QPEApplication::documentDir();
29} 34}
30 35
31QString Dir_DirLister::setStartPath( const QString& path ) { 36QString Dir_DirLister::setStartPath( const QString& path ) {
32 m_currentDir.cd( path ); 37 m_currentDir.cd( path );
33 if (!m_currentDir.exists() ) 38 if (!m_currentDir.exists() )
34 m_currentDir.cd(defaultPath()); 39 m_currentDir.cd(defaultPath());
35 40
36 41
37 return m_currentDir.absPath(); 42 return m_currentDir.absPath();
38} 43}
39 44
40QString Dir_DirLister::currentPath()const { 45QString Dir_DirLister::currentPath()const {
41 return m_currentDir.absPath(); 46 return m_currentDir.absPath();
42} 47}
43 48
44 49
45QStringList Dir_DirLister::folders()const { 50QStringList Dir_DirLister::folders()const {
46 return m_currentDir.entryList( QDir::Dirs ); 51 return m_currentDir.entryList( QDir::Dirs );
47} 52}
48 53
49QStringList Dir_DirLister::files()const { 54QStringList Dir_DirLister::recFiles(const QString&aPath,int currentDepth)const
50 if ( m_allFiles ) 55{
51 return m_currentDir.entryList( QDir::Files ); 56 QStringList all;
52 else { 57 if (currentDepth>m_recDepth) return all;
53 QStringList out; 58
54 QStringList list = m_currentDir.entryList( QDir::Files | QDir::Readable ); 59 QString subPath;
55 for (QStringList::Iterator it = list.begin(); it != list.end();++it ) { 60 subPath = aPath;
56 QFileInfo inf( *it ); 61 if (subPath.length()==0) {
57 QString ext = inf.extension(false).lower(); 62 subPath=".";
58 if( ext == QString::fromLatin1("jpg") || 63 }
59 ext == QString::fromLatin1("jpeg" ) || 64 QDir checkDir(currentPath()+"/"+aPath);
60 ext == QString::fromLatin1("png" ) || 65
61 ext == QString::fromLatin1("bmp" ) || 66 QStringList p = checkDir.entryList( QDir::Dirs );
62 ext == QString::fromLatin1("gif" ) ) 67 all+=checkDir.entryList(m_Filter,QDir::Files|QDir::Readable);
63 out.append( *it ); 68 QStringList tmp;
69 for (unsigned i = 0; i < p.count();++i) {
70 if (p[i]=="." || p[i]=="..") continue;
71 tmp =recFiles(subPath+"/"+p[i],currentDepth+1);
72 for (unsigned j = 0; j < tmp.count();++j) {
73 all.append(p[i]+"/"+tmp[j]);
64 } 74 }
65 return out;
66 } 75 }
76 return all;
77}
78
79QStringList Dir_DirLister::files()const
80{
81 if (m_recursive) {
82 odebug << "Startpfad: "<<m_currentDir.absPath()<<oendl;
83 return recFiles("",0);
84 }
85 return m_currentDir.entryList(m_Filter,QDir::Files|QDir::Readable);
67} 86}
68 87
69void Dir_DirLister::deleteImage( const QString& fl) { 88void Dir_DirLister::deleteImage( const QString& fl) {
70 QFile::remove( fl ); 89 QFile::remove( fl );
71} 90}
72 91
73void Dir_DirLister::thumbNail( const QString& str, int w, int h) { 92void Dir_DirLister::thumbNail( const QString& str, int w, int h) {
74 SlaveMaster::self()->thumbNail( str, w, h ); 93 SlaveMaster::self()->thumbNail( str, w, h );
75} 94}
76 95
77QImage Dir_DirLister::image( const QString& str, Factor f, int m) { 96QImage Dir_DirLister::image( const QString& str, Factor f, int m) {
78 return SlaveMaster::self()->image( str, f, m ); 97 return SlaveMaster::self()->image( str, f, m );
79} 98}
80 99
81void Dir_DirLister::imageInfo( const QString& str) { 100void Dir_DirLister::imageInfo( const QString& str) {
82 SlaveMaster::self()->thumbInfo( str ); 101 SlaveMaster::self()->thumbInfo( str );
83} 102}
84 103
85void Dir_DirLister::fullImageInfo( const QString& str) { 104void Dir_DirLister::fullImageInfo( const QString& str) {
86 SlaveMaster::self()->imageInfo( str ); 105 SlaveMaster::self()->imageInfo( str );
87} 106}
88 107
89QString Dir_DirLister::nameToFname(const QString&name)const 108QString Dir_DirLister::nameToFname(const QString&name)const
90{ 109{
91 return name; 110 return name;
92} 111}