Wiggly
// Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause import QtQuick import QtQuick.Controls.Material import "WigglyEffect" Window { id: mainWindow // Helper for UI scalability. // Pixel multiplier which depends on the window size. readonly property real px: width / defaultWindowWidth readonly property real defaultWindowWidth: 1280 readonly property real defaultWindowHeight: 720 Material.theme: Material.Dark Material.accent: Material.Pink width: defaultWindowWidth height: defaultWindowHeight visible: true title: qsTr("Wiggly") color: "#2e2f30" // Custom font FontLoader { id: font1 // "Injekuta Bl" font from: https://typodermicfonts.com // Creative Commons Zero license https://creativecommons.org/publicdomain/zero/1.0/ source: "injekuta_bl.otf" } Rectangle { id: sourceItem anchors.centerIn: parent width: textItem.width + 60 * mainWindow.px height: textItem.height + 30 * mainWindow.px color: "#d0d0d0d0" border.color: "#d0ffffff" border.width: 4 * mainWindow.px radius: 20 * mainWindow.px layer.enabled: true layer.smooth: true visible: false Text { id: textItem anchors.centerIn: parent text: wigglyTextField.text font.family: font1.font.family font.pixelSize: Math.min(200 * mainWindow.px, 0.8 * mainWindow.width / text.length) } } WigglyEffect { id: wigglyEffect source: sourceItem anchors.fill: sourceItem timeRunning: true wigglyAmountX: wigglyAmountXSlider.value wigglyAmountY: wigglyAmountYSlider.value electricCloudColor.a: electricSwitch.checked ? 1.0 : 0.0 wigglyShadows: 0.5 } // Toolbar background Rectangle { anchors.fill: toolbar anchors.leftMargin: -40 * mainWindow.px anchors.rightMargin: -20 * mainWindow.px color: "#40000000" border.width: 2 border.color: "#20ffffff" radius: height * 0.5 } // Toolbar with settings Row { id: toolbar height: wigglyTextField.height + 40 * mainWindow.px anchors.horizontalCenter: parent.horizontalCenter anchors.bottom: parent.bottom anchors.bottomMargin: 20 * mainWindow.px spacing: 20 * mainWindow.px TextField { id: wigglyTextField anchors.verticalCenter: parent.verticalCenter width: mainWindow.width * 0.3 text: "Wiggly" } Slider { id: wigglyAmountYSlider anchors.verticalCenter: parent.verticalCenter width: mainWindow.width * 0.15 from: 0 to: 100 value: 40 } Slider { id: wigglyAmountXSlider anchors.verticalCenter: parent.verticalCenter width: mainWindow.width * 0.15 from: 0 to: 100 value: 20 } Switch { id: electricSwitch anchors.verticalCenter: parent.verticalCenter } } }