From 4fcdeafdff1241ff598b7695283f3c44680888df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=A6=8C=EA=A6=AB=EA=A6=B6=EA=A6=8F=EA=A7=80=EA=A6=A6?= =?UTF-8?q?=EA=A6=BF=EA=A6=A7=EA=A6=AE=EA=A6=91=EA=A6=A9=EA=A6=AD=EA=A7=80?= Date: Thu, 16 Mar 2023 22:29:30 +0800 Subject: Bootstrap button primary impl & its use in SignIn --- Bootstrap.qrc | 5 ++++- Bootstrap/Button/Primary.ui.qml | 20 ++++++++++++++++++++ Bootstrap/LICENSE.md | 21 --------------------- Bootstrap/icons/LICENSE.md | 21 +++++++++++++++++++++ Qeduport.qmlproject | 1 + SignIn.ui.qml | 20 ++------------------ imports/Bootstrap/Bootstrap.qml | 24 ++++++++++++++++++++++++ imports/Bootstrap/qmldir | 2 ++ 8 files changed, 74 insertions(+), 40 deletions(-) create mode 100644 Bootstrap/Button/Primary.ui.qml delete mode 100644 Bootstrap/LICENSE.md create mode 100644 Bootstrap/icons/LICENSE.md create mode 100644 imports/Bootstrap/Bootstrap.qml create mode 100644 imports/Bootstrap/qmldir diff --git a/Bootstrap.qrc b/Bootstrap.qrc index 5bfd58c..5eaf642 100644 --- a/Bootstrap.qrc +++ b/Bootstrap.qrc @@ -1,5 +1,8 @@ - + + imports/Bootstrap/Bootstrap.qml + imports/Bootstrap/qmldir + Bootstrap/Button/Primary.ui.qml Bootstrap/icons/patch-check-fill.svg Bootstrap/icons/envelope-fill.svg diff --git a/Bootstrap/Button/Primary.ui.qml b/Bootstrap/Button/Primary.ui.qml new file mode 100644 index 0000000..e99f56b --- /dev/null +++ b/Bootstrap/Button/Primary.ui.qml @@ -0,0 +1,20 @@ +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import Bootstrap 5.3 + +Button { + id: button + font: Bootstrap.btnFont + contentItem: Text { + text: button.text + font: button.font + color: Bootstrap.btnColor + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + } + background: Rectangle { + color: button.down ? Bootstrap.btnActiveBG : button.enabled + ? Bootstrap.btnBg : Bootstrap.btnDisabledBg + radius: 8 + } +} diff --git a/Bootstrap/LICENSE.md b/Bootstrap/LICENSE.md deleted file mode 100644 index 47f06b6..0000000 --- a/Bootstrap/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2019-2021 The Bootstrap Authors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/Bootstrap/icons/LICENSE.md b/Bootstrap/icons/LICENSE.md new file mode 100644 index 0000000..47f06b6 --- /dev/null +++ b/Bootstrap/icons/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2019-2021 The Bootstrap Authors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Qeduport.qmlproject b/Qeduport.qmlproject index 17409d8..b88797b 100644 --- a/Qeduport.qmlproject +++ b/Qeduport.qmlproject @@ -19,6 +19,7 @@ Project { filter: "*.ttf" } + importPaths: [ "imports" ] qdsVersion: "3.9" quickVersion: "2.15" multilanguageSupport: true diff --git a/SignIn.ui.qml b/SignIn.ui.qml index da66b5f..6d910dd 100644 --- a/SignIn.ui.qml +++ b/SignIn.ui.qml @@ -1,6 +1,7 @@ import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Layouts 1.15 +import "Bootstrap/Button" as BsBtn Flickable { property string titleHeader: qsTr("Login into Eduport!") @@ -194,28 +195,11 @@ Flickable { } } - Button { + BsBtn.Primary { id: button text: qsTr("Login") implicitHeight: 40 Layout.fillWidth: true - - contentItem: Text { - color: "#ffffff" - text: button.text - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - font { - pointSize: 15 - family: doesntEmbed ? "Roboto" : medium.name - weight: Font.Medium - } - } - - background: Rectangle { - color: button.down ? "#0555a1" : button.enabled ? "#066ac9" : "#a6066ac9" - radius: 8 - } } } diff --git a/imports/Bootstrap/Bootstrap.qml b/imports/Bootstrap/Bootstrap.qml new file mode 100644 index 0000000..321eedf --- /dev/null +++ b/imports/Bootstrap/Bootstrap.qml @@ -0,0 +1,24 @@ +pragma Singleton + +import QtQuick 2.15 + +QtObject { + readonly property color btnColor: "#ffffff" + readonly property color btnBg: "#066ac9" + readonly property color btnActiveBg: "#0555a1" + readonly property color btnDisabledBg: "#a6066ac9" + + readonly property bool haveRoboto: Qt.platform.os === "android" + || Qt.platform.os === "linux" + || Qt.platform.os === "osx" + || Qt.platform.os === "unix" + || Qt.platform.os === "windows" + readonly property FontLoader medium: FontLoader { + source: haveRoboto ? "" : "../../Roboto/Roboto-Medium.ttf" + } + readonly property font btnFont: Qt.font({ + pointSize: 15, + family: haveRoboto ? "Roboto" : medium.name, + weight: Font.Medium + }) +} diff --git a/imports/Bootstrap/qmldir b/imports/Bootstrap/qmldir new file mode 100644 index 0000000..53e8824 --- /dev/null +++ b/imports/Bootstrap/qmldir @@ -0,0 +1,2 @@ +module Bootstrap +singleton Bootstrap 5.3 Bootstrap.qml -- cgit v1.2.3