From 2bda8f7717adf28da4af0d34fb82f63d2868c31d Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdeutils@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- ksim/monitorprefs.cpp | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 ksim/monitorprefs.cpp (limited to 'ksim/monitorprefs.cpp') diff --git a/ksim/monitorprefs.cpp b/ksim/monitorprefs.cpp new file mode 100644 index 0000000..1e67945 --- /dev/null +++ b/ksim/monitorprefs.cpp @@ -0,0 +1,98 @@ +/* ksim - a system monitor for kde + * + * Copyright (C) 2001 Robbie Ward + * + * 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 "monitorprefs.h" +#include "monitorprefs.moc" + +#include +#include +#include +#include +#include + +#include +#include + +KSim::MonitorPrefs::MonitorPrefs(QWidget *parent, const char *name) + : KListView(parent, name) +{ + addColumn(i18n("Monitor")); + addColumn(i18n("Description")); + addColumn(i18n("LMB Command")); + + setItemsRenameable(true); + setRenameable(0, false); + setRenameable(2, true); + setDragEnabled(true); + setAcceptDrops(true); + setAllColumnsShowFocus(true); + setSelectionMode(QListView::Single); + + // Scan for .desktop files and enter them into the KListView + m_locatedFiles = KGlobal::dirs()->findAllResources("data", "ksim/monitors/*.desktop"); + m_locatedFiles.sort(); + QStringList::ConstIterator it; + for (it = m_locatedFiles.begin(); it != m_locatedFiles.end(); ++it) { + KDesktopFile file((*it), true); + (void)(new QCheckListItem(this, file.readName(), QCheckListItem::CheckBox))->setText(1, file.readComment()); + } + + sort(); + setSorting(-1, false); +} + +KSim::MonitorPrefs::~MonitorPrefs() +{ +} + +void KSim::MonitorPrefs::saveConfig(KSim::Config *config) +{ + QCheckListItem *item; + QStringList::ConstIterator it; + for (it = m_locatedFiles.begin(); it != m_locatedFiles.end(); ++it) { + KSim::PluginInfo info = KSim::PluginLoader::self().findPluginInfo((*it)); + item = static_cast(findItem(info.name(), 0)); + config->setEnabledMonitor(info.libName(), item->isOn()); + config->setMonitorCommand(info.libName(), item->text(2)); + config->setMonitorLocation(info.libName(), itemIndex(item)); + } +} + +void KSim::MonitorPrefs::readConfig(KSim::Config *config) +{ + int location; + QCheckListItem *origItem; + QStringList::ConstIterator it; + for (it = m_locatedFiles.begin(); it != m_locatedFiles.end(); ++it) { + KSim::PluginInfo info = KSim::PluginLoader::self().findPluginInfo((*it)); + location = config->monitorLocation(info.libName()); + origItem = static_cast(findItem(info.name(), 0)); + origItem->setOn(config->enabledMonitor(info.libName())); + origItem->setText(2, config->monitorCommand(info.libName())); + if (QListViewItem *item = itemAtIndex(location)) { + if (location) { + origItem->moveItem(item->itemAbove()); + } + else { + origItem->moveItem(firstChild()); + firstChild()->moveItem(origItem); + } + } + } +} -- cgit v1.2.3