[Bf-blender-cvs] [40c417dc2a7] soc-2020-info-editor: Add basic formatting options for log

Mateusz Grzeliński noreply at git.blender.org
Mon Aug 10 13:36:47 CEST 2020


Commit: 40c417dc2a75221bd8129445d13a2fa12f55cc2e
Author: Mateusz Grzeliński
Date:   Fri Aug 7 14:20:22 2020 +0200
Branches: soc-2020-info-editor
https://developer.blender.org/rB40c417dc2a75221bd8129445d13a2fa12f55cc2e

Add basic formatting options for log

===================================================================

M	source/blender/editors/space_info/info_intern.h
M	source/blender/editors/space_info/info_report.c
M	source/blender/editors/space_info/space_info.c

===================================================================

diff --git a/source/blender/editors/space_info/info_intern.h b/source/blender/editors/space_info/info_intern.h
index d3301ff2651..2bb6f3d4b94 100644
--- a/source/blender/editors/space_info/info_intern.h
+++ b/source/blender/editors/space_info/info_intern.h
@@ -58,7 +58,7 @@ void info_textview_main(const struct SpaceInfo *sinfo,
                         const struct ReportList *reports);
 
 /* info_report.c */
-ReportList *clog_to_report_list(void);
+ReportList *clog_to_report_list(struct SpaceInfo *sinfo);
 int info_report_mask(const struct SpaceInfo *sinfo);
 bool info_filter_text(const Report *report, const char *search_string);
 void INFO_OT_select_pick(struct wmOperatorType *ot); /* report selection */
diff --git a/source/blender/editors/space_info/info_report.c b/source/blender/editors/space_info/info_report.c
index b7632813663..919c45df236 100644
--- a/source/blender/editors/space_info/info_report.c
+++ b/source/blender/editors/space_info/info_report.c
@@ -482,7 +482,7 @@ void INFO_OT_report_copy(wmOperatorType *ot)
 }
 
 /** Return newly allocated ReportList created from log records */
-ReportList *clog_to_report_list()
+ReportList *clog_to_report_list(SpaceInfo *sinfo)
 {
   ReportList *reports = MEM_mallocN(sizeof(*reports), "ClogConvertedToReportList");
   BKE_reports_init(reports, 0);
@@ -496,15 +496,39 @@ ReportList *clog_to_report_list()
 
   while (log) {
     DynStr *dynStr = BLI_dynstr_new();
-    /* TODO (grzelins) implement formatting filters */
-    BLI_dynstr_append(dynStr, clg_severity_as_text(log->severity));
-    BLI_dynstr_append(dynStr, " (");
-    BLI_dynstr_append(dynStr, log->type->identifier);
-    BLI_dynstr_append(dynStr, "): ");
-    BLI_dynstr_append(dynStr, log->file_line);
-    BLI_dynstr_append(dynStr, " ");
-    BLI_dynstr_append(dynStr, log->function);
-    BLI_dynstr_append(dynStr, ":\n");
+    if (sinfo->log_format & INFO_LOG_SHOW_TIMESTAMP) {
+      char timestamp_str[64];
+      const uint64_t timestamp = log->timestamp;
+      snprintf(timestamp_str,
+               sizeof(timestamp_str),
+               "%" PRIu64 ".%03u ",
+               timestamp / 1000,
+               (uint)(timestamp % 1000));
+      BLI_dynstr_appendf(dynStr, "%s", timestamp_str);
+    }
+    if (sinfo->log_format & INFO_LOG_SHOW_LEVEL) {
+      if (log->severity <= CLG_SEVERITY_VERBOSE) {
+        BLI_dynstr_appendf(dynStr, "%s:%u ", clg_severity_as_text(log->severity), log->verbosity);
+      }
+      else {
+        BLI_dynstr_appendf(dynStr, "%s ", clg_severity_as_text(log->severity));
+      }
+    }
+    if (sinfo->log_format & INFO_LOG_SHOW_LOG_TYPE) {
+      BLI_dynstr_appendf(dynStr, "(%s) ", log->type->identifier);
+    }
+    if (sinfo->log_format & INFO_LOG_SHOW_FILE_LINE) {
+      const char *file_line = (sinfo->use_short_file_line) ? BLI_path_basename(log->file_line) :
+                                                             log->file_line;
+      BLI_dynstr_appendf(dynStr, "%s ", file_line);
+    }
+    if (sinfo->log_format & INFO_LOG_SHOW_FUNCTION) {
+      BLI_dynstr_appendf(dynStr, "%s ", log->function);
+    }
+    if (sinfo->log_format & sinfo->use_log_message_new_line) {
+      BLI_dynstr_append(dynStr, "\n");
+    }
+
     BLI_dynstr_append(dynStr, log->message);
     char *cstr = BLI_dynstr_get_cstring(dynStr);
     Report *report;
diff --git a/source/blender/editors/space_info/space_info.c b/source/blender/editors/space_info/space_info.c
index 0da915ca895..9fe278c0967 100644
--- a/source/blender/editors/space_info/space_info.c
+++ b/source/blender/editors/space_info/space_info.c
@@ -117,7 +117,7 @@ static void info_report_source_update(wmWindowManager *wm, SpaceInfo *sinfo)
     }
     case INFO_VIEW_CLOG: {
       if (sinfo->active_reports == &wm->reports) {
-        sinfo->active_reports = clog_to_report_list();
+        sinfo->active_reports = clog_to_report_list(sinfo);
       }
       break;
     }
@@ -135,7 +135,7 @@ static void info_init(struct wmWindowManager *wm, ScrArea *area)
         break;
       }
       case INFO_VIEW_CLOG: {
-        sinfo->active_reports = clog_to_report_list();
+        sinfo->active_reports = clog_to_report_list(sinfo);
         break;
       }
     }



More information about the Bf-blender-cvs mailing list