| 4829 | } |
| 4830 | |
| 4831 | void EventBrowser::settings_filterApply() |
| 4832 | { |
| 4833 | if(m_FilterSettings.Timeout->isActive()) |
| 4834 | m_FilterSettings.Timeout->stop(); |
| 4835 | |
| 4836 | ParseTrace trace; |
| 4837 | rdcarray<EventFilter> filters; |
| 4838 | trace = m_FilterModel->ParseExpressionToFilters(m_FilterSettings.Filter->toPlainText(), filters); |
| 4839 | |
| 4840 | QList<QTextEdit::ExtraSelection> sels; |
| 4841 | |
| 4842 | QPalette pal = m_FilterSettings.Filter->palette(); |
| 4843 | |
| 4844 | if(trace.hasErrors()) |
| 4845 | { |
| 4846 | pal.setColor(QPalette::WindowText, QColor(170, 0, 0)); |
| 4847 | m_FilterSettings.Notes->setPalette(pal); |
| 4848 | m_FilterSettings.Explanation->clear(); |
| 4849 | |
| 4850 | m_FilterSettings.Notes->setText(trace.errorText.trimmed()); |
| 4851 | |
| 4852 | QTextEdit::ExtraSelection sel; |
| 4853 | |
| 4854 | sel.cursor = m_FilterSettings.Filter->textCursor(); |
| 4855 | sel.cursor.setPosition(trace.position, QTextCursor::MoveAnchor); |
| 4856 | |
| 4857 | sel.cursor.setPosition(trace.position + trace.length, QTextCursor::KeepAnchor); |
| 4858 | sel.format.setUnderlineStyle(QTextCharFormat::SingleUnderline); |
| 4859 | sel.format.setUnderlineColor(QColor(Qt::red)); |
| 4860 | sels.push_back(sel); |
| 4861 | } |
| 4862 | else |
| 4863 | { |
| 4864 | m_FilterSettings.Notes->setPalette(pal); |
| 4865 | |
| 4866 | int idx = 0; |
| 4867 | QString notesText; |
| 4868 | |
| 4869 | AddFilterSelections(m_FilterSettings.Filter->textCursor(), idx, |
| 4870 | m_FilterSettings.Filter->palette().color(QPalette::Base), |
| 4871 | m_FilterSettings.Filter->palette().color(QPalette::Text), trace.exprs, sels); |
| 4872 | m_FilterSettings.Explanation->clear(); |
| 4873 | AddFilterExplanations(m_FilterSettings.Explanation->invisibleRootItem(), trace.exprs, notesText); |
| 4874 | |
| 4875 | if(trace.exprs.isEmpty()) |
| 4876 | { |
| 4877 | m_FilterSettings.Explanation->addTopLevelItem( |
| 4878 | new RDTreeWidgetItem({tr("No filters - all events shown"), QString()})); |
| 4879 | } |
| 4880 | |
| 4881 | m_FilterSettings.Notes->setText(QFormatStr("<html>%1</html>").arg(notesText.trimmed())); |
| 4882 | |
| 4883 | ui->filterExpression->setPlainText(m_FilterSettings.Filter->toPlainText()); |
| 4884 | m_FilterTimeout->stop(); |
| 4885 | filter_apply(); |
| 4886 | } |
| 4887 | |
| 4888 | m_FilterSettings.Filter->setExtraSelections(sels); |
nothing calls this directly
no test coverage detected