[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: [PATCH] kdirwatch.cpp
From: Otto Bruggeman <bruggie () home ! nl>
Date: 2002-09-21 23:59:37
[Download RAW message or body]
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
["kdirwatch.cpp.diff" (text/x-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 )
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic