summaryrefslogtreecommitdiffstats
path: root/src/systemcfg.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemcfg.cpp')
-rw-r--r--src/systemcfg.cpp126
1 files changed, 126 insertions, 0 deletions
diff --git a/src/systemcfg.cpp b/src/systemcfg.cpp
new file mode 100644
index 0000000..69a1053
--- /dev/null
+++ b/src/systemcfg.cpp
@@ -0,0 +1,126 @@
+/***************************************************************************
+ systemcfg.cpp - description
+ -------------------
+ begin : vie may 17 2002
+ copyright : (C) 2002 by Miguel Novas
+ email : michaell@teleline.es
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <qlistbox.h>
+#include <qspinbox.h>
+#include <qpushbutton.h>
+#include <qgroupbox.h>
+#include <qcheckbox.h>
+#include <qlayout.h>
+#include <qtabwidget.h>
+#include <klocale.h>
+#include "systemcfg.h"
+
+#include "infopanels.h"
+
+
+SystemCfg::SystemCfg(LMSensors *lsensors, QWidget *parent, const char *name): SystemCfgDesign(parent,name)
+{
+ sensors= lsensors;
+
+ palPanelCfg= new PaletteCfg( boxPanelPalette );
+ boxPanelPalette->setColumnLayout(0, Qt::Vertical );
+ boxPanelPalette->layout()->setSpacing( 6 );
+ boxPanelPalette->layout()->setMargin( 12 );
+ QGridLayout *boxPanelPaletteLayout = new QGridLayout( boxPanelPalette->layout() );
+ boxPanelPaletteLayout->setAlignment( Qt::AlignTop );
+ boxPanelPaletteLayout->addWidget( palPanelCfg, 0, 0 );
+
+ connect( TabWidget ,SIGNAL(currentChanged(QWidget*)), this, SLOT(slotTabWidgetChanged(QWidget *)));
+ //connect( buttonApply ,SIGNAL(clicked()),this, SLOT(slotApplyChanges()));
+
+ listSensors->clear();
+ listSensors->insertItem( i18n("CPU Speed"));
+ listSensors->insertItem( i18n("CPU State"));
+ listSensors->insertItem( i18n("RAM Used"));
+ listSensors->insertItem( i18n("SWAP Used"));
+ listSensors->insertItem( i18n("Up Time"));
+ listSensors->setCurrentItem(0);
+ readSensorInfo(0);
+
+ connect( listSensors,SIGNAL(highlighted(int)),this,SLOT(slotCurrentSensorChanged(int)) );
+}
+
+SystemCfg::~SystemCfg(){
+}
+
+void SystemCfg::slotTabWidgetChanged(QWidget *)
+{
+ switch(TabWidget->currentPageIndex())
+ {
+ case 0: readSensorInfo(listSensors->currentItem()); break;
+ case 1: readPreferencesInfo(); break;
+ }
+}
+
+const char *SystemCfg::getPanelName(int index)
+{
+ switch(index) {
+ case 0: return "proc.CPUINFO";
+ case 1: return "proc.CPULOAD";
+ case 2: return "proc.RAMINFO";
+ case 3: return "proc.SWAPINFO";
+ case 4: return "proc.UPTIME";
+ }
+ return 0;
+}
+
+void SystemCfg::slotCurrentSensorChanged(int index)
+{
+ readSensorInfo(index);
+}
+
+void SystemCfg::readSensorInfo(int index)
+{
+const char *panelName= getPanelName(index);
+
+ checkShow->setChecked( Panel::readShow(panelName) );
+ palPanelCfg->readPalette(panelName);
+}
+
+void SystemCfg::readPreferencesInfo()
+{
+ SpinUpdateTime->setValue(InfoPanels::cfgReadUpdateInterval());
+}
+
+
+void SystemCfg::writeSensorInfo(int index)
+{
+const char *panelName= getPanelName(index);
+
+ Panel::writeShow(panelName,checkShow->isChecked());
+ palPanelCfg->savePalette();
+ sensors->emitConfigChanged(panelName);
+}
+
+void SystemCfg::writePreferencesInfo()
+{
+ InfoPanels::cfgWriteUpdateInterval(SpinUpdateTime->value());
+ sensors->emitConfigChanged("proc");
+}
+
+void SystemCfg::slotApplyChanges()
+{
+ if (!isVisible())
+ return;
+ switch(TabWidget->currentPageIndex())
+ {
+ case 0: writeSensorInfo(listSensors->currentItem()); break;
+ case 1: writePreferencesInfo(); break;
+ }
+}
+