Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.cpp (14503 => 14504)
--- freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.cpp 2009-08-13 07:05:53 UTC (rev 14503)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.cpp 2009-08-13 08:23:08 UTC (rev 14504)
@@ -36,10 +36,14 @@
QObject::connect(m_ui->checkDebug, SIGNAL(clicked(bool)),
this, SLOT(checkDebug(bool)));
- QObject::connect(m_ui->btnFind, SIGNAL(clicked()),
- this, SLOT(find()));
- QObject::connect(m_ui->lineFind, SIGNAL(textChanged(QString)),
- this, SLOT(findStringChanged(QString)));
+ QObject::connect(m_ui->btnFilterClear, SIGNAL(clicked()),
+ this, SLOT(filterClear()));
+ QObject::connect(m_ui->lineFilter, SIGNAL(textChanged(QString)),
+ this, SLOT(filterStringChanged()));
+ QObject::connect(m_ui->filterCaseSensitivityCheckBox, SIGNAL(toggled(bool)),
+ this, SLOT(filterStringChanged()));
+ QObject::connect(m_ui->filterSyntaxComboBox, SIGNAL(currentIndexChanged(int)),
+ this, SLOT(filterStringChanged()));
QObject::connect(esl, SIGNAL(connected()),
this, SLOT(connected()));
@@ -108,47 +112,23 @@
m_ui->consoleListView->scrollToBottom();
}
-void ConsoleTabWidget::find()
+void ConsoleTabWidget::filterClear()
{
- if (m_ui->lineFind->text().isEmpty())
- return;
-
- QModelIndexList index;
- if (m_ui->consoleListView->currentIndex().isValid())
- {
- index = model->match(m_ui->consoleListView->currentIndex(), Qt::DisplayRole, m_ui->lineFind->text(), -1, Qt::MatchContains|Qt::MatchWrap);
- }
- else
- {
- index = model->match(model->index(0,0), Qt::DisplayRole, m_ui->lineFind->text(), -1, Qt::MatchContains|Qt::MatchWrap);
- }
-
- if (index.isEmpty())
- {
- QMessageBox::warning(this, tr("No match"), tr("No match found!"));
- }
- else
- {
- if (findNext == true && index.count() > 1)
- {
- m_ui->consoleListView->scrollTo(index.at(1));
- m_ui->consoleListView->setCurrentIndex(index.at(1));
- }
- else
- {
- m_ui->consoleListView->scrollTo(index.at(0));
- m_ui->consoleListView->setCurrentIndex(index.at(0));
- }
- findNext = true;
- m_ui->btnFind->setText(tr("Find Next"));
- }
+ m_ui->lineFilter->clear();
}
-void ConsoleTabWidget::findStringChanged(QString findString)
+void ConsoleTabWidget::filterStringChanged()
{
- m_ui->btnFind->setDisabled(findString.isEmpty());
- m_ui->btnFind->setText(tr("Find"));
- findNext = false;
+ QRegExp::PatternSyntax syntax =
+ QRegExp::PatternSyntax(m_ui->filterSyntaxComboBox->itemData(
+ m_ui->filterSyntaxComboBox->currentIndex()).toInt());
+ Qt::CaseSensitivity caseSensitivity =
+ m_ui->filterCaseSensitivityCheckBox->isChecked() ? Qt::CaseSensitive
+ : Qt::CaseInsensitive;
+
+ QRegExp regExp(m_ui->lineFilter->text(), caseSensitivity, syntax);
+ model->setFilterRegExp(regExp);
+ m_ui->btnFilterClear->setDisabled(m_ui->lineFilter->text().isEmpty());
}
void ConsoleTabWidget::connected()
@@ -200,6 +180,7 @@
}
}
delete event;
+
}
void ConsoleTabWidget::addNewConsoleItem(QStandardItem *item)
Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.h (14503 => 14504)
--- freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.h 2009-08-13 07:05:53 UTC (rev 14503)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.h 2009-08-13 08:23:08 UTC (rev 14504)
@@ -31,8 +31,8 @@
private slots:
void conditionalScroll();
- void find();
- void findStringChanged(QString);
+ void filterClear();
+ void filterStringChanged();
void connected();
void disconnected();
void connectionFailed(QString);
Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.ui (14503 => 14504)
--- freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.ui 2009-08-13 07:05:53 UTC (rev 14503)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.ui 2009-08-13 08:23:08 UTC (rev 14504)
@@ -6,18 +6,18 @@
<rect>
<x>0</x>
<y>0</y>
- <width>630</width>
- <height>499</height>
+ <width>657</width>
+ <height>445</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
- <layout class="QVBoxLayout" name="verticalLayout_2">
+ <layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
- <string>Find</string>
+ <string>Filter</string>
</property>
<property name="flat">
<bool>false</bool>
@@ -25,23 +25,72 @@
<property name="checkable">
<bool>false</bool>
</property>
- <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <layout class="QVBoxLayout" name="verticalLayout_2">
<item>
- <widget class="QLineEdit" name="lineFind"/>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <item>
+ <widget class="QLineEdit" name="lineFilter"/>
+ </item>
+ <item>
+ <widget class="QComboBox" name="filterSyntaxComboBox">
+ <property name="sizeAdjustPolicy">
+ <enum>QComboBox::AdjustToContentsOnFirstShow</enum>
+ </property>
+ <item>
+ <property name="text">
+ <string>Regular Expression</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Wildcard</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Fixed String</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="btnFilterClear">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&Clear</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
</item>
<item>
- <widget class="QPushButton" name="btnFind">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Find</string>
- </property>
- <property name="icon">
- <iconset resource="../../resources/resources.qrc">
- <normaloff>:/icons/find_icon.png</normaloff>:/icons/find_icon.png</iconset>
- </property>
- </widget>
+ <layout class="QHBoxLayout" name="horizontalLayout_4">
+ <item>
+ <widget class="QCheckBox" name="filterCaseSensitivityCheckBox">
+ <property name="text">
+ <string>Case sensitive filter</string>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>448</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
</item>
</layout>
</widget>
@@ -221,10 +270,6 @@
</item>
</layout>
</widget>
- <resources>
- <include location="../../resources/resources.qrc"/>
- <include location="../../resources/resources.qrc"/>
- <include location="../../resources/resources.qrc"/>
- </resources>
+ <resources/>
<connections/>
</ui>
Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/sortfilterproxymodel.cpp (14503 => 14504)
--- freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/sortfilterproxymodel.cpp 2009-08-13 07:05:53 UTC (rev 14503)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/sortfilterproxymodel.cpp 2009-08-13 08:23:08 UTC (rev 14504)
@@ -19,5 +19,6 @@
{
QModelIndex index0 = sourceModel()->index(source_row, 0, source_parent);
- return loglevels.value(sourceModel()->data(index0, Qt::UserRole).toInt()) == true;
+ return (loglevels.value(sourceModel()->data(index0, Qt::UserRole).toInt()) == true
+ && sourceModel()->data(index0).toString().contains(filterRegExp()));
}