summaryrefslogtreecommitdiffstats
path: root/kcontrol/hwmanager/devicepropsdlg.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kcontrol/hwmanager/devicepropsdlg.cpp')
-rw-r--r--kcontrol/hwmanager/devicepropsdlg.cpp128
1 files changed, 116 insertions, 12 deletions
diff --git a/kcontrol/hwmanager/devicepropsdlg.cpp b/kcontrol/hwmanager/devicepropsdlg.cpp
index af16249ba..653f0c244 100644
--- a/kcontrol/hwmanager/devicepropsdlg.cpp
+++ b/kcontrol/hwmanager/devicepropsdlg.cpp
@@ -23,6 +23,7 @@
#include <tqlineedit.h>
#include <tqlabel.h>
#include <tqtabwidget.h>
+#include <tqgroupbox.h>
#include <tqlayout.h>
#undef Unsorted // Required for --enable-final (tqdir.h)
#include <tqfiledialog.h>
@@ -35,6 +36,30 @@
#include "devicepropsdlg.h"
+SensorDisplayWidget::SensorDisplayWidget(TQWidget *parent)
+ : TQWidget(parent)
+{
+ m_nameLabel = new TQLabel(this);
+ m_valueLabel = new TQLabel(this);
+
+ TQGridLayout *mainGrid = new TQGridLayout(this, 1, 2, 0, 1);
+ mainGrid->setRowStretch(1, 0);
+ mainGrid->addWidget(m_nameLabel, 0, 0);
+ mainGrid->addWidget(m_valueLabel, 0, 1);
+}
+
+SensorDisplayWidget::~SensorDisplayWidget()
+{
+}
+
+void SensorDisplayWidget::setSensorName(TQString name) {
+ m_nameLabel->setText(name);
+}
+
+void SensorDisplayWidget::setSensorValue(TQString value) {
+ m_valueLabel->setText(value);
+}
+
DevicePropertiesDialog::DevicePropertiesDialog(TDEGenericDevice* device, TQWidget *parent)
: KDialogBase(Plain, TQString::null, Ok|Cancel, Ok, parent, 0L, true, true)
{
@@ -54,10 +79,27 @@ DevicePropertiesDialog::DevicePropertiesDialog(TDEGenericDevice* device, TQWidge
if ((m_device->type() != TDEGenericDeviceType::OtherSensor) && (m_device->type() != TDEGenericDeviceType::ThermalSensor)) {
base->tabBarWidget->removePage(base->tabSensor);
}
+ if (m_device->type() != TDEGenericDeviceType::Battery) {
+ base->tabBarWidget->removePage(base->tabBattery);
+ }
+ if (m_device->type() != TDEGenericDeviceType::PowerSupply) {
+ base->tabBarWidget->removePage(base->tabPowerSupply);
+ }
+ if (m_device->type() != TDEGenericDeviceType::Network) {
+ base->tabBarWidget->removePage(base->tabNetwork);
+ }
+
+ if ((m_device->type() == TDEGenericDeviceType::OtherSensor) || (m_device->type() == TDEGenericDeviceType::ThermalSensor)) {
+ base->groupSensors->setColumnLayout(0, TQt::Vertical );
+ base->groupSensors->layout()->setSpacing( KDialog::spacingHint() );
+ base->groupSensors->layout()->setMargin( KDialog::marginHint() );
+ m_sensorDataGrid = new TQGridLayout( base->groupSensors->layout() );
+ m_sensorDataGrid->setAlignment( TQt::AlignTop );
+ m_sensorDataGridWidgets.setAutoDelete(true);
+ }
TQGridLayout *mainGrid = new TQGridLayout(plainPage(), 1, 1, 0, spacingHint());
mainGrid->setRowStretch(1, 1);
- mainGrid->setRowStretch(1, 1);
mainGrid->addWidget(base, 0, 0);
}
@@ -96,6 +138,19 @@ void DevicePropertiesDialog::populateDeviceInformation() {
base->labelDeviceDriver->setText((m_device->deviceDriver().isNull())?i18n("<none>"):m_device->deviceDriver());
base->labelDeviceClass->setText((m_device->PCIClass().isNull())?i18n("<n/a>"):m_device->PCIClass());
base->labelModalias->setText((m_device->moduleAlias().isNull())?i18n("<none>"):m_device->moduleAlias());
+
+ // These might be redundant
+ #if 0
+ base->labelVendorName->setText((m_device->vendorName().isNull())?i18n("<unknown>"):m_device->vendorName());
+ base->labelVendorModel->setText((m_device->vendorModel().isNull())?i18n("<unknown>"):m_device->vendorModel());
+ #else
+ base->labelVendorName->hide();
+ base->stocklabelVendorName->hide();
+ base->labelVendorModel->hide();
+ base->stocklabelVendorModel->hide();
+ #endif
+ base->labelSerialNumber->setText((m_device->serialNumber().isNull())?i18n("<unknown>"):m_device->serialNumber());
+
if (m_device->subsystem() == "pci") {
base->labelBusID->setText(m_device->busID());
base->labelBusID->show();
@@ -183,13 +238,20 @@ void DevicePropertiesDialog::populateDeviceInformation() {
if ((m_device->type() == TDEGenericDeviceType::OtherSensor) || (m_device->type() == TDEGenericDeviceType::ThermalSensor)) {
TDESensorDevice* sdevice = static_cast<TDESensorDevice*>(m_device);
- // FIXME
- // This is rather ugly
- // It should be handled via dynamic addition/update of new TQLabel objects, but that is somewhat complex
- TQString sensorLabels = "<qt>";
- TQString sensorDataPoints = "<qt>";
TDESensorClusterMap map = sdevice->values();
TDESensorClusterMap::Iterator it;
+ unsigned int i;
+
+ if (m_sensorDataGridWidgets.count() != map.count()) {
+ m_sensorDataGridWidgets.clear();
+ for (i=0;i<map.count();i++) {
+ SensorDisplayWidget* sensorWidget = new SensorDisplayWidget(base->groupSensors);
+ m_sensorDataGrid->addWidget(sensorWidget, i, 0);
+ m_sensorDataGridWidgets.append(sensorWidget);
+ }
+ }
+
+ i=0;
for ( it = map.begin(); it != map.end(); ++it ) {
TQString sensorlabel = it.key();
TQString sensordatastring;
@@ -220,14 +282,56 @@ void DevicePropertiesDialog::populateDeviceInformation() {
sensordatastring.truncate(sensordatastring.length()-2);
}
- sensorLabels += sensorlabel + "<br>";
- sensorDataPoints += sensordatastring + "<br>";
+ m_sensorDataGridWidgets.at(i)->setSensorName(sensorlabel);
+ m_sensorDataGridWidgets.at(i)->setSensorValue(sensordatastring);
+
+ i++;
}
- sensorLabels += "</qt>";
- sensorDataPoints += "</qt>";
+ }
+
+ if (m_device->type() == TDEGenericDeviceType::Battery) {
+ TDEBatteryDevice* bdevice = static_cast<TDEBatteryDevice*>(m_device);
+
+ base->labelCurrentBatteryEnergy->setText((bdevice->energy()<0)?i18n("<unknown>"):TQString("%1 Wh").arg(bdevice->energy()));
+ base->labelMaximumBatteryEnergy->setText((bdevice->maximumEnergy()<0)?i18n("<unknown>"):TQString("%1 Wh").arg(bdevice->maximumEnergy()));
+ base->labelMaximumBatteryDesignEnergy->setText((bdevice->maximumDesignEnergy()<0)?i18n("<unknown>"):TQString("%1 Wh").arg(bdevice->maximumDesignEnergy()));
+ base->labelMinimumBatteryVoltage->setText((bdevice->minimumVoltage()<0)?i18n("<unknown>"):TQString("%1 V").arg(bdevice->minimumVoltage()));
+ base->labelCurrentBatteryVoltage->setText((bdevice->voltage()<0)?i18n("<unknown>"):TQString("%1 V").arg(bdevice->voltage()));
+ base->labelCurrentBatteryDischargeRate->setText((bdevice->dischargeRate()<0)?i18n("<unknown>"):TQString("%1 Vh").arg(bdevice->dischargeRate()));
+ base->labelCurrentBatteryStatus->setText((bdevice->status().isNull())?i18n("<unknown>"):bdevice->status());
+ base->labelBatteryTechnology->setText((bdevice->technology().isNull())?i18n("<unknown>"):bdevice->technology());
+ base->labelBatteryInstalled->setText((bdevice->installed()==0)?i18n("No"):i18n("Yes"));
+ base->labelBatteryCharge->setText((bdevice->chargePercent()<0)?i18n("<unknown>"):TQString("%1 %").arg(bdevice->chargePercent()));
+ }
+
+ if (m_device->type() == TDEGenericDeviceType::PowerSupply) {
+ TDEMainsPowerDevice* pdevice = static_cast<TDEMainsPowerDevice*>(m_device);
+
+ base->labelPowerSupplyOnline->setText((pdevice->online()==0)?i18n("No"):i18n("Yes"));
+ }
+
+ if (m_device->type() == TDEGenericDeviceType::Network) {
+ TDENetworkDevice* ndevice = static_cast<TDENetworkDevice*>(m_device);
+
+ base->labelNetworkMAC->setText((ndevice->macAddress().isNull())?i18n("<unknown>"):ndevice->macAddress());
+ base->labelNetworkState->setText((ndevice->state().isNull())?i18n("<unknown>"):ndevice->state());
+ base->labelNetworkCarrierPresent->setText((ndevice->carrierPresent()==0)?i18n("No"):i18n("Yes"));
+ base->labelNetworkDormant->setText((ndevice->dormant()==0)?i18n("No"):i18n("Yes"));
+
+ base->labelNetworkIPV4Address->setText((ndevice->ipV4Address().isNull())?i18n("<none>"):ndevice->ipV4Address());
+ base->labelNetworkIPV4Netmask->setText((ndevice->ipV4Netmask().isNull())?i18n("<none>"):ndevice->ipV4Netmask());
+ base->labelNetworkIPV4Broadcast->setText((ndevice->ipV4Broadcast().isNull())?i18n("<none>"):ndevice->ipV4Broadcast());
+ base->labelNetworkIPV4Destination->setText((ndevice->ipV4Destination().isNull())?i18n("<none>"):ndevice->ipV4Destination());
+
+ base->labelNetworkIPV6Address->setText((ndevice->ipV6Address().isNull())?i18n("<none>"):ndevice->ipV6Address());
+ base->labelNetworkIPV6Netmask->setText((ndevice->ipV6Netmask().isNull())?i18n("<none>"):ndevice->ipV6Netmask());
+ base->labelNetworkIPV6Broadcast->setText((ndevice->ipV6Broadcast().isNull())?i18n("<none>"):ndevice->ipV6Broadcast());
+ base->labelNetworkIPV6Destination->setText((ndevice->ipV6Destination().isNull())?i18n("<none>"):ndevice->ipV6Destination());
- base->labelSensorNames->setText(sensorLabels);
- base->labelSensorValues->setText(sensorDataPoints);
+ base->labelNetworkRXBytes->setText((ndevice->rxBytes()<0)?i18n("<unknown>"):TDEHardwareDevices::bytesToFriendlySizeString(ndevice->rxBytes()));
+ base->labelNetworkTXBytes->setText((ndevice->txBytes()<0)?i18n("<unknown>"):TDEHardwareDevices::bytesToFriendlySizeString(ndevice->txBytes()));
+ base->labelNetworkRXPackets->setText((ndevice->rxPackets()<0)?i18n("<unknown>"):TQString("%1").arg(ndevice->rxPackets()));
+ base->labelNetworkTXPackets->setText((ndevice->txPackets()<0)?i18n("<unknown>"):TQString("%1").arg(ndevice->txPackets()));
}
}
}