summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--microkde/kio/kio/kdirwatch.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/microkde/kio/kio/kdirwatch.cpp b/microkde/kio/kio/kdirwatch.cpp
index 98d24e0..1596d1f 100644
--- a/microkde/kio/kio/kdirwatch.cpp
+++ b/microkde/kio/kio/kdirwatch.cpp
@@ -574,49 +574,50 @@ void KDirWatchPrivate::addEntry(KDirWatch* instance, const QString& _path,
574 } 574 }
575 } 575 }
576#endif 576#endif
577 } 577 }
578 else { 578 else {
579 (*it).addClient(instance); 579 (*it).addClient(instance);
580 kdDebug(7001) << "Added already watched Entry " << path 580 kdDebug(7001) << "Added already watched Entry " << path
581 << " (now " << (*it).clients() << " clients)" 581 << " (now " << (*it).clients() << " clients)"
582 << QString(" [%1]").arg(instance->name()) << endl; 582 << QString(" [%1]").arg(instance->name()) << endl;
583 } 583 }
584 return; 584 return;
585 } 585 }
586 586
587 // we have a new path to watch 587 // we have a new path to watch
588 588
589 struct stat stat_buf; 589 struct stat stat_buf;
590 bool exists = (stat(QFile::encodeName(path), &stat_buf) == 0); 590 bool exists = (stat(QFile::encodeName(path), &stat_buf) == 0);
591 591
592 Entry newEntry; 592 Entry newEntry;
593 m_mapEntries.insert( path, newEntry ); 593 m_mapEntries.insert( path, newEntry );
594 // the insert does a copy, so we have to use <e> now 594 // the insert does a copy, so we have to use <e> now
595 Entry* e = &(m_mapEntries[path]); 595 Entry* e = &(m_mapEntries[path]);
596 596
597 if (exists) { 597 if (exists) {
598 e->isDir = S_ISDIR(stat_buf.st_mode); 598 QFileInfo fi ( path );
599 e->isDir = fi.isDir();
599 600
600 if (e->isDir && !isDir) 601 if (e->isDir && !isDir)
601 qWarning("KDirWatch: %s is a directory. Use addDir!", path.ascii()); 602 qWarning("KDirWatch: %s is a directory. Use addDir!", path.ascii());
602 else if (!e->isDir && isDir) 603 else if (!e->isDir && isDir)
603 qWarning("KDirWatch: %s is a file. Use addFile!", path.ascii()); 604 qWarning("KDirWatch: %s is a file. Use addFile!", path.ascii());
604 605
605 e->m_ctime = stat_buf.st_ctime; 606 e->m_ctime = stat_buf.st_ctime;
606 e->m_status = Normal; 607 e->m_status = Normal;
607 e->m_nlink = stat_buf.st_nlink; 608 e->m_nlink = stat_buf.st_nlink;
608 } 609 }
609 else { 610 else {
610 e->isDir = isDir; 611 e->isDir = isDir;
611 e->m_ctime = invalid_ctime; 612 e->m_ctime = invalid_ctime;
612 e->m_status = NonExistent; 613 e->m_status = NonExistent;
613 e->m_nlink = 0; 614 e->m_nlink = 0;
614 } 615 }
615 616
616 e->path = path; 617 e->path = path;
617 if (sub_entry) 618 if (sub_entry)
618 e->m_entries.append(sub_entry); 619 e->m_entries.append(sub_entry);
619 else 620 else
620 e->addClient(instance); 621 e->addClient(instance);
621 622
622 kdDebug(7001) << "Added " << (e->isDir ? "Dir ":"File ") << path 623 kdDebug(7001) << "Added " << (e->isDir ? "Dir ":"File ") << path