Revision
14599
Author
jmesquita
Date
2009-08-22 15:48:39 -0500 (Sat, 22 Aug 2009)

Log Message

UUID searching now available

Modified Paths

Diff

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