make bluetooth visibility settings consistent with other settingss

This commit is contained in:
takotori 2023-12-11 17:22:00 +01:00
parent 746b19e09d
commit e89de26b67
5 changed files with 40 additions and 115 deletions

View file

@ -54,6 +54,7 @@ fn setup_callbacks(
imp.reset_visibility
.set_action_target_value(Some(&Variant::from("visibility")));
imp.reset_bluetooth_main_tab.set_activatable(true);
imp.reset_bluetooth_main_tab
.set_action_name(Some("navigation.pop"));
@ -67,15 +68,13 @@ fn setup_callbacks(
});
imp.reset_bluetooth_discoverable_switch
.connect_state_set(clone!(@weak imp => @default-return glib::Propagation::Proceed,move |_, state| {
set_bluetooth_adapter_visibility(imp.reset_current_bluetooth_adapter.borrow().path.clone(), state);
glib::Propagation::Proceed
.connect_active_notify(clone!(@weak imp => move |state| {
set_bluetooth_adapter_visibility(imp.reset_current_bluetooth_adapter.borrow().path.clone(), state.is_active());
}));
imp.reset_bluetooth_pairable_switch
.connect_state_set(clone!(@weak imp => @default-return glib::Propagation::Proceed,move |_, state| {
set_bluetooth_adapter_pairability(imp.reset_current_bluetooth_adapter.borrow().path.clone(), state);
glib::Propagation::Proceed
.connect_active_notify(clone!(@weak imp => move |state| {
set_bluetooth_adapter_pairability(imp.reset_current_bluetooth_adapter.borrow().path.clone(), state.is_active());
}));
imp.reset_bluetooth_switch
@ -151,11 +150,11 @@ pub fn populate_conntected_bluetooth_devices(bluetooth_box: Arc<BluetoothBox>) {
imp.reset_bluetooth_switch
.set_active(current_adapter.powered);
imp.reset_bluetooth_discoverable_switch
.set_state(current_adapter.discoverable);
.set_active(current_adapter.discoverable);
imp.reset_bluetooth_discoverable_switch
.set_active(current_adapter.discoverable);
imp.reset_bluetooth_pairable_switch
.set_state(current_adapter.pairable);
.set_active(current_adapter.pairable);
imp.reset_bluetooth_pairable_switch
.set_active(current_adapter.pairable);
}

View file

@ -1,4 +1,4 @@
use adw::{ActionRow, ComboRow, PreferencesGroup};
use adw::{ActionRow, ComboRow, PreferencesGroup, SwitchRow};
use dbus::Path;
use gtk::subclass::prelude::*;
use gtk::{glib, Button, CompositeTemplate, Switch};
@ -30,11 +30,11 @@ pub struct BluetoothBox {
#[template_child]
pub reset_visibility: TemplateChild<ActionRow>,
#[template_child]
pub reset_bluetooth_main_tab: TemplateChild<ListEntry>,
pub reset_bluetooth_main_tab: TemplateChild<ActionRow>,
#[template_child]
pub reset_bluetooth_discoverable_switch: TemplateChild<Switch>,
pub reset_bluetooth_discoverable_switch: TemplateChild<SwitchRow>,
#[template_child]
pub reset_bluetooth_pairable_switch: TemplateChild<Switch>,
pub reset_bluetooth_pairable_switch: TemplateChild<SwitchRow>,
pub available_devices: BluetoothMap,
pub connected_devices: BluetoothMap,
pub reset_bluetooth_adapters: Arc<RwLock<HashMap<String, (BluetoothAdapter, u32)>>>,

View file

@ -6,7 +6,7 @@ use std::cell::RefCell;
use dbus::Path;
use gtk::subclass::prelude::*;
use gtk::{glib, Button, CompositeTemplate, Label};
use gtk::{glib, CompositeTemplate};
use super::saved_wifi_entry;

View file

@ -91,33 +91,16 @@
<object class="GtkBox">
<property name="orientation">vertical</property>
<child>
<object class="GtkListBox">
<property name="css-classes">boxed-list</property>
<property name="margin-bottom">10</property>
<property name="margin-end">5</property>
<property name="margin-start">5</property>
<property name="margin-top">5</property>
<property name="show-separators">True</property>
<property name="valign">start</property>
<object class="AdwPreferencesGroup">
<child>
<object class="resetListBoxRow" id="reset_bluetooth_main_tab">
<object class="AdwActionRow" id="reset_bluetooth_main_tab">
<property name="title">Available Networks</property>
<child>
<object class="GtkBox">
<property name="height-request">40</property>
<child>
<object class="GtkLabel">
<property name="label">Main</property>
<property name="margin-start">5</property>
</object>
</child>
<child>
<object class="GtkImage">
<property name="halign">end</property>
<property name="hexpand">True</property>
<property name="icon-name">go-previous-symbolic</property>
<property name="margin-end">5</property>
</object>
</child>
<object class="GtkImage">
<property name="halign">end</property>
<property name="hexpand">True</property>
<property name="icon-name">go-previous-symbolic</property>
<property name="margin-end">5</property>
</object>
</child>
</object>
@ -125,46 +108,18 @@
</object>
</child>
<child>
<object class="GtkLabel">
<property name="halign">start</property>
<property name="label">Visibility Settings</property>
<property name="margin-start">5</property>
</object>
</child>
<child>
<object class="GtkBox">
<property name="margin-bottom">5</property>
<property name="margin-start">5</property>
<property name="margin-top">5</property>
<object class="AdwPreferencesGroup">
<property name="title">Visibility Settings</property>
<child>
<object class="GtkLabel">
<property name="halign">start</property>
<property name="hexpand">True</property>
<property name="hexpand-set">True</property>
<property name="label">Pairable</property>
<object class="AdwSwitchRow" id="reset_bluetooth_pairable_switch">
<property name="title">Pairable</property>
</object>
</child>
<child>
<object class="GtkSwitch" id="reset_bluetooth_pairable_switch"/>
</child>
</object>
</child>
<child>
<object class="GtkBox">
<property name="margin-bottom">5</property>
<property name="margin-start">5</property>
<property name="margin-top">5</property>
<child>
<object class="GtkLabel">
<property name="halign">start</property>
<property name="hexpand">True</property>
<property name="hexpand-set">True</property>
<property name="label">Discoverable</property>
<object class="AdwSwitchRow" id="reset_bluetooth_discoverable_switch">
<property name="title">Discoverable</property>
</object>
</child>
<child>
<object class="GtkSwitch" id="reset_bluetooth_discoverable_switch"/>
</child>
</object>
</child>
</object>

View file

@ -132,25 +132,19 @@
(10,143,"GtkLabel",None,142,None,None,None,None,None),
(10,144,"GtkSwitch","reset_bluetooth_switch",142,None,None,None,1,None),
(10,153,"GtkBox",None,138,None,None,None,None,None),
(10,154,"GtkListBox",None,153,None,None,None,None,None),
(10,155,"resetListBoxRow","reset_bluetooth_main_tab",154,None,None,None,1,None),
(10,156,"GtkBox",None,155,None,None,None,None,None),
(10,157,"GtkLabel",None,156,None,None,None,None,None),
(10,158,"GtkImage",None,156,None,None,None,1,None),
(10,159,"GtkLabel",None,153,None,None,None,1,None),
(10,172,"AdwPreferencesGroup","reset_bluetooth_details",121,None,None,None,None,None),
(10,173,"AdwComboRow","reset_bluetooth_adapter",172,None,None,None,None,None),
(10,174,"AdwActionRow","reset_visibility",172,None,None,None,1,None),
(10,175,"GtkImage",None,174,None,None,None,None,None),
(10,188,"GtkBox",None,153,None,None,None,4,None),
(10,193,"GtkLabel",None,188,None,None,None,None,None),
(10,196,"GtkSwitch","reset_bluetooth_discoverable_switch",188,None,None,None,1,None),
(10,197,"GtkBox",None,153,None,None,None,3,None),
(10,198,"GtkLabel",None,197,None,None,None,None,None),
(10,199,"GtkSwitch","reset_bluetooth_pairable_switch",197,None,None,None,1,None),
(10,204,"AdwPreferencesGroup","reset_bluetooth_available_devices",121,None,None,None,1,None),
(10,206,"AdwPreferencesGroup","reset_bluetooth_connected_devices",121,None,None,None,2,None),
(10,207,"GtkButton","reset_bluetooth_refresh_button",204,None,None,None,-1,None),
(10,208,"AdwPreferencesGroup",None,153,None,None,None,None,None),
(10,209,"AdwPreferencesGroup",None,153,None,None,None,1,None),
(10,210,"AdwSwitchRow","reset_bluetooth_pairable_switch",209,None,None,None,-1,None),
(10,211,"AdwSwitchRow","reset_bluetooth_discoverable_switch",209,None,None,None,-1,None),
(10,212,"AdwActionRow","reset_bluetooth_main_tab",208,None,None,None,None,None),
(10,213,"GtkImage",None,212,None,None,None,None,None),
(11,1,"AdwActionRow","resetBluetoothEntry",None,None,None,None,None,None),
(12,11,"GtkBox","resetAudioInput",None,None,None,None,None,None),
(12,12,"GtkLabel",None,11,None,None,None,None,None),
@ -504,43 +498,12 @@
(10,144,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(10,144,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
(10,153,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(10,154,"GtkListBox","show-separators","True",None,None,None,None,None,None,None,None,None),
(10,154,"GtkWidget","css-classes","boxed-list",None,None,None,None,None,None,None,None,None),
(10,154,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
(10,154,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(10,154,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(10,154,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
(10,154,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(10,156,"GtkWidget","height-request","40",None,None,None,None,None,None,None,None,None),
(10,157,"GtkLabel","label","Main",None,None,None,None,None,None,None,None,None),
(10,157,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(10,158,"GtkImage","icon-name","go-previous-symbolic",None,None,None,None,None,None,None,None,None),
(10,158,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
(10,158,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(10,158,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(10,159,"GtkLabel","label","Visibility Settings",None,None,None,None,None,None,None,None,None),
(10,159,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(10,159,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(10,173,"AdwPreferencesRow","title","Bluetooth Adapter",None,None,None,None,None,None,None,None,None),
(10,174,"AdwPreferencesRow","title","Visibility Settings",None,None,None,None,None,None,None,None,None),
(10,175,"GtkImage","icon-name","go-previous-symbolic-rtl",None,None,None,None,None,None,None,None,None),
(10,175,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
(10,175,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(10,175,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(10,188,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
(10,188,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(10,188,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
(10,193,"GtkLabel","label","Discoverable",None,None,None,None,None,None,None,None,None),
(10,193,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(10,193,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(10,193,"GtkWidget","hexpand-set","True",None,None,None,None,None,None,None,None,None),
(10,197,"GtkWidget","margin-bottom","5",None,None,None,None,None,None,None,None,None),
(10,197,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(10,197,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
(10,198,"GtkLabel","label","Pairable",None,None,None,None,None,None,None,None,None),
(10,198,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(10,198,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(10,198,"GtkWidget","hexpand-set","True",None,None,None,None,None,None,None,None,None),
(10,204,"AdwPreferencesGroup","header-suffix",None,None,None,None,None,207,None,None,None,None),
(10,204,"AdwPreferencesGroup","title","Available Devices",None,None,None,None,None,None,None,None,None),
(10,204,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
@ -551,6 +514,14 @@
(10,206,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(10,206,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
(10,207,"GtkButton","icon-name","view-refresh-symbolic",None,None,None,None,None,None,None,None,None),
(10,209,"AdwPreferencesGroup","title","Visibility Settings",None,None,None,None,None,None,None,None,None),
(10,210,"AdwPreferencesRow","title","Pairable",None,None,None,None,None,None,None,None,None),
(10,211,"AdwPreferencesRow","title","Discoverable",None,None,None,None,None,None,None,None,None),
(10,212,"AdwPreferencesRow","title","Available Networks",None,None,None,None,None,None,None,None,None),
(10,213,"GtkImage","icon-name","go-previous-symbolic",None,None,None,None,None,None,None,None,None),
(10,213,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
(10,213,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(10,213,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(11,1,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(11,32,"GtkListBoxRow","child",None,None,None,None,None,39,None,None,None,None),
(11,32,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),