diff --git a/data/gsettings/org.gnome.builder.build.gschema.xml b/data/gsettings/org.gnome.builder.build.gschema.xml index bf6cb0997c48ee1bd85a2cffca905e73165e2e4a..f5f3d4aa151b3690511e66163f982ad2eaacf8a0 100644 --- a/data/gsettings/org.gnome.builder.build.gschema.xml +++ b/data/gsettings/org.gnome.builder.build.gschema.xml @@ -6,6 +6,11 @@ Build Parallelism Number of workers to use when performing builds. -1 for sensible default. 0 for number of CPU. + + true + Clear build logs + If enabled, build log pane will be cleared on rebuild. + false Allow network when metered diff --git a/src/libide/gui/ide-preferences-builtin.c b/src/libide/gui/ide-preferences-builtin.c index 36a39a69da22dd58e962340e93fd9a81f551340a..bdd471a90addea063eaba279d2b84b67e5349bdc 100644 --- a/src/libide/gui/ide-preferences-builtin.c +++ b/src/libide/gui/ide-preferences-builtin.c @@ -406,6 +406,7 @@ ide_preferences_builtin_register_build (DzlPreferences *preferences) g_signal_connect (widget, "input", G_CALLBACK (workers_input), NULL); g_signal_connect (widget, "output", G_CALLBACK (workers_output), NULL); + dzl_preferences_add_switch (preferences, "build", "basic", "org.gnome.builder.build", "clear-build-log-pane", NULL, NULL, _("Clear build logs"), _("Clear build log pane on rebuild"), NULL, 10); dzl_preferences_add_switch (preferences, "build", "basic", "org.gnome.builder", "clear-cache-at-startup", NULL, NULL, _("Clear build cache at startup"), _("Expired caches will be purged when Builder is started"), NULL, 10); dzl_preferences_add_list_group (preferences, "build", "network", _("Network"), GTK_SELECTION_NONE, 100); diff --git a/src/plugins/buildui/gbp-buildui-log-pane.c b/src/plugins/buildui/gbp-buildui-log-pane.c index bd6b02c9ca2e4a9f833c4161783c90e3ca6393ce..cc567fab8a41d771e44d4a7160b369d840b7115c 100644 --- a/src/plugins/buildui/gbp-buildui-log-pane.c +++ b/src/plugins/buildui/gbp-buildui-log-pane.c @@ -130,6 +130,12 @@ gbp_buildui_log_pane_set_pipeline (GbpBuilduiLogPane *self, } } +void +gbp_buildui_log_pane_clear (GbpBuilduiLogPane *self) +{ + gbp_buildui_log_pane_reset_view (self); +} + static void gbp_buildui_log_pane_window_title_changed (GbpBuilduiLogPane *self, IdeTerminal *terminal) diff --git a/src/plugins/buildui/gbp-buildui-log-pane.h b/src/plugins/buildui/gbp-buildui-log-pane.h index 23b84d903297003532e8d31d741ef3d265c7e47f..0f6cab3245a5a3e0350a7d54376f7b765d1c1643 100644 --- a/src/plugins/buildui/gbp-buildui-log-pane.h +++ b/src/plugins/buildui/gbp-buildui-log-pane.h @@ -33,4 +33,6 @@ G_DECLARE_FINAL_TYPE (GbpBuilduiLogPane, gbp_buildui_log_pane, GBP, BUILDUI_LOG_ void gbp_buildui_log_pane_set_pipeline (GbpBuilduiLogPane *self, IdePipeline *pipeline); +void gbp_buildui_log_pane_clear (GbpBuilduiLogPane *self); + G_END_DECLS diff --git a/src/plugins/buildui/gbp-buildui-workspace-addin.c b/src/plugins/buildui/gbp-buildui-workspace-addin.c index ee40e8eeda0884ddbfa78df619423c4f9cb80a20..55435cd14e300013b1225b4377d76c8d5a804b05 100644 --- a/src/plugins/buildui/gbp-buildui-workspace-addin.c +++ b/src/plugins/buildui/gbp-buildui-workspace-addin.c @@ -226,6 +226,10 @@ gbp_buildui_workspace_addin_build_started (GbpBuilduiWorkspaceAddin *self, IDE_TRACE_MSG ("Pipeline phase 0x%x requested", phase); + g_autoptr(GSettings) settings = g_settings_new ("org.gnome.builder.build"); + if (g_settings_get_boolean (settings, "clear-build-log-pane")) + gbp_buildui_log_pane_clear (self->log_pane); + if (phase > IDE_PIPELINE_PHASE_CONFIGURE) dzl_dock_item_present (DZL_DOCK_ITEM (self->log_pane));