diff --git a/native/AddData.qml b/native/AddData.qml index ffe9b2c..1e55c6d 100644 --- a/native/AddData.qml +++ b/native/AddData.qml @@ -96,7 +96,7 @@ Window { name: nameT.text, key: keyT.text, amount: parseInt(amountT.text), - group_id: "ff664d29-68c9-45c2-a6bc-8f378876c90d", + group_id: "f7604976-1e3c-49b7-841b-6a4025257c70", }); xhr.send(data); diff --git a/native/MainPage.qml b/native/MainPage.qml index 09f918d..5844bba 100644 --- a/native/MainPage.qml +++ b/native/MainPage.qml @@ -4,8 +4,6 @@ import QtQuick.Layouts 2.15 import QtQuick.Controls 2.15 Rectangle { - visible: true - SystemPalette { id: activeColors; colorGroup: SystemPalette.Active } SystemPalette { id: inactiveColors; colorGroup: SystemPalette.Inactive } SystemPalette { id: disabledColors; colorGroup: SystemPalette.Disabled } @@ -15,7 +13,6 @@ Rectangle { } property string authToken: "" - property string searchText: "" // Property to hold the search text signal logout() @@ -29,42 +26,44 @@ Rectangle { height: 50 color: getColors().midlight - RowLayout { - anchors.fill: parent - spacing: 10 - anchors.margins: 5 - - TextField { - id: searchField - placeholderText: qsTr("Search") - Layout.alignment: Qt.AlignVCenter - Layout.fillWidth: true - onTextChanged: { - searchText = text - filterModel() // Filter model based on search text - } + TextField { + anchors { + verticalCenter: s1.verticalCenter + rightMargin: 5 + right: loginB.left } - Button { - text: qsTr("Add License") - Layout.alignment: Qt.AlignVCenter - onClicked: { - // Create and show a new window - var newWindow = newWindowComponent.createObject(null, { authToken: authToken }); - if (newWindow !== null) { - newWindow.show(); - } else { - console.log("Failed to create new window"); - } - } - } + placeholderText: qsTr("Search") + } - Button { - id: loginB - text: qsTr("Logout") - Layout.alignment: Qt.AlignVCenter - onClicked: { - logout(); + Button { + id: loginB + anchors { + verticalCenter: s1.verticalCenter + rightMargin: 10 + right: s1.right + } + text: qsTr("Logout") + + onClicked: { + logout(); + } + } + + Button { + text: qsTr("Add License") + anchors { + verticalCenter: s1.verticalCenter + rightMargin: 10 + right: loginB.left + } + onClicked: { + // Create and show a new window + var newWindow = newWindowComponent.createObject(null, { authToken: authToken }); + if (newWindow !== null) { + newWindow.show(); + } else { + console.log("Failed to create new window"); } } } @@ -80,65 +79,54 @@ Rectangle { } color: getColors().window - ColumnLayout { - anchors.fill: parent - spacing: 0 + ListModel { + id: apiDataModel + } - Rectangle { - id: header - color: getColors().midlight - height: 40 - Layout.fillWidth: true - - RowLayout { - anchors.fill: parent - spacing: 10 - anchors.margins: 5 - - Text { text: qsTr("Name"); color: getColors().text; Layout.fillWidth: true } - Text { text: qsTr("Key"); color: getColors().text; Layout.fillWidth: true } - Text { text: qsTr("Amount"); color: getColors().text; Layout.fillWidth: true } - Text { text: qsTr("Start"); color: getColors().text; Layout.fillWidth: true } - Text { text: qsTr("End"); color: getColors().text; Layout.fillWidth: true } - Text { text: qsTr("Group"); color: getColors().text; Layout.fillWidth: true } - } + ListView { + anchors { + topMargin: 5 + fill: s2 } + clip: true + boundsBehavior: Flickable.StopAtBounds - ListView { - id: listView - Layout.fillWidth: true - Layout.fillHeight: true - clip: true - boundsBehavior: Flickable.StopAtBounds - model: filteredApiDataModel // Use the filtered model + model: apiDataModel - delegate: Rectangle { - width: listView.width - height: 50 - color: getColors().button + delegate: Item { + width: parent.width + height: 50 - RowLayout { - anchors.fill: parent - spacing: 10 - anchors.margins: 5 + Row { + spacing: 10 - Text { text: model.name; color: getColors().text; Layout.fillWidth: true } - Text { text: model.key; color: getColors().text; Layout.fillWidth: true } - Text { text: model.amount; color: getColors().text; Layout.fillWidth: true } - Text { text: model.start; color: getColors().text; Layout.fillWidth: true } - Text { text: model.end; color: getColors().text; Layout.fillWidth: true } - Text { text: model.group; color: getColors().text; Layout.fillWidth: true } + Text { + text: model.name + color: getColors().text + } + + Text { + text: model.key + color: getColors().text + } + Text { + text: model.amount + color: getColors().text + } + Text { + text: model.start + color: getColors().text + } + Text { + text: model.end + color: getColors().text + } + Text { + text: model.group + color: getColors().text } } } - - ListModel { - id: apiDataModel - } - - ListModel { - id: filteredApiDataModel - } } } @@ -172,7 +160,6 @@ Rectangle { }); } } - filterModel() // Filter the model after loading data } else { console.log("Error: " + xhr.status); } @@ -180,19 +167,4 @@ Rectangle { } xhr.send(); } - - function filterModel() { - filteredApiDataModel.clear() - for (var i = 0; i < apiDataModel.count; ++i) { - var item = apiDataModel.get(i) - if (item.name.toLowerCase().indexOf(searchText.toLowerCase()) !== -1 || - item.key.toLowerCase().indexOf(searchText.toLowerCase()) !== -1 || - item.amount.toLowerCase().indexOf(searchText.toLowerCase()) !== -1 || - item.start.toLowerCase().indexOf(searchText.toLowerCase()) !== -1 || - item.end.toLowerCase().indexOf(searchText.toLowerCase()) !== -1 || - item.group.toLowerCase().indexOf(searchText.toLowerCase()) !== -1) { - filteredApiDataModel.append(item) - } - } - } }