summaryrefslogtreecommitdiffstats
path: root/kmymoney2/widgets/kmymoneychecklistitem.cpp
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-02-01 17:32:42 -0600
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-02-01 17:32:42 -0600
commitd0af61c358a04f3d3b956636076eb073dcf253c0 (patch)
treeaf3999d64efb4bd48f9a72d8980f613a99345105 /kmymoney2/widgets/kmymoneychecklistitem.cpp
parent89d8c2baa9b51d8da8511a54b9962155aa29c4c0 (diff)
downloadkmymoney-d0af61c358a04f3d3b956636076eb073dcf253c0.tar.gz
kmymoney-d0af61c358a04f3d3b956636076eb073dcf253c0.zip
Fix prior commit
Diffstat (limited to 'kmymoney2/widgets/kmymoneychecklistitem.cpp')
-rw-r--r--kmymoney2/widgets/kmymoneychecklistitem.cpp151
1 files changed, 151 insertions, 0 deletions
diff --git a/kmymoney2/widgets/kmymoneychecklistitem.cpp b/kmymoney2/widgets/kmymoneychecklistitem.cpp
new file mode 100644
index 0000000..b292567
--- /dev/null
+++ b/kmymoney2/widgets/kmymoneychecklistitem.cpp
@@ -0,0 +1,151 @@
+/***************************************************************************
+ kmymoneychecklistitem
+ -------------------
+ begin : Wed Jun 28 2006
+ copyright : (C) 2006 by Thomas Baumgart
+ email : Thomas Baumgart <ipwizard@users.sourceforge.net>
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * 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. *
+ * *
+ ***************************************************************************/
+
+// ----------------------------------------------------------------------------
+// QT Includes
+
+#include <tqfont.h>
+#include <tqpainter.h>
+
+// ----------------------------------------------------------------------------
+// KDE Includes
+
+// ----------------------------------------------------------------------------
+// Project Includes
+
+#include "kmymoneychecklistitem.h"
+#include "kmymoneylistviewitem.h"
+#include "../kmymoneyglobalsettings.h"
+
+KMyMoneyCheckListItem::KMyMoneyCheckListItem(TQListView* parent, const TQString& txt, const TQString& key, const TQString& id, Type type) :
+ TQCheckListItem(parent, txt, type),
+ m_key(key),
+ m_id(id),
+ m_isOdd(0),
+ m_isKnown(0)
+{
+ setOn(true);
+ if(key.isEmpty())
+ m_key = txt;
+}
+
+KMyMoneyCheckListItem::KMyMoneyCheckListItem(TQListViewItem* parent, const TQString& txt, const TQString& key, const TQString& id, Type type) :
+ TQCheckListItem(parent, txt, type),
+ m_key(key),
+ m_id(id),
+ m_isOdd(0),
+ m_isKnown(0)
+{
+ setOn(true);
+ if(key.isEmpty())
+ m_key = txt;
+}
+
+KMyMoneyCheckListItem::KMyMoneyCheckListItem(TQListView* parent, TQListViewItem* after, const TQString& txt, const TQString& key, const TQString& id, Type type) :
+ TQCheckListItem(parent, after, txt, type),
+ m_key(key),
+ m_id(id),
+ m_isOdd(0),
+ m_isKnown(0)
+{
+ setOn(true);
+ if(key.isEmpty())
+ m_key = txt;
+}
+
+KMyMoneyCheckListItem::~KMyMoneyCheckListItem()
+{
+}
+
+TQString KMyMoneyCheckListItem::key(int column, bool ascending) const
+{
+ Q_UNUSED(ascending);
+
+ if(column == 0)
+ return m_key[0] + text(0);
+ return m_key.mid(1);
+}
+
+void KMyMoneyCheckListItem::stateChange(bool state)
+{
+ emit stateChanged(state);
+}
+
+void KMyMoneyCheckListItem::paintCell(TQPainter *p, const TQColorGroup &cg, int column, int width, int alignment)
+{
+ TQColorGroup _cg = cg;
+ _cg.setColor(TQColorGroup::Base, backgroundColor());
+
+ // write the groups in bold
+ TQFont f = p->font();
+ f.setBold(!isSelectable());
+ p->setFont(f);
+
+ TQCheckListItem::paintCell(p, _cg, column, width, alignment);
+}
+
+const TQColor KMyMoneyCheckListItem::backgroundColor()
+{
+ return isAlternate() ? KMyMoneyGlobalSettings::listBGColor() : KMyMoneyGlobalSettings::listColor();
+}
+
+bool KMyMoneyCheckListItem::isAlternate(void)
+{
+// logic taken from TDEListViewItem::isAlternate()
+ KMyMoneyCheckListItem* ciAbove;
+ KMyMoneyListViewItem* liAbove;
+ ciAbove = dynamic_cast<KMyMoneyCheckListItem*> (itemAbove());
+ liAbove = dynamic_cast<KMyMoneyListViewItem*> (itemAbove());
+
+ m_isKnown = ciAbove ? ciAbove->m_isKnown : (liAbove ? liAbove->m_isKnown : true);
+ if(m_isKnown) {
+ m_isOdd = ciAbove ? !ciAbove->m_isOdd : (liAbove ? !liAbove->m_isOdd : false);
+ } else {
+ KMyMoneyCheckListItem* clItem;
+ KMyMoneyListViewItem* liItem;
+ bool previous = true;
+ if(TQListViewItem::parent()) {
+ clItem = dynamic_cast<KMyMoneyCheckListItem *>(TQListViewItem::parent());
+ liItem = dynamic_cast<KMyMoneyListViewItem*>(TQListViewItem::parent());
+ if(clItem)
+ previous = clItem->m_isOdd;
+ else
+ previous = liItem->m_isOdd;
+ clItem = dynamic_cast<KMyMoneyCheckListItem *>(TQListViewItem::parent()->firstChild());
+ liItem = dynamic_cast<KMyMoneyListViewItem*>(TQListViewItem::parent()->firstChild());
+ } else {
+ clItem = dynamic_cast<KMyMoneyCheckListItem *>(listView()->firstChild());
+ liItem = dynamic_cast<KMyMoneyListViewItem*>(listView()->firstChild());
+ }
+ while(clItem || liItem) {
+ if(clItem) {
+ clItem->m_isOdd = previous = !previous;
+ clItem->m_isKnown = true;
+ liItem = dynamic_cast<KMyMoneyListViewItem *>(clItem->nextSibling());
+ clItem = dynamic_cast<KMyMoneyCheckListItem *>(clItem->nextSibling());
+ } else if(liItem) {
+ liItem->m_isOdd = previous = !previous;
+ liItem->m_isKnown = true;
+ clItem = dynamic_cast<KMyMoneyCheckListItem *>(liItem->nextSibling());
+ liItem = dynamic_cast<KMyMoneyListViewItem *>(liItem->nextSibling());
+ }
+ }
+ }
+ return m_isOdd;
+}
+
+#include "kmymoneychecklistitem.moc"