summaryrefslogtreecommitdiffstats
path: root/kcontrol/hwmanager
diff options
context:
space:
mode:
Diffstat (limited to 'kcontrol/hwmanager')
-rw-r--r--kcontrol/hwmanager/devicepropsdlg.cpp102
-rw-r--r--kcontrol/hwmanager/devicepropsdlg.h4
-rw-r--r--kcontrol/hwmanager/devicepropsdlgbase.ui163
-rw-r--r--kcontrol/hwmanager/hwmanager.cpp6
4 files changed, 271 insertions, 4 deletions
diff --git a/kcontrol/hwmanager/devicepropsdlg.cpp b/kcontrol/hwmanager/devicepropsdlg.cpp
index f5747c1c5..14810318a 100644
--- a/kcontrol/hwmanager/devicepropsdlg.cpp
+++ b/kcontrol/hwmanager/devicepropsdlg.cpp
@@ -276,6 +276,9 @@ DevicePropertiesDialog::DevicePropertiesDialog(TDEGenericDevice* device, TQWidge
if (m_device->type() != TDEGenericDeviceType::Monitor) {
base->tabBarWidget->removePage(base->tabMonitor);
}
+ if (m_device->type() != TDEGenericDeviceType::RootSystem) {
+ base->tabBarWidget->removePage(base->tabRootSystem);
+ }
if (m_device->type() == TDEGenericDeviceType::CPU) {
connect(base->comboCPUGovernor, TQT_SIGNAL(activated(const TQString &)), this, TQT_SLOT(setCPUGovernor(const TQString &)));
@@ -291,6 +294,9 @@ DevicePropertiesDialog::DevicePropertiesDialog(TDEGenericDevice* device, TQWidge
if (m_device->type() == TDEGenericDeviceType::Backlight) {
connect(base->sliderBacklightBrightness, TQT_SIGNAL(valueChanged(int)), this, TQT_SLOT(setBacklightBrightness(int)));
}
+ if (m_device->type() == TDEGenericDeviceType::RootSystem) {
+ connect(base->comboSystemHibernationMethod, TQT_SIGNAL(activated(int)), this, TQT_SLOT(setHibernationMethod(int)));
+ }
TQGridLayout *mainGrid = new TQGridLayout(plainPage(), 1, 1, 0, spacingHint());
mainGrid->setRowStretch(1, 1);
@@ -579,6 +585,95 @@ void DevicePropertiesDialog::populateDeviceInformation() {
// RandR warning
base->labelRandrWarning->setText("<qt><b>NOTE: Any further integration of displays into TDE <i>REQUIRES</i> multi GPU support and other features slated for RandR 2.0.</b><p>Development on such features has been sorely lacking for well over a year as of 2012; if you want to see Linux come up to Windows and Macintosh standards in this area <i>please tell the Xorg developers</i> at http://www.x.org/wiki/XorgMailingLists<p>The TDE project badly needs these features before it can proceed with graphical monitor configuration tools:<br> * GPU object support<br> * The ability to query the active driver name for any Xorg output<p><b>To recap, this is <i>not a TDE shortcoming</i>, but rather is the result of a lack of fundamental Linux support for graphics configuration!</b></qt>");
}
+
+ if (m_device->type() == TDEGenericDeviceType::RootSystem) {
+ TDERootSystemDevice* rdevice = static_cast<TDERootSystemDevice*>(m_device);
+
+ TQString formFactorString;
+ TDESystemFormFactor::TDESystemFormFactor formFactor = rdevice->formFactor();
+ if (formFactor == TDESystemFormFactor::Unclassified) {
+ formFactorString = i18n("Unknown");
+ }
+ else if (formFactor == TDESystemFormFactor::Desktop) {
+ formFactorString = i18n("Desktop");
+ }
+ else if (formFactor == TDESystemFormFactor::Laptop) {
+ formFactorString = i18n("Laptop");
+ }
+ else if (formFactor == TDESystemFormFactor::Server) {
+ formFactorString = i18n("Server");
+ }
+ base->labelSystemFormFactor->setText(formFactorString);
+
+ TQString powerStatesString;
+ TDESystemPowerStateList powerStates = rdevice->powerStates();
+ if (powerStates.count() > 0) {
+ powerStatesString = "<qt>";
+ TDESystemPowerStateList::iterator it;
+ for (it = powerStates.begin(); it != powerStates.end(); ++it) {
+ if ((*it) == TDESystemPowerState::Active) {
+ powerStatesString += i18n("Active<br>");
+ }
+ if ((*it) == TDESystemPowerState::Standby) {
+ powerStatesString += i18n("Standby<br>");
+ }
+ if ((*it) == TDESystemPowerState::Suspend) {
+ powerStatesString += i18n("Suspend<br>");
+ }
+ if ((*it) == TDESystemPowerState::Hibernate) {
+ powerStatesString += i18n("Hibernate<br>");
+ }
+ if ((*it) == TDESystemPowerState::PowerOff) {
+ powerStatesString += i18n("Power Off<br>");
+ }
+ }
+ powerStatesString += "</qt>";
+ }
+ else {
+ powerStatesString += i18n("<unknown>");
+ }
+ base->labelSystemPowerStates->setText(powerStatesString);
+
+ base->comboSystemHibernationMethod->setEnabled(rdevice->canSetHibernationMethod());
+ TDESystemHibernationMethodList hibernationMethods = rdevice->hibernationMethods();
+ if ((uint)hibernationMethods.count() != (uint)base->comboSystemHibernationMethod->count()) {
+ base->comboSystemHibernationMethod->clear();
+ m_hibernationComboMap.clear();
+ int i=0;
+ TQString label;
+ for (TDESystemHibernationMethodList::Iterator it = hibernationMethods.begin(); it != hibernationMethods.end(); ++it) {
+ if ((*it) == TDESystemHibernationMethod::None) {
+ label = i18n("<none>");
+ }
+ if ((*it) == TDESystemHibernationMethod::Platform) {
+ label = i18n("Platform");
+ }
+ if ((*it) == TDESystemHibernationMethod::Shutdown) {
+ label = i18n("Shutdown");
+ }
+ if ((*it) == TDESystemHibernationMethod::Reboot) {
+ label = i18n("Reboot");
+ }
+ if ((*it) == TDESystemHibernationMethod::TestProc) {
+ label = i18n("Test Procedure");
+ }
+ if ((*it) == TDESystemHibernationMethod::Test) {
+ label = i18n("Test");
+ }
+ base->comboSystemHibernationMethod->insertItem(label, i);
+ m_hibernationComboMap[*it] = i;
+ i++;
+ }
+ }
+ base->comboSystemHibernationMethod->setCurrentItem(m_hibernationComboMap[rdevice->hibernationMethod()]);
+
+ base->labelSystemUserCanStandby->setText((rdevice->canStandby())?i18n("Yes"):i18n("No"));
+ base->labelSystemUserCanSuspend->setText((rdevice->canSuspend())?i18n("Yes"):i18n("No"));
+ base->labelSystemUserCanHibernate->setText((rdevice->canHibernate())?i18n("Yes"):i18n("No"));
+ base->labelSystemUserCanPowerOff->setText((rdevice->canPowerOff())?i18n("Yes"):i18n("No"));
+
+ base->labelSystemHibernationSpace->setText((rdevice->diskSpaceNeededForHibernation()<0)?i18n("<unknown>"):TDEHardwareDevices::bytesToFriendlySizeString(rdevice->diskSpaceNeededForHibernation()));
+ }
}
}
@@ -595,6 +690,13 @@ void DevicePropertiesDialog::setBacklightBrightness(int value) {
bdevice->setRawBrightness(value);
}
+void DevicePropertiesDialog::setHibernationMethod(int value) {
+ TDERootSystemDevice* rdevice = static_cast<TDERootSystemDevice*>(m_device);
+
+ rdevice->setHibernationMethod(m_hibernationComboMap.keys()[value]);
+ populateDeviceInformation();
+}
+
void DevicePropertiesDialog::virtual_hook( int id, void* data )
{ KDialogBase::virtual_hook( id, data ); }
diff --git a/kcontrol/hwmanager/devicepropsdlg.h b/kcontrol/hwmanager/devicepropsdlg.h
index 4a70da5c2..192ebffd4 100644
--- a/kcontrol/hwmanager/devicepropsdlg.h
+++ b/kcontrol/hwmanager/devicepropsdlg.h
@@ -155,6 +155,7 @@ private:
};
typedef TQPtrList<SensorDisplayWidget> SensorDisplayWidgetList;
+typedef TQMap<TDESystemHibernationMethod::TDESystemHibernationMethod, int> HibernationComboMap;
/**
*
@@ -185,6 +186,7 @@ private slots:
void setCPUGovernor(const TQString &);
void setBacklightBrightness(int);
+ void setHibernationMethod(int);
private:
TDEGenericDevice* m_device;
@@ -195,6 +197,8 @@ private:
TQGridLayout* m_sensorDataGrid;
SensorDisplayWidgetList m_sensorDataGridWidgets;
+
+ HibernationComboMap m_hibernationComboMap;
};
#endif
diff --git a/kcontrol/hwmanager/devicepropsdlgbase.ui b/kcontrol/hwmanager/devicepropsdlgbase.ui
index cd4aaf03d..d1cda0007 100644
--- a/kcontrol/hwmanager/devicepropsdlgbase.ui
+++ b/kcontrol/hwmanager/devicepropsdlgbase.ui
@@ -1217,6 +1217,169 @@
</spacer>
</grid>
</widget>
+ <widget class="TQWidget">
+ <property name="name">
+ <cstring>tabRootSystem</cstring>
+ </property>
+ <attribute name="title">
+ <string>System</string>
+ </attribute>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQGroupBox" row="0" column="0">
+ <property name="name">
+ <cstring>groupSysinfo</cstring>
+ </property>
+ <property name="title">
+ <string>System Information</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel" row="0" column="0" colspan="1">
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="text">
+ <string>Form Factor</string>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="0" column="1" colspan="1">
+ <property name="name">
+ <cstring>labelSystemFormFactor</cstring>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="TQGroupBox" row="1" column="0">
+ <property name="name">
+ <cstring>groupSystemPower</cstring>
+ </property>
+ <property name="title">
+ <string>Power Management</string>
+ </property>
+ <grid>
+ <widget class="TQLabel" row="0" column="0" colspan="1">
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="text">
+ <string>Available Power States</string>
+ </property>
+ <property name="alignment">
+ <set>AlignTop|AlignLeft</set>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="0" column="1" colspan="1">
+ <property name="name">
+ <cstring>labelSystemPowerStates</cstring>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="1" column="0" colspan="1">
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="text">
+ <string>Hibernation Method</string>
+ </property>
+ <property name="alignment">
+ <set>AlignTop|AlignLeft</set>
+ </property>
+ </widget>
+ <widget class="KComboBox" row="1" column="1" colspan="1">
+ <property name="name">
+ <cstring>comboSystemHibernationMethod</cstring>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="2" column="0" colspan="1">
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="text">
+ <string>Disk Space Needed to Hibernate</string>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="2" column="1" colspan="1">
+ <property name="name">
+ <cstring>labelSystemHibernationSpace</cstring>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="3" column="0" colspan="1">
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="text">
+ <string>User Can Request Standby</string>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="3" column="1" colspan="1">
+ <property name="name">
+ <cstring>labelSystemUserCanStandby</cstring>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="4" column="0" colspan="1">
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="text">
+ <string>User Can Request Suspend</string>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="4" column="1" colspan="1">
+ <property name="name">
+ <cstring>labelSystemUserCanSuspend</cstring>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="5" column="0" colspan="1">
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="text">
+ <string>User Can Request Hibernation</string>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="5" column="1" colspan="1">
+ <property name="name">
+ <cstring>labelSystemUserCanHibernate</cstring>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="6" column="0" colspan="1">
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="text">
+ <string>User Can Request Shutdown</string>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="6" column="1" colspan="1">
+ <property name="name">
+ <cstring>labelSystemUserCanPowerOff</cstring>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <spacer row="8" column="0">
+ <property name="name" stdset="0">
+ <cstring>Spacer4</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </grid>
+ </widget>
</widget>
</grid>
</widget>
diff --git a/kcontrol/hwmanager/hwmanager.cpp b/kcontrol/hwmanager/hwmanager.cpp
index 71b47aac0..055425154 100644
--- a/kcontrol/hwmanager/hwmanager.cpp
+++ b/kcontrol/hwmanager/hwmanager.cpp
@@ -139,13 +139,11 @@ void TDEHWManager::populateTreeView()
base->deviceTree->clear();
if (show_by_connection) {
- DeviceIconItem* rootitem = new DeviceIconItem(base->deviceTree, "Linux System", DesktopIcon("misc", base->deviceTree->iconSize()), 0);
-
TDEHardwareDevices *hwdevices = KGlobal::hardwareDevices();
- TDEGenericHardwareList hwlist = hwdevices->listByDeviceClass(TDEGenericDeviceType::Root);
+ TDEGenericHardwareList hwlist = hwdevices->listByDeviceClass(TDEGenericDeviceType::RootSystem);
TDEGenericDevice *hwdevice;
for ( hwdevice = hwlist.first(); hwdevice; hwdevice = hwlist.next() ) {
- DeviceIconItem* item = new DeviceIconItem(rootitem, hwdevice->friendlyName(), hwdevice->icon(base->deviceTree->iconSize()), hwdevice);
+ DeviceIconItem* item = new DeviceIconItem(base->deviceTree, hwdevice->friendlyName(), hwdevice->icon(base->deviceTree->iconSize()), hwdevice);
if ((!selected_syspath.isNull()) && (hwdevice->systemPath() == selected_syspath)) {
base->deviceTree->ensureItemVisible(item);
base->deviceTree->setSelected(item, true);