X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=gui%2Fsettingsdialog.cpp;h=c44b10740ec97d9f4e631b4acfd23ad7b27f6970;hb=d6c02fd58feb2b48be13a2405d0eb738ed62925a;hp=e3d7864b6ae751cf5368ec8b77427f5e0371367c;hpb=20e6a8ca8602718c9da406b0109d20095efcfc86;p=apitrace diff --git a/gui/settingsdialog.cpp b/gui/settingsdialog.cpp index e3d7864..c44b107 100644 --- a/gui/settingsdialog.cpp +++ b/gui/settingsdialog.cpp @@ -38,6 +38,15 @@ void SettingsDialog::filtersFromModel(const ApiTraceFilter *model) functionsBox->setChecked(opts & ApiTraceFilter::ResolutionsFilter); errorsBox->setChecked(opts & ApiTraceFilter::ErrorsQueryFilter); statesBox->setChecked(opts & ApiTraceFilter::ExtraStateFilter); + customBox->setChecked(opts & ApiTraceFilter::CustomFilter); + QString customFilter = model->customFilterRegexp(); + if (!customFilter.isEmpty()) { + customEdit->setText(customFilter); + } else { + //Add a common default + QLatin1String str("glXMakeContextCurrent"); + customEdit->setText(str); + } QRegExp regexp = model->filterRegexp(); if (regexp.isEmpty()) { @@ -63,14 +72,22 @@ void SettingsDialog::filtersFromModel(const ApiTraceFilter *model) void SettingsDialog::filtersToModel(ApiTraceFilter *model) { ApiTraceFilter::FilterOptions opts = ApiTraceFilter::NullFilter; - if (extensionsBox->isChecked()) + if (extensionsBox->isChecked()) { opts |= ApiTraceFilter::ExtensionsFilter; - if (functionsBox->isChecked()) + } + if (functionsBox->isChecked()) { opts |= ApiTraceFilter::ResolutionsFilter; - if (errorsBox->isChecked()) + } + if (errorsBox->isChecked()) { opts |= ApiTraceFilter::ErrorsQueryFilter; - if (statesBox->isChecked()) + } + if (statesBox->isChecked()) { opts |= ApiTraceFilter::ExtraStateFilter; + } + if (customBox->isChecked()) { + opts |= ApiTraceFilter::CustomFilter; + m_filter->setCustomFilterRegexp(customEdit->text()); + } m_filter->setFilterOptions(opts); if (showFilterBox->isChecked()) { m_filter->setFilterRegexp(QRegExp(showFilterEdit->text())); @@ -92,6 +109,17 @@ void SettingsDialog::accept() return; } } + if (customBox->isChecked()) { + QRegExp regexp(customEdit->text()); + if (!regexp.isValid()) { + QMessageBox::warning( + this, + tr("Invalid Regexp"), + tr("The currently set regular expression " + "for custom events is invalid.")); + return; + } + } filtersToModel(m_filter); QDialog::accept(); }