qttreepropertybrowser.h
Go to the documentation of this file.
1/****************************************************************************
2**
3** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
4** Contact: http://www.qt-project.org/legal
5**
6** This file is part of the Qt Solutions component.
7**
8** $QT_BEGIN_LICENSE:BSD$
9** You may use this file under the terms of the BSD license as follows:
10**
11** "Redistribution and use in source and binary forms, with or without
12** modification, are permitted provided that the following conditions are
13** met:
14** * Redistributions of source code must retain the above copyright
15** notice, this list of conditions and the following disclaimer.
16** * Redistributions in binary form must reproduce the above copyright
17** notice, this list of conditions and the following disclaimer in
18** the documentation and/or other materials provided with the
19** distribution.
20** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
21** of its contributors may be used to endorse or promote products derived
22** from this software without specific prior written permission.
23**
24**
25** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
29** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
31** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
36**
37** $QT_END_LICENSE$
38**
39****************************************************************************/
40
41
42#pragma once
43
44#include "qtpropertybrowser.h"
45
46QT_BEGIN_NAMESPACE
47
48class QTreeWidgetItem;
50
52{
53 Q_OBJECT
54 Q_ENUMS(ResizeMode)
55 Q_PROPERTY(int indentation READ indentation WRITE setIndentation)
63public:
71
72 QtTreePropertyBrowser(QWidget* parent = 0);
73 ~QtTreePropertyBrowser() override;
74
75 int indentation() const;
76 void setIndentation(int i);
77
78 bool rootIsDecorated() const;
79 void setRootIsDecorated(bool show);
80
81 bool alternatingRowColors() const;
82 void setAlternatingRowColors(bool enable);
83
84 bool isHeaderVisible() const;
85 void setHeaderVisible(bool visible);
86
87 ResizeMode resizeMode() const;
88 void setResizeMode(ResizeMode mode);
89
90 int splitterPosition() const;
91 void setSplitterPosition(int position);
92
93 void setExpanded(QtBrowserItem* item, bool expanded);
94 bool isExpanded(QtBrowserItem* item) const;
95
96 bool isItemVisible(QtBrowserItem* item) const;
97 void setItemVisible(QtBrowserItem* item, bool visible);
98
99 void setBackgroundColor(QtBrowserItem* item, const QColor& color);
100 QColor backgroundColor(QtBrowserItem* item) const;
101 QColor calculatedBackgroundColor(QtBrowserItem* item) const;
102
103 void setPropertiesWithoutValueMarked(bool mark);
104 bool propertiesWithoutValueMarked() const;
105
106 void editItem(QtBrowserItem* item);
107
108Q_SIGNALS:
109
112
113protected:
114 void itemInserted(QtBrowserItem* item, QtBrowserItem* afterItem) override;
115 void itemRemoved(QtBrowserItem* item) override;
116 void itemChanged(QtBrowserItem* item) override;
117
118private:
120 Q_DECLARE_PRIVATE(QtTreePropertyBrowser)
121 Q_DISABLE_COPY(QtTreePropertyBrowser)
122
123 Q_PRIVATE_SLOT(d_func(), void slotCollapsed(const QModelIndex&))
124 Q_PRIVATE_SLOT(d_func(), void slotExpanded(const QModelIndex&))
125 Q_PRIVATE_SLOT(d_func(), void slotCurrentBrowserItemChanged(QtBrowserItem*))
126 Q_PRIVATE_SLOT(d_func(), void slotCurrentTreeItemChanged(QTreeWidgetItem*, QTreeWidgetItem*))
127};
128
129QT_END_NAMESPACE
QtAbstractPropertyBrowser(QWidget *parent=0)
virtual void itemInserted(QtBrowserItem *item, QtBrowserItem *afterItem)=0
virtual void itemChanged(QtBrowserItem *item)=0
virtual void itemRemoved(QtBrowserItem *item)=0
The QtBrowserItem class represents a property in a property browser instance.
The QtTreePropertyBrowser class provides QTreeWidget based property browser.
void setPropertiesWithoutValueMarked(bool mark)
bool alternatingRowColors
whether to draw the background using alternating colors. By default this property is set to true.
int splitterPosition
the position of the splitter between the colunms.
bool rootIsDecorated
whether to show controls for expanding and collapsing root items.
QtTreePropertyBrowser(QWidget *parent=0)
ResizeMode resizeMode
the resize mode of setions in the header.
int indentation
indentation of the items in the tree view.
void collapsed(QtBrowserItem *item)
void setResizeMode(ResizeMode mode)
bool propertiesWithoutValueMarked
whether to enable or disable marking properties without value.
void setSplitterPosition(int position)
void setHeaderVisible(bool visible)
void expanded(QtBrowserItem *item)
bool headerVisible
whether to show the header.
void setAlternatingRowColors(bool enable)
#define QT_QTPROPERTYBROWSER_EXPORT