[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