[gnome-builder/wip/gtk4-port] plugins/create-project: add toggle for default license



commit f1fd89476fd797d927a7b4ee92a22611e2bf3f13
Author: Christian Hergert <chergert redhat com>
Date:   Thu Jun 2 16:34:46 2022 -0700

    plugins/create-project: add toggle for default license

 data/gsettings/org.gnome.builder.gschema.xml           | 15 +++++++++++++++
 src/plugins/create-project/gbp-create-project-widget.c | 15 +++++++++++----
 2 files changed, 26 insertions(+), 4 deletions(-)
---
diff --git a/data/gsettings/org.gnome.builder.gschema.xml b/data/gsettings/org.gnome.builder.gschema.xml
index c9b2a1b4b..80a762500 100644
--- a/data/gsettings/org.gnome.builder.gschema.xml
+++ b/data/gsettings/org.gnome.builder.gschema.xml
@@ -46,5 +46,20 @@
     <key name="format-on-save" type="b">
       <default>false</default>
     </key>
+    <key name="default-license" type="s">
+      <choices>
+        <choice value="AGPL-3.0-or-later"/>
+        <choice value="Apache-2.0"/>
+        <choice value="GPL-2.0-or-later"/>
+        <choice value="GPL-3.0-or-later"/>
+        <choice value="LGPL-2.1-or-later"/>
+        <choice value="LGPL-3.0-or-later"/>
+        <choice value="MIT"/>
+        <choice value="No License"/>
+      </choices>
+      <default>'GPL-3.0-or-later'</default>
+      <summary>Default License</summary>
+      <description>THe default license to use for new projects</description>
+    </key>
   </schema>
 </schemalist>
diff --git a/src/plugins/create-project/gbp-create-project-widget.c 
b/src/plugins/create-project/gbp-create-project-widget.c
index b78f5a075..2a4e97ad0 100644
--- a/src/plugins/create-project/gbp-create-project-widget.c
+++ b/src/plugins/create-project/gbp-create-project-widget.c
@@ -46,6 +46,8 @@ struct _GbpCreateProjectWidget
   AdwEntryRow      *location_row;
   AdwEntryRow      *name_row;
   AdwEntryRow      *template_row;
+
+  guint             loaded : 1;
 };
 
 enum {
@@ -146,6 +148,9 @@ input_notify_cb (GbpCreateProjectWidget *self,
   g_assert (GBP_IS_CREATE_PROJECT_WIDGET (self));
   g_assert (IDE_IS_TEMPLATE_INPUT (input));
 
+  if (!self->loaded)
+    return;
+
   flags = ide_template_input_validate (input);
 
 #define CHECK_FLAG(FLAG,widget)                         \
@@ -406,14 +411,16 @@ static void
 gbp_create_project_widget_init (GbpCreateProjectWidget *self)
 {
   g_autofree char *projects_dir = ide_path_collapse (ide_get_projects_dir ());
+  g_autoptr(GSettings) settings = g_settings_new ("org.gnome.builder");
+  g_autofree char *default_license = g_settings_get_string (settings, "default-license");
 
   gtk_widget_init_template (GTK_WIDGET (self));
 
   gtk_editable_set_text (GTK_EDITABLE (self->location_row), projects_dir);
-  adw_combo_row_set_selected (self->license_row, find_license (self, "GPL-3.0-or-later"));
+  adw_combo_row_set_selected (self->license_row, find_license (self, default_license));
 
   /* Always start disabled */
-  gtk_widget_action_set_enabled (GTK_WIDGET (self),
-                                 "create-project.expand",
-                                 FALSE);
+  gtk_widget_action_set_enabled (GTK_WIDGET (self), "create-project.expand", FALSE);
+
+  self->loaded = TRUE;
 }


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