From 2d09c7060975b70361af847ceb3f84f3b1f4d08d Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Wed, 11 Apr 2012 23:59:58 -0500 Subject: Add device information tabs for prior commit to kcontrol module --- kcontrol/hwmanager/devicepropsdlg.cpp | 128 +++++++- kcontrol/hwmanager/devicepropsdlg.h | 43 ++- kcontrol/hwmanager/devicepropsdlgbase.ui | 539 ++++++++++++++++++++++++++++++- 3 files changed, 691 insertions(+), 19 deletions(-) (limited to 'kcontrol') 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 #include #include +#include #include #undef Unsorted // Required for --enable-final (tqdir.h) #include @@ -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(""):m_device->deviceDriver()); base->labelDeviceClass->setText((m_device->PCIClass().isNull())?i18n(""):m_device->PCIClass()); base->labelModalias->setText((m_device->moduleAlias().isNull())?i18n(""):m_device->moduleAlias()); + + // These might be redundant + #if 0 + base->labelVendorName->setText((m_device->vendorName().isNull())?i18n(""):m_device->vendorName()); + base->labelVendorModel->setText((m_device->vendorModel().isNull())?i18n(""):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(""):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(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 = ""; - TQString sensorDataPoints = ""; TDESensorClusterMap map = sdevice->values(); TDESensorClusterMap::Iterator it; + unsigned int i; + + if (m_sensorDataGridWidgets.count() != map.count()) { + m_sensorDataGridWidgets.clear(); + for (i=0;igroupSensors); + 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 + "
"; - sensorDataPoints += sensordatastring + "
"; + m_sensorDataGridWidgets.at(i)->setSensorName(sensorlabel); + m_sensorDataGridWidgets.at(i)->setSensorValue(sensordatastring); + + i++; } - sensorLabels += "
"; - sensorDataPoints += "
"; + } + + if (m_device->type() == TDEGenericDeviceType::Battery) { + TDEBatteryDevice* bdevice = static_cast(m_device); + + base->labelCurrentBatteryEnergy->setText((bdevice->energy()<0)?i18n(""):TQString("%1 Wh").arg(bdevice->energy())); + base->labelMaximumBatteryEnergy->setText((bdevice->maximumEnergy()<0)?i18n(""):TQString("%1 Wh").arg(bdevice->maximumEnergy())); + base->labelMaximumBatteryDesignEnergy->setText((bdevice->maximumDesignEnergy()<0)?i18n(""):TQString("%1 Wh").arg(bdevice->maximumDesignEnergy())); + base->labelMinimumBatteryVoltage->setText((bdevice->minimumVoltage()<0)?i18n(""):TQString("%1 V").arg(bdevice->minimumVoltage())); + base->labelCurrentBatteryVoltage->setText((bdevice->voltage()<0)?i18n(""):TQString("%1 V").arg(bdevice->voltage())); + base->labelCurrentBatteryDischargeRate->setText((bdevice->dischargeRate()<0)?i18n(""):TQString("%1 Vh").arg(bdevice->dischargeRate())); + base->labelCurrentBatteryStatus->setText((bdevice->status().isNull())?i18n(""):bdevice->status()); + base->labelBatteryTechnology->setText((bdevice->technology().isNull())?i18n(""):bdevice->technology()); + base->labelBatteryInstalled->setText((bdevice->installed()==0)?i18n("No"):i18n("Yes")); + base->labelBatteryCharge->setText((bdevice->chargePercent()<0)?i18n(""):TQString("%1 %").arg(bdevice->chargePercent())); + } + + if (m_device->type() == TDEGenericDeviceType::PowerSupply) { + TDEMainsPowerDevice* pdevice = static_cast(m_device); + + base->labelPowerSupplyOnline->setText((pdevice->online()==0)?i18n("No"):i18n("Yes")); + } + + if (m_device->type() == TDEGenericDeviceType::Network) { + TDENetworkDevice* ndevice = static_cast(m_device); + + base->labelNetworkMAC->setText((ndevice->macAddress().isNull())?i18n(""):ndevice->macAddress()); + base->labelNetworkState->setText((ndevice->state().isNull())?i18n(""):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(""):ndevice->ipV4Address()); + base->labelNetworkIPV4Netmask->setText((ndevice->ipV4Netmask().isNull())?i18n(""):ndevice->ipV4Netmask()); + base->labelNetworkIPV4Broadcast->setText((ndevice->ipV4Broadcast().isNull())?i18n(""):ndevice->ipV4Broadcast()); + base->labelNetworkIPV4Destination->setText((ndevice->ipV4Destination().isNull())?i18n(""):ndevice->ipV4Destination()); + + base->labelNetworkIPV6Address->setText((ndevice->ipV6Address().isNull())?i18n(""):ndevice->ipV6Address()); + base->labelNetworkIPV6Netmask->setText((ndevice->ipV6Netmask().isNull())?i18n(""):ndevice->ipV6Netmask()); + base->labelNetworkIPV6Broadcast->setText((ndevice->ipV6Broadcast().isNull())?i18n(""):ndevice->ipV6Broadcast()); + base->labelNetworkIPV6Destination->setText((ndevice->ipV6Destination().isNull())?i18n(""):ndevice->ipV6Destination()); - base->labelSensorNames->setText(sensorLabels); - base->labelSensorValues->setText(sensorDataPoints); + base->labelNetworkRXBytes->setText((ndevice->rxBytes()<0)?i18n(""):TDEHardwareDevices::bytesToFriendlySizeString(ndevice->rxBytes())); + base->labelNetworkTXBytes->setText((ndevice->txBytes()<0)?i18n(""):TDEHardwareDevices::bytesToFriendlySizeString(ndevice->txBytes())); + base->labelNetworkRXPackets->setText((ndevice->rxPackets()<0)?i18n(""):TQString("%1").arg(ndevice->rxPackets())); + base->labelNetworkTXPackets->setText((ndevice->txPackets()<0)?i18n(""):TQString("%1").arg(ndevice->txPackets())); } } } diff --git a/kcontrol/hwmanager/devicepropsdlg.h b/kcontrol/hwmanager/devicepropsdlg.h index 870e57240..0e8a46b2c 100644 --- a/kcontrol/hwmanager/devicepropsdlg.h +++ b/kcontrol/hwmanager/devicepropsdlg.h @@ -25,6 +25,44 @@ #include "devicepropsdlgbase.h" +/** + * + * Simple sensor name and value display widget + * + * @version 0.1 + * @author Timothy Pearson + */ + +class TDEUI_EXPORT SensorDisplayWidget : public TQWidget +{ + Q_OBJECT +public: + /** + * Create a simple sensor name and value display widget + * @param parent Parent widget for the display widget + */ + SensorDisplayWidget(TQWidget* parent); + virtual ~SensorDisplayWidget(); + + /** + * Set sensor name + * @param name A TQString with the name of the sensor + */ + void setSensorName(TQString name); + + /** + * Set sensor value + * @param value A TQString with the value of the sensor + */ + void setSensorValue(TQString value); + +private: + TQLabel* m_nameLabel; + TQLabel* m_valueLabel; +}; + +typedef TQPtrList SensorDisplayWidgetList; + /** * * Dialog to view and edit hardware device properties @@ -39,7 +77,7 @@ class TDEUI_EXPORT DevicePropertiesDialog : public KDialogBase public: /** * Create a dialog that allows a user to view and edit hardware device properties - * @param parent Parent widget for the line edit dialog + * @param parent Parent widget */ DevicePropertiesDialog(TDEGenericDevice* device, TQWidget *parent); virtual ~DevicePropertiesDialog(); @@ -58,6 +96,9 @@ private: class DevicePropertiesDialogPrivate; DevicePropertiesDialogPrivate* d; + + TQGridLayout* m_sensorDataGrid; + SensorDisplayWidgetList m_sensorDataGridWidgets; }; #endif diff --git a/kcontrol/hwmanager/devicepropsdlgbase.ui b/kcontrol/hwmanager/devicepropsdlgbase.ui index 62570223f..2e13ff9e1 100644 --- a/kcontrol/hwmanager/devicepropsdlgbase.ui +++ b/kcontrol/hwmanager/devicepropsdlgbase.ui @@ -159,6 +159,45 @@ + + stocklabelVendorName + + + Manufacturer: + + + + + labelVendorName + + + + + stocklabelVendorModel + + + Model: + + + + + labelVendorModel + + + + + stocklabelSerialNumber + + + Serial Number: + + + + + labelSerialNumber + + + stocklabelBusID @@ -166,12 +205,12 @@ Bus ID: - + labelBusID - + unnamed @@ -179,7 +218,7 @@ Technical Details: - + labelModalias @@ -435,21 +474,509 @@ Sensor Readings + + + + Spacer4 + + + Vertical + + + Expanding + + + + 20 + 20 + + + + + + + + tabBattery + + + Battery + + + + unnamed + + + + groupBattery + + + Battery Status + unnamed - labelSensorNames + unnamed - + Current Energy - labelSensorValues + labelCurrentBatteryEnergy + + + + + unnamed + + + Maximum Energy + + + + + labelMaximumBatteryEnergy + + + + + unnamed + + + Maximum Design Energy + + + + + labelMaximumBatteryDesignEnergy + + + + + unnamed + + + Minimum Voltage + + + + + labelMinimumBatteryVoltage + + + + + unnamed + + + Current Voltage + + + + + labelCurrentBatteryVoltage + + + + + unnamed + + + Current Discharge Rate + + + + + labelCurrentBatteryDischargeRate + + + + + unnamed + + + Status + + + + + labelCurrentBatteryStatus + + + + + unnamed + + + Technology + + + + + labelBatteryTechnology + + + + + unnamed + + + Installed + + + + + labelBatteryInstalled + + + + + unnamed + + + Current Charge + + + + + labelBatteryCharge + + + + + + + Spacer4 + + + Vertical + + + Expanding + + + + 20 + 20 + + + + + + + + tabPowerSupply + + + Power Supply + + + + unnamed + + + + groupPowerSupply + + + Power Supply Status + + + + unnamed + + + + unnamed + + + Online + + + + + labelPowerSupplyOnline + + + + + + + Spacer4 + + + Vertical + + + Expanding + + + + 20 + 20 + + + + + + + + tabNetwork + + + Network + + + + unnamed + + + + groupNetwork + + + Network Device Information + + + + unnamed + + + + unnamed + + + MAC Address + + + + + labelNetworkMAC + + + + + unnamed + + + Link State + + + + + labelNetworkState + + + + + unnamed + + + Carrier Detected + + + + + labelNetworkCarrierPresent + + + + + unnamed + + + Dormant + + + + + labelNetworkDormant + + + + + + + groupNetworkAddresses + + + Network Addresses + + + + unnamed + + + + unnamed + + + IPv4 Address + + + + + labelNetworkIPV4Address + + + + + unnamed + + + IPv4 Netmask + + + + + labelNetworkIPV4Netmask + + + + + unnamed + + + IPv4 Broadcast + + + + + labelNetworkIPV4Broadcast + + + + + unnamed + + + IPv4 Destination + + + + + labelNetworkIPV4Destination + + + + + unnamed + + + IPv6 Address + + + + + labelNetworkIPV6Address + + + + + unnamed + + + IPv6 Netmask + + + + + labelNetworkIPV6Netmask + + + + + unnamed + + + IPv6 Broadcast + + + + + labelNetworkIPV6Broadcast + + + + + unnamed + + + IPv6 Destination + + + + + labelNetworkIPV6Destination + + + + + + + groupNetworkStatistics + + + Network Statistics + + + + unnamed + + + + unnamed + + + Received Bytes + + + + + labelNetworkRXBytes + + + + + unnamed + + + Transmitted Bytes + + + + + labelNetworkTXBytes + + + + + unnamed + + + Received Packets + + + + + labelNetworkRXPackets + + + + + unnamed + + + Transmitted Packets + + + + + labelNetworkTXPackets -- cgit v1.2.3