diff options
Diffstat (limited to 'kcontrol/hwmanager/devicepropsdlg.cpp')
-rw-r--r-- | kcontrol/hwmanager/devicepropsdlg.cpp | 128 |
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())); } } } |