From a835a6cc9f4a055a2e56a9e8e2a97eba90909409 Mon Sep 17 00:00:00 2001 From: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com> Date: Thu, 27 Aug 2020 13:33:28 -0400 Subject: [PATCH] devtools: add ui scaffolding component - add a component boundary visualization tool Change-Id: Ib39f593b296ff12a220e5a259888d9c9f6eb1c4b --- qml.qrc | 1 + src/commoncomponents/Scaffold.qml | 54 +++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 src/commoncomponents/Scaffold.qml diff --git a/qml.qrc b/qml.qrc index 1f2dde369..fbc901d68 100644 --- a/qml.qrc +++ b/qml.qrc @@ -108,5 +108,6 @@ <file>src/commoncomponents/js/contextmenugenerator.js</file> <file>src/commoncomponents/BaseContextMenu.qml</file> <file>src/mainview/components/AccountPresenceCycle.qml</file> + <file>src/commoncomponents/Scaffold.qml</file> </qresource> </RCC> diff --git a/src/commoncomponents/Scaffold.qml b/src/commoncomponents/Scaffold.qml new file mode 100644 index 000000000..9acb5a099 --- /dev/null +++ b/src/commoncomponents/Scaffold.qml @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2020 by Savoir-faire Linux + * Author: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +import QtQuick 2.0 +import QtQuick.Controls 2.12 + +// UI dev tool to visualize components/layouts +Rectangle { + property alias name: label.text + property bool stretchParent: false + + border.width: 1 + color: { + var r = Math.random() * 0.5 + 0.5; + var g = Math.random() * 0.5 + 0.5; + var b = Math.random() * 0.5 + 0.5; + Qt.rgba(r, g, b, 0.5); + } + anchors.fill: parent + focus: false + Component.onCompleted: { + // fallback to some description of the object + if (label.text === "") + label.text = this.toString(); + + // force the parent to be at least the dimensions of children + if (stretchParent) { + parent.width = Math.max(parent.width, parent.childrenRect.width); + parent.height = Math.max(parent.height, parent.childrenRect.height); + } + } + + Label { + id: label + + anchors.centerIn: parent + } + +} -- GitLab