summaryrefslogtreecommitdiffstats
path: root/src/settingsui/bluetooth/Discovery.qml
diff options
context:
space:
mode:
Diffstat (limited to 'src/settingsui/bluetooth/Discovery.qml')
-rw-r--r--src/settingsui/bluetooth/Discovery.qml164
1 files changed, 90 insertions, 74 deletions
diff --git a/src/settingsui/bluetooth/Discovery.qml b/src/settingsui/bluetooth/Discovery.qml
index 1b3184a..bde88aa 100644
--- a/src/settingsui/bluetooth/Discovery.qml
+++ b/src/settingsui/bluetooth/Discovery.qml
@@ -30,93 +30,109 @@ import QtQuick 2.6
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.0
import QtDeviceUtilities.BluetoothSettings 1.0
+import QtDemoLauncher.QtButtonImageProvider 1.0
Item {
id: top
- GroupBox {
- id: groupBox
- title: qsTr("Devices")
+ ListView {
+ id: mainList
anchors.fill: parent
+ opacity: BtDevice.scanning ? .5 : 1.0
+ interactive: !BtDevice.scanning
+ clip: true
+ model: BtDevice.deviceModel
- ListView {
- id: mainList
- anchors.fill: parent
- opacity: BtDevice.scanning ? .5 : 1.0
- interactive: !BtDevice.scanning
- clip: true
- model: BtDevice.deviceModel
-
- function getIcon(deviceType) {
- switch (deviceType) {
- case BtDeviceItem.Computer:
- return "../icons/Laptop_qt_1x.png"
- case BtDeviceItem.Headphones:
- return "../icons/Headphones_qt_1x.png"
- case BtDeviceItem.Microphone:
- return "../icons/Microphone_qt_1x.png"
- case BtDeviceItem.Mouse:
- return "../icons/Mouse_qt_1x.png"
- case BtDeviceItem.Keyboard:
- return "../icons/Keyboard_qt_1x.png"
- default:
- return "../icons/Bluetooth_qt_1x.png"
- }
+ function getIcon(deviceType) {
+ switch (deviceType) {
+ case BtDeviceItem.Computer:
+ return "../icons/Laptop_qt_1x.png"
+ case BtDeviceItem.Headphones:
+ return "../icons/Headphones_qt_1x.png"
+ case BtDeviceItem.Microphone:
+ return "../icons/Microphone_qt_1x.png"
+ case BtDeviceItem.Mouse:
+ return "../icons/Mouse_qt_1x.png"
+ case BtDeviceItem.Keyboard:
+ return "../icons/Keyboard_qt_1x.png"
+ default:
+ return "../icons/Bluetooth_qt_1x.png"
}
+ }
- delegate: Item {
- id: btDelegate
- width: parent.width
- height: expanded || connected ? column.height + 10 : bttext.height + 10
- property bool expanded: false;
-
- MouseArea {
- anchors.fill: parent
- onClicked: {
- if (!connected)
- btDelegate.expanded = !btDelegate.expanded
+ delegate: Item {
+ id: btDelegate
+ width: parent.width
+ height: expanded || connected ? mainList.height * 0.175 + mainList.height * 0.05 : mainList.height * 0.175
+ property bool expanded: false
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ if (!connected){
+ btDelegate.expanded = !btDelegate.expanded
}
}
- Image {
- id: bticon
- anchors.left: parent.left
- anchors.top: parent.top
- anchors.topMargin: 4
- source: mainList.getIcon(type)
- }
- Column {
- id: column
- anchors.left: bticon.right
- anchors.leftMargin: 10
- anchors.right: connectButton.left
- anchors.rightMargin: 10
-
- Label {
- id: bttext
- text: name
- }
- Label {
- id: details
- opacity: btDelegate.expanded || connected ? 1 : 0.0
- text: address
- Behavior on opacity { NumberAnimation { duration: 200} }
- }
+ }
+ Image {
+ id: bticon
+ sourceSize.width: parent.width
+ sourceSize.height: parent.height
+ height: parent.height * 0.5
+ width: height
+ anchors.left: parent.left
+ anchors.verticalCenter: parent.verticalCenter
+ source: mainList.getIcon(type)
+ }
+ Column {
+ anchors.left: bticon.right
+ anchors.leftMargin: parent.width * 0.025
+ anchors.right: connectButton.left
+ anchors.verticalCenter: parent.verticalCenter
+ Label {
+ id: bttext
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ font.pixelSize: mainList.height * 0.06
+ text: name
+ color: connected ? "#41cd52" : "white"
+ font.family: appFont
+ font.styleName: connected ? "SemiBold" : "Regular"
}
- Button {
- id: connectButton
- anchors.right: parent.right
- anchors.verticalCenter: parent.verticalCenter
- visible: (expanded || connected) && !BtDevice.scanning
- text: connected ? qsTr("Disconnect") : qsTr("Connect")
- onClicked : connected ? BtDevice.requestDisconnect(address) : BtDevice.requestPairing(address);
+ Label {
+ id: details
+ height: btDelegate.height * 0.275 * opacity
+ opacity: btDelegate.expanded || connected ? 1 : 0.0
+ visible: opacity > 0
+ text: address
+ color: connected ? "#41cd52" : "white"
+ font.family: appFont
+ Behavior on opacity { NumberAnimation { duration: 200} }
}
- Behavior on height { NumberAnimation { duration: 200} }
}
- focus: true
+ QtButton {
+ id: connectButton
+ height: mainList.height * 0.125
+ anchors.right: parent.right
+ anchors.verticalCenter: parent.verticalCenter
+ opacity: (expanded || connected) && !BtDevice.scanning ? 1.0 : 0.0
+ visible: opacity > 0
+ fillColor: connected ? "#9d9faa" : "#41cd52"
+ borderColor: "transparent"
+ text: connected ? qsTr("Disconnect") : qsTr("Connect")
+ onClicked : connected ? BtDevice.requestDisconnect(address) : BtDevice.requestPairing(address);
+ Behavior on opacity { NumberAnimation { duration: 200 } }
+ }
+ Behavior on height { NumberAnimation { duration: 200} }
+
+ Rectangle {
+ id: delegateBottom
+ width: btDelegate.width
+ color: "#9d9faa"
+ height: 2
+ anchors.bottom: btDelegate.bottom
+ anchors.horizontalCenter: btDelegate.horizontalCenter
+ }
}
- }
- BusyIndicator {
- anchors.centerIn: parent
- running: BtDevice.scanning
+ focus: true
}
}