Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.cpp (14598 => 14599)
--- freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.cpp 2009-08-22 19:26:58 UTC (rev 14598)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.cpp 2009-08-22 20:48:39 UTC (rev 14599)
@@ -62,6 +62,16 @@
QObject::connect(esl, SIGNAL(receivedLogMessage(ESLevent)),
this, SLOT(gotEvent(ESLevent)));
+ /* Test SVN version to enable or disable UUID searching */
+ bool ok;
+ int version = QString(FSGUI_SVN_VERSION).toInt(&ok);
+ if (ok) {
+ if (version >= 14598)
+ m_ui->filterSyntaxComboBox->addItem("UUID");
+ /* User is running modified version and must be responsible */
+ } else {
+ m_ui->filterSyntaxComboBox->addItem("UUID");
+ }
esl->connect();
@@ -111,15 +121,39 @@
void ConsoleTabWidget::filterStringChanged()
{
- 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);
+ switch (m_ui->filterSyntaxComboBox->currentIndex())
+ {
+ case 0:
+ {
+ QRegExp regExp(m_ui->lineFilter->text(), caseSensitivity, QRegExp::RegExp2);
+ model->setUUIDFilterLog(QString());
+ model->setFilterRegExp(regExp);
+ break;
+ }
+ case 1:
+ {
+ QRegExp regExp(m_ui->lineFilter->text(), caseSensitivity, QRegExp::Wildcard);
+ model->setUUIDFilterLog(QString());
+ model->setFilterRegExp(regExp);
+ break;
+ }
+ case 2:
+ {
+ QRegExp regExp(m_ui->lineFilter->text(), caseSensitivity, QRegExp::FixedString);
+ model->setUUIDFilterLog(QString());
+ model->setFilterRegExp(regExp);
+ break;
+ }
+ default:
+ {
+ model->setFilterRegExp(QString());
+ model->setUUIDFilterLog(m_ui->lineFilter->text());
+ break;
+ }
+ }
m_ui->btnFilterClear->setDisabled(m_ui->lineFilter->text().isEmpty());
}
@@ -171,7 +205,8 @@
for (int line = 0; line < lines.size(); ++line)
{
QStandardItem *item = new QStandardItem(lines[line]);
- item->setData(event._headers.value("Log-Level").toInt(), Qt::UserRole);
+ item->setData(event._headers.value("Log-Level").toInt(), ConsoleModel::LogLevelRole);
+ item->setData(event._headers.value("User-Data"), ConsoleModel::UUIDRole);
addNewConsoleItem(item);
}
}
Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/sortfilterproxymodel.cpp (14598 => 14599)
--- freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/sortfilterproxymodel.cpp 2009-08-22 19:26:58 UTC (rev 14598)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/sortfilterproxymodel.cpp 2009-08-22 20:48:39 UTC (rev 14599)
@@ -75,10 +75,21 @@
invalidateFilter();
}
+void SortFilterProxyModel::setUUIDFilterLog(QString uuid)
+{
+ _uuid = uuid;
+ invalidateFilter();
+}
+
bool SortFilterProxyModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
{
QModelIndex index0 = sourceModel()->index(source_row, 0, source_parent);
+ bool uuidMatch = true;
+ if (!_uuid.isEmpty())
+ uuidMatch = (sourceModel()->data(index0, ConsoleModel::UUIDRole).toString() == _uuid);
+
return (loglevels.value(sourceModel()->data(index0, Qt::UserRole).toInt()) == true
- && sourceModel()->data(index0).toString().contains(filterRegExp()));
+ && sourceModel()->data(index0).toString().contains(filterRegExp())
+ && uuidMatch);
}
Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/sortfilterproxymodel.h (14598 => 14599)
--- freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/sortfilterproxymodel.h 2009-08-22 19:26:58 UTC (rev 14598)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/sortfilterproxymodel.h 2009-08-22 20:48:39 UTC (rev 14599)
@@ -19,6 +19,11 @@
QVariant data ( const QModelIndex & index, int role = Qt::DisplayRole ) const;
void appendRow ( QStandardItem* item );
void clear();
+
+ enum {
+ LogLevelRole = Qt::UserRole,
+ UUIDRole
+ };
protected:
void timerEvent(QTimerEvent *);
private:
@@ -35,12 +40,14 @@
public:
SortFilterProxyModel(QObject *parent = 0);
void setLogLevelFilter(int level, bool state);
+ void setUUIDFilterLog(QString uuid);
protected:
bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const;
private:
QVector<bool> loglevels;
+ QString _uuid;
};
#endif // SORTFILTERPROXYMODEL_H