[gnome-builder/wip/gtk4-port: 5/7] plugins/buildui: Port GbpBuilduiRuntimeRow to GTK4




commit 0e085f256eab0d9f41b10bbe49050128c379d34e
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Sat May 7 19:39:54 2022 -0300

    plugins/buildui: Port GbpBuilduiRuntimeRow to GTK4
    
    Switch to AdwActionRow for now, since it allows dropping some code.
    Otherwise, an uneventful port.

 src/plugins/buildui/gbp-buildui-runtime-row.c | 37 ++++++---------------------
 src/plugins/buildui/gbp-buildui-runtime-row.h |  4 +--
 src/plugins/buildui/meson.build               |  2 +-
 3 files changed, 11 insertions(+), 32 deletions(-)
---
diff --git a/src/plugins/buildui/gbp-buildui-runtime-row.c b/src/plugins/buildui/gbp-buildui-runtime-row.c
index 2a3774c35..2599ff0b2 100644
--- a/src/plugins/buildui/gbp-buildui-runtime-row.c
+++ b/src/plugins/buildui/gbp-buildui-runtime-row.c
@@ -26,15 +26,14 @@
 
 struct _GbpBuilduiRuntimeRow
 {
-  GtkListBoxRow  parent_instance;
+  AdwActionRow  parent_instance;
 
   gchar         *runtime_id;
 
-  GtkLabel      *label;
   GtkImage      *image;
 };
 
-G_DEFINE_FINAL_TYPE (GbpBuilduiRuntimeRow, gbp_buildui_runtime_row, GTK_TYPE_LIST_BOX_ROW)
+G_DEFINE_FINAL_TYPE (GbpBuilduiRuntimeRow, gbp_buildui_runtime_row, ADW_TYPE_ACTION_ROW)
 
 static void
 gbp_buildui_runtime_row_finalize (GObject *object)
@@ -57,30 +56,11 @@ gbp_buildui_runtime_row_class_init (GbpBuilduiRuntimeRowClass *klass)
 static void
 gbp_buildui_runtime_row_init (GbpBuilduiRuntimeRow *self)
 {
-  GtkWidget *box;
-
-  box = g_object_new (GTK_TYPE_BOX,
-                      "margin", 10,
-                      "orientation", GTK_ORIENTATION_HORIZONTAL,
-                      "spacing", 6,
-                      "visible", TRUE,
-                      NULL);
-  gtk_container_add (GTK_CONTAINER (self), box);
-
-  self->label = g_object_new (GTK_TYPE_LABEL,
-                              "visible", TRUE,
-                              "use-markup", TRUE,
-                              "xalign", 0.0f,
-                              NULL);
-  gtk_container_add (GTK_CONTAINER (box), GTK_WIDGET (self->label));
-
   self->image = g_object_new (GTK_TYPE_IMAGE,
-                              "visible", TRUE,
-                              "halign", GTK_ALIGN_START,
-                              "hexpand", TRUE,
+                              "valign", GTK_ALIGN_CENTER,
                               "icon-name", "object-select-symbolic",
                               NULL);
-  gtk_container_add (GTK_CONTAINER (box), GTK_WIDGET (self->image));
+  adw_action_row_add_suffix (ADW_ACTION_ROW (self), GTK_WIDGET (self->image));
 }
 
 static void
@@ -97,8 +77,8 @@ notify_config_runtime_id (GbpBuilduiRuntimeRow *self,
 }
 
 GtkWidget *
-gbp_buildui_runtime_row_new (IdeRuntime       *runtime,
-                             IdeConfig *config)
+gbp_buildui_runtime_row_new (IdeRuntime *runtime,
+                             IdeConfig  *config)
 {
   GbpBuilduiRuntimeRow *self;
   gboolean sensitive;
@@ -110,11 +90,10 @@ gbp_buildui_runtime_row_new (IdeRuntime       *runtime,
 
   self = g_object_new (GBP_TYPE_BUILDUI_RUNTIME_ROW,
                        "sensitive", sensitive,
-                       "visible", TRUE,
                        NULL);
   self->runtime_id = g_strdup (ide_runtime_get_id (runtime));
-  gtk_label_set_label (self->label,
-                       ide_runtime_get_display_name (runtime));
+  adw_preferences_row_set_title (ADW_PREFERENCES_ROW (self),
+                                 ide_runtime_get_display_name (runtime));
 
   g_signal_connect_object (config,
                            "notify::runtime-id",
diff --git a/src/plugins/buildui/gbp-buildui-runtime-row.h b/src/plugins/buildui/gbp-buildui-runtime-row.h
index c7dfff99f..c646d3a34 100644
--- a/src/plugins/buildui/gbp-buildui-runtime-row.h
+++ b/src/plugins/buildui/gbp-buildui-runtime-row.h
@@ -20,14 +20,14 @@
 
 #pragma once
 
-#include <gtk/gtk.h>
+#include <adwaita.h>
 #include <libide-foundry.h>
 
 G_BEGIN_DECLS
 
 #define GBP_TYPE_BUILDUI_RUNTIME_ROW (gbp_buildui_runtime_row_get_type())
 
-G_DECLARE_FINAL_TYPE (GbpBuilduiRuntimeRow, gbp_buildui_runtime_row, GBP, BUILDUI_RUNTIME_ROW, GtkListBoxRow)
+G_DECLARE_FINAL_TYPE (GbpBuilduiRuntimeRow, gbp_buildui_runtime_row, GBP, BUILDUI_RUNTIME_ROW, AdwActionRow)
 
 GtkWidget   *gbp_buildui_runtime_row_new    (IdeRuntime           *runtime,
                                              IdeConfig     *config);
diff --git a/src/plugins/buildui/meson.build b/src/plugins/buildui/meson.build
index ce335f70f..8fd8957fe 100644
--- a/src/plugins/buildui/meson.build
+++ b/src/plugins/buildui/meson.build
@@ -7,7 +7,7 @@ plugins_sources += files([
   'gbp-buildui-omni-bar-section.c',
   'gbp-buildui-pane.c',
   #'gbp-buildui-runtime-categories.c',
-  #'gbp-buildui-runtime-row.c',
+  'gbp-buildui-runtime-row.c',
   'gbp-buildui-stage-row.c',
   'gbp-buildui-targets-dialog.c',
   'gbp-buildui-tree-addin.c',


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