Revision
14784
Author
jmesquita
Date
2009-09-07 23:27:20 -0500 (Mon, 07 Sep 2009)

Log Message

Reverse filter

Modified Paths

Diff

Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.cpp (14783 => 14784)


--- freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.cpp	2009-09-08 04:02:01 UTC (rev 14783)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.cpp	2009-09-08 04:27:20 UTC (rev 14784)
@@ -55,6 +55,8 @@
                      this, SLOT(filterStringChanged()));
     QObject::connect(m_ui->filterSyntaxComboBox, SIGNAL(currentIndexChanged(int)),
                      this, SLOT(filterStringChanged()));
+    QObject::connect(m_ui->filterReverseCheckBox, SIGNAL(toggled(bool)),
+                     this, SLOT(reverseFilterChecked()));
 
     QObject::connect(esl, SIGNAL(connected()),
                      this, SLOT(connected()));
@@ -372,3 +374,8 @@
     _pastebinDlg->raise();
     _pastebinDlg->activateWindow();
 }
+
+void ConsoleTabWidget::reverseFilterChecked()
+{
+    model->toggleReverseFlag();
+}

Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.h (14783 => 14784)


--- freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.h	2009-09-08 04:02:01 UTC (rev 14783)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.h	2009-09-08 04:27:20 UTC (rev 14784)
@@ -81,6 +81,7 @@
     void gotEvent(ESLevent);
     void addNewConsoleItem(QStandardItem *item);
     void cmdSendClicked();
+    void reverseFilterChecked();
     void lineCmdChanged(QString);
     void checkEmerg(bool);
     void checkAlert(bool);

Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.ui (14783 => 14784)


--- freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.ui	2009-09-08 04:02:01 UTC (rev 14783)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/consoletabwidget.ui	2009-09-08 04:27:20 UTC (rev 14784)
@@ -83,6 +83,16 @@
          </widget>
         </item>
         <item>
+         <widget class="QCheckBox" name="filterReverseCheckBox">
+          <property name="text">
+           <string>Reverse filter</string>
+          </property>
+          <property name="checked">
+           <bool>false</bool>
+          </property>
+         </widget>
+        </item>
+        <item>
          <widget class="QLabel" name="lblWarningMsg">
           <property name="text">
            <string/>
@@ -96,8 +106,8 @@
           </property>
           <property name="sizeHint" stdset="0">
            <size>
-            <width>627</width>
-            <height>13</height>
+            <width>358</width>
+            <height>20</height>
            </size>
           </property>
          </spacer>

Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/sortfilterproxymodel.cpp (14783 => 14784)


--- freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/sortfilterproxymodel.cpp	2009-09-08 04:02:01 UTC (rev 14783)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/sortfilterproxymodel.cpp	2009-09-08 04:27:20 UTC (rev 14784)
@@ -71,10 +71,17 @@
 SortFilterProxyModel::SortFilterProxyModel(QObject *parent)
         : QSortFilterProxyModel(parent)
 {
+    reverseFlag = false;
     for(int i = 0; i < 8; i++)
         loglevels.insert(i, true);
 }
 
+void SortFilterProxyModel::toggleReverseFlag()
+{
+    reverseFlag = !reverseFlag;
+    invalidateFilter();
+}
+
 void SortFilterProxyModel::setLogLevelFilter(int level, bool state)
 {
     loglevels.replace(level, state);
@@ -96,7 +103,11 @@
     if (!_uuid.isEmpty())
         uuidMatch = (sourceModel()->data(index0, ConsoleModel::UUIDRole).toString() == _uuid);
 
-    return (loglevels.value(sourceModel()->data(index0, Qt::UserRole).toInt()) == true
+    bool res = (loglevels.value(sourceModel()->data(index0, Qt::UserRole).toInt()) == true
             && sourceModel()->data(index0).toString().contains(filterRegExp())
             && uuidMatch);
+    if (reverseFlag)
+        return !res;
+    else
+        return res;
 }

Modified: freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/sortfilterproxymodel.h (14783 => 14784)


--- freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/sortfilterproxymodel.h	2009-09-08 04:02:01 UTC (rev 14783)
+++ freeswitch/trunk/contrib/jmesquita/fsgui/src/plugins/consoleplugin/sortfilterproxymodel.h	2009-09-08 04:27:20 UTC (rev 14784)
@@ -83,6 +83,7 @@
     SortFilterProxyModel(QObject *parent = 0);
     void setLogLevelFilter(int level, bool state);
     void setUUIDFilterLog(QString uuid);
+    void toggleReverseFlag();
 
 protected:
     bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const;
@@ -90,6 +91,7 @@
 private:
     QVector<bool> loglevels;
     QString _uuid;
+    bool reverseFlag;
 };
 
 #endif // SORTFILTERPROXYMODEL_H