1 #include "settingsdialog.h"
5 SettingsDialog::SettingsDialog(QWidget *parent)
13 QRegExp("glDraw|glVertex|glBegin|glEnd"));
16 QRegExp("glTex|glBindTex|glBegin|glEnd"));
18 QMap<QString, QRegExp>::const_iterator itr;
19 for (itr = m_showFilters.constBegin();
20 itr != m_showFilters.constEnd(); ++itr) {
21 showFilterCB->addItem(itr.key(), itr.value());
23 showFilterCB->addItem(tr("Custom"), QRegExp());
25 connect(showFilterCB, SIGNAL(currentIndexChanged(const QString &)),
26 SLOT(changeRegexp(const QString&)));
27 connect(showFilterEdit, SIGNAL(textEdited(const QString &)),
28 SLOT(regexpChanged(const QString&)));
30 showFilterCB->setCurrentIndex(0);
31 showFilterEdit->setText(m_showFilters.constBegin().value().pattern());
34 void SettingsDialog::filtersFromModel(const ApiTraceFilter *model)
36 ApiTraceFilter::FilterOptions opts = model->filterOptions();
37 extensionsBox->setChecked(opts & ApiTraceFilter::ExtensionsFilter);
38 functionsBox->setChecked(opts & ApiTraceFilter::ResolutionsFilter);
39 errorsBox->setChecked(opts & ApiTraceFilter::ErrorsQueryFilter);
40 statesBox->setChecked(opts & ApiTraceFilter::ExtraStateFilter);
42 QRegExp regexp = model->filterRegexp();
43 if (regexp.isEmpty()) {
44 showFilterBox->setChecked(false);
46 showFilterBox->setChecked(true);
47 QMap<QString, QRegExp>::const_iterator itr;
49 for (itr = m_showFilters.constBegin();
50 itr != m_showFilters.constEnd(); ++itr, ++i) {
51 if (itr.value() == regexp) {
52 showFilterCB->setCurrentIndex(i);
53 showFilterEdit->setText(itr.value().pattern());
58 showFilterCB->setCurrentIndex(m_showFilters.count());
59 showFilterEdit->setText(regexp.pattern());
63 void SettingsDialog::filtersToModel(ApiTraceFilter *model)
65 ApiTraceFilter::FilterOptions opts = ApiTraceFilter::NullFilter;
66 if (extensionsBox->isChecked())
67 opts |= ApiTraceFilter::ExtensionsFilter;
68 if (functionsBox->isChecked())
69 opts |= ApiTraceFilter::ResolutionsFilter;
70 if (errorsBox->isChecked())
71 opts |= ApiTraceFilter::ErrorsQueryFilter;
72 if (statesBox->isChecked())
73 opts |= ApiTraceFilter::ExtraStateFilter;
74 m_filter->setFilterOptions(opts);
75 if (showFilterBox->isChecked()) {
76 m_filter->setFilterRegexp(QRegExp(showFilterEdit->text()));
78 m_filter->setFilterRegexp(QRegExp());
82 void SettingsDialog::accept()
84 if (showFilterBox->isChecked()) {
85 QRegExp regexp(showFilterEdit->text());
86 if (!regexp.isValid()) {
90 tr("The currently set regular expression "
91 "for filtering events is invalid."));
95 filtersToModel(m_filter);
99 void SettingsDialog::changeRegexp(const QString &name)
101 showFilterEdit->setText(m_showFilters[name].pattern());
104 void SettingsDialog::regexpChanged(const QString &pattern)
106 int customIndex = m_showFilters.count();
107 if (showFilterCB->currentIndex() != customIndex) {
108 showFilterCB->blockSignals(true);
109 showFilterCB->setCurrentIndex(customIndex);
110 showFilterCB->blockSignals(false);
114 void SettingsDialog::setFilterModel(ApiTraceFilter *filter)
117 filtersFromModel(m_filter);
120 #include "settingsdialog.moc"