コード例 #1
0
void CGeorgesTreeViewDialog::filterRows()
{
    nlinfo("CGeorgesTreeViewDialog::filterRows");
    CGeorgesFormProxyModel * mp = dynamic_cast<CGeorgesFormProxyModel *>(_ui.treeView->model());
    CGeorgesFormModel *m = dynamic_cast<CGeorgesFormModel *>(mp->sourceModel());
    if (m) {
        m->setShowParents(_ui.checkBoxParent->isChecked());
        m->setShowDefaults(_ui.checkBoxDefaults->isChecked());
    }

    //CGeorgesFormProxyModel * mp = dynamic_cast<CGeorgesFormProxyModel *>(_ui.treeView->model());
    //CGeorgesFormModel *m = dynamic_cast<CGeorgesFormModel *>(mp->sourceModel());

    //for (int i = 0; i < m->rowCount(); i++)
    //{
    //	const QModelIndex in = m->index(i,0);
    //	if (m->getItem(in)->nodeFrom() == UFormElm::NodeParentForm)
    //	{
    //		if (newState == Qt::Checked)
    //		{
    //			_ui.treeView->setRowHidden(in.row(),in.parent(),false);
    //		}
    //		else
    //		{
    //			_ui.treeView->setRowHidden(in.row(),in.parent(),true);
    //		}
    //	}
    //	else
    //	{ // search childs // recursive?
    //		for (int j = 0; j < m->rowCount(in); j++)
    //		{
    //			const QModelIndex in2 = m->index(j,0,in);
    //			if (m->getItem(in2)->nodeFrom() == UFormElm::NodeParentForm)
    //			{
    //				if (newState == Qt::Checked)
    //				{
    //					_ui.treeView->setRowHidden(in2.row(),in,false);
    //				}
    //				else
    //				{
    //					_ui.treeView->setRowHidden(in2.row(),in,true);
    //				}
    //			}
    //		}
    //	} // end of search childs
    //}
}