Sophie

Sophie

distrib > Mandriva > 2006.0 > i586 > media > main-src > by-pkgid > a6bc312ce50b5c8d0c51736e58ac32bc > files > 169

kdebase-3.4.2-55mdk.src.rpm

--- kdebase-3.2/kioslave/devices/kdedmodule/mountwatcher.cpp--	2004-03-10 15:40:49.000000000 +0100
+++ kdebase-3.2/kioslave/devices/kdedmodule/mountwatcher.cpp	2004-03-10 15:42:50.000000000 +0100
@@ -293,6 +293,7 @@ void MountWatcherModule::removeSpecialDe
 
 void MountWatcherModule::readDFDone()
 {
+  mDiskList.cleanDisk();
 	QStringList oldmountList(mountList);
 	QStringList oldcompleteList(completeList);
 	mountList.clear();
--- kdebase-3.2/kioslave/devices/kdedmodule/disklist.h--	2004-03-10 15:40:45.000000000 +0100
+++ kdebase-3.2/kioslave/devices/kdedmodule/disklist.h	2004-03-10 15:42:10.000000000 +0100
@@ -69,7 +69,7 @@ public:
    DiskEntry* first() {return disks->first();};
    DiskEntry* next() {return disks->next();};
    uint count() { return disks->count(); };
-
+   void cleanDisk();
 public slots:
   void loadExclusionLists();
 
--- kdebase-3.2/kioslave/devices/kdedmodule/disklist.cpp--	2004-03-10 15:40:41.000000000 +0100
+++ kdebase-3.2/kioslave/devices/kdedmodule/disklist.cpp	2004-03-10 15:44:08.000000000 +0100
@@ -55,6 +55,39 @@ DiskList::~DiskList()
 {
 }
 
+void DiskList::cleanDisk()
+{
+  for (DiskEntry *ent= first();ent;ent=next())
+    {
+      if(ent->fsType()=="supermount")
+	{
+	  bool foundtype=false;
+	  KMountPoint::List mountPoints = KMountPoint::currentMountPoints();
+	  for(KMountPoint::List::ConstIterator it = mountPoints.begin(); 
+	      it != mountPoints.end(); ++it)
+	    {
+	      if( (*it)->mountType()=="supermount" && ((*it)->mountPoint()==ent->mountPoint()))
+		foundtype=true;
+	    }
+	  if( !foundtype )
+	    {
+	      KMountPoint::List mountPoints2 = KMountPoint::possibleMountPoints(KMountPoint::NeedMountOptions);
+	  
+	      for(KMountPoint::List::ConstIterator it = mountPoints2.begin(); 
+		  it != mountPoints2.end(); ++it)
+		{
+		  if( (*it)->mountType()=="supermount" && ((*it)->mountPoint()==ent->mountPoint()))
+		    {
+		      foundtype=true;
+		    }
+		}
+	    }
+	  if( !foundtype)
+	    disks->remove(ent);
+	}
+    }  
+}
+
 
 void DiskList::loadExclusionLists()
 {
@@ -82,8 +115,10 @@ bool DiskList::ignoreDisk(DiskEntry *dis
 	else
 		ignore=true;
 	if (  disk->fsType() == "supermount")
+	{
+		disk->setMounted(TRUE);
 		ignore = false;
-	
+	}
 	if (!ignore) {
 		for (QRegExp *exp=mountPointExclusionList.getFirst();exp;exp=mountPointExclusionList.next())
 		{