File indexing completed on 2024-04-28 11:42:28
0001 /* 0002 SPDX-FileCopyrightText: 2009 Stephen Kelly <steveire@gmail.com> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef DYNAMICTREEWIDGET_H 0008 #define DYNAMICTREEWIDGET_H 0009 0010 #include <QWidget> 0011 0012 #include "proxymodeltestsuite_export.h" 0013 0014 class QModelIndex; 0015 0016 class QComboBox; 0017 class QPlainTextEdit; 0018 class QTreeView; 0019 class QRadioButton; 0020 0021 class DynamicTreeModel; 0022 0023 class PROXYMODELTESTSUITE_EXPORT DynamicTreeWidget : public QWidget 0024 { 0025 Q_OBJECT 0026 public: 0027 DynamicTreeWidget(DynamicTreeModel *rootModel, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); 0028 0029 void setInitialTree(const QString &treeString); 0030 0031 DynamicTreeModel *model() const 0032 { 0033 return m_dynamicTreeModel; 0034 } 0035 QTreeView *treeView() const 0036 { 0037 return m_treeView; 0038 } 0039 QPlainTextEdit *textEdit() const 0040 { 0041 return m_textEdit; 0042 } 0043 0044 private Q_SLOTS: 0045 void currentChanged(int index); 0046 void setTreePredefine(int index); 0047 void setInsertSubTreePredefine(int index); 0048 0049 void removeSelected(); 0050 void insertSelected(); 0051 void resetModel(); 0052 0053 private: 0054 void stringToModel(const QString &treeString); 0055 QString modelTreeToString(int depth, const QModelIndex &parent); 0056 0057 private: 0058 enum Tab { 0059 EditTab, 0060 ViewTab, 0061 }; 0062 0063 QString m_initialString; 0064 DynamicTreeModel *m_dynamicTreeModel; 0065 QTreeView *m_treeView; 0066 QPlainTextEdit *m_textEdit; 0067 0068 QPlainTextEdit *m_insertPatternTextEdit; 0069 QRadioButton *m_insertChildren; 0070 QRadioButton *m_insertSiblingsAbove; 0071 QRadioButton *m_insertSiblingsBelow; 0072 QComboBox *m_insertSubTreePredefines; 0073 QComboBox *m_treePredefines; 0074 }; 0075 0076 #endif