Merge branch 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into master-integration
[qt-netbsd.git] / tools / shared / qtpropertybrowser / qttreepropertybrowser.h
blob00307258ffa0eedd0424e27765d5055267788221
1 /****************************************************************************
2 **
3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: Nokia Corporation (qt-info@nokia.com)
6 **
7 ** This file is part of the tools applications of the Qt Toolkit.
8 **
9 ** $QT_BEGIN_LICENSE:LGPL$
10 ** No Commercial Usage
11 ** This file contains pre-release code and may not be distributed.
12 ** You may use this file in accordance with the terms and conditions
13 ** contained in the Technology Preview License Agreement accompanying
14 ** this package.
16 ** GNU Lesser General Public License Usage
17 ** Alternatively, this file may be used under the terms of the GNU Lesser
18 ** General Public License version 2.1 as published by the Free Software
19 ** Foundation and appearing in the file LICENSE.LGPL included in the
20 ** packaging of this file. Please review the following information to
21 ** ensure the GNU Lesser General Public License version 2.1 requirements
22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 ** In addition, as a special exception, Nokia gives you certain additional
25 ** rights. These rights are described in the Nokia Qt LGPL Exception
26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 ** If you have questions regarding the use of this file, please contact
29 ** Nokia at qt-info@nokia.com.
38 ** $QT_END_LICENSE$
40 ****************************************************************************/
42 #ifndef QTTREEPROPERTYBROWSER_H
43 #define QTTREEPROPERTYBROWSER_H
45 #include "qtpropertybrowser.h"
47 QT_BEGIN_NAMESPACE
49 class QTreeWidgetItem;
50 class QtTreePropertyBrowserPrivate;
52 class QtTreePropertyBrowser : public QtAbstractPropertyBrowser
54 Q_OBJECT
55 Q_ENUMS(ResizeMode)
56 Q_PROPERTY(int indentation READ indentation WRITE setIndentation)
57 Q_PROPERTY(bool rootIsDecorated READ rootIsDecorated WRITE setRootIsDecorated)
58 Q_PROPERTY(bool alternatingRowColors READ alternatingRowColors WRITE setAlternatingRowColors)
59 Q_PROPERTY(bool headerVisible READ isHeaderVisible WRITE setHeaderVisible)
60 Q_PROPERTY(ResizeMode resizeMode READ resizeMode WRITE setResizeMode)
61 Q_PROPERTY(int splitterPosition READ splitterPosition WRITE setSplitterPosition)
62 Q_PROPERTY(bool propertiesWithoutValueMarked READ propertiesWithoutValueMarked WRITE setPropertiesWithoutValueMarked)
63 public:
65 enum ResizeMode
67 Interactive,
68 Stretch,
69 Fixed,
70 ResizeToContents
73 QtTreePropertyBrowser(QWidget *parent = 0);
74 ~QtTreePropertyBrowser();
76 int indentation() const;
77 void setIndentation(int i);
79 bool rootIsDecorated() const;
80 void setRootIsDecorated(bool show);
82 bool alternatingRowColors() const;
83 void setAlternatingRowColors(bool enable);
85 bool isHeaderVisible() const;
86 void setHeaderVisible(bool visible);
88 ResizeMode resizeMode() const;
89 void setResizeMode(ResizeMode mode);
91 int splitterPosition() const;
92 void setSplitterPosition(int position);
94 void setExpanded(QtBrowserItem *item, bool expanded);
95 bool isExpanded(QtBrowserItem *item) const;
97 bool isItemVisible(QtBrowserItem *item) const;
98 void setItemVisible(QtBrowserItem *item, bool visible);
100 void setBackgroundColor(QtBrowserItem *item, const QColor &color);
101 QColor backgroundColor(QtBrowserItem *item) const;
102 QColor calculatedBackgroundColor(QtBrowserItem *item) const;
104 void setPropertiesWithoutValueMarked(bool mark);
105 bool propertiesWithoutValueMarked() const;
107 void editItem(QtBrowserItem *item);
109 Q_SIGNALS:
111 void collapsed(QtBrowserItem *item);
112 void expanded(QtBrowserItem *item);
114 protected:
115 virtual void itemInserted(QtBrowserItem *item, QtBrowserItem *afterItem);
116 virtual void itemRemoved(QtBrowserItem *item);
117 virtual void itemChanged(QtBrowserItem *item);
119 private:
121 QScopedPointer<QtTreePropertyBrowserPrivate> d_ptr;
122 Q_DECLARE_PRIVATE(QtTreePropertyBrowser)
123 Q_DISABLE_COPY(QtTreePropertyBrowser)
125 Q_PRIVATE_SLOT(d_func(), void slotCollapsed(const QModelIndex &))
126 Q_PRIVATE_SLOT(d_func(), void slotExpanded(const QModelIndex &))
127 Q_PRIVATE_SLOT(d_func(), void slotCurrentBrowserItemChanged(QtBrowserItem *))
128 Q_PRIVATE_SLOT(d_func(), void slotCurrentTreeItemChanged(QTreeWidgetItem *, QTreeWidgetItem *))
132 QT_END_NAMESPACE
134 #endif