[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-panel-devel
Subject:    Re: [Panel-devel] SolidDeviceEngine
From:       Petri =?utf-8?q?Damst=C3=A9n?= <petri.damsten () dnainternet ! net>
Date:       2007-11-01 20:38:34
Message-ID: 200711012238.35087.petri.damsten () dnainternet ! net
[Download RAW message or body]

[Attachment #2 (multipart/signed)]

[Attachment #4 (multipart/mixed)]


On Thursday 01 November 2007 21:20:05 Aaron J. Seigo wrote:
> this should not be necessary:
>
>  if (!sources().contains(name)) {
>
> because if it does exist, it just replaces the old data with the new. which
> is probably what you want: the latest information, right?

Yes. Removed.

> as a side note, i'd personally put the filling of devicelist into its own
> method ... huge, long methods that sprawl on forever are really nasty
> looking and produce the sorts of hard-to-read patches like yours (which is
> mostly just whitespace changes) ...

fillDevices function added.

new patch attached.

-- 
If the Earth is the size of a pea in New York, then the Sun
is a beachball 50m away, Pluto is 4km away, and the next
nearest star is in Tokyo.  Now shrink Pluto's orbit into a
coffee cup; then our Milky Way Galaxy fills North America.

["SolidDeviceEngine.diff" (text/x-diff)]

Index: workspace/plasma/dataengines/soliddevice/soliddeviceengine.cpp
===================================================================
--- workspace/plasma/dataengines/soliddevice/soliddeviceengine.cpp	(revision 731779)
+++ workspace/plasma/dataengines/soliddevice/soliddeviceengine.cpp	(working copy)
@@ -54,158 +54,158 @@
     delete signalmanager;
 }
 
+void SolidDeviceEngine::fillDevices()
+{
+    foreach(Solid::Device device, \
Solid::Device::listFromType(Solid::DeviceInterface::Processor)) { +        \
processorlist << device.udi(); +        if (!devicelist.contains(device.udi())) {
+            devicelist << device.udi();
+            devicemap[device.udi()] = device;
+        }
+    }
+    foreach(Solid::Device device, \
Solid::Device::listFromType(Solid::DeviceInterface::Block)) { +        blocklist << \
device.udi(); +        if (!devicelist.contains(device.udi())) {
+            devicelist << device.udi();
+            devicemap[device.udi()] = device;
+        }
+    }
+    foreach(Solid::Device device, \
Solid::Device::listFromType(Solid::DeviceInterface::StorageAccess)) { +        \
storageaccesslist << device.udi(); +        if (!devicelist.contains(device.udi())) {
+            devicelist << device.udi();
+            devicemap[device.udi()] = device;
+        }
+    }
+    foreach(Solid::Device device, \
Solid::Device::listFromType(Solid::DeviceInterface::StorageDrive)) { +        \
storagedrivelist << device.udi(); +        if (!devicelist.contains(device.udi())) {
+            devicelist << device.udi();
+            devicemap[device.udi()] = device;
+        }
+    }
+    foreach(Solid::Device device, \
Solid::Device::listFromType(Solid::DeviceInterface::OpticalDrive)) { +        \
opticaldrivelist << device.udi(); +        if (!devicelist.contains(device.udi())) {
+            devicelist << device.udi();
+            devicemap[device.udi()] = device;
+        }
+    }
+    foreach(Solid::Device device, \
Solid::Device::listFromType(Solid::DeviceInterface::StorageVolume)) { +        \
storagevolumelist << device.udi(); +        if (!devicelist.contains(device.udi())) {
+            devicelist << device.udi();
+            devicemap[device.udi()] = device;
+        }
+    }
+    foreach(Solid::Device device, \
Solid::Device::listFromType(Solid::DeviceInterface::OpticalDisc)) { +        \
opticaldisclist << device.udi(); +        if (!devicelist.contains(device.udi())) {
+            devicelist << device.udi();
+            devicemap[device.udi()] = device;
+        }
+    }
+    foreach(Solid::Device device, \
Solid::Device::listFromType(Solid::DeviceInterface::Camera)) { +        cameralist << \
device.udi(); +        if (!devicelist.contains(device.udi())) {
+            devicelist << device.udi();
+            devicemap[device.udi()] = device;
+        }
+    }
+    foreach(Solid::Device device, \
Solid::Device::listFromType(Solid::DeviceInterface::PortableMediaPlayer)) { +        \
portablemediaplayerlist << device.udi(); +        if \
(!devicelist.contains(device.udi())) { +            devicelist << device.udi();
+            devicemap[device.udi()] = device;
+        }
+    }
+    foreach(Solid::Device device, \
Solid::Device::listFromType(Solid::DeviceInterface::NetworkInterface)) { +        \
networkinterfacelist << device.udi(); +        if \
(!devicelist.contains(device.udi())) { +            devicelist << device.udi();
+            devicemap[device.udi()] = device;
+        }
+    }
+    foreach(Solid::Device device, \
Solid::Device::listFromType(Solid::DeviceInterface::AcAdapter)) { +        \
acadapterlist << device.udi(); +        if (!devicelist.contains(device.udi())) {
+            devicelist << device.udi();
+            devicemap[device.udi()] = device;
+        }
+    }
+    foreach(Solid::Device device, \
Solid::Device::listFromType(Solid::DeviceInterface::Battery)) { +        batterylist \
<< device.udi(); +        if (!devicelist.contains(device.udi())) {
+            devicelist << device.udi();
+            devicemap[device.udi()] = device;
+        }
+    }
+    foreach(Solid::Device device, \
Solid::Device::listFromType(Solid::DeviceInterface::Button)) { +        buttonlist << \
device.udi(); +        if (!devicelist.contains(device.udi())) {
+            devicelist << device.udi();
+            devicemap[device.udi()] = device;
+        }
+    }
+    foreach(Solid::Device device, \
Solid::Device::listFromType(Solid::DeviceInterface::AudioInterface)) { +        \
audiointerfacelist << device.udi(); +        if (!devicelist.contains(device.udi())) \
{ +            devicelist << device.udi();
+            devicemap[device.udi()] = device;
+        }
+    }
+    foreach(Solid::Device device, \
Solid::Device::listFromType(Solid::DeviceInterface::DvbInterface)) { +        \
dvbinterfacelist << device.udi(); +        if (!devicelist.contains(device.udi())) {
+            devicelist << device.udi();
+            devicemap[device.udi()] = device;
+        }
+    }
+    foreach(Solid::Device device, \
Solid::Device::listFromType(Solid::DeviceInterface::Unknown)) { +        unknownlist \
<< device.udi(); +        if (!devicelist.contains(device.udi())) {
+            devicelist << device.udi();
+            devicemap[device.udi()] = device;
+        }
+    }
+}
+
 bool SolidDeviceEngine::sourceRequested(const QString &name)
 {
     /* This creates a list of all available devices.  This must be called first \
                before any other sources
      * will be available.
      */
     if (name == "Devices") {
-        //if the devicelist is already populated, return
-        if (!devicelist.isEmpty()) {
-            return true;
-        }
+        if (devicelist.isEmpty()) {
+            fillDevices();
 
-        foreach(Solid::Device device, \
                Solid::Device::listFromType(Solid::DeviceInterface::Processor)) {
-            processorlist << device.udi();
-            if (!devicelist.contains(device.udi())) {
-                devicelist << device.udi();
-                devicemap[device.udi()] = device;
+            if (devicelist.isEmpty() ) {
+                return false;
             }
+            //detect when new devices are added
+            Solid::DeviceNotifier *notifier = Solid::DeviceNotifier::instance();
+            connect(notifier, SIGNAL(deviceAdded(const QString&)),
+                    this, SLOT(deviceAdded(const QString&)));
+            connect(notifier, SIGNAL(deviceRemoved(const QString&)),
+                    this, SLOT(deviceRemoved(const QString&)));
         }
         setData(name, I18N_NOOP("Proccessor List"), processorlist);
-        foreach(Solid::Device device, \
                Solid::Device::listFromType(Solid::DeviceInterface::Block)) {
-            blocklist << device.udi();
-            if (!devicelist.contains(device.udi())) {
-                devicelist << device.udi();
-                devicemap[device.udi()] = device;
-            }
-        }
         setData(name, I18N_NOOP("Block List"), blocklist);
-        foreach(Solid::Device device, \
                Solid::Device::listFromType(Solid::DeviceInterface::StorageAccess)) {
-            storageaccesslist << device.udi();
-            if (!devicelist.contains(device.udi())) {
-                devicelist << device.udi();
-                devicemap[device.udi()] = device;
-            }
-        }
         setData(name, I18N_NOOP("Storage Access List"), storageaccesslist);
-        foreach(Solid::Device device, \
                Solid::Device::listFromType(Solid::DeviceInterface::StorageDrive)) {
-            storagedrivelist << device.udi();
-            if (!devicelist.contains(device.udi())) {
-                devicelist << device.udi();
-                devicemap[device.udi()] = device;
-            }
-        }
         setData(name, I18N_NOOP("Storage Drive List"), storagedrivelist);
-        foreach(Solid::Device device, \
                Solid::Device::listFromType(Solid::DeviceInterface::OpticalDrive)) {
-            opticaldrivelist << device.udi();
-            if (!devicelist.contains(device.udi())) {
-                devicelist << device.udi();
-                devicemap[device.udi()] = device;
-            }
-        }
         setData(name, I18N_NOOP("Optical Drive List"), opticaldrivelist);
-        foreach(Solid::Device device, \
                Solid::Device::listFromType(Solid::DeviceInterface::StorageVolume)) {
-            storagevolumelist << device.udi();
-            if (!devicelist.contains(device.udi())) {
-                devicelist << device.udi();
-                devicemap[device.udi()] = device;
-            }
-        }
         setData(name, I18N_NOOP("Storage Volume List"), storagevolumelist);
-        foreach(Solid::Device device, \
                Solid::Device::listFromType(Solid::DeviceInterface::OpticalDisc)) {
-            opticaldisclist << device.udi();
-            if (!devicelist.contains(device.udi())) {
-                devicelist << device.udi();
-                devicemap[device.udi()] = device;
-            }
-        }
         setData(name, I18N_NOOP("Optical Disc List"), opticaldisclist);
-        foreach(Solid::Device device, \
                Solid::Device::listFromType(Solid::DeviceInterface::Camera)) {
-            cameralist << device.udi();
-            if (!devicelist.contains(device.udi())) {
-                devicelist << device.udi();
-                devicemap[device.udi()] = device;
-            }
-        }
         setData(name, I18N_NOOP("Camera List"), cameralist);
-        foreach(Solid::Device device, \
                Solid::Device::listFromType(Solid::DeviceInterface::PortableMediaPlayer)) \
                {
-            portablemediaplayerlist << device.udi();
-            if (!devicelist.contains(device.udi())) {
-                devicelist << device.udi();
-                devicemap[device.udi()] = device;
-            }
-        }
         setData(name, I18N_NOOP("Portable Media Player List"), \
                portablemediaplayerlist);
-        foreach(Solid::Device device, \
                Solid::Device::listFromType(Solid::DeviceInterface::NetworkInterface)) \
                {
-            networkinterfacelist << device.udi();
-            if (!devicelist.contains(device.udi())) {
-                devicelist << device.udi();
-                devicemap[device.udi()] = device;
-            }
-        }
         setData(name, I18N_NOOP("Network Interface List"), networkinterfacelist);
-        foreach(Solid::Device device, \
                Solid::Device::listFromType(Solid::DeviceInterface::AcAdapter)) {
-            acadapterlist << device.udi();
-            if (!devicelist.contains(device.udi())) {
-                devicelist << device.udi();
-                devicemap[device.udi()] = device;
-            }
-        }
         setData(name, I18N_NOOP("Ac Adapter List"), acadapterlist);
-        foreach(Solid::Device device, \
                Solid::Device::listFromType(Solid::DeviceInterface::Battery)) {
-            batterylist << device.udi();
-            if (!devicelist.contains(device.udi())) {
-                devicelist << device.udi();
-                devicemap[device.udi()] = device;
-            }
-        }
         setData(name, I18N_NOOP("Battery List"), batterylist);
-        foreach(Solid::Device device, \
                Solid::Device::listFromType(Solid::DeviceInterface::Button)) {
-            buttonlist << device.udi();
-            if (!devicelist.contains(device.udi())) {
-                devicelist << device.udi();
-                devicemap[device.udi()] = device;
-            }
-        }
         setData(name, I18N_NOOP("Button List"), buttonlist);
-        foreach(Solid::Device device, \
                Solid::Device::listFromType(Solid::DeviceInterface::AudioInterface)) \
                {
-            audiointerfacelist << device.udi();
-            if (!devicelist.contains(device.udi())) {
-                devicelist << device.udi();
-                devicemap[device.udi()] = device;
-            }
-        }
         setData(name, I18N_NOOP("Audio Interface List"), audiointerfacelist);
-        foreach(Solid::Device device, \
                Solid::Device::listFromType(Solid::DeviceInterface::DvbInterface)) {
-            dvbinterfacelist << device.udi();
-            if (!devicelist.contains(device.udi())) {
-                devicelist << device.udi();
-                devicemap[device.udi()] = device;
-            }
-        }
         setData(name, I18N_NOOP("DVB Interface List"), dvbinterfacelist);
-        foreach(Solid::Device device, \
                Solid::Device::listFromType(Solid::DeviceInterface::Unknown)) {
-            unknownlist << device.udi();
-            if (!devicelist.contains(device.udi())) {
-                devicelist << device.udi();
-                devicemap[device.udi()] = device;
-            }
-        }
         setData(name, I18N_NOOP("Unknown List"), unknownlist);
-
-        if (devicelist.isEmpty() ) {
-            return false;
-        }
         setData(name, I18N_NOOP("Device List"), devicelist);
-
-        //detect when new devices are added
-        Solid::DeviceNotifier *notifier = Solid::DeviceNotifier::instance();
-        connect(notifier, SIGNAL(deviceAdded(const QString&)),
-                this, SLOT(deviceAdded(const QString&)));
-        connect(notifier, SIGNAL(deviceRemoved(const QString&)),
-                this, SLOT(deviceRemoved(const QString&)));
-
         return true;
     }
     else {
@@ -674,7 +674,7 @@
         if (!device.isValid()) {
             return false;
         }
-        
+
         Solid::StorageAccess *storageaccess = device.as<Solid::StorageAccess>();
         if (storageaccess == 0) return false;
         setData(udi, I18N_NOOP("Free Space"), \
                freeDiskSpace(storageaccess->filePath()));
Index: workspace/plasma/dataengines/soliddevice/soliddeviceengine.h
===================================================================
--- workspace/plasma/dataengines/soliddevice/soliddeviceengine.h	(revision 731779)
+++ workspace/plasma/dataengines/soliddevice/soliddeviceengine.h	(working copy)
@@ -47,7 +47,8 @@
     bool populateDeviceData(const QString &name);
     qlonglong freeDiskSpace(const QString &mountPoint);
     bool updateFreeSpace(const QString &udi);
-    
+    void fillDevices();
+
     QStringList devicelist;
     //setup lists for devicetypes
     QStringList processorlist;
@@ -66,7 +67,7 @@
     QStringList audiointerfacelist;
     QStringList dvbinterfacelist;
     QStringList unknownlist;
-    
+
     QMap<QString, Solid::Device> devicemap;
     DeviceSignalMapManager *signalmanager;
 


["signature.asc" (application/pgp-signature)]

_______________________________________________
Panel-devel mailing list
Panel-devel@kde.org
https://mail.kde.org/mailman/listinfo/panel-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic