diff --git a/CMakeLists.txt b/CMakeLists.txt index 533285e..5c1ab6d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,6 +42,8 @@ qt_add_qml_module(applightcontrol RegisterGroupsSettingsPage.qml RegistersSettingsItem.qml IconComboBox.qml + IconsModel.qml + DeviceTypeRegisterTypesModel.qml ) set_target_properties(applightcontrol PROPERTIES diff --git a/DeviceTypeRegisterTypesModel.qml b/DeviceTypeRegisterTypesModel.qml new file mode 100644 index 0000000..79a99e0 --- /dev/null +++ b/DeviceTypeRegisterTypesModel.qml @@ -0,0 +1,14 @@ +import QtQuick + +import com.büro + +ListModel { + ListElement { text: qsTr('Dummy'); value: DeviceTypeRegisterType.Dummy } + ListElement { text: qsTr('Dimmer'); value: DeviceTypeRegisterType.Dimmer } + ListElement { text: qsTr('Red'); value: DeviceTypeRegisterType.Red } + ListElement { text: qsTr('Green'); value: DeviceTypeRegisterType.Green } + ListElement { text: qsTr('Blue'); value: DeviceTypeRegisterType.Blue } + ListElement { text: qsTr('White'); value: DeviceTypeRegisterType.White } + ListElement { text: qsTr('Strobo'); value: DeviceTypeRegisterType.Strobo } + ListElement { text: qsTr('Shutter'); value: DeviceTypeRegisterType.Shutter } +} diff --git a/DeviceTypesSettingsPage.qml b/DeviceTypesSettingsPage.qml index 0672376..7707a86 100644 --- a/DeviceTypesSettingsPage.qml +++ b/DeviceTypesSettingsPage.qml @@ -2,17 +2,10 @@ import QtQuick import QtQuick.Controls import QtQuick.Controls.Material import QtQuick.Layouts -import Qt.labs.folderlistmodel 2.4 import com.büro 1.0 ColumnLayout { - FolderListModel { - id: iconsModel - folder: "qrc:/lightcontrol/icons/" - showDirs: false - } - Label { text: qsTr("Device Types Settings") } @@ -99,7 +92,9 @@ ColumnLayout { valueRole: "fileBaseName" iconSourceRole: "fileUrl" - model: iconsModel + model: IconsModel { + id: iconsModel + } currentIndex: listView.currentData ? iconComboBox.indexOfValue(listView.currentData.iconName) : -1 Component.onCompleted: { @@ -108,10 +103,7 @@ ColumnLayout { }); } - onActivated: { - console.log(currentValue); - if (listView.currentData) listView.currentData.iconName = currentValue; else console.warn('discarded'); - } + onActivated: if (listView.currentData) listView.currentData.iconName = currentValue; else console.warn('discarded'); } Label { text: qsTr("Registers:") } RegistersSettingsItem { diff --git a/IconsModel.qml b/IconsModel.qml new file mode 100644 index 0000000..3a41f65 --- /dev/null +++ b/IconsModel.qml @@ -0,0 +1,7 @@ +import QtQuick +import Qt.labs.folderlistmodel 2.4 + +FolderListModel { + folder: "qrc:/lightcontrol/icons/" + showDirs: false +} diff --git a/LightControlWindow.qml b/LightControlWindow.qml index 8814bfd..0d82bef 100644 --- a/LightControlWindow.qml +++ b/LightControlWindow.qml @@ -27,20 +27,11 @@ ApplicationWindow { controller: __controller } - ListModel { - id: deviceTypeRegisterTypesModel - ListElement { text: qsTr('Dummy'); value: DeviceTypeRegisterType.Dummy } - ListElement { text: qsTr('Dimmer'); value: DeviceTypeRegisterType.Dimmer } - ListElement { text: qsTr('Red'); value: DeviceTypeRegisterType.Red } - ListElement { text: qsTr('Green'); value: DeviceTypeRegisterType.Green } - ListElement { text: qsTr('Blue'); value: DeviceTypeRegisterType.Blue } - ListElement { text: qsTr('White'); value: DeviceTypeRegisterType.White } - ListElement { text: qsTr('Strobo'); value: DeviceTypeRegisterType.Strobo } - ListElement { text: qsTr('Shutter'); value: DeviceTypeRegisterType.Shutter } - } - ColumnLayout { - anchors.fill: parent + anchors.left: parent.left + anchors.top: parent.top + anchors.right: parent.right + anchors.bottom: lampRegistersPanel.top StatusBar { Layout.fillWidth: true @@ -97,7 +88,7 @@ ApplicationWindow { } Flickable { - id: test + id: lampRegistersPanel z: 98 x: 0 @@ -108,9 +99,9 @@ ApplicationWindow { states: State { name: "invisible" - when: !test.active + when: !lampRegistersPanel.active PropertyChanges { - target: test + target: lampRegistersPanel y: window.height } } diff --git a/RegisterGroupsSettingsPage.qml b/RegisterGroupsSettingsPage.qml index 254d88b..332acf2 100644 --- a/RegisterGroupsSettingsPage.qml +++ b/RegisterGroupsSettingsPage.qml @@ -1,5 +1,46 @@ import QtQuick +import QtQuick.Controls +import QtQuick.Controls.Material +import QtQuick.Layouts -Item { +import com.büro 1.0 + +ColumnLayout { property bool needsRegler: true + + Label { + text: qsTr("Register Groups Settings") + } + RowLayout { + //Layout.fillWidth: true + Layout.fillHeight: true + + EditableListView { + id: listView + + Layout.preferredWidth: 300 + Layout.maximumWidth: 300 + Layout.fillHeight: true + } + + ColumnLayout { + enabled: listView.currentIndex !== -1 + + GridLayout { + Layout.preferredWidth: 600 + Layout.maximumWidth: 600 + + columns: 2 + + Label { text: qsTr("Id:") } + SpinBox { + enabled: false + Layout.fillWidth: true + } + } + Item { + Layout.fillHeight: true + } + } + } } diff --git a/RegistersSettingsItem.qml b/RegistersSettingsItem.qml index 4b58620..8a51a24 100644 --- a/RegistersSettingsItem.qml +++ b/RegistersSettingsItem.qml @@ -52,7 +52,8 @@ Pane { } ComboBox { id: comboBox - model: deviceTypeRegisterTypesModel + model: DeviceTypeRegisterTypesModel { + } textRole: "text" valueRole: "value"