diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 4aed2c8219774f5d797760606b8489a92ddc5163 (patch) | |
tree | 3f8c130f7d269626bf6a9447407ef6c35954426a /ksysguard/gui/SensorDisplayLib/ListView.h | |
download | tdebase-4aed2c8219774f5d797760606b8489a92ddc5163.tar.gz tdebase-4aed2c8219774f5d797760606b8489a92ddc5163.zip |
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/kdebase@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'ksysguard/gui/SensorDisplayLib/ListView.h')
-rw-r--r-- | ksysguard/gui/SensorDisplayLib/ListView.h | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/ksysguard/gui/SensorDisplayLib/ListView.h b/ksysguard/gui/SensorDisplayLib/ListView.h new file mode 100644 index 000000000..4b96329c0 --- /dev/null +++ b/ksysguard/gui/SensorDisplayLib/ListView.h @@ -0,0 +1,112 @@ +/* + KSysGuard, the KDE System Guard + + Copyright (c) 2001 Tobias Koenig <[email protected]> + + This program is free software; you can redistribute it and/or + modify it under the terms of version 2 of the GNU General Public + License as published by the Free Software Foundation. + + 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. + + KSysGuard is currently maintained by Chris Schlaeger <[email protected]>. + Please do not commit any changes without consulting me first. Thanks! + +*/ + +#ifndef _ListView_h_ +#define _ListView_h_ + +#include <qlistview.h> +#include <qpainter.h> + +#include <SensorDisplay.h> + +typedef const char* (*KeyFunc)(const char*); + +class QLabel; +class QBoxGroup; +class ListViewSettings; + +class PrivateListView : public QListView +{ + Q_OBJECT +public: + enum ColumnType { Text, Int, Float, Time, DiskStat }; + + PrivateListView(QWidget *parent = 0, const char *name = 0); + + void addColumn(const QString& label, const QString& type); + void removeColumns(void); + void update(const QString& answer); + int columnType( uint pos ) const; + +private: + QStringList mColumnTypes; +}; + +class PrivateListViewItem : public QListViewItem +{ +public: + PrivateListViewItem(PrivateListView *parent = 0); + + void paintCell(QPainter *p, const QColorGroup &, int column, int width, int alignment) { + QColorGroup cgroup = _parent->colorGroup(); + QListViewItem::paintCell(p, cgroup, column, width, alignment); + p->setPen(cgroup.color(QColorGroup::Link)); + p->drawLine(0, height() - 1, width - 1, height() - 1); + } + + void paintFocus(QPainter *, const QColorGroup, const QRect) {} + + virtual int compare( QListViewItem*, int column, bool ascending ) const; + +private: + QWidget *_parent; +}; + +class ListView : public KSGRD::SensorDisplay +{ + Q_OBJECT +public: + ListView(QWidget* parent = 0, const char* name = 0, + const QString& = QString::null, int min = 0, int max = 0); + ~ListView() {} + + bool addSensor(const QString& hostName, const QString& sensorName, const QString& sensorType, const QString& sensorDescr); + void answerReceived(int id, const QString& answer); + void resizeEvent(QResizeEvent*); + void updateList(); + + bool restoreSettings(QDomElement& element); + bool saveSettings(QDomDocument& doc, QDomElement& element, bool save = true); + + virtual bool hasSettingsDialog() const + { + return (true); + } + + virtual void timerEvent(QTimerEvent*) + { + updateList(); + } + + void configureSettings(); + +public slots: + void applySettings(); + void applyStyle(); + +private: + PrivateListView* monitor; + ListViewSettings* lvs; +}; + +#endif |