[geary/mjog/logging-improvements: 22/23] Components.InspectorLogView: Convert filter lamda to function



commit 127876f5f61b2833e021897e12e1198e77774722
Author: Michael Gratton <mike vee net>
Date:   Thu Apr 16 18:49:42 2020 +1000

    Components.InspectorLogView: Convert filter lamda to function
    
    The log entry filter lambda is quite large now, so move it to a
    standard-alone function.

 .../components/components-inspector-log-view.vala  | 61 +++++++++++-----------
 1 file changed, 30 insertions(+), 31 deletions(-)
---
diff --git a/src/client/components/components-inspector-log-view.vala 
b/src/client/components/components-inspector-log-view.vala
index 7e2fa5ea..9b93e17b 100644
--- a/src/client/components/components-inspector-log-view.vala
+++ b/src/client/components/components-inspector-log-view.vala
@@ -154,37 +154,7 @@ public class Components.InspectorLogView : Gtk.Grid {
         }
 
         this.logs_filter = new Gtk.TreeModelFilter(this.logs_store, null);
-        this.logs_filter.set_visible_func((model, iter) => {
-                GLib.Value value;
-                model.get_value(iter, COL_ACCOUNT, out value);
-                var account = (string) value;
-                var show_row = (
-                    account == "" ||
-                    !(account in this.suppressed_accounts)
-                );
-
-                if (show_row) {
-                    model.get_value(iter, COL_DOMAIN, out value);
-                    var domain = (string) value;
-                    show_row = !Geary.Logging.is_suppressed_domain(domain);
-                }
-
-                if (show_row && this.logs_filter_terms.length > 0) {
-                    model.get_value(iter, COL_MESSAGE, out value);
-                    string? message = (string) value;
-                    if (message != null) {
-                        message = message.casefold();
-                        foreach (string term in this.logs_filter_terms) {
-                            if (!message.contains(term)) {
-                                show_row = false;
-                                break;
-                            }
-                        }
-                    }
-                }
-
-                return show_row;
-            });
+        this.logs_filter.set_visible_func(log_filter_func);
 
         this.logs_view.set_model(this.logs_filter);
     }
@@ -384,6 +354,35 @@ public class Components.InspectorLogView : Gtk.Grid {
         current_row.set_header(header);
     }
 
+    private bool log_filter_func(Gtk.TreeModel model, Gtk.TreeIter iter) {
+        GLib.Value value;
+        model.get_value(iter, COL_ACCOUNT, out value);
+        var account = (string) value;
+        var show_row = (
+            account == "" || !(account in this.suppressed_accounts)
+        );
+
+        if (show_row) {
+            model.get_value(iter, COL_DOMAIN, out value);
+            var domain = (string) value;
+            show_row = !Geary.Logging.is_suppressed_domain(domain);
+        }
+
+        model.get_value(iter, COL_MESSAGE, out value);
+        string message = (string) value;
+        if (show_row && this.logs_filter_terms.length > 0) {
+            var folded_message = message.casefold();
+            foreach (string term in this.logs_filter_terms) {
+                if (!folded_message.contains(term)) {
+                    show_row = false;
+                    break;
+                }
+            }
+        }
+
+        return show_row;
+    }
+
     [GtkCallback]
     private void on_logs_size_allocate() {
         if (this.autoscroll) {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]