--- kdebase-3.3.1/kioslave/devices/kdedmodule/mountwatcher.cpp-- 2004-10-19 12:41:03.889188646 -0400 +++ kdebase-3.3.1/kioslave/devices/kdedmodule/mountwatcher.cpp 2004-10-19 12:44:36.745703158 -0400 @@ -23,6 +23,7 @@ #include <qglobal.h> #include <qfile.h> #include <qtimer.h> +#include <qregexp.h> #include <kdatastream.h> // DO NOT REMOVE, otherwise bool marshalling breaks #include <ksimpleconfig.h> @@ -335,18 +336,72 @@ void MountWatcherModule::readDFDone() entryName+=ent->deviceName().replace("/", ""); entryName+=ent->mountPoint().replace("/",""); QString filename = KURL(ent->deviceName()).fileName(); + QRegExp regDevice("[0-9]"); + QString deviceOrig = filename.left(regDevice.search(filename)); if(!filename.isEmpty()) filename = QString::fromLatin1(" (") + filename + ")"; else filename=" "; + bool newModel = false; + bool newVendor = false; + QString modelLine; + QString vendorLine; + if( !deviceOrig.isEmpty()) + { + QString modelName("/sys/block/"); + modelName+=deviceOrig; + modelName+="/device/model"; + QFile model(modelName); + if( model.exists()) + { + newModel = true; + if ( model.open( IO_ReadOnly ) ) + { + QTextStream stream( &model ); + modelLine = stream.readLine(); + if(!modelLine.isEmpty()) + modelLine=modelLine.simplifyWhiteSpace(); + model.close(); + } + } + + QString vendorName("/sys/block/"); + vendorName+=deviceOrig; + vendorName+="/device/vendor"; + QFile vendor(vendorName); + if( vendor.exists()) + { + newVendor = true; + + if ( vendor.open( IO_ReadOnly ) ) + { + QTextStream stream( &vendor ); + vendorLine = stream.readLine(); + if(!vendorLine.isEmpty()) + vendorLine = vendorLine.simplifyWhiteSpace(); + vendor.close(); + } + } + } + + if (ent->mounted()) { mountList<<(entryName); QString name = ent->niceDescription(); - if (descriptionToDeviceMap[ent->niceDescription()] != ent->deviceName()) - name += filename; - if (descriptionToMountMap[ent->niceDescription()] != ent->mountPoint()) - name = i18n("%1 [%2]").arg(name).arg(ent->mountPoint()); + if(newVendor && newModel) + { + name = QString("%1 %2").arg(vendorLine).arg(modelLine); + } + else + { + + if (descriptionToDeviceMap[ent->niceDescription()] != ent->deviceName()) + name += filename; + if (descriptionToMountMap[ent->niceDescription()] != ent->mountPoint()) + name = i18n("%1 [%2]").arg(name).arg(ent->mountPoint()); + } + mountList<<name; mountList<<ent->deviceName(); mountList<<"file:/"+(ent->mountPoint().startsWith("/")?ent->mountPoint().right(ent->mountPoint().length()-1):ent->mountPoint()); @@ -359,10 +414,19 @@ void MountWatcherModule::readDFDone() { mountList<<entryName; QString name = ent->niceDescription(); - if (descriptionToDeviceMap[ent->niceDescription()] != ent->deviceName()) - name += filename; - if (descriptionToMountMap[ent->niceDescription()] != ent->mountPoint()) - name = i18n("%1 [%2]").arg(name).arg(ent->mountPoint()); + if(newVendor && newModel) + { + name = QString("%1 %2").arg(vendorLine).arg(modelLine); + } + else + { + + if (descriptionToDeviceMap[ent->niceDescription()] != ent->deviceName()) + name += filename; + if (descriptionToMountMap[ent->niceDescription()] != ent->mountPoint()) + name = i18n("%1 [%2]").arg(name).arg(ent->mountPoint()); + } + mountList<<name; mountList<<ent->deviceName(); mountList<<"file:/"+(ent->mountPoint().startsWith("/")?ent->mountPoint().right(ent->mountPoint().length()-1):ent->mountPoint());