Переглянути джерело

Support null error model in ctkErrorLogWidget

Add unit test to verify it
Julien Finet 14 роки тому
батько
коміт
91e0d55c35

+ 3 - 0
Libs/Widgets/Testing/Cpp/ctkErrorLogWidgetTest1.cpp

@@ -213,6 +213,9 @@ int ctkErrorLogWidgetTest1(int argc, char * argv [])
   fflush(stdout);
 
   widget.setErrorLogModel(&model);
+  widget.setErrorLogModel(0);
+  widget.setErrorLogModel(&model);
+  widget.setErrorLogModel(&model);
   widget.show();
 
   if (argc < 2 || QString(argv[1]) != "-I" )

+ 13 - 1
Libs/Widgets/ctkErrorLogWidget.cpp

@@ -183,7 +183,7 @@ void ctkErrorLogWidget::setAllEntriesVisible(bool visibility)
   this->setErrorEntriesVisible(visibility);
   this->setWarningEntriesVisible(visibility);
   this->setInfoEntriesVisible(visibility);
-  this->errorLogModel()->filterEntry(ctkErrorLogModel::Unknown, /* disableFilter= */ !visibility);
+  this->setUnknownEntriesVisible(visibility);
 }
 
 // --------------------------------------------------------------------------
@@ -220,6 +220,18 @@ void ctkErrorLogWidget::setInfoEntriesVisible(bool visibility)
 }
 
 // --------------------------------------------------------------------------
+void ctkErrorLogWidget::setUnknownEntriesVisible(bool visibility)
+{
+  Q_D(ctkErrorLogWidget);
+  if (!this->errorLogModel())
+    {
+    return;
+    }
+  this->errorLogModel()->filterEntry(ctkErrorLogModel::Unknown,
+      /* disableFilter= */ !visibility);
+}
+
+// --------------------------------------------------------------------------
 void ctkErrorLogWidget::onRowsInserted(const QModelIndex &/*parent*/, int /*first*/, int /*last*/)
 {
   Q_D(ctkErrorLogWidget);

+ 2 - 0
Libs/Widgets/ctkErrorLogWidget.h

@@ -52,6 +52,8 @@ public slots:
   void setWarningEntriesVisible(bool visibility);
 
   void setInfoEntriesVisible(bool visibility);
+  
+  void setUnknownEntriesVisible(bool visibility);
 
 protected slots:
   void onRowsInserted(const QModelIndex &parent, int first, int last);