summaryrefslogtreecommitdiff
path: root/noncore/graphics/opie-eye/impl/dir/dir_lister.cpp
authoralwin <alwin>2004-11-02 17:52:41 (UTC)
committer alwin <alwin>2004-11-02 17:52:41 (UTC)
commitebdc2d346272bae27c867b855207993985df4450 (patch) (side-by-side diff)
tree37b4710141434e33df3873c16937a6ad6a015eb4 /noncore/graphics/opie-eye/impl/dir/dir_lister.cpp
parente246d0590286f6b9b0d5d40f1a17caa78c015b21 (diff)
downloadopie-ebdc2d346272bae27c867b855207993985df4450.zip
opie-ebdc2d346272bae27c867b855207993985df4450.tar.gz
opie-ebdc2d346272bae27c867b855207993985df4450.tar.bz2
if wanted the user may search directories recursiv
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
@@ -16,12 +16,17 @@ using namespace Opie::Core;
#include <qdir.h>
#include <qfileinfo.h>
-Dir_DirLister::Dir_DirLister( bool list )
+Dir_DirLister::Dir_DirLister( bool list,bool rec,int recdepth )
: PDirLister( "dir_dir_lister" )
{
m_allFiles = list;
+ m_recursive = rec;
+ m_recDepth = recdepth;
+ if (m_recDepth<1) m_recDepth = 1;
+ if (m_recDepth>10) m_recDepth = 10;
owarn << "All Files " << m_allFiles << "" << oendl;
SlaveHelper::slaveConnectSignals( this );
+ m_Filter = (m_allFiles?"*":"*.jpg;*.jpeg;*.JPG;*.PNG;*.GIF;*.BMP;*.png;*.bmp;*.gif");
}
QString Dir_DirLister::defaultPath()const {
@@ -46,24 +51,38 @@ QStringList Dir_DirLister::folders()const {
return m_currentDir.entryList( QDir::Dirs );
}
-QStringList Dir_DirLister::files()const {
- if ( m_allFiles )
- return m_currentDir.entryList( QDir::Files );
- else {
- QStringList out;
- QStringList list = m_currentDir.entryList( QDir::Files | QDir::Readable );
- for (QStringList::Iterator it = list.begin(); it != list.end();++it ) {
- QFileInfo inf( *it );
- QString ext = inf.extension(false).lower();
- if( ext == QString::fromLatin1("jpg") ||
- ext == QString::fromLatin1("jpeg" ) ||
- ext == QString::fromLatin1("png" ) ||
- ext == QString::fromLatin1("bmp" ) ||
- ext == QString::fromLatin1("gif" ) )
- out.append( *it );
+QStringList Dir_DirLister::recFiles(const QString&aPath,int currentDepth)const
+{
+ QStringList all;
+ if (currentDepth>m_recDepth) return all;
+
+ QString subPath;
+ subPath = aPath;
+ if (subPath.length()==0) {
+ subPath=".";
+ }
+ QDir checkDir(currentPath()+"/"+aPath);
+
+ QStringList p = checkDir.entryList( QDir::Dirs );
+ all+=checkDir.entryList(m_Filter,QDir::Files|QDir::Readable);
+ QStringList tmp;
+ for (unsigned i = 0; i < p.count();++i) {
+ if (p[i]=="." || p[i]=="..") continue;
+ tmp =recFiles(subPath+"/"+p[i],currentDepth+1);
+ for (unsigned j = 0; j < tmp.count();++j) {
+ all.append(p[i]+"/"+tmp[j]);
}
- return out;
}
+ return all;
+}
+
+QStringList Dir_DirLister::files()const
+{
+ if (m_recursive) {
+ odebug << "Startpfad: "<<m_currentDir.absPath()<<oendl;
+ return recFiles("",0);
+ }
+ return m_currentDir.entryList(m_Filter,QDir::Files|QDir::Readable);
}
void Dir_DirLister::deleteImage( const QString& fl) {