Ok, the long awaited config wizard is here (at least in a very basic state). There...
[quassel.git] / src / contrib / libqxt-2007-10-24 / src / gui / qxttreewidgetitem.cpp
1 /****************************************************************************
2 **
3 ** Copyright (C) Qxt Foundation. Some rights reserved.
4 **
5 ** This file is part of the QxtGui module of the Qt eXTension library
6 **
7 ** This library is free software; you can redistribute it and/or modify it
8 ** under the terms of th Common Public License, version 1.0, as published by
9 ** IBM.
10 **
11 ** This file is provided "AS IS", without WARRANTIES OR CONDITIONS OF ANY
12 ** KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
13 ** WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR
14 ** FITNESS FOR A PARTICULAR PURPOSE.
15 **
16 ** You should have received a copy of the CPL along with this file.
17 ** See the LICENSE file and the cpl1.0.txt file included with the source
18 ** distribution for more information. If you did not receive a copy of the
19 ** license, contact the Qxt Foundation.
20 **
21 ** <http://libqxt.sourceforge.net>  <foundation@libqxt.org>
22 **
23 ****************************************************************************/
24 #include "qxttreewidgetitem.h"
25 #include "qxttreewidget.h"
26
27 /*!
28     \class QxtTreeWidgetItem QxtTreeWidgetItem
29     \ingroup QxtGui
30     \brief An extended QTreeWidgetItem.
31
32     QxtTreeWidgetItem provides means for offering check state change signals and
33     convenience methods for testing and setting flags.
34
35     \sa QxtTreeWidget
36  */
37
38
39 QxtTreeWidgetItem::QxtTreeWidgetItem(int type)
40         : QTreeWidgetItem(type)
41 {}
42
43 QxtTreeWidgetItem::QxtTreeWidgetItem(const QStringList& strings, int type)
44         : QTreeWidgetItem(strings, type)
45 {}
46
47 QxtTreeWidgetItem::QxtTreeWidgetItem(QTreeWidget* parent, int type)
48         : QTreeWidgetItem(parent, type)
49 {}
50
51 QxtTreeWidgetItem::QxtTreeWidgetItem(QTreeWidget* parent, const QStringList& strings, int type)
52         : QTreeWidgetItem(parent, strings, type)
53 {}
54
55 QxtTreeWidgetItem::QxtTreeWidgetItem(QTreeWidget* parent, QTreeWidgetItem* preceding, int type)
56         : QTreeWidgetItem(parent, preceding, type)
57 {}
58
59 QxtTreeWidgetItem::QxtTreeWidgetItem(QTreeWidgetItem* parent, int type)
60         : QTreeWidgetItem(parent, type)
61 {}
62
63 QxtTreeWidgetItem::QxtTreeWidgetItem(QTreeWidgetItem* parent, const QStringList& strings, int type)
64         : QTreeWidgetItem(parent, strings, type)
65 {}
66
67 QxtTreeWidgetItem::QxtTreeWidgetItem(QTreeWidgetItem* parent, QTreeWidgetItem* preceding, int type)
68         : QTreeWidgetItem(parent, preceding, type)
69 {}
70
71 QxtTreeWidgetItem::QxtTreeWidgetItem(const QxtTreeWidgetItem& other)
72         : QTreeWidgetItem(other)
73 {}
74
75 QxtTreeWidgetItem::~QxtTreeWidgetItem()
76 {}
77
78 /*!
79     Returns \b true if the \a flag is set, otherwise \b false.
80
81     \sa setFlag(), QTreeWidgetItem::flags(), Qt::ItemFlag
82  */
83 bool QxtTreeWidgetItem::testFlag(Qt::ItemFlag flag) const
84 {
85     return (flags() & flag);
86 }
87
88 /*!
89     If \a enabled is \b true, the item \a flag is enabled; otherwise, it is disabled.
90
91     \sa testFlag(), QTreeWidgetItem::setFlags(), Qt::ItemFlag
92  */
93 void QxtTreeWidgetItem::setFlag(Qt::ItemFlag flag, bool enabled)
94 {
95     if (enabled)
96         setFlags(flags() | flag);
97     else
98         setFlags(flags() & ~flag);
99 }
100
101 void QxtTreeWidgetItem::setData(int column, int role, const QVariant& value)
102 {
103     if (role == Qt::CheckStateRole)
104     {
105         const Qt::CheckState newState = static_cast<Qt::CheckState>(value.toInt());
106         const Qt::CheckState oldState = static_cast<Qt::CheckState>(data(column, role).toInt());
107
108         QTreeWidgetItem::setData(column, role, value);
109
110         if (newState != oldState)
111         {
112             QxtTreeWidget* tree = qobject_cast<QxtTreeWidget*>(treeWidget());
113             if (tree)
114             {
115                 emit tree->itemCheckStateChanged(this);
116             }
117         }
118     }
119     else
120     {
121         QTreeWidgetItem::setData(column, role, value);
122     }
123 }