[gnome-control-center] info: Implement new design
- From: Robert Ancell <rancell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] info: Implement new design
- Date: Mon, 28 Oct 2019 21:19:11 +0000 (UTC)
commit 8821a37ed2b2914361ffc7a28a29357ac758a043
Author: Mohammed Sadiq <sadiq sadiqpk org>
Date: Sat Oct 12 14:51:00 2019 +0530
info: Implement new design
This is based on the design at
https://teams.pages.gitlab.gnome.org/Design/web-experiments/settings/about
panels/info-overview/cc-info-overview-panel.c | 151 ++++++---
panels/info-overview/cc-info-overview-panel.ui | 425 +++++++++----------------
2 files changed, 255 insertions(+), 321 deletions(-)
---
diff --git a/panels/info-overview/cc-info-overview-panel.c b/panels/info-overview/cc-info-overview-panel.c
index 34ae7e571..e304c4123 100644
--- a/panels/info-overview/cc-info-overview-panel.c
+++ b/panels/info-overview/cc-info-overview-panel.c
@@ -1,5 +1,6 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
*
+ * Copyright (C) 2019 Purism SPC
* Copyright (C) 2017 Mohammed Sadiq <sadiq sadiqpk org>
* Copyright (C) 2010 Red Hat, Inc
* Copyright (C) 2008 William Jon McCann <jmccann redhat com>
@@ -48,23 +49,29 @@
#include <gdk/gdkx.h>
#endif
+#include "cc-list-row.h"
+#include "list-box-helper.h"
#include "cc-info-overview-panel.h"
struct _CcInfoOverviewPanel
{
- CcPanel parent_instance;
-
- GtkLabel *disk_label;
- GtkLabel *graphics_label;
- GtkLabel *memory_label;
- GtkLabel *name_entry;
- GtkLabel *os_name_label;
- GtkLabel *os_type_label;
- GtkLabel *processor_label;
- GtkButton *updates_button;
- GtkLabel *version_label;
- GtkLabel *virt_type_label;
- GtkLabel *virt_type_title_label;
+ CcPanel parent_instance;
+
+ GtkEntry *device_name_entry;
+ CcListRow *disk_row;
+ CcListRow *gnome_version_row;
+ CcListRow *graphics_row;
+ GtkListBox *hardware_box;
+ GtkDialog *hostname_editor;
+ CcHostnameEntry *hostname_entry;
+ CcListRow *hostname_row;
+ CcListRow *memory_row;
+ GtkListBox *os_box;
+ CcListRow *os_name_row;
+ CcListRow *os_type_row;
+ CcListRow *processor_row;
+ CcListRow *software_updates_row;
+ CcListRow *virtualization_row;
};
typedef struct
@@ -404,7 +411,7 @@ get_primary_disc_info (CcInfoOverviewPanel *self)
{
g_warning ("Unable to get UDisks client: %s. Disk information will not be available.",
error->message);
- gtk_label_set_text (self->disk_label, _("Unknown"));
+ cc_list_row_set_secondary_label (self->disk_row, _("Unknown"));
return;
}
@@ -430,11 +437,11 @@ get_primary_disc_info (CcInfoOverviewPanel *self)
if (total_size > 0)
{
g_autofree gchar *size = g_format_size (total_size);
- gtk_label_set_text (self->disk_label, size);
+ cc_list_row_set_secondary_label (self->disk_row, size);
}
else
{
- gtk_label_set_text (self->disk_label, _("Unknown"));
+ cc_list_row_set_secondary_label (self->disk_row, _("Unknown"));
}
}
@@ -519,11 +526,12 @@ set_virtualization_label (CcInfoOverviewPanel *self,
guint i;
if (virt == NULL || *virt == '\0')
- {
- gtk_widget_hide (GTK_WIDGET (self->virt_type_label));
- gtk_widget_hide (GTK_WIDGET (self->virt_type_title_label));
- return;
- }
+ {
+ gtk_widget_hide (GTK_WIDGET (self->virtualization_row));
+ return;
+ }
+
+ gtk_widget_show (GTK_WIDGET (self->virtualization_row));
display_name = NULL;
for (i = 0; i < G_N_ELEMENTS (virt_tech); i++)
@@ -535,7 +543,7 @@ set_virtualization_label (CcInfoOverviewPanel *self,
}
}
- gtk_label_set_text (self->virt_type_label, display_name ? display_name : virt);
+ cc_list_row_set_secondary_label (self->virtualization_row, display_name ? display_name : virt);
}
static void
@@ -593,31 +601,27 @@ info_overview_panel_setup_overview (CcInfoOverviewPanel *self)
g_autofree gchar *graphics_hardware_string = NULL;
if (load_gnome_version (&gnome_version, NULL, NULL))
- {
- g_autofree gchar *text = NULL;
- text = g_strdup_printf (_("Version %s"), gnome_version);
- gtk_label_set_text (self->version_label, text);
- }
+ cc_list_row_set_secondary_label (self->gnome_version_row, gnome_version);
glibtop_get_mem (&mem);
memory_text = g_format_size_full (mem.total, G_FORMAT_SIZE_IEC_UNITS);
- gtk_label_set_text (self->memory_label, memory_text ? memory_text : "");
+ cc_list_row_set_secondary_label (self->memory_row, memory_text);
info = glibtop_get_sysinfo ();
cpu_text = get_cpu_info (info);
- gtk_label_set_markup (self->processor_label, cpu_text ? cpu_text : "");
+ cc_list_row_set_secondary_markup (self->processor_row, cpu_text);
os_type_text = get_os_type ();
- gtk_label_set_text (self->os_type_label, os_type_text ? os_type_text : "");
+ cc_list_row_set_secondary_label (self->os_type_row, os_type_text);
os_name_text = get_os_name ();
- gtk_label_set_text (self->os_name_label, os_name_text ? os_name_text : "");
+ cc_list_row_set_secondary_label (self->os_name_row, os_name_text);
get_primary_disc_info (self);
graphics_hardware_string = get_graphics_hardware_string ();
- gtk_label_set_markup (self->graphics_label, graphics_hardware_string);
+ cc_list_row_set_secondary_markup (self->graphics_row, graphics_hardware_string);
}
static gboolean
@@ -633,7 +637,7 @@ does_gpk_update_viewer_exist (void)
}
static void
-on_updates_button_clicked (CcInfoOverviewPanel *self)
+open_software_update (CcInfoOverviewPanel *self)
{
g_autoptr(GError) error = NULL;
gboolean ret;
@@ -654,6 +658,50 @@ on_updates_button_clicked (CcInfoOverviewPanel *self)
g_warning ("Failed to spawn %s: %s", argv[0], error->message);
}
+static void
+open_hostname_edit_dialog (CcInfoOverviewPanel *self)
+{
+ GtkWindow *toplevel;
+ CcShell *shell;
+ const gchar *hostname;
+ gint response;
+
+ g_assert (CC_IS_INFO_OVERVIEW_PANEL (self));
+
+ shell = cc_panel_get_shell (CC_PANEL (self));
+ toplevel = GTK_WINDOW (cc_shell_get_toplevel (shell));
+ gtk_window_set_transient_for (GTK_WINDOW (self->hostname_editor), toplevel);
+
+ hostname = gtk_entry_get_text (GTK_ENTRY (self->hostname_entry));
+ gtk_entry_set_text (self->device_name_entry, hostname);
+ gtk_widget_grab_focus (GTK_WIDGET (self->device_name_entry));
+
+ response = gtk_dialog_run (self->hostname_editor);
+ gtk_widget_hide (GTK_WIDGET (self->hostname_editor));
+
+ if (response != GTK_RESPONSE_APPLY)
+ return;
+
+ /* We simply change the CcHostnameEntry text. CcHostnameEntry
+ * listens to changes and updates hostname on change.
+ */
+ hostname = gtk_entry_get_text (self->device_name_entry);
+ gtk_entry_set_text (GTK_ENTRY (self->hostname_entry), hostname);
+}
+
+static void
+cc_info_panel_row_activated_cb (CcInfoOverviewPanel *self,
+ CcListRow *row)
+{
+ g_assert (CC_IS_INFO_OVERVIEW_PANEL (self));
+ g_assert (CC_IS_LIST_ROW (row));
+
+ if (row == self->hostname_row)
+ open_hostname_edit_dialog (self);
+ else if (row == self->software_updates_row)
+ open_software_update (self);
+}
+
static void
cc_info_overview_panel_class_init (CcInfoOverviewPanelClass *klass)
{
@@ -661,20 +709,25 @@ cc_info_overview_panel_class_init (CcInfoOverviewPanelClass *klass)
gtk_widget_class_set_template_from_resource (widget_class,
"/org/gnome/control-center/info-overview/cc-info-overview-panel.ui");
- gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, disk_label);
- gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, graphics_label);
- gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, memory_label);
- gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, name_entry);
- gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, os_name_label);
- gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, os_type_label);
- gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, processor_label);
- gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, updates_button);
- gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, version_label);
- gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, virt_type_label);
- gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, virt_type_title_label);
-
- gtk_widget_class_bind_template_callback (widget_class, on_updates_button_clicked);
-
+ gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, device_name_entry);
+ gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, disk_row);
+ gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, gnome_version_row);
+ gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, graphics_row);
+ gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, hardware_box);
+ gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, hostname_editor);
+ gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, hostname_entry);
+ gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, hostname_row);
+ gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, memory_row);
+ gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, os_box);
+ gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, os_name_row);
+ gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, os_type_row);
+ gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, processor_row);
+ gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, software_updates_row);
+ gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, virtualization_row);
+
+ gtk_widget_class_bind_template_callback (widget_class, cc_info_panel_row_activated_cb);
+
+ g_type_ensure (CC_TYPE_LIST_ROW);
g_type_ensure (CC_TYPE_HOSTNAME_ENTRY);
}
@@ -682,11 +735,13 @@ static void
cc_info_overview_panel_init (CcInfoOverviewPanel *self)
{
gtk_widget_init_template (GTK_WIDGET (self));
+ gtk_list_box_set_header_func (self->hardware_box, cc_list_box_update_header_func, NULL, NULL);
+ gtk_list_box_set_header_func (self->os_box, cc_list_box_update_header_func, NULL, NULL);
g_resources_register (cc_info_overview_get_resource ());
if (!does_gnome_software_exist () && !does_gpk_update_viewer_exist ())
- gtk_widget_destroy (GTK_WIDGET (self->updates_button));
+ gtk_widget_hide (GTK_WIDGET (self->software_updates_row));
info_overview_panel_setup_overview (self);
info_overview_panel_setup_virt (self);
diff --git a/panels/info-overview/cc-info-overview-panel.ui b/panels/info-overview/cc-info-overview-panel.ui
index 7e8992766..691611f4b 100644
--- a/panels/info-overview/cc-info-overview-panel.ui
+++ b/panels/info-overview/cc-info-overview-panel.ui
@@ -8,6 +8,7 @@
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">False</property>
+ <property name="min-content-height">480</property>
<property name="hscrollbar-policy">never</property>
<child>
<object class="HdyColumn">
@@ -23,8 +24,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="valign">center</property>
- <property name="halign">center</property>
- <property name="spacing">18</property>
+ <property name="spacing">30</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkImage">
@@ -35,322 +35,138 @@
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">0</property>
</packing>
</child>
+
<child>
- <object class="GtkLabel" id="version_label">
+ <object class="GtkListBox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label">Version 3.0</property>
- <property name="selectable">True</property>
- <attributes>
- <attribute name="scale" value="1.25"/>
- </attributes>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkGrid">
- <property name="visible">True</property>
- <property name="halign">center</property>
- <property name="valign">center</property>
- <property name="can-focus">False</property>
- <property name="column-spacing">12</property>
- <property name="row-spacing">5</property>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">Device name</property>
- <property name="mnemonic_widget">name_entry</property>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- <packing>
- <property name="top-attach">0</property>
- <property name="left-attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">Memory</property>
- <property name="mnemonic_widget">memory_label</property>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- <packing>
- <property name="top-attach">1</property>
- <property name="left-attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">Processor</property>
- <property name="mnemonic_widget">processor_label</property>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- <packing>
- <property name="top-attach">2</property>
- <property name="left-attach">1</property>
- </packing>
- </child>
+ <property name="selection-mode">none</property>
+ <signal name="row-activated" handler="cc_info_panel_row_activated_cb" swapped="yes"/>
+ <style>
+ <class name="frame" />
+ </style>
+
+ <!-- Device name -->
<child>
- <object class="GtkLabel">
+ <object class="CcListRow" id="hostname_row">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">Graphics</property>
- <style>
- <class name="dim-label"/>
- </style>
+ <property name="title" translatable="yes">Device Name</property>
+ <property name="secondary-label" bind-source="hostname_entry" bind-property="text"
bind-flags="sync-create" />
+ <property name="icon-name">go-next-symbolic</property>
</object>
- <packing>
- <property name="top-attach">3</property>
- <property name="left-attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes" comments="To translators: this field
contains the distro name and version">OS name</property>
- <property name="mnemonic_widget">os_name_label</property>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- <packing>
- <property name="top-attach">4</property>
- <property name="left-attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes" comments="To translators: this field
contains the distro type">OS type</property>
- <property name="mnemonic_widget">os_type_label</property>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- <packing>
- <property name="top-attach">5</property>
- <property name="left-attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="virt_type_title_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">Virtualization</property>
- <property name="mnemonic_widget">virt_type_label</property>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- <packing>
- <property name="top-attach">6</property>
- <property name="left-attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">Disk</property>
- <property name="mnemonic_widget">disk_label</property>
- <style>
- <class name="dim-label"/>
- </style>
- </object>
- <packing>
- <property name="top-attach">7</property>
- <property name="left-attach">1</property>
- </packing>
- </child>
- <child>
- <object class="CcHostnameEntry" id="name_entry">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="top-attach">0</property>
- <property name="left-attach">2</property>
- <property name="width">2</property>
- </packing>
</child>
+
+ </object>
+ </child>
+
+ <child>
+ <object class="GtkListBox" id="hardware_box">
+ <property name="visible">True</property>
+ <property name="selection-mode">none</property>
+ <style>
+ <class name="frame" />
+ </style>
+
+ <!-- Memory -->
<child>
- <object class="GtkLabel" id="memory_label">
+ <object class="CcListRow" id="memory_row">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="ellipsize">end</property>
- <property name="xalign">0</property>
- <property name="label">Unknown</property>
- <property name="selectable">True</property>
+ <property name="activatable">False</property>
+ <property name="title" translatable="yes">Memory</property>
</object>
- <packing>
- <property name="top-attach">1</property>
- <property name="left-attach">2</property>
- </packing>
</child>
+
+ <!-- Processor -->
<child>
- <object class="GtkLabel" id="processor_label">
+ <object class="CcListRow" id="processor_row">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="ellipsize">end</property>
- <property name="xalign">0</property>
- <property name="label">Unknown</property>
- <property name="selectable">True</property>
+ <property name="activatable">False</property>
+ <property name="title" translatable="yes">Processor</property>
</object>
- <packing>
- <property name="top-attach">2</property>
- <property name="left-attach">2</property>
- </packing>
</child>
+
+ <!-- Graphics -->
<child>
- <object class="GtkLabel" id="graphics_label">
+ <object class="CcListRow" id="graphics_row">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="ellipsize">end</property>
- <property name="xalign">0</property>
- <property name="label">Unknown</property>
- <property name="selectable">True</property>
+ <property name="activatable">False</property>
+ <property name="title" translatable="yes">Graphics</property>
</object>
- <packing>
- <property name="top-attach">3</property>
- <property name="left-attach">2</property>
- </packing>
</child>
+
+ <!-- Disk Capacity -->
<child>
- <object class="GtkLabel" id="os_name_label">
+ <object class="CcListRow" id="disk_row">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="ellipsize">end</property>
- <property name="xalign">0</property>
- <property name="label">Unknown</property>
- <property name="selectable">True</property>
+ <property name="activatable">False</property>
+ <property name="title" translatable="yes">Disk Capacity</property>
+ <property name="secondary-label" translatable="yes">Calculating…</property>
</object>
- <packing>
- <property name="top-attach">4</property>
- <property name="left-attach">2</property>
- </packing>
</child>
+
+ </object>
+ </child>
+
+ <child>
+ <object class="GtkListBox" id="os_box">
+ <property name="visible">True</property>
+ <property name="selection-mode">none</property>
+ <signal name="row-activated" handler="cc_info_panel_row_activated_cb" swapped="yes"/>
+ <style>
+ <class name="frame" />
+ </style>
+
+ <!-- OS Name -->
<child>
- <object class="GtkLabel" id="os_type_label">
+ <object class="CcListRow" id="os_name_row">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="ellipsize">end</property>
- <property name="xalign">0</property>
- <property name="label">Unknown</property>
- <property name="selectable">True</property>
+ <property name="activatable">False</property>
+ <property name="title" translatable="yes"
+ comments="translators: this field contains the distro name and version">OS
Name</property>
</object>
- <packing>
- <property name="top-attach">5</property>
- <property name="left-attach">2</property>
- </packing>
</child>
+
+ <!-- OS Type -->
<child>
- <object class="GtkLabel" id="virt_type_label">
+ <object class="CcListRow" id="os_type_row">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="ellipsize">end</property>
- <property name="xalign">0</property>
- <property name="label">Unknown</property>
- <property name="selectable">True</property>
+ <property name="activatable">False</property>
+ <property name="title" translatable="yes">OS Type</property>
</object>
- <packing>
- <property name="top-attach">6</property>
- <property name="left-attach">2</property>
- </packing>
</child>
+
+ <!-- GNOME Version -->
<child>
- <object class="GtkLabel" id="disk_label">
+ <object class="CcListRow" id="gnome_version_row">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="ellipsize">end</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Calculating…</property>
- <property name="selectable">True</property>
+ <property name="activatable">False</property>
+ <property name="title" translatable="yes">GNOME Version</property>
+ <property name="secondary-label">3.0</property>
</object>
- <packing>
- <property name="top-attach">7</property>
- <property name="left-attach">2</property>
- </packing>
</child>
+
+ <!-- Virtualization -->
<child>
- <object class="GtkLabel">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label"> </property>
+ <object class="CcListRow" id="virtualization_row">
+ <property name="visible">False</property>
+ <property name="title" translatable="yes">Virtualization</property>
+ <property name="activatable">False</property>
</object>
- <packing>
- <property name="top-attach">1</property>
- <property name="left-attach">3</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkButtonBox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
- <property name="orientation">horizontal</property>
- <child>
- <placeholder/>
</child>
+
+ <!-- Software Updates -->
<child>
- <object class="GtkButton" id="updates_button">
- <property name="label" translatable="yes">Check for updates</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_action_appearance">False</property>
+ <object class="CcListRow" id="software_updates_row">
<property name="visible">True</property>
- <signal name="clicked" handler="on_updates_button_clicked"
object="CcInfoOverviewPanel" swapped="yes"/>
+ <property name="title" translatable="yes">Software Updates</property>
+ <property name="icon-name">go-next-symbolic</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
+
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="pack_type">end</property>
- <property name="position">3</property>
- </packing>
</child>
+
</object>
</child>
</object>
@@ -358,4 +174,67 @@
</object>
</child>
</template>
+
+ <object class="HdyDialog" id="hostname_editor">
+ <property name="visible">False</property>
+ <property name="modal">True</property>
+ <property name="use-header-bar">1</property>
+ <property name="default-height">24</property>
+ <property name="title" translatable="yes">Rename Device</property>
+ <signal name="delete-event" handler="gtk_widget_hide_on_delete"/>
+
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="border-width">0</property>
+ <property name="margin-top">18</property>
+ <property name="margin-start">12</property>
+ <property name="margin-end">12</property>
+ <property name="margin-bottom">18</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="margin-bottom">18</property>
+ <property name="wrap">True</property>
+ <property name="max-width-chars">35</property>
+ <property name="xalign">0.0</property>
+ <property name="label" translatable="yes">The device name is used to identify this device when
it is viewed over the network, or when pairing Bluetooth devices.</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkEntry" id="device_name_entry">
+ <property name="visible">True</property>
+ </object>
+ </child>
+ </object>
+ </child>
+
+ <!-- Rename button -->
+ <child type="action">
+ <object class="GtkButton" id="rename_button">
+ <property name="visible">True</property>
+ <property name="can-default">True</property>
+ <property name="use-underline">True</property>
+ <property name="label" translatable="yes">_Rename</property>
+ </object>
+ </child>
+
+ <!-- Cancel button -->
+ <child type="action">
+ <object class="GtkButton" id="cancel_button">
+ <property name="visible">True</property>
+ <property name="use-underline">True</property>
+ <property name="label" translatable="yes">_Cancel</property>
+ </object>
+ </child>
+
+ <action-widgets>
+ <action-widget response="apply" default="true">rename_button</action-widget>
+ <action-widget response="cancel">cancel_button</action-widget>
+ </action-widgets>
+ </object>
+
+ <object class="CcHostnameEntry" id="hostname_entry">
+ <property name="visible">0</property>
+ </object>
+
</interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]