summaryrefslogtreecommitdiffabout
path: root/pwmanager/pwmanager/listviewpwm.cpp
authorulf69 <ulf69>2004-09-15 17:53:22 (UTC)
committer ulf69 <ulf69>2004-09-15 17:53:22 (UTC)
commitd3925ba5bd25224bc4a60d3d6a107c464994a1ea (patch) (side-by-side diff)
tree60f69da1d2b79ee3081e7ef5c09a46470ca6eda0 /pwmanager/pwmanager/listviewpwm.cpp
parentce83a3479d23b9e8a59c745ccd0a0b14f64ef4e8 (diff)
downloadkdepimpi-d3925ba5bd25224bc4a60d3d6a107c464994a1ea.zip
kdepimpi-d3925ba5bd25224bc4a60d3d6a107c464994a1ea.tar.gz
kdepimpi-d3925ba5bd25224bc4a60d3d6a107c464994a1ea.tar.bz2
initial revision
Diffstat (limited to 'pwmanager/pwmanager/listviewpwm.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--pwmanager/pwmanager/listviewpwm.cpp86
1 files changed, 86 insertions, 0 deletions
diff --git a/pwmanager/pwmanager/listviewpwm.cpp b/pwmanager/pwmanager/listviewpwm.cpp
new file mode 100644
index 0000000..b987c9e
--- a/dev/null
+++ b/pwmanager/pwmanager/listviewpwm.cpp
@@ -0,0 +1,86 @@
+/***************************************************************************
+ * *
+ * copyright (C) 2004 by Michael Buesch *
+ * email: mbuesch@freenet.de *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License version 2 *
+ * as published by the Free Software Foundation. *
+ * *
+ ***************************************************************************/
+
+/***************************************************************************
+ * copyright (C) 2004 by Ulf Schenk
+ * This file is originaly based on version 1.0.1 of pwmanager
+ * and was modified to run on embedded devices that run microkde
+ *
+ * $Id$
+ **************************************************************************/
+
+#include "listviewpwm.h"
+#include "pwmexception.h"
+
+#include <qpainter.h>
+#include <qpixmap.h>
+
+#include <kiconloader.h>
+
+
+ListViewPwM::ListViewPwM(QWidget *parent, const char *name)
+ : KListView(parent, name)
+{
+// setResizeMode(QListView::AllColumns);
+}
+
+bool ListViewPwM::event(QEvent *e)
+{
+ if (e->type() == QEvent::LayoutHint)
+ emit layoutChanged();
+ return KListView::event(e);
+}
+
+
+QPixmap * ListViewItemPwM::onPix = 0;
+QPixmap * ListViewItemPwM::offPix = 0;
+
+ListViewItemPwM::ListViewItemPwM(QListView *parent)
+ : QCheckListItem(parent, "", QCheckListItem::CheckBox)
+{
+ if (!onPix) {
+ PWM_ASSERT(!offPix);
+ KIconLoader il;
+ static QPixmap onP(il.loadIcon("button_ok", KIcon::Small));
+ onPix = &onP;
+ static QPixmap offP(il.loadIcon("encrypted", KIcon::Small));
+ offPix = &offP;
+ }
+}
+
+void ListViewItemPwM::paintCell(QPainter *p, const QColorGroup &cg,
+ int column, int width, int align)
+{
+ if (!p)
+ return;
+ if (column != 0) {
+ QCheckListItem::paintCell(p, cg, column, width, align);
+ return;
+ }
+ QPixmap *curPix = isOn() ? onPix : offPix;
+ int pixSpace = curPix->width();
+ pixSpace += 4;
+#ifndef PWM_EMBEDDED
+ QRect window(p->viewport());
+ // clear the rectangle (we have to clear it first. see QT doc)
+ p->eraseRect(0, 0, pixSpace, window.height());
+ // now draw the pixmap
+ int y = (height() - curPix->height()) / 2;
+ p->drawPixmap(1, y, *curPix);
+ window.moveLeft(pixSpace);
+ p->setViewport(window);
+#endif
+ QListViewItem::paintCell(p, cg, column, width - pixSpace, align);
+}
+
+#ifndef PWM_EMBEDDED
+#include "listviewpwm.moc"
+#endif