/* * This file is part of the proxy model test suite. * * Copyright 2009  Stephen Kelly * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301  USA */ #include "recursivefilterpmwidget.h" #include #include #include #include #include #include #include "dynamictreemodel.h" #include "dynamictreewidget.h" RecursiveFilterProxyWidget::RecursiveFilterProxyWidget(QWidget* parent) : QWidget(parent), m_lineEdit(new QLineEdit(this)), m_label(new QLabel(this)) { m_label->setText("Matching filter re: "); m_lineEdit->setText("12|13|37|4"); QHBoxLayout *hLayout = new QHBoxLayout(); QVBoxLayout *vLayout = new QVBoxLayout(this); QSplitter *splitter = new QSplitter(this); m_rootModel = new DynamicTreeModel(this); m_recursive = new KRecursiveFilterProxyModel(this); m_recursiveSubclass = new KRecursiveFilterProxyModelSubclass(this); DynamicTreeWidget *dynamicTreeWidget = new DynamicTreeWidget(m_rootModel, splitter); QTreeView *recursiveView = new QTreeView(splitter); recursiveView->setModel(m_recursive); QTreeView *recursiveSubclassView = new QTreeView(splitter); recursiveSubclassView->setModel(m_recursiveSubclass); hLayout->addWidget(m_label); hLayout->addWidget(m_lineEdit); vLayout->addLayout(hLayout); vLayout->addWidget(splitter); connect(m_lineEdit, SIGNAL(textChanged(QString)), SLOT(reset())); connect(m_lineEdit, SIGNAL(textChanged(QString)), recursiveView, SLOT(expandAll())); connect(m_lineEdit, SIGNAL(textChanged(QString)), recursiveSubclassView, SLOT(expandAll())); connect(dynamicTreeWidget->textEdit(), SIGNAL(textChanged()), recursiveView, SLOT(expandAll())); connect(dynamicTreeWidget->textEdit(), SIGNAL(textChanged()), recursiveSubclassView, SLOT(expandAll())); connect(m_recursive, SIGNAL(modelReset()), recursiveView, SLOT(expandAll()), Qt::QueuedConnection); connect(m_recursiveSubclass, SIGNAL(modelReset()), recursiveSubclassView, SLOT(expandAll()), Qt::QueuedConnection); m_recursive->setSourceModel(m_rootModel); m_recursiveSubclass->setSourceModel(m_rootModel); reset(); } void RecursiveFilterProxyWidget::reset() { m_recursive->setFilterRegExp(m_lineEdit->text()); m_recursiveSubclass->setRegExp(QRegExp(m_lineEdit->text())); }