diff --git a/Assets/Translations/en.json b/Assets/Translations/en.json index 9a5b2bf65..4350d07fb 100644 --- a/Assets/Translations/en.json +++ b/Assets/Translations/en.json @@ -1241,7 +1241,6 @@ }, "connections": { "authentication-required": "Authentication required", - "bluetooth-description": "Activate Bluetooth management.", "bluetooth-devices-unnamed": "Unnamed devices are not shown.", "bluetooth-discoverable": "This device is discoverable as {hostName} while this settings tab is open.", "bluetooth-rssi-polling-description": "Periodically sample RSSI for connected devices via bluetoothctl. May not be available for all devices; uses minimal resources when enabled.", @@ -1253,9 +1252,7 @@ "hide-unnamed-devices-label": "Hide unnamed devices", "hide-unnamed-devices-description": "Hide devices that appear only as Bluetooth addresses.", "pin-instructions": "Please enter the PIN code displayed on your device.", - "title": "Connections", - "wifi-description": "Manage wireless networks (requires NetworkManager)." - + "title": "Connections" }, "notifications": { "duration-critical-urgency-description": "How long critical priority notifications stay visible.", diff --git a/Assets/settings-search-index.json b/Assets/settings-search-index.json index 9a5eb4c86..469aaddb8 100644 --- a/Assets/settings-search-index.json +++ b/Assets/settings-search-index.json @@ -377,53 +377,14 @@ "subTab": 1, "subTabLabel": "common.templates" }, - { - "labelKey": "common.bluetooth", - "descriptionKey": null, - "widget": "NLabel", - "tab": 15, - "tabLabel": "panels.connections.title", - "subTab": null - }, - { - "labelKey": "panels.connections.hide-unnamed-devices-label", - "descriptionKey": "panels.connections.hide-unnamed-devices-description", - "widget": "NToggle", - "tab": 15, - "tabLabel": "panels.connections.title", - "subTab": null - }, - { - "labelKey": "panels.connections.disable-discoverability-label", - "descriptionKey": "panels.connections.disable-discoverability-description", - "widget": "NToggle", - "tab": 15, - "tabLabel": "panels.connections.title", - "subTab": null - }, - { - "labelKey": "panels.connections.bluetooth-rssi-polling-label", - "descriptionKey": "panels.connections.bluetooth-rssi-polling-description", - "widget": "NToggle", - "tab": 15, - "tabLabel": "panels.connections.title", - "subTab": null - }, - { - "labelKey": "panels.connections.bluetooth-rssi-polling-interval-label", - "descriptionKey": "panels.connections.bluetooth-rssi-polling-interval-description", - "widget": "NSpinBox", - "tab": 15, - "tabLabel": "panels.connections.title", - "subTab": null - }, { "labelKey": "toast.airplane-mode.title", "descriptionKey": null, "widget": "NLabel", "tab": 15, "tabLabel": "panels.connections.title", - "subTab": null + "subTab": 0, + "subTabLabel": "common.wifi" }, { "labelKey": "common.wifi", @@ -431,7 +392,53 @@ "widget": "NLabel", "tab": 15, "tabLabel": "panels.connections.title", - "subTab": null + "subTab": 0, + "subTabLabel": "common.wifi" + }, + { + "labelKey": "common.bluetooth", + "descriptionKey": null, + "widget": "NLabel", + "tab": 15, + "tabLabel": "panels.connections.title", + "subTab": 1, + "subTabLabel": "common.bluetooth" + }, + { + "labelKey": "panels.connections.hide-unnamed-devices-label", + "descriptionKey": "panels.connections.hide-unnamed-devices-description", + "widget": "NToggle", + "tab": 15, + "tabLabel": "panels.connections.title", + "subTab": 1, + "subTabLabel": "common.bluetooth" + }, + { + "labelKey": "panels.connections.disable-discoverability-label", + "descriptionKey": "panels.connections.disable-discoverability-description", + "widget": "NToggle", + "tab": 15, + "tabLabel": "panels.connections.title", + "subTab": 1, + "subTabLabel": "common.bluetooth" + }, + { + "labelKey": "panels.connections.bluetooth-rssi-polling-label", + "descriptionKey": "panels.connections.bluetooth-rssi-polling-description", + "widget": "NToggle", + "tab": 15, + "tabLabel": "panels.connections.title", + "subTab": 1, + "subTabLabel": "common.bluetooth" + }, + { + "labelKey": "panels.connections.bluetooth-rssi-polling-interval-label", + "descriptionKey": "panels.connections.bluetooth-rssi-polling-interval-description", + "widget": "NSpinBox", + "tab": 15, + "tabLabel": "panels.connections.title", + "subTab": 1, + "subTabLabel": "common.bluetooth" }, { "labelKey": "common.position", diff --git a/Modules/Panels/Settings/SettingsContent.qml b/Modules/Panels/Settings/SettingsContent.qml index 849a33b21..b7d1440b7 100644 --- a/Modules/Panels/Settings/SettingsContent.qml +++ b/Modules/Panels/Settings/SettingsContent.qml @@ -9,6 +9,7 @@ import qs.Modules.Panels.Settings.Tabs.About import qs.Modules.Panels.Settings.Tabs.Audio import qs.Modules.Panels.Settings.Tabs.Bar import qs.Modules.Panels.Settings.Tabs.ColorScheme +import qs.Modules.Panels.Settings.Tabs.Connections import qs.Modules.Panels.Settings.Tabs.ControlCenter import qs.Modules.Panels.Settings.Tabs.Display import qs.Modules.Panels.Settings.Tabs.Dock diff --git a/Modules/Panels/Settings/Tabs/Connections/BluetoothSubTab.qml b/Modules/Panels/Settings/Tabs/Connections/BluetoothSubTab.qml index 20f2177f3..f5b3ba5ee 100644 --- a/Modules/Panels/Settings/Tabs/Connections/BluetoothSubTab.qml +++ b/Modules/Panels/Settings/Tabs/Connections/BluetoothSubTab.qml @@ -20,8 +20,8 @@ Item { // Configuration for shared use (e.g. by BluetoothPanel) property bool showOnlyLists: false - property bool isScanningActive: BluetoothService.scanningActive - property bool isDiscoverable: BluetoothService.discoverable + readonly property bool isScanningActive: BluetoothService.scanningActive + readonly property bool isDiscoverable: BluetoothService.discoverable // Device lists with local filtering logic readonly property var connectedDevices: { @@ -145,6 +145,7 @@ Item { visible: !btprefs.showOnlyLists Layout.fillWidth: true Layout.preferredHeight: masterControlCol.implicitHeight + border.color: "transparent" ColumnLayout { id: masterControlCol @@ -206,6 +207,7 @@ Item { visible: btprefs.connectedDevices.length > 0 && BluetoothService.enabled Layout.fillWidth: true Layout.preferredHeight: connectedDevicesCol.implicitHeight + Style.marginXL + border.color: showOnlyLists ? Style.boxBorderColor : "transparent" ColumnLayout { id: connectedDevicesCol @@ -238,6 +240,7 @@ Item { visible: btprefs.pairedDevices.length > 0 && BluetoothService.enabled Layout.fillWidth: true Layout.preferredHeight: pairedDevicesCol.implicitHeight + Style.marginXL + border.color: showOnlyLists ? Style.boxBorderColor : "transparent" ColumnLayout { id: pairedDevicesCol @@ -270,6 +273,7 @@ Item { visible: !btprefs.showOnlyLists && btprefs.unnamedAvailableDevices.length > 0 && BluetoothService.enabled Layout.fillWidth: true Layout.preferredHeight: availableDevicesCol.implicitHeight + Style.marginXL + border.color: "transparent" ColumnLayout { id: availableDevicesCol diff --git a/Modules/Panels/Settings/Tabs/ConnectionsTab.qml b/Modules/Panels/Settings/Tabs/Connections/ConnectionsTab.qml similarity index 91% rename from Modules/Panels/Settings/Tabs/ConnectionsTab.qml rename to Modules/Panels/Settings/Tabs/Connections/ConnectionsTab.qml index a0e818956..092329801 100644 --- a/Modules/Panels/Settings/Tabs/ConnectionsTab.qml +++ b/Modules/Panels/Settings/Tabs/Connections/ConnectionsTab.qml @@ -2,7 +2,6 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts import qs.Commons -import qs.Modules.Panels.Settings.Tabs.Connections import qs.Services.Networking import qs.Widgets @@ -38,8 +37,8 @@ ColumnLayout { NTabView { id: tabView - Layout.fillHeight: true currentIndex: subTabBar.currentIndex + WifiSubTab {} BluetoothSubTab {} } diff --git a/Modules/Panels/Settings/Tabs/Connections/WifiSubTab.qml b/Modules/Panels/Settings/Tabs/Connections/WifiSubTab.qml index ae28f2a26..087af2028 100644 --- a/Modules/Panels/Settings/Tabs/Connections/WifiSubTab.qml +++ b/Modules/Panels/Settings/Tabs/Connections/WifiSubTab.qml @@ -29,6 +29,7 @@ Item { NBox { Layout.fillWidth: true Layout.preferredHeight: masterControlColAirplane.implicitHeight + border.color: "transparent" ColumnLayout { id: masterControlColAirplane @@ -66,6 +67,7 @@ Item { NBox { Layout.fillWidth: true Layout.preferredHeight: masterControlCol.implicitHeight + border.color: "transparent" ColumnLayout { id: masterControlCol diff --git a/Services/Control/IPCService.qml b/Services/Control/IPCService.qml index 227ab1c1f..8c13a3342 100644 --- a/Services/Control/IPCService.qml +++ b/Services/Control/IPCService.qml @@ -75,7 +75,7 @@ Singleton { "hooks": SettingsPanel.Tab.Hooks, "launcher": SettingsPanel.Tab.Launcher, "location": SettingsPanel.Tab.Location, - "network": SettingsPanel.Tab.Network, + "connections": SettingsPanel.Tab.Connections, "notifications": SettingsPanel.Tab.Notifications, "plugins": SettingsPanel.Tab.Plugins, "sessionmenu": SettingsPanel.Tab.SessionMenu,