--Boundary-00=_pfQj9JxVdPOaqyp Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8bit Content-Disposition: inline Hi, this patch implements the code for the parameters watchFiles and recursive of addDir in KDirWatch, i hope i did it the right way. Anyway i know it is a bit late for 3.1 so i dont expect it to go in but i would like your opinion about the patch anyway. greetings, Otto --Boundary-00=_pfQj9JxVdPOaqyp Content-Type: text/x-diff; charset="us-ascii"; name="kdirwatch.cpp.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="kdirwatch.cpp.diff" ? kdirwatch.cpp.diff Index: kdirwatch.cpp =================================================================== RCS file: /home/kde/kdelibs/kio/kio/kdirwatch.cpp,v retrieving revision 1.85 diff -u -3 -r1.85 kdirwatch.cpp --- kdirwatch.cpp 2002/09/10 10:11:47 1.85 +++ kdirwatch.cpp 2002/09/21 21:33:31 @@ -1193,15 +1193,46 @@ } -// TODO: add watchFiles/recursive support void KDirWatch::addDir( const QString& _path, bool watchFiles, bool recursive) { - if (watchFiles || recursive) { - kdDebug(7001) << "addDir - recursive/watchFiles not supported in KDE 3.0" - << endl; - } + // Always add the dir to the list if (d) d->addEntry(this, _path, 0, true); + + if ( watchFiles ) { + kdDebug(7001) << "addDir - Watching the files in the directory as well" << endl; + + QDir dir(_path, QString::null, QDir::Unsorted, QDir::Files|QDir::Dirs|QDir::Hidden); + + QStringList files = dir.entryList( "*", QDir::Files|QDir::Hidden, QDir::Unsorted ); + + for ( QStringList::Iterator filesIt = files.begin(); filesIt != files.end(); ++filesIt ) { + if (d) d->addEntry(this, _path+"/"+*filesIt, 0, false); + } + + if ( recursive ) { + kdDebug(7001) << "addDir - Also watching the directories in this dir recursively" << endl; + QStringList dirs = dir.entryList( "*", QDir::Dirs|QDir::Hidden, QDir::Unsorted ); + for ( QStringList::Iterator dirsIt = dirs.begin(); dirsIt != dirs.end(); ++dirsIt ) { + if (*dirsIt == "." || *dirsIt == "..") + continue; + addDir(_path+"/"+*dirsIt, true, true); + } + } + } + else { + if ( recursive ) { + kdDebug(7001) << "addDir - Watching the directories in this dir recursively" << endl; + QDir dir( _path, "*", QDir::Unsorted, QDir::Dirs|QDir::Hidden); + + QStringList dirs = dir.entryList( "*", QDir::Dirs|QDir::Hidden, QDir::Unsorted ); + for ( QStringList::Iterator dirsIt = dirs.begin(); dirsIt != dirs.end(); ++dirsIt ) { + if (*dirsIt == "." || *dirsIt == "..") + continue; + addDir(_path+"/"+*dirsIt, false, true); + } + } + } } void KDirWatch::addFile( const QString& _path ) --Boundary-00=_pfQj9JxVdPOaqyp--