void ItemHandlerListView::Handle (const QDomElement& item, QWidget *pwidget) { QGridLayout *lay = qobject_cast<QGridLayout*> (pwidget->layout ()); QListView *list = new QListView (XSD_); const QString& prop = item.attribute ("property"); list->setObjectName (prop); Factory_->RegisterDatasourceSetter (prop, [this] (const QString& str, QAbstractItemModel *m, Util::XmlSettingsDialog*) { SetDataSource (str, m); }); Propname2Listview_ [prop] = list; QLabel *label = new QLabel (XSD_->GetLabel (item)); label->setWordWrap (false); list->setProperty ("ItemHandler", QVariant::fromValue<QObject*> (this)); list->setProperty ("SearchTerms", label->text ()); int row = lay->rowCount (); lay->addWidget (label, row, 0, Qt::AlignLeft); lay->addWidget (list, row + 1, 0); }