diff options
Diffstat (limited to 'ksim/generalprefs.cpp')
-rw-r--r-- | ksim/generalprefs.cpp | 574 |
1 files changed, 574 insertions, 0 deletions
diff --git a/ksim/generalprefs.cpp b/ksim/generalprefs.cpp new file mode 100644 index 0000000..1f3baf7 --- /dev/null +++ b/ksim/generalprefs.cpp @@ -0,0 +1,574 @@ +/* ksim - a system monitor for kde + * + * Copyright (C) 2001 Robbie Ward <linuxphreak@gmx.co.uk> + * + * 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. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "generalprefs.h" +#include "generalprefs.moc" + +#include <qcombobox.h> +#include <qcheckbox.h> +#include <qgroupbox.h> +#include <qlabel.h> +#include <qlineedit.h> +#include <qpushbutton.h> +#include <qtabwidget.h> +#include <qlayout.h> +#include <qtooltip.h> +#include <qpopupmenu.h> + +#include <klocale.h> +#include <kapplication.h> +#include <kcombobox.h> +#include <kdebug.h> +#include <kiconloader.h> +#include <knuminput.h> + +#include <ksimconfig.h> + +KSim::GeneralPrefs::GeneralPrefs(QWidget *parent, const char *name) + : QWidget(parent, name) +{ + m_mainLayout = new QGridLayout(this); + m_mainLayout->setSpacing(6); + + m_sizeBox = new QGroupBox(this); + m_sizeBox->setTitle(i18n("Graph Size")); + m_sizeBox->setColumnLayout(0, Qt::Horizontal); + + QGridLayout *sizeBoxLayout = new QGridLayout(m_sizeBox->layout()); + sizeBoxLayout->setSpacing(6); + + m_sizeHLabel = new QLabel(m_sizeBox); + m_sizeHLabel->setText(i18n("Graph height:")); + sizeBoxLayout->addWidget(m_sizeHLabel, 0, 0); + + m_sizeHSpin = new KIntSpinBox(m_sizeBox); + m_sizeHSpin->setValue(40); + m_sizeHSpin->setMinValue(40); + m_sizeHSpin->setMaxValue(200); + m_sizeHSpin->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, + QSizePolicy::Fixed)); + sizeBoxLayout->addWidget(m_sizeHSpin, 0, 1); + + QSpacerItem *sizeHSpacer = new QSpacerItem(20, 20, + QSizePolicy::Expanding, QSizePolicy::Minimum); + sizeBoxLayout->addItem(sizeHSpacer, 0, 2); + + m_sizeWLabel = new QLabel(m_sizeBox); + m_sizeWLabel->setText(i18n("Graph width:")); + sizeBoxLayout->addWidget(m_sizeWLabel, 1, 0); + + m_sizeWSpin = new KIntSpinBox(m_sizeBox); + m_sizeWSpin->setValue(58); + m_sizeWSpin->setMinValue(58); + m_sizeWSpin->setMaxValue(200); + m_sizeWSpin->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, + QSizePolicy::Fixed)); + sizeBoxLayout->addWidget(m_sizeWSpin, 1, 1); + + QSpacerItem *sizeWSpacer = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + sizeBoxLayout->addItem(sizeWSpacer, 1, 2); + + m_mainLayout->addWidget(m_sizeBox, 0, 0); + QSpacerItem *boxSpacer = new QSpacerItem(20, 20, + QSizePolicy::Expanding, QSizePolicy::Minimum); + m_mainLayout->addItem(boxSpacer, 0, 1); + + m_displayFqdn = new QCheckBox(this); + m_displayFqdn->setText(i18n("Display fully qualified domain name")); + m_mainLayout->addMultiCellWidget(m_displayFqdn, 1, 1, 0, 1); + + m_recolourThemes = new QCheckBox(this); + m_recolourThemes->setText(i18n("Recolor themes to the current color scheme")); + m_mainLayout->addMultiCellWidget(m_recolourThemes, 2, 2, 0, 1); + + QSpacerItem *spacer = new QSpacerItem(20, 20, + QSizePolicy::Minimum, QSizePolicy::Expanding); + m_mainLayout->addItem(spacer, 3, 0); +} + +KSim::GeneralPrefs::~GeneralPrefs() +{ +} + +void KSim::GeneralPrefs::saveConfig(KSim::Config *config) +{ + config->setGraphSize(QSize(m_sizeWSpin->value(), m_sizeHSpin->value())); + config->setDisplayFqdn(m_displayFqdn->isChecked()); + config->setReColourThemes(m_recolourThemes->isChecked()); +} + +void KSim::GeneralPrefs::readConfig(KSim::Config *config) +{ + QSize size = config->graphSize(); + m_sizeHSpin->setValue(size.height()); + m_sizeWSpin->setValue(size.width()); + m_displayFqdn->setChecked(config->displayFqdn()); + m_recolourThemes->setChecked(config->reColourThemes()); +} + +KSim::ClockPrefs::ClockPrefs(QWidget *parent, const char *name) + : QWidget(parent, name) +{ + m_mainLayout = new QVBoxLayout(this); + m_mainLayout->setSpacing(6); + + m_timeCheck = new QCheckBox(i18n("Show time"),this); + m_mainLayout->addWidget(m_timeCheck); + m_timeCheck->setChecked(true); + + m_dateCheck = new QCheckBox(i18n("Show date"),this); + m_mainLayout->addWidget(m_dateCheck); + m_dateCheck->setChecked(true); + + QSpacerItem *spacer = new QSpacerItem(20, 20, + QSizePolicy::Minimum, QSizePolicy::Expanding); + m_mainLayout->addItem(spacer); +} + +KSim::ClockPrefs::~ClockPrefs() +{ +} + +void KSim::ClockPrefs::saveConfig(KSim::Config *config) +{ + config->setShowTime(m_timeCheck->isChecked()); + config->setShowDate(m_dateCheck->isChecked()); +} + +void KSim::ClockPrefs::readConfig(KSim::Config *config) +{ + m_timeCheck->setChecked(config->showTime()); + m_dateCheck->setChecked(config->showDate()); +} + +KSim::UptimePrefs::UptimePrefs(QWidget *parent, const char *name) + : QWidget(parent, name) +{ + m_addIcon = SmallIconSet("filenew"); + m_removeIcon = SmallIconSet("editdelete"); + + m_mainLayout = new QVBoxLayout(this); + m_mainLayout->setSpacing(6); + + m_uptimeCombo = new KComboBox(true, this); + m_uptimeCombo->setDuplicatesEnabled(false); + m_uptimeCombo->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, + QSizePolicy::Fixed)); + m_uptimeCombo->insertItem(i18n("%hh:%mm:%ss")); + m_uptimeCombo->insertItem(i18n("%dd %h:%m")); + m_uptimeCombo->insertItem(i18n("Uptime: %h:%m:%s")); + connect(m_uptimeCombo, + SIGNAL(aboutToShowContextMenu(QPopupMenu *)), + SLOT(uptimeContextMenu(QPopupMenu *))); + + m_uptimeAdd = new QPushButton(this); + m_uptimeAdd->setPixmap(SmallIcon("down")); + connect(m_uptimeAdd, SIGNAL(clicked()), SLOT(insertUptimeItem())); + QToolTip::add(m_uptimeAdd, i18n("Insert item")); + + m_uptimeCheck = new QCheckBox(this); + m_uptimeCheck->setText(i18n("Show uptime")); + m_uptimeCheck->setChecked(true); + connect(m_uptimeCheck, SIGNAL(toggled(bool)), + m_uptimeCombo, SLOT(setEnabled(bool))); + connect(m_uptimeCheck, SIGNAL(toggled(bool)), + m_uptimeAdd, SLOT(setEnabled(bool))); + m_mainLayout->addWidget(m_uptimeCheck); + + m_subLayout = new QHBoxLayout; + m_subLayout->setSpacing(6); + + m_formatLabel = new QLabel(this); + m_formatLabel->setText(i18n("Uptime format:")); + m_subLayout->addWidget(m_formatLabel); + + m_subLayout->addWidget(m_uptimeCombo); + m_subLayout->addWidget(m_uptimeAdd); + m_mainLayout->addLayout(m_subLayout); + + m_uptimeInfo = new QLabel(this); + m_uptimeInfo->setText(i18n("The text in the edit box will be " + "what is displayed as \nthe uptime except the % items " + "will be replaced with \nthe legend")); + m_mainLayout->addWidget(m_uptimeInfo); + + m_uptimeBox = new QGroupBox(this); + m_uptimeBox->setTitle(i18n("Uptime Legend")); + m_uptimeBox->setColumnLayout(0, Qt::Vertical); + m_uptimeBox->layout()->setSpacing(0); + m_uptimeBox->layout()->setMargin(0); + m_boxLayout = new QVBoxLayout(m_uptimeBox->layout()); + m_boxLayout->setAlignment(Qt::AlignTop); + m_boxLayout->setSpacing(6); + m_boxLayout->setMargin(11); + + m_udLabel = new QLabel(m_uptimeBox); + m_udLabel->setText(i18n("%d - Total days uptime")); + m_boxLayout->addWidget(m_udLabel); + + m_uhLabel = new QLabel(m_uptimeBox); + m_uhLabel->setText(i18n("%h - Total hours uptime")); + m_boxLayout->addWidget(m_uhLabel); + + m_umLabel = new QLabel(m_uptimeBox); + m_umLabel->setText(i18n("%m - Total minutes uptime")); + m_boxLayout->addWidget(m_umLabel); + + m_usLabel = new QLabel(m_uptimeBox); + m_usLabel->setText(i18n("%s - Total seconds uptime")); + m_boxLayout->addWidget(m_usLabel); + m_mainLayout->addWidget(m_uptimeBox); + + QSpacerItem *spacer = new QSpacerItem(20, 20, + QSizePolicy::Minimum, QSizePolicy::Expanding); + m_mainLayout->addItem(spacer); +} + +KSim::UptimePrefs::~UptimePrefs() +{ +} + +void KSim::UptimePrefs::saveConfig(KSim::Config *config) +{ + config->setUptimeItem(m_uptimeCombo->currentItem()); + config->setShowUptime(m_uptimeCheck->isChecked()); + + QStringList comboItems; + for (int i = 0; i < m_uptimeCombo->count(); i++) + comboItems.append(m_uptimeCombo->text(i)); + + config->setUptimeFormat(comboItems); +} + +void KSim::UptimePrefs::readConfig(KSim::Config *config) +{ + m_uptimeCheck->setChecked(config->showUptime()); + + QStringList::ConstIterator it; + QStringList items = config->uptimeFormatList(); + for (it = items.begin(); it != items.end(); ++it) + if (!m_uptimeCombo->contains(*it)) + m_uptimeCombo->insertItem(*it); + + m_uptimeCombo->setCurrentItem(config->uptimeItem()); +} + +void KSim::UptimePrefs::uptimeContextMenu(QPopupMenu *menu) +{ + menu->insertSeparator(); + menu->insertItem(m_addIcon, i18n("Insert Item"), + this, SLOT(insertUptimeItem())); + menu->insertItem(m_removeIcon, i18n("Remove Item"), + this, SLOT(removeUptimeItem())); +} + +void KSim::UptimePrefs::insertUptimeItem() +{ + QString text = m_uptimeCombo->lineEdit()->text(); + if (!m_uptimeCombo->contains(text)) { + m_uptimeCombo->insertItem(text); + m_uptimeCombo->setCurrentItem(m_uptimeCombo->count() - 1); + } +} + +void KSim::UptimePrefs::removeUptimeItem() +{ + int currentItem = m_uptimeCombo->currentItem(); + m_uptimeCombo->removeItem(currentItem); + m_uptimeCombo->setCurrentItem(currentItem - 1); +} + +KSim::MemoryPrefs::MemoryPrefs(QWidget *parent, const char *name) + : QWidget(parent, name) +{ + m_addIcon = SmallIconSet("filenew"); + m_removeIcon = SmallIconSet("editdelete"); + + m_mainLayout = new QVBoxLayout(this); + m_mainLayout->setSpacing(6); + + m_memCombo = new KComboBox(true, this); + m_memCombo->setDuplicatesEnabled(false); + m_memCombo->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, + QSizePolicy::Fixed)); + //m_memCombo->insertItem(i18n("%tM - %fM free")); + //m_memCombo->insertItem(i18n("%tM - %uM used")); + connect(m_memCombo, + SIGNAL(aboutToShowContextMenu(QPopupMenu *)), + SLOT(memoryContextMenu(QPopupMenu *))); + + m_memoryAdd = new QPushButton(this); + m_memoryAdd->setPixmap(SmallIcon("down")); + connect(m_memoryAdd, SIGNAL(clicked()), SLOT(insertMemoryItem())); + QToolTip::add(m_memoryAdd, i18n("Insert item")); + + m_memCheck = new QCheckBox(this); + m_memCheck->setText(i18n("Show memory and free memory")); + m_memCheck->setChecked(false); + connect(m_memCheck, SIGNAL(toggled(bool)), + m_memCombo, SLOT(setEnabled(bool))); + connect(m_memCheck, SIGNAL(toggled(bool)), + m_memoryAdd, SLOT(setEnabled(bool))); + m_mainLayout->addWidget(m_memCheck); + + m_subLayout = new QHBoxLayout; + m_subLayout->setSpacing(6); + + m_memFormat = new QLabel(this); + m_memFormat->setText(i18n("Mem format:")); + m_subLayout->addWidget(m_memFormat); + + m_subLayout->addWidget(m_memCombo); + m_subLayout->addWidget(m_memoryAdd); + m_mainLayout->addLayout(m_subLayout); + + m_memInfo = new QLabel(this); + m_memInfo->setText(i18n("The text in the edit box will be what " + "is displayed as \nthe memory & free memory except the " + "% items will be \nreplaced with the legend")); + m_mainLayout->addWidget(m_memInfo); + + m_memBox = new QGroupBox(this); + m_memBox->setTitle(i18n("Memory Legend")); + m_memBox->setColumnLayout(0, Qt::Vertical); + m_memBox->layout()->setSpacing(0); + m_memBox->layout()->setMargin(0); + m_boxLayout = new QVBoxLayout(m_memBox->layout()); + m_boxLayout->setAlignment(Qt::AlignTop); + m_boxLayout->setSpacing(6); + m_boxLayout->setMargin(11); + + m_mtLabel = new QLabel(m_memBox); + m_mtLabel->setText(i18n("%t - Total memory")); + m_boxLayout->addWidget(m_mtLabel); + + m_mfLabel = new QLabel(m_memBox); + m_mfLabel->setText(i18n("%F - Total free memory including cached and buffered")); + m_boxLayout->addWidget(m_mfLabel); + + m_mfLabel = new QLabel(m_memBox); + m_mfLabel->setText(i18n("%f - Total free memory")); + m_boxLayout->addWidget(m_mfLabel); + + m_muLabel = new QLabel(m_memBox); + m_muLabel->setText(i18n("%u - Total used memory")); + m_boxLayout->addWidget(m_muLabel); + + m_mcLabel = new QLabel(m_memBox); + m_mcLabel->setText(i18n("%c - Total cached memory")); + m_boxLayout->addWidget(m_mcLabel); + + m_mbLabel = new QLabel(m_memBox); + m_mbLabel->setText(i18n("%b - Total buffered memory")); + m_boxLayout->addWidget(m_mbLabel); + + m_msLabel = new QLabel(m_memBox); + m_msLabel->setText(i18n("%s - Total shared memory")); + m_boxLayout->addWidget(m_msLabel); + m_mainLayout->addWidget(m_memBox); + + QSpacerItem *spacer = new QSpacerItem(20, 20, + QSizePolicy::Minimum, QSizePolicy::Expanding); + m_mainLayout->addItem(spacer); +} + +KSim::MemoryPrefs::~MemoryPrefs() +{ +} + +void KSim::MemoryPrefs::saveConfig(KSim::Config *config) +{ + config->setMemoryItem(m_memCombo->currentItem()); + config->setShowMemory(m_memCheck->isChecked()); + + QStringList comboItems; + for (int i = 0; i < m_memCombo->count(); i++) + comboItems.append(m_memCombo->text(i)); + + config->setMemoryFormat(comboItems); +} + +void KSim::MemoryPrefs::readConfig(KSim::Config *config) +{ + m_memCheck->setChecked(config->showMemory()); + + QStringList::ConstIterator it; + QStringList items = config->memoryFormatList(); + for (it = items.begin(); it != items.end(); ++it) + if (!m_memCombo->contains(*it)) + m_memCombo->insertItem(*it); + + m_memCombo->setCurrentItem(config->memoryItem()); +} + +void KSim::MemoryPrefs::memoryContextMenu(QPopupMenu *menu) +{ + menu->insertSeparator(); + menu->insertItem(m_addIcon, i18n("Insert Item"), + this, SLOT(insertMemoryItem())); + menu->insertItem(m_removeIcon, i18n("Remove Item"), + this, SLOT(removeMemoryItem())); +} + +void KSim::MemoryPrefs::insertMemoryItem() +{ + QString text = m_memCombo->lineEdit()->text(); + if (!m_memCombo->contains(text)) { + m_memCombo->insertItem(text); + m_memCombo->setCurrentItem(m_memCombo->count() - 1); + } +} + +void KSim::MemoryPrefs::removeMemoryItem() +{ + int currentItem = m_memCombo->currentItem(); + m_memCombo->removeItem(currentItem); + m_memCombo->setCurrentItem(currentItem - 1); +} + +KSim::SwapPrefs::SwapPrefs(QWidget *parent, const char *name) + : QWidget(parent, name) +{ + m_addIcon = SmallIconSet("filenew"); + m_removeIcon = SmallIconSet("editdelete"); + + m_mainLayout = new QVBoxLayout(this); + m_mainLayout->setSpacing(6); + + m_swapCheck = new QCheckBox(this); + m_swapCheck->setText(i18n("Show swap and free swap")); + m_swapCheck->setChecked(true); + m_mainLayout->addWidget(m_swapCheck); + + m_swapCombo = new KComboBox(true, this); + m_swapCombo->setDuplicatesEnabled(false); + m_swapCombo->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, + QSizePolicy::Fixed)); + //m_swapCombo->insertItem(i18n("%tM - %fM free")); + //m_swapCombo->insertItem(i18n("%tM - %uM used")); + + connect(m_swapCombo, + SIGNAL(aboutToShowContextMenu(QPopupMenu *)), + SLOT(swapContextMenu(QPopupMenu *))); + + m_swapAdd = new QPushButton(this); + m_swapAdd->setPixmap(SmallIcon("down")); + connect(m_swapAdd, SIGNAL(clicked()), SLOT(insertSwapItem())); + QToolTip::add(m_swapAdd, i18n("Insert item")); + + m_subLayout = new QHBoxLayout; + m_subLayout->setSpacing(6); + connect(m_swapCheck, SIGNAL(toggled(bool)), + m_swapCombo, SLOT(setEnabled(bool))); + connect(m_swapCheck, SIGNAL(toggled(bool)), + m_swapAdd, SLOT(setEnabled(bool))); + + m_swapFormat = new QLabel(this); + m_swapFormat->setText(i18n("Swap format:")); + m_subLayout->addWidget(m_swapFormat); + + m_subLayout->addWidget(m_swapCombo); + m_subLayout->addWidget(m_swapAdd); + m_mainLayout->addLayout(m_subLayout); + + m_swapInfo = new QLabel(this); + m_swapInfo->setText(i18n("The text in the edit box will be what is " + "displayed as \nthe swap & free swap except the % items " + "will be \nreplaced with the legend")); + m_mainLayout->addWidget(m_swapInfo); + + m_swapBox = new QGroupBox(this); + m_swapBox->setTitle(i18n("Swap Legend")); + m_swapBox->setColumnLayout(0, Qt::Vertical); + m_swapBox->layout()->setSpacing(0); + m_swapBox->layout()->setMargin(0); + m_boxLayout = new QVBoxLayout(m_swapBox->layout()); + m_boxLayout->setAlignment(Qt::AlignTop); + m_boxLayout->setSpacing(6); + m_boxLayout->setMargin(11); + + m_stLabel = new QLabel(m_swapBox); + m_stLabel->setText(i18n("%t - Total swap")); + m_boxLayout->addWidget(m_stLabel); + + m_sfLabel = new QLabel(m_swapBox); + m_sfLabel->setText(i18n("%f - Total free swap")); + m_boxLayout->addWidget(m_sfLabel); + + m_suLabel = new QLabel(m_swapBox); + m_suLabel->setText(i18n("%u - Total used swap")); + m_boxLayout->addWidget(m_suLabel); + m_mainLayout->addWidget(m_swapBox); + + QSpacerItem *spacer = new QSpacerItem(20, 20, + QSizePolicy::Minimum, QSizePolicy::Expanding); + m_mainLayout->addItem(spacer); +} + +KSim::SwapPrefs::~SwapPrefs() +{ +} + +void KSim::SwapPrefs::saveConfig(KSim::Config *config) +{ + config->setSwapItem(m_swapCombo->currentItem()); + + QStringList comboItems; + for (int i = 0; i < m_swapCombo->count(); i++) + comboItems.append(m_swapCombo->text(i)); + + config->setSwapFormat(comboItems); + config->setShowSwap(m_swapCheck->isChecked()); +} + +void KSim::SwapPrefs::readConfig(KSim::Config *config) +{ + m_swapCheck->setChecked(config->showSwap()); + + QStringList::ConstIterator it; + QStringList items = config->swapFormatList(); + for (it = items.begin(); it != items.end(); ++it) + if (!m_swapCombo->contains(*it)) + m_swapCombo->insertItem(*it); + + m_swapCombo->setCurrentItem(config->swapItem()); +} + +void KSim::SwapPrefs::swapContextMenu(QPopupMenu *menu) +{ + menu->insertSeparator(); + menu->insertItem(m_addIcon, i18n("Insert Item"), this, SLOT(insertSwapItem())); + menu->insertItem(m_removeIcon, i18n("Remove Item"), this, SLOT(removeSwapItem())); +} + +void KSim::SwapPrefs::insertSwapItem() +{ + QString text = m_swapCombo->lineEdit()->text(); + if (!m_swapCombo->contains(text)) { + m_swapCombo->insertItem(text); + m_swapCombo->setCurrentItem(m_swapCombo->count() - 1); + } +} + +void KSim::SwapPrefs::removeSwapItem() +{ + int currentItem = m_swapCombo->currentItem(); + m_swapCombo->removeItem(currentItem); + m_swapCombo->setCurrentItem(currentItem - 1); +} |