inspector: Show app ID and resource path in the General tab
authorBastien Nocera <hadess@hadess.net>
Thu, 17 Feb 2022 11:24:51 +0000 (12:24 +0100)
committerBastien Nocera <hadess@hadess.net>
Thu, 17 Feb 2022 14:14:16 +0000 (15:14 +0100)
This makes it easier to figure out those values (which are mentioned in
the GtkApplication documentation) rather than working that out from the
way they're generated (or documented as being generated).

gtk/inspector/general.c
gtk/inspector/general.ui

index 2eee163a1eb0bf2ea43d9c018da1b65efe483e68..ad52422fa30d7153eaec9305109f2d9940a4d06f 100644 (file)
@@ -97,6 +97,9 @@ struct _GtkInspectorGeneral
   GtkWidget *vk_device;
   GtkWidget *vk_api_version;
   GtkWidget *vk_driver_version;
+  GtkWidget *app_id_frame;
+  GtkWidget *app_id;
+  GtkWidget *resource_path;
   GtkWidget *prefix;
   GtkWidget *xdg_data_home;
   GtkWidget *xdg_data_dirs;
@@ -174,6 +177,24 @@ init_version (GtkInspectorGeneral *gen)
   gtk_label_set_text (GTK_LABEL (gen->gsk_renderer), renderer);
 }
 
+static void
+init_app_id (GtkInspectorGeneral *gen)
+{
+  GApplication *app;
+
+  app = g_application_get_default ();
+  if (!app)
+    {
+      gtk_widget_hide (gen->app_id_frame);
+      return;
+    }
+
+  gtk_label_set_text (GTK_LABEL (gen->app_id),
+                      g_application_get_application_id (app));
+  gtk_label_set_text (GTK_LABEL (gen->resource_path),
+                      g_application_get_resource_base_path (app));
+}
+
 static G_GNUC_UNUSED void
 add_check_row (GtkInspectorGeneral *gen,
                GtkListBox          *list,
@@ -1112,6 +1133,9 @@ gtk_inspector_general_class_init (GtkInspectorGeneralClass *klass)
   gtk_widget_class_bind_template_child (widget_class, GtkInspectorGeneral, vk_device);
   gtk_widget_class_bind_template_child (widget_class, GtkInspectorGeneral, vk_api_version);
   gtk_widget_class_bind_template_child (widget_class, GtkInspectorGeneral, vk_driver_version);
+  gtk_widget_class_bind_template_child (widget_class, GtkInspectorGeneral, app_id_frame);
+  gtk_widget_class_bind_template_child (widget_class, GtkInspectorGeneral, app_id);
+  gtk_widget_class_bind_template_child (widget_class, GtkInspectorGeneral, resource_path);
   gtk_widget_class_bind_template_child (widget_class, GtkInspectorGeneral, prefix);
   gtk_widget_class_bind_template_child (widget_class, GtkInspectorGeneral, xdg_data_home);
   gtk_widget_class_bind_template_child (widget_class, GtkInspectorGeneral, xdg_data_dirs);
@@ -1136,6 +1160,7 @@ gtk_inspector_general_set_display (GtkInspectorGeneral *gen,
 
   init_version (gen);
   init_env (gen);
+  init_app_id (gen);
   init_display (gen);
   init_pango (gen);
   init_media (gen);
index 9a7369e362b739cca25b79a7c3585a57241429eb..a75e532c3d1b9f8bcd2a9a73f6a7c25acd4d3c7a 100644 (file)
                 </child>
               </object>
             </child>
+
+            <child>
+              <object class="GtkFrame" id="app_id_frame">
+                <property name="halign">center</property>
+                <child>
+                  <object class="GtkListBox" id="app_id_box">
+                    <property name="selection-mode">none</property>
+                    <style>
+                      <class name="rich-list"/>
+                    </style>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">0</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="spacing">40</property>
+                            <child>
+                              <object class="GtkLabel" id="app_id_label">
+                                <property name="label" translatable="yes">Application ID</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="app_id">
+                                <property name="selectable">1</property>
+                                <property name="halign">end</property>
+                                <property name="valign">baseline</property>
+                                <property name="hexpand">1</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkListBoxRow">
+                        <property name="activatable">0</property>
+                        <child>
+                          <object class="GtkBox">
+                            <property name="spacing">40</property>
+                            <child>
+                              <object class="GtkLabel" id="resource_path_label">
+                                <property name="label" translatable="yes">Resource Path</property>
+                                <property name="halign">start</property>
+                                <property name="valign">baseline</property>
+                                <property name="xalign">0.0</property>
+                              </object>
+                            </child>
+                            <child>
+                              <object class="GtkLabel" id="resource_path">
+                                <property name="selectable">1</property>
+                                <property name="halign">end</property>
+                                <property name="valign">baseline</property>
+                                <property name="hexpand">1</property>
+                              </object>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+            </child>
+
             <child>
               <object class="GtkFrame" id="env_frame">
                 <property name="halign">center</property>
       <widget name="vk_device_label"/>
       <widget name="vk_api_version_label"/>
       <widget name="vk_driver_version_label"/>
+      <widget name="app_id_label"/>
+      <widget name="resource_path_label"/>
       <widget name="prefix_label"/>
       <widget name="xdg_data_home_label"/>
       <widget name="xdg_data_dirs_label"/>
   <object class="GtkSizeGroup">
     <widgets>
       <widget name="version_frame"/>
+      <widget name="app_id_frame"/>
       <widget name="gl_frame"/>
       <widget name="monitor_frame"/>
       <widget name="vulkan_frame"/>