From abc3ebf80a7e2abacd6672f69c910860276316db Mon Sep 17 00:00:00 2001 From: blue Date: Mon, 1 Apr 2024 22:45:48 -0300 Subject: [PATCH] some thoughts about icons --- CMakeLists.txt | 3 +- draw/wallet.odg | Bin 0 -> 9816 bytes qml/Components/CMakeLists.txt | 1 + qml/Components/IconPicker.qml | 54 +++++++++++++++++++++ qml/Forms/AddAsset.qml | 14 ++++-- resources/CMakeLists.txt | 5 ++ resources/icons/unknown.svg | 5 ++ resources/icons/wallet.svg | 89 ++++++++++++++++++++++++++++++++++ 8 files changed, 166 insertions(+), 5 deletions(-) create mode 100644 draw/wallet.odg create mode 100644 qml/Components/IconPicker.qml create mode 100644 resources/CMakeLists.txt create mode 100644 resources/icons/unknown.svg create mode 100644 resources/icons/wallet.svg diff --git a/CMakeLists.txt b/CMakeLists.txt index 40fe706..c918edc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,7 @@ project(magpie set(PROJECT_LICENSE "GPL-3.0") set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) +# set(CMAKE_AUTORCC ON) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) @@ -61,6 +61,7 @@ add_subdirectory(qml) add_subdirectory(API) add_subdirectory(models) add_subdirectory(utils) +add_subdirectory(resources) target_include_directories(magpie PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(magpie PRIVATE diff --git a/draw/wallet.odg b/draw/wallet.odg new file mode 100644 index 0000000000000000000000000000000000000000..b65780dd0c7618c82f7e1ef44a42df317d039dc3 GIT binary patch literal 9816 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 literal 0 HcmV?d00001 diff --git a/qml/Components/CMakeLists.txt b/qml/Components/CMakeLists.txt index 2ddc094..452683c 100644 --- a/qml/Components/CMakeLists.txt +++ b/qml/Components/CMakeLists.txt @@ -11,6 +11,7 @@ qt_add_qml_module(magpieComponents QML_FILES Modal.qml AssetLine.qml + IconPicker.qml ) target_link_libraries(magpie PRIVATE magpieComponents) diff --git a/qml/Components/IconPicker.qml b/qml/Components/IconPicker.qml new file mode 100644 index 0000000..dba8ff0 --- /dev/null +++ b/qml/Components/IconPicker.qml @@ -0,0 +1,54 @@ +// SPDX-FileCopyrightText: 2023 Yury Gubich +// SPDX-License-Identifier: GPL-3.0-or-later + +import QtQuick +import QtQuick.Controls + +ComboBox { + property string icon: "" + + id: box + model: ["wallet", "whatever"] + delegate: MenuItem { + required property string modelData + required property int index + + width: parent.width + highlighted: box.highlightedIndex === index + contentItem: View { + icon: modelData + } + } + contentItem: View { + icon: currentText + padding: 5 + } + + component View: Row { + required property string icon + property int iconSize: 20 + + spacing: 5 + IconImage { + id: image + anchors.verticalCenter: parent.verticalCenter + color: palette.text + source: "qrc:/icons/" + icon + ".svg" + height: parent.iconSize + width: parent.iconSize + + IconImage { + id: fallback + anchors.fill: parent + source: "qrc:/icons/wallet.svg" + visible: parent.status == Image.Error + color: palette.text + } + } + + Label { + anchors.verticalCenter: parent.verticalCenter + text: icon + } + } +} diff --git a/qml/Forms/AddAsset.qml b/qml/Forms/AddAsset.qml index e35283d..eaaf4c9 100644 --- a/qml/Forms/AddAsset.qml +++ b/qml/Forms/AddAsset.qml @@ -36,15 +36,16 @@ Item { TextField { id: titleField + text: "New Asset" } Label { text: qsTr("Icon") + ":"; } - TextField { + Components.IconPicker { id: iconField - text: "list-add" + icon: "list-add" } Label { @@ -66,7 +67,7 @@ Item { Button { text: qsTr("Create") - onClicked: inner.send(titleField.text, iconField.text, colorField.text) + onClicked: inner.confirm() } } @@ -74,12 +75,17 @@ Item { id: modal } + function confirm () { + //TODO validation + send(titleField.text, iconField.icon, colorField.text); + } + function send (title, icon, color) { if (modal.inProgress) return; titleField.text = title; - iconField.text = icon; + iconField.icon = icon; colorField.text = color; modal.inProgress = true; diff --git a/resources/CMakeLists.txt b/resources/CMakeLists.txt new file mode 100644 index 0000000..a0f6187 --- /dev/null +++ b/resources/CMakeLists.txt @@ -0,0 +1,5 @@ +qt_add_resources(magpie "magpieIcons" + PREFIX "/" + FILES + icons/wallet.svg +) diff --git a/resources/icons/unknown.svg b/resources/icons/unknown.svg new file mode 100644 index 0000000..49ae7b8 --- /dev/null +++ b/resources/icons/unknown.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/resources/icons/wallet.svg b/resources/icons/wallet.svg new file mode 100644 index 0000000..ed2841a --- /dev/null +++ b/resources/icons/wallet.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file