QList<int> XmlSettingsDialog::HighlightMatches (const QString& query) { QList<int> result; if (query.isEmpty ()) { for (int i = 0; i < Pages_->count (); ++i) { EnableChildren (Pages_->widget (i)); result << i; } return result; } for (int i = 0; i < Pages_->count (); ++i) { if (Titles_.at (i).contains (query, Qt::CaseInsensitive)) { EnableChildren (Pages_->widget (i)); result << i; continue; } if (HighlightWidget (Pages_->widget (i), query, HandlersManager_)) result << i; } return result; }
result = true; break; } if (result) { EnableChildren (widget); return true; } } Q_FOREACH (auto tab, widget->findChildren<QTabWidget*> ()) for (int i = 0; i < tab->count (); ++i) { const bool tabTextMatches = tab->tabText (i).contains (query, Qt::CaseInsensitive); const bool tabMatches = tabTextMatches || HighlightWidget (tab->widget (i), query, factory); tab->setTabEnabled (i, tabMatches); if (tabTextMatches) EnableChildren (tab->widget (i)); Q_FOREACH (auto tabChild, tab->findChildren<QWidget*> ()) allChildren.removeAll (tabChild); if (tabMatches) { tab->setEnabled (true); result = true; } } Q_FOREACH (auto child, allChildren)