import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Controls.Material 2.12 import QtQuick.Layouts 1.15 import QtPurchasing 1.12 Page { id: control anchors.fill: parent Connections { target: speedFlowChartProduct function onPurchaseFailed() { //% "Purchase failed" purchaseBt.text = qsTrId("#purchaseFailed") purchaseBt.enabled = false buttonTextResetTimer.start() } } Timer { id: buttonTextResetTimer interval: 2000 running: false repeat: false onTriggered: { purchaseBt.text = (speedFlowChartProduct.status === Product.Registered //% "Buy now for" ? qsTrId("#buyNowFor") + " " + speedFlowChartProduct.price //% "This item is currently unavailable" : qsTrId("#itemIsUnavailable")) purchaseBt.enabled = true } } Column { id: lockedLayout anchors { fill: parent topMargin: parent.height * 0.02 bottomMargin: parent.height * 0.05 rightMargin: parent.width * 0.1 + 20 leftMargin: parent.width * 0.1 + 20 } spacing: lockedLayout.height * 0.01 Label { anchors.horizontalCenter: parent.horizontalCenter height: lockedLayout.height * 0.03 width: lockedLayout.width //% "This is a premium feature." text: qsTrId("#thisIsAPremiumFeature") font.pixelSize: height font.bold: true fontSizeMode: Text.Fit horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter minimumPixelSize: 1 } SwipeGallery { property string platformIcons: Qt.platform.os === "osx" || Qt.platform.os === "iso" ? "ios":"android" height: lockedLayout.height * 0.85 width: lockedLayout.width images: [ "qrc:/screenshots/SpeedFlowchartDemo/" + platformIcons + "/1.jpeg", "qrc:/screenshots/SpeedFlowchartDemo/" + platformIcons + "/2.jpeg", "qrc:/screenshots/SpeedFlowchartDemo/" + platformIcons + "/3.jpeg" ] } Button { id: purchaseBt anchors.horizontalCenter: parent.horizontalCenter height: lockedLayout.height * 0.07 enabled: speedFlowChartProduct.status === Product.Registered text: speedFlowChartProduct.status === Product.Registered ? "\uf218 "+ qsTrId("#buyNowFor") + " " + speedFlowChartProduct.price : qsTrId("#itemIsUnavailable") font.family: fa5solid.name font.pixelSize: height * 0.4 font.capitalization: Font.MixedCase onClicked: speedFlowChartProduct.purchase() } RowLayout { id: bottomRow anchors.horizontalCenter: parent.horizontalCenter height: lockedLayout.height * 0.065 Button { id: restorePurchaseButton Layout.alignment: Layout.Center Layout.preferredHeight: bottomRow.height //visible: speedFlowChartProduct.status === Product.Registered flat: true font.pixelSize: height * 0.4 font.capitalization: Font.MixedCase //% "Restore purchase" text: qsTrId("#restorePurchase") onClicked: inAppProductStore.restorePurchases() } Button { id: contactSupportButton Layout.alignment: Layout.Center Layout.preferredHeight: bottomRow.height flat: true font.pixelSize: height * 0.4 font.capitalization: Font.MixedCase //% "contact support" text: qsTrId("#contact support") onClicked: Qt.openUrlExternally("mailto:contact@itsblue.de") } } } }