bluetooth: Use GtkStack:visible-child-name
This allows removing some object IDs from the C code.
This commit is contained in:
parent
9831708ef8
commit
90da147295
2 changed files with 67 additions and 50 deletions
|
@ -34,12 +34,8 @@
|
|||
struct _CcBluetoothPanel {
|
||||
CcPanel parent_instance;
|
||||
|
||||
AdwStatusPage *airplane_page;
|
||||
AdwStatusPage *disabled_page;
|
||||
GtkSwitch *enable_switch;
|
||||
GtkBox *header_box;
|
||||
AdwStatusPage *hw_airplane_page;
|
||||
AdwStatusPage *no_devices_page;
|
||||
BluetoothSettingsWidget *settings_widget;
|
||||
GtkStack *stack;
|
||||
|
||||
|
@ -123,7 +119,7 @@ adapter_status_changed_cb (CcBluetoothPanel *self)
|
|||
{
|
||||
GtkAlign valign;
|
||||
gboolean sensitive, powered;
|
||||
GtkWidget *page;
|
||||
const char *page;
|
||||
|
||||
g_debug ("Updating airplane mode: BluetoothHasAirplaneMode %d, BluetoothHardwareAirplaneMode %d, BluetoothAirplaneMode %d, AirplaneMode %d",
|
||||
self->has_airplane_mode, self->hardware_airplane_mode, self->bt_airplane_mode, self->airplane_mode);
|
||||
|
@ -134,28 +130,28 @@ adapter_status_changed_cb (CcBluetoothPanel *self)
|
|||
g_debug ("No Bluetooth available");
|
||||
sensitive = FALSE;
|
||||
powered = FALSE;
|
||||
page = GTK_WIDGET (self->no_devices_page);
|
||||
page = "no-devices-page";
|
||||
} else if (self->hardware_airplane_mode) {
|
||||
g_debug ("Bluetooth is Hard blocked");
|
||||
sensitive = FALSE;
|
||||
powered = FALSE;
|
||||
page = GTK_WIDGET (self->hw_airplane_page);
|
||||
page = "hw-airplane-page";
|
||||
} else if (self->airplane_mode) {
|
||||
g_debug ("Airplane mode is on, Wi-Fi and Bluetooth are disabled");
|
||||
sensitive = FALSE;
|
||||
powered = FALSE;
|
||||
page = GTK_WIDGET (self->airplane_page);
|
||||
page = "airplane-page";
|
||||
} else if (self->bt_airplane_mode ||
|
||||
!bluetooth_settings_widget_get_default_adapter_powered (self->settings_widget)) {
|
||||
g_debug ("Default adapter is unpowered");
|
||||
sensitive = TRUE;
|
||||
powered = FALSE;
|
||||
page = GTK_WIDGET (self->disabled_page);
|
||||
page = "disabled-page";
|
||||
} else {
|
||||
g_debug ("Bluetooth is available and powered");
|
||||
sensitive = TRUE;
|
||||
powered = TRUE;
|
||||
page = GTK_WIDGET (self->settings_widget);
|
||||
page = "bluetooth-page";
|
||||
valign = GTK_ALIGN_FILL;
|
||||
}
|
||||
|
||||
|
@ -165,7 +161,7 @@ adapter_status_changed_cb (CcBluetoothPanel *self)
|
|||
gtk_switch_set_active (self->enable_switch, powered);
|
||||
g_signal_handlers_unblock_by_func (self->enable_switch, enable_switch_state_set_cb, self);
|
||||
|
||||
gtk_stack_set_visible_child (self->stack, page);
|
||||
gtk_stack_set_visible_child_name (self->stack, page);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -231,12 +227,8 @@ cc_bluetooth_panel_class_init (CcBluetoothPanelClass *klass)
|
|||
|
||||
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/control-center/bluetooth/cc-bluetooth-panel.ui");
|
||||
|
||||
gtk_widget_class_bind_template_child (widget_class, CcBluetoothPanel, airplane_page);
|
||||
gtk_widget_class_bind_template_child (widget_class, CcBluetoothPanel, disabled_page);
|
||||
gtk_widget_class_bind_template_child (widget_class, CcBluetoothPanel, enable_switch);
|
||||
gtk_widget_class_bind_template_child (widget_class, CcBluetoothPanel, header_box);
|
||||
gtk_widget_class_bind_template_child (widget_class, CcBluetoothPanel, no_devices_page);
|
||||
gtk_widget_class_bind_template_child (widget_class, CcBluetoothPanel, hw_airplane_page);
|
||||
gtk_widget_class_bind_template_child (widget_class, CcBluetoothPanel, settings_widget);
|
||||
gtk_widget_class_bind_template_child (widget_class, CcBluetoothPanel, stack);
|
||||
|
||||
|
|
|
@ -24,50 +24,75 @@
|
|||
<property name="content">
|
||||
<object class="GtkStack" id="stack">
|
||||
<child>
|
||||
<object class="AdwStatusPage" id="no_devices_page">
|
||||
<property name="icon-name">bluetooth-active-symbolic</property>
|
||||
<property name="title" translatable="yes">No Bluetooth Found</property>
|
||||
<property name="description" translatable="yes">Plug in a dongle to use Bluetooth</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwStatusPage" id="disabled_page">
|
||||
<property name="icon-name">bluetooth-active-symbolic</property>
|
||||
<property name="title" translatable="yes">Bluetooth Turned Off</property>
|
||||
<property name="description" translatable="yes">Turn on to connect devices and receive file transfers</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwStatusPage" id="airplane_page">
|
||||
<property name="icon-name">airplane-mode-symbolic</property>
|
||||
<property name="title" translatable="yes">Airplane Mode is On</property>
|
||||
<property name="description" translatable="yes">Bluetooth is disabled when airplane mode is on</property>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">no-devices-page</property>
|
||||
<property name="child">
|
||||
<object class="GtkButton">
|
||||
<property name="label" translatable="yes">_Turn Off Airplane Mode</property>
|
||||
<property name="use-underline">True</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<signal name="clicked" handler="airplane_mode_off_button_clicked_cb" object="CcBluetoothPanel" swapped="yes"/>
|
||||
<style>
|
||||
<class name="pill"/>
|
||||
<class name="suggested-action"/>
|
||||
</style>
|
||||
<object class="AdwStatusPage">
|
||||
<property name="icon-name">bluetooth-active-symbolic</property>
|
||||
<property name="title" translatable="yes">No Bluetooth Found</property>
|
||||
<property name="description" translatable="yes">Plug in a dongle to use Bluetooth</property>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwStatusPage" id="hw_airplane_page">
|
||||
<property name="icon-name">airplane-mode-symbolic</property>
|
||||
<property name="title" translatable="yes">Hardware Airplane Mode is On</property>
|
||||
<property name="description" translatable="yes">Turn off the Airplane mode switch to enable Bluetooth</property>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">disabled-page</property>
|
||||
<property name="child">
|
||||
<object class="AdwStatusPage">
|
||||
<property name="icon-name">bluetooth-active-symbolic</property>
|
||||
<property name="title" translatable="yes">Bluetooth Turned Off</property>
|
||||
<property name="description" translatable="yes">Turn on to connect devices and receive file transfers</property>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="BluetoothSettingsWidget" id="settings_widget">
|
||||
<signal name="panel-changed" handler="panel_changed_cb" object="CcBluetoothPanel" swapped="yes"/>
|
||||
<signal name="adapter-status-changed" handler="adapter_status_changed_cb" object="CcBluetoothPanel" swapped="yes"/>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">airplane-page</property>
|
||||
<property name="child">
|
||||
<object class="AdwStatusPage">
|
||||
<property name="icon-name">airplane-mode-symbolic</property>
|
||||
<property name="title" translatable="yes">Airplane Mode is On</property>
|
||||
<property name="description" translatable="yes">Bluetooth is disabled when airplane mode is on</property>
|
||||
<property name="child">
|
||||
<object class="GtkButton">
|
||||
<property name="label" translatable="yes">_Turn Off Airplane Mode</property>
|
||||
<property name="use-underline">True</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<signal name="clicked" handler="airplane_mode_off_button_clicked_cb" object="CcBluetoothPanel" swapped="yes"/>
|
||||
<style>
|
||||
<class name="pill"/>
|
||||
<class name="suggested-action"/>
|
||||
</style>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">hw-airplane-page</property>
|
||||
<property name="child">
|
||||
<object class="AdwStatusPage">
|
||||
<property name="icon-name">airplane-mode-symbolic</property>
|
||||
<property name="title" translatable="yes">Hardware Airplane Mode is On</property>
|
||||
<property name="description" translatable="yes">Turn off the Airplane mode switch to enable Bluetooth</property>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">bluetooth-page</property>
|
||||
<property name="child">
|
||||
<object class="BluetoothSettingsWidget" id="settings_widget">
|
||||
<signal name="panel-changed" handler="panel_changed_cb" object="CcBluetoothPanel" swapped="yes"/>
|
||||
<signal name="adapter-status-changed" handler="adapter_status_changed_cb" object="CcBluetoothPanel" swapped="yes"/>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue