Qt Insight - Qt Quick Application
// Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause import QtQuick import QtQuick.Controls import QtQuick.Effects AbstractButton { // Height, width and any other size related properties containing odd looking float or other dividers // that do not seem to have any logical origin are just arbitrary and based on original design // and/or personal preference on what looks nice. id: button property string buttonText: "" property bool showIcon: true property string buttonColor: "grey" property alias rectangle: rectangle states: State { name: "pressed" when: button.pressed PropertyChanges { target: rectangle scale: 0.9 } } transitions: Transition { NumberAnimation { properties: "scale" duration: 10 easing.type: Easing.InOutQuad } } contentItem: Rectangle { id: rectangle border.width: 1 border.color: Colors.border radius: 10 anchors.fill: parent Row { anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter Text { text: buttonText color: (buttonColor == "green") ? Colors.dark.textColor : Colors.currentTheme.textColor font.pixelSize: 18 font.weight: 700 rightPadding: 8 } Image { id: icon visible: showIcon source: (Colors.currentTheme == Colors.dark) ? "./images/icons/keyboard_backspace_white_right.svg" : "./images/icons/keyboard_backspace_black_right.svg" } } } }