Inital commit of the Komplex Hub
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
add_subdirectory(Components)
|
||||
add_subdirectory(Extras)
|
||||
add_subdirectory(Layers)
|
||||
add_subdirectory(Profiling)
|
||||
@@ -0,0 +1,244 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2023 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Quick Ultralite compatibility.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 or (at your option) any later version
|
||||
** approved by the KDE Free Qt Foundation. The licenses are as published by
|
||||
** the Free Software Foundation and appearing in the file LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
import QtQuick 2.9
|
||||
import QtQuick.Shapes 1.12
|
||||
|
||||
//! [ArcItem compatibility]
|
||||
Shape {
|
||||
id: root
|
||||
|
||||
implicitWidth: 100
|
||||
implicitHeight: 100
|
||||
|
||||
// These properties are not supported in Qt Quick Ultralite:
|
||||
// strokeStyle, dashPattern, dashOffset
|
||||
|
||||
property alias gradient: path.fillGradient
|
||||
property alias strokeWidth: path.strokeWidth
|
||||
property alias strokeColor: path.strokeColor
|
||||
property alias joinStyle: path.joinStyle
|
||||
property alias fillColor: path.fillColor
|
||||
property alias capStyle: path.capStyle
|
||||
property real begin: 0
|
||||
property real end: 90
|
||||
property real arcWidth: 10
|
||||
property real alpha: root.clamp(root.sortedEnd() - root.sortedBegin(), 0, 359.9)
|
||||
|
||||
// antialiasing is enabled to have the same shape as Qt Quick Ultralite runtime
|
||||
antialiasing: true
|
||||
|
||||
layer.enabled: root.antialiasing
|
||||
layer.smooth: root.antialiasing
|
||||
layer.samples: root.antialiasing ? 4 : 0
|
||||
|
||||
property bool outlineArc: false
|
||||
property bool round: false
|
||||
property bool roundEnd: root.round
|
||||
property bool roundBegin: root.round
|
||||
|
||||
function clamp(num, min, max) {
|
||||
return Math.max(min, Math.min(num, max))
|
||||
}
|
||||
|
||||
function toRadians(degrees) {
|
||||
return degrees * (Math.PI / 180.0)
|
||||
}
|
||||
|
||||
function myCos(angleInDegrees) {
|
||||
return Math.cos(root.toRadians(angleInDegrees))
|
||||
}
|
||||
|
||||
function mySin(angleInDegrees) {
|
||||
return Math.sin(root.toRadians(angleInDegrees))
|
||||
}
|
||||
|
||||
function polarToCartesianX(centerX, centerY, radius, angleInDegrees) {
|
||||
return centerX + radius * Math.cos(root.toRadians(angleInDegrees))
|
||||
}
|
||||
|
||||
function polarToCartesianY(centerX, centerY, radius, angleInDegrees) {
|
||||
return centerY + radius * Math.sin(root.toRadians(angleInDegrees))
|
||||
}
|
||||
|
||||
function sortedBegin() {
|
||||
return Math.min(root.begin, root.end)
|
||||
}
|
||||
|
||||
function sortedEnd() {
|
||||
return Math.min(Math.max(root.begin, root.end), root.sortedBegin() + 359.9)
|
||||
}
|
||||
|
||||
function isArcFull() {
|
||||
return root.alpha > 359.5
|
||||
}
|
||||
|
||||
onAlphaChanged: {
|
||||
if (root.__wasFull !== root.isArcFull())
|
||||
root.constructArcItem()
|
||||
|
||||
root.__wasFull = root.isArcFull()
|
||||
}
|
||||
onOutlineArcChanged: root.constructArcItem()
|
||||
onRoundChanged: root.constructArcItem()
|
||||
onRoundBeginChanged: root.constructArcItem()
|
||||
onRoundEndChanged: root.constructArcItem()
|
||||
|
||||
property bool __wasFull: false
|
||||
|
||||
property real maxArcWidth: Math.min(path.__xRadius, path.__yRadius)
|
||||
|
||||
ShapePath {
|
||||
id: path
|
||||
|
||||
property real __xRadius: root.width / 2 - root.strokeWidth / 2
|
||||
property real __yRadius: root.height / 2 - root.strokeWidth / 2
|
||||
|
||||
property real __arcWidth: Math.min(Math.min(path.__xRadius, path.__yRadius), root.arcWidth)
|
||||
|
||||
property real __xCenter: root.width / 2
|
||||
property real __yCenter: root.height / 2
|
||||
|
||||
strokeColor: "red"
|
||||
strokeWidth: 4
|
||||
capStyle: ShapePath.FlatCap
|
||||
|
||||
startX: root.polarToCartesianX(path.__xCenter, path.__yCenter, path.__xRadius, root.sortedBegin() - 90)
|
||||
startY: root.polarToCartesianY(path.__xCenter, path.__yCenter, path.__yRadius, root.sortedBegin() - 90)
|
||||
}
|
||||
|
||||
function constructArcItem() {
|
||||
root.clearPathElements()
|
||||
|
||||
// Outer arc
|
||||
let outerArc = Qt.createQmlObject('import QtQuick 2.15; PathArc {}', path)
|
||||
outerArc.x = Qt.binding(function() {
|
||||
return root.polarToCartesianX(path.__xCenter, path.__yCenter, path.__xRadius, root.sortedEnd() - 90)
|
||||
})
|
||||
outerArc.y = Qt.binding(function() {
|
||||
return root.polarToCartesianY(path.__xCenter, path.__yCenter, path.__yRadius, root.sortedEnd() - 90)
|
||||
})
|
||||
outerArc.radiusX = Qt.binding(function() { return path.__xRadius })
|
||||
outerArc.radiusY = Qt.binding(function() { return path.__yRadius })
|
||||
outerArc.useLargeArc = Qt.binding(function() { return root.alpha > 180 })
|
||||
path.pathElements.push(outerArc)
|
||||
|
||||
// Straight end
|
||||
if (!root.roundEnd && root.outlineArc && !root.isArcFull()) {
|
||||
let pathLine = Qt.createQmlObject('import QtQuick 2.15; PathLine {}', path)
|
||||
pathLine.relativeX = Qt.binding(function() {
|
||||
return -path.__arcWidth * root.myCos(root.sortedEnd() - 90)
|
||||
})
|
||||
pathLine.relativeY = Qt.binding(function() {
|
||||
return -path.__arcWidth * root.mySin(root.sortedEnd() - 90)
|
||||
})
|
||||
path.pathElements.push(pathLine)
|
||||
}
|
||||
|
||||
// Round end
|
||||
if (root.roundEnd && root.outlineArc && !root.isArcFull()) {
|
||||
let pathArc = Qt.createQmlObject('import QtQuick 2.15; PathArc {}', path)
|
||||
pathArc.relativeX = Qt.binding(function() {
|
||||
return -path.__arcWidth * root.myCos(root.sortedEnd() - 90)
|
||||
})
|
||||
pathArc.relativeY = Qt.binding(function() {
|
||||
return -path.__arcWidth * root.mySin(root.sortedEnd() - 90)
|
||||
})
|
||||
pathArc.radiusX = Qt.binding(function() { return path.__arcWidth / 2 })
|
||||
pathArc.radiusY = Qt.binding(function() { return path.__arcWidth / 2 })
|
||||
path.pathElements.push(pathArc)
|
||||
}
|
||||
|
||||
// Open end
|
||||
if (root.outlineArc && root.isArcFull()) {
|
||||
let pathMove = Qt.createQmlObject('import QtQuick 2.15; PathMove {}', path)
|
||||
pathMove.relativeX = Qt.binding(function() {
|
||||
return -path.__arcWidth * root.myCos(root.sortedEnd() - 90)
|
||||
})
|
||||
pathMove.relativeY = Qt.binding(function() {
|
||||
return -path.__arcWidth * root.mySin(root.sortedEnd() - 90)
|
||||
})
|
||||
path.pathElements.push(pathMove)
|
||||
}
|
||||
|
||||
// Inner arc
|
||||
if (root.outlineArc) {
|
||||
let innerArc = Qt.createQmlObject('import QtQuick 2.15; PathArc {}', path)
|
||||
innerArc.x = Qt.binding(function() {
|
||||
return path.startX - path.__arcWidth * root.myCos(root.sortedBegin() - 90)
|
||||
})
|
||||
innerArc.y = Qt.binding(function() {
|
||||
return path.startY - path.__arcWidth * root.mySin(root.sortedBegin() - 90)
|
||||
})
|
||||
innerArc.radiusX = Qt.binding(function() { return path.__xRadius - path.__arcWidth })
|
||||
innerArc.radiusY = Qt.binding(function() { return path.__yRadius - path.__arcWidth })
|
||||
innerArc.useLargeArc = Qt.binding(function() { return root.alpha > 180 })
|
||||
innerArc.direction = PathArc.Counterclockwise
|
||||
path.pathElements.push(innerArc)
|
||||
}
|
||||
|
||||
// Straight begin
|
||||
if (!root.roundBegin && root.outlineArc && !root.isArcFull()) {
|
||||
let pathLine = Qt.createQmlObject('import QtQuick 2.15; PathLine {}', path)
|
||||
pathLine.x = Qt.binding(function() { return path.startX })
|
||||
pathLine.y = Qt.binding(function() { return path.startY })
|
||||
path.pathElements.push(pathLine)
|
||||
}
|
||||
|
||||
// Round begin
|
||||
if (root.roundBegin && root.outlineArc && !root.isArcFull()) {
|
||||
let pathArc = Qt.createQmlObject('import QtQuick 2.15; PathArc {}', path)
|
||||
pathArc.x = Qt.binding(function() { return path.startX })
|
||||
pathArc.y = Qt.binding(function() { return path.startY })
|
||||
pathArc.radiusX = Qt.binding(function() { return path.__arcWidth / 2 })
|
||||
pathArc.radiusY = Qt.binding(function() { return path.__arcWidth / 2 })
|
||||
path.pathElements.push(pathArc)
|
||||
}
|
||||
|
||||
// Open begin
|
||||
if (root.outlineArc && root.isArcFull()) {
|
||||
let pathMove = Qt.createQmlObject('import QtQuick 2.15; PathMove {}', path)
|
||||
pathMove.x = Qt.binding(function() { return path.startX })
|
||||
pathMove.y = Qt.binding(function() { return path.startY })
|
||||
path.pathElements.push(pathMove)
|
||||
}
|
||||
}
|
||||
|
||||
function clearPathElements() {
|
||||
for (var i = 0; i !== path.pathElements.length; ++i)
|
||||
path.pathElements[i].destroy()
|
||||
|
||||
path.pathElements = []
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
root.__wasFull = root.isArcFull()
|
||||
root.constructArcItem()
|
||||
}
|
||||
}
|
||||
//! [ArcItem compatibility]
|
||||
@@ -0,0 +1,14 @@
|
||||
qt_add_library(QuickUltraLiteStudioComponents STATIC)
|
||||
qt6_add_qml_module(QuickUltraLiteStudioComponents
|
||||
URI "QtQuickUltralite.Studio.Components"
|
||||
VERSION "${PROJECT_VERSION}"
|
||||
RESOURCE_PREFIX "/qt-project.org/imports"
|
||||
DESIGNER_SUPPORTED
|
||||
PAST_MAJOR_VERSIONS 1
|
||||
QML_FILES
|
||||
ArcItem.qml
|
||||
)
|
||||
|
||||
target_link_libraries(QuickUltraLiteStudioComponents PRIVATE Qt6::Gui)
|
||||
|
||||
register_plugin(QuickUltraLiteStudioComponents)
|
||||
@@ -0,0 +1,13 @@
|
||||
import QtQuick.tooling 1.2
|
||||
|
||||
// This file describes the plugin-supplied types contained in the library.
|
||||
// It is used for QML tooling purposes only.
|
||||
//
|
||||
// This file was auto-generated by:
|
||||
// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Controls 2.15'
|
||||
|
||||
Module {
|
||||
dependencies: [
|
||||
"QtQuick 2.12"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
module QtQuickUltralite.Studio.Components
|
||||
designersupported
|
||||
linktarget studioqtquickultralitecomponentsplugin
|
||||
optional plugin studioqtquickultralitecomponentsplugin
|
||||
classname QtQuickUltralite_Studio_ComponentsPlugin
|
||||
typeinfo studioqtquickultralitecomponents.qmltypes
|
||||
prefer :/QtQuickUltralite/Studio/Components/
|
||||
ArcItem 1.0 ArcItem.qml
|
||||
ArcItem 2.0 ArcItem.qml
|
||||
ArcItem 6.0 ArcItem.qml
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2023 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Quick Ultralite compatibility.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 or (at your option) any later version
|
||||
** approved by the KDE Free Qt Foundation. The licenses are as published by
|
||||
** the Free Software Foundation and appearing in the file LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QQmlEngine>
|
||||
#include <QQmlContext>
|
||||
#include <QtQml/qqmlextensionplugin.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
class StudioCompatibilityQULComponents: public QQmlExtensionPlugin
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
|
||||
|
||||
public:
|
||||
StudioCompatibilityQULComponents(QObject *parent = nullptr);
|
||||
void registerTypes(const char *uri) override;
|
||||
};
|
||||
|
||||
StudioCompatibilityQULComponents::StudioCompatibilityQULComponents(QObject *parent)
|
||||
: QQmlExtensionPlugin(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void StudioCompatibilityQULComponents::registerTypes(const char *)
|
||||
{
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#include "studiocompatibilityqulcomponents.moc"
|
||||
@@ -0,0 +1,50 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2023 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Quick Ultralite compatibility.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 or (at your option) any later version
|
||||
** approved by the KDE Free Qt Foundation. The licenses are as published by
|
||||
** the Free Software Foundation and appearing in the file LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
//! [AnimatedSpriteDirectory compatibility]
|
||||
// Draws a sprite animation stored in a directory.
|
||||
Item {
|
||||
property int currentFrame: 0
|
||||
property int frameDuration: 0
|
||||
property int loops: -1 //-1 = AnimatedSpriteDirectory.Infinite
|
||||
property bool running: true
|
||||
property bool paused: false
|
||||
property string sourcePath
|
||||
|
||||
signal finished
|
||||
|
||||
function advance() {}
|
||||
function pause() {}
|
||||
function restart() {}
|
||||
function resume() {}
|
||||
function start() {}
|
||||
function stop() {}
|
||||
}
|
||||
//! [AnimatedSpriteDirectory compatibility]
|
||||
@@ -0,0 +1,23 @@
|
||||
set_source_files_properties(QulPerf.qml
|
||||
PROPERTIES
|
||||
QT_QML_SINGLETON_TYPE true
|
||||
)
|
||||
|
||||
qt_add_library(QuickUltraLiteStudioExtras STATIC)
|
||||
qt6_add_qml_module(QuickUltraLiteStudioExtras
|
||||
URI "QtQuickUltralite.Extras"
|
||||
VERSION "${PROJECT_VERSION}"
|
||||
RESOURCE_PREFIX "/qt-project.org/imports"
|
||||
DESIGNER_SUPPORTED
|
||||
PAST_MAJOR_VERSIONS 1 2
|
||||
QML_FILES
|
||||
AnimatedSpriteDirectory.qml
|
||||
ColorizedImage.qml
|
||||
ItemBuffer.qml
|
||||
StaticText.qml
|
||||
QulPerf.qml
|
||||
)
|
||||
|
||||
target_link_libraries(QuickUltraLiteStudioExtras PRIVATE Qt6::Gui)
|
||||
|
||||
register_plugin(QuickUltraLiteStudioExtras)
|
||||
@@ -0,0 +1,58 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2023 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Quick Ultralite compatibility.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 or (at your option) any later version
|
||||
** approved by the KDE Free Qt Foundation. The licenses are as published by
|
||||
** the Free Software Foundation and appearing in the file LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.12
|
||||
import Qt5Compat.GraphicalEffects
|
||||
//! [ColorizedImage compatibility]
|
||||
// Displays a colorized image.
|
||||
Item {
|
||||
id: colorizedRoot
|
||||
implicitHeight: img.implicitHeight
|
||||
implicitWidth: img.implicitWidth
|
||||
|
||||
property alias color: colorize.color
|
||||
property alias source: img.source
|
||||
property alias fillMode: img.fillMode
|
||||
property alias horizontalAlignment: img.horizontalAlignment
|
||||
property alias verticalAlignment: img.verticalAlignment
|
||||
|
||||
Image {
|
||||
id: img
|
||||
anchors.fill: parent
|
||||
visible: false
|
||||
}
|
||||
|
||||
ColorOverlay {
|
||||
id: colorize
|
||||
anchors.fill: img
|
||||
color: "transparent"
|
||||
source: img
|
||||
}
|
||||
}
|
||||
//! [ColorizedImage compatibility]
|
||||
@@ -0,0 +1,37 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2023 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Quick Ultralite compatibility.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 or (at your option) any later version
|
||||
** approved by the KDE Free Qt Foundation. The licenses are as published by
|
||||
** the Free Software Foundation and appearing in the file LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.12
|
||||
//! [ItemBuffer compatibility]
|
||||
Item {
|
||||
enum ExtraFlag { RedrawItemBufferFlag = 1 }
|
||||
// property Transform transform; //in regular QML this property is already provided by QtQuick.Item
|
||||
property bool useAlphaChannel;
|
||||
}
|
||||
//! [ItemBuffer compatibility]
|
||||
@@ -0,0 +1,50 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2023 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Quick Ultralite compatibility.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 or (at your option) any later version
|
||||
** approved by the KDE Free Qt Foundation. The licenses are as published by
|
||||
** the Free Software Foundation and appearing in the file LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
pragma Singleton
|
||||
|
||||
import QtQuick 2.12
|
||||
//! [QulPerf compatibility]
|
||||
// Holds information about application performance.
|
||||
// This data is only available if Qt Quick Ultralite is compiled with QUL_ENABLE_PERFORMANCE_LOGGING.
|
||||
// Properties will be updated every two seconds.
|
||||
// All properties are read-only.
|
||||
QtObject {
|
||||
readonly property bool enabled: false
|
||||
readonly property real fps: 0
|
||||
readonly property real imageBlend: 0
|
||||
readonly property real imageTransform: 0
|
||||
readonly property int maxDirtyNodes: 0
|
||||
readonly property real rectBlend: 0
|
||||
readonly property real rectFill: 0
|
||||
readonly property real rectRounded: 0
|
||||
readonly property real repaint: 0
|
||||
readonly property real textBlend: 0
|
||||
readonly property real textLayout: 0
|
||||
}
|
||||
//! [QulPerf compatibility]
|
||||
@@ -0,0 +1,35 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2023 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Quick Ultralite compatibility.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 or (at your option) any later version
|
||||
** approved by the KDE Free Qt Foundation. The licenses are as published by
|
||||
** the Free Software Foundation and appearing in the file LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
//! [StaticText compatibility]
|
||||
// Enables optimized drawing of text.
|
||||
Text {
|
||||
}
|
||||
//! [StaticText compatibility]
|
||||
@@ -0,0 +1,13 @@
|
||||
import QtQuick.tooling 1.2
|
||||
|
||||
// This file describes the plugin-supplied types contained in the library.
|
||||
// It is used for QML tooling purposes only.
|
||||
//
|
||||
// This file was auto-generated by:
|
||||
// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Controls 2.15'
|
||||
|
||||
Module {
|
||||
dependencies: [
|
||||
"QtQuick 2.12"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
module QtQuickUltralite.Extras
|
||||
designersupported
|
||||
linktarget studioqtquickultraliteextrasplugin
|
||||
optional plugin studioqtquickultraliteextrasplugin
|
||||
classname QtQuickUltralite_ExtrasPlugin
|
||||
typeinfo studioqtquickultraliteextras.qmltypes
|
||||
prefer :/QtQuickUltralite/Extras/
|
||||
AnimatedSpriteDirectory 1.0 AnimatedSpriteDirectory.qml
|
||||
AnimatedSpriteDirectory 2.0 AnimatedSpriteDirectory.qml
|
||||
AnimatedSpriteDirectory 6.0 AnimatedSpriteDirectory.qml
|
||||
ColorizedImage 1.0 ColorizedImage.qml
|
||||
ColorizedImage 2.0 ColorizedImage.qml
|
||||
ColorizedImage 6.0 ColorizedImage.qml
|
||||
ItemBuffer 1.0 ItemBuffer.qml
|
||||
ItemBuffer 2.0 ItemBuffer.qml
|
||||
ItemBuffer 6.0 ItemBuffer.qml
|
||||
StaticText 1.0 StaticText.qml
|
||||
StaticText 2.0 StaticText.qml
|
||||
StaticText 6.0 StaticText.qml
|
||||
singleton QulPerf 1.0 QulPerf.qml
|
||||
singleton QulPerf 2.0 QulPerf.qml
|
||||
singleton QulPerf 6.0 QulPerf.qml
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Quick Ultralite compatibility.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 or (at your option) any later version
|
||||
** approved by the KDE Free Qt Foundation. The licenses are as published by
|
||||
** the Free Software Foundation and appearing in the file LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QQmlEngine>
|
||||
#include <QQmlContext>
|
||||
#include <QtQml/qqmlextensionplugin.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
class StudioCompatibilityQULExtras: public QQmlExtensionPlugin
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
|
||||
|
||||
public:
|
||||
StudioCompatibilityQULExtras(QObject *parent = nullptr);
|
||||
void registerTypes(const char *uri) override;
|
||||
};
|
||||
|
||||
StudioCompatibilityQULExtras::StudioCompatibilityQULExtras(QObject *parent)
|
||||
: QQmlExtensionPlugin(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void StudioCompatibilityQULExtras::registerTypes(const char *)
|
||||
{
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#include "studiocompatibilityqulextras.moc"
|
||||
@@ -0,0 +1,43 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Quick Ultralite compatibility.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 or (at your option) any later version
|
||||
** approved by the KDE Free Qt Foundation. The licenses are as published by
|
||||
** the Free Software Foundation and appearing in the file LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
|
||||
//! [Screen compatibility]
|
||||
Rectangle {
|
||||
id: wnd
|
||||
property string outputDevice: "device"
|
||||
property alias backgroundColor: wnd.color
|
||||
|
||||
property real defaultApplicationWidth: 0
|
||||
property real defaultApplicationHeight: 0
|
||||
|
||||
visible: true
|
||||
}
|
||||
//! [Screen compatibility]
|
||||
@@ -0,0 +1,35 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Quick Ultralite compatibility.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 or (at your option) any later version
|
||||
** approved by the KDE Free Qt Foundation. The licenses are as published by
|
||||
** the Free Software Foundation and appearing in the file LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
|
||||
//! [ApplicationScreens compatibility]
|
||||
Item {
|
||||
}
|
||||
//! [ApplicationScreens compatibility]
|
||||
@@ -0,0 +1,19 @@
|
||||
qt_add_library(QuickUltraLiteStudioLayers STATIC)
|
||||
qt6_add_qml_module(QuickUltraLiteStudioLayers
|
||||
URI "QtQuickUltralite.Layers"
|
||||
VERSION "${PROJECT_VERSION}"
|
||||
RESOURCE_PREFIX "/qt-project.org/imports"
|
||||
DESIGNER_SUPPORTED
|
||||
PAST_MAJOR_VERSIONS 1 2
|
||||
QML_FILES
|
||||
ApplicationScreens.qml
|
||||
ImageLayer.qml
|
||||
ItemLayer.qml
|
||||
Screen.qml
|
||||
SpriteLayer.qml
|
||||
+DesignMode/Screen.qml
|
||||
)
|
||||
|
||||
target_link_libraries(QuickUltraLiteStudioLayers PRIVATE Qt6::Gui)
|
||||
|
||||
register_plugin(QuickUltraLiteStudioLayers)
|
||||
@@ -0,0 +1,49 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Quick Ultralite compatibility.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 or (at your option) any later version
|
||||
** approved by the KDE Free Qt Foundation. The licenses are as published by
|
||||
** the Free Software Foundation and appearing in the file LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
|
||||
//! [ImageLayer compatibility]
|
||||
Item {
|
||||
enum RenderingHints {
|
||||
OptimizeForSpeed,
|
||||
OptimizeForSize,
|
||||
StaticContents
|
||||
}
|
||||
|
||||
property int platformId: 0
|
||||
property int renderingHints: ImageLayer.RenderingHints.OptimizeForSpeed
|
||||
property alias source: internalImage.source
|
||||
|
||||
Image {
|
||||
id: internalImage
|
||||
anchors.fill: parent
|
||||
}
|
||||
}
|
||||
//! [ImageLayer compatibility]
|
||||
@@ -0,0 +1,49 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Quick Ultralite compatibility.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 or (at your option) any later version
|
||||
** approved by the KDE Free Qt Foundation. The licenses are as published by
|
||||
** the Free Software Foundation and appearing in the file LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
|
||||
//! [ItemLayer compatibility]
|
||||
Item {
|
||||
enum ColorDepth {
|
||||
Bpp16, Bpp16Alpha, Bpp24, Bpp32, Bpp32Alpha
|
||||
}
|
||||
|
||||
enum RenderingHints {
|
||||
OptimizeForSpeed,
|
||||
OptimizeForSize,
|
||||
StaticContents
|
||||
}
|
||||
|
||||
property int depth: ColorDepth.Bpp32
|
||||
property int refreshInterval: 1
|
||||
property int platformId: 0
|
||||
property int renderingHints: RenderingHints.OptimizeForSpeed
|
||||
}
|
||||
//! [ItemLayer compatibility]
|
||||
@@ -0,0 +1,82 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Quick Ultralite compatibility.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 or (at your option) any later version
|
||||
** approved by the KDE Free Qt Foundation. The licenses are as published by
|
||||
** the Free Software Foundation and appearing in the file LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Window 2.2
|
||||
|
||||
//! [Screen compatibility]
|
||||
Item {
|
||||
id: root
|
||||
|
||||
property string outputDevice: "device"
|
||||
property alias backgroundColor: wnd.color
|
||||
|
||||
property real defaultApplicationWidth: 0
|
||||
property real defaultApplicationHeight: 0
|
||||
|
||||
onChildrenChanged: {
|
||||
if (wnd.isAvailable)
|
||||
wnd.reparenting()
|
||||
}
|
||||
|
||||
Window {
|
||||
id: wnd
|
||||
visible: true
|
||||
|
||||
width: root.width
|
||||
height: root.height
|
||||
|
||||
property bool reparentingBlock: false
|
||||
property bool isAvailable: false
|
||||
|
||||
Component.onCompleted: {
|
||||
reparenting()
|
||||
isAvailable = true
|
||||
}
|
||||
|
||||
function reparenting() {
|
||||
if (reparentingBlock)
|
||||
return;
|
||||
|
||||
reparentingBlock = true;
|
||||
|
||||
var result = [];
|
||||
var rootChildren = root.children;
|
||||
for (var i = 0; i < rootChildren.length; i++) {
|
||||
if (rootChildren[i] !== wnd) {
|
||||
result.push(rootChildren[i]);
|
||||
}
|
||||
}
|
||||
wnd.data = result;
|
||||
|
||||
reparentingBlock = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
//! [Screen compatibility]
|
||||
@@ -0,0 +1,41 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Quick Ultralite compatibility.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 or (at your option) any later version
|
||||
** approved by the KDE Free Qt Foundation. The licenses are as published by
|
||||
** the Free Software Foundation and appearing in the file LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
|
||||
//! [SpriteLayer compatibility]
|
||||
Item {
|
||||
enum ColorDepth {
|
||||
Bpp8, Bpp16, Bpp16Alpha, Bpp24, Bpp32, Bpp32Alpha
|
||||
}
|
||||
|
||||
property int depth: ColorDepth.Bpp32
|
||||
property int platformId: 0
|
||||
}
|
||||
//! [SpriteLayer compatibility]
|
||||
@@ -0,0 +1,10 @@
|
||||
import QtQuick.tooling 1.2
|
||||
|
||||
// This file describes the plugin-supplied types contained in the library.
|
||||
// It is used for QML tooling purposes only.
|
||||
|
||||
Module {
|
||||
dependencies: [
|
||||
"QtQuick 2.15"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
module QtQuickUltralite.Layers
|
||||
designersupported
|
||||
linktarget studioqtquickultralitelayersplugin
|
||||
optional plugin studioqtquickultralitelayersplugin
|
||||
classname QtQuickUltralite_LayersPlugin
|
||||
typeinfo studioqtquickultralitelayers.qmltypes
|
||||
prefer :/QtQuickUltralite/Layers/
|
||||
ApplicationScreens 1.0 ApplicationScreens.qml
|
||||
ApplicationScreens 2.0 ApplicationScreens.qml
|
||||
ApplicationScreens 6.0 ApplicationScreens.qml
|
||||
ImageLayer 1.0 ImageLayer.qml
|
||||
ImageLayer 2.0 ImageLayer.qml
|
||||
ImageLayer 6.0 ImageLayer.qml
|
||||
ItemLayer 1.0 ItemLayer.qml
|
||||
ItemLayer 2.0 ItemLayer.qml
|
||||
ItemLayer 6.0 ItemLayer.qml
|
||||
Screen 1.0 Screen.qml
|
||||
Screen 2.0 Screen.qml
|
||||
Screen 6.0 Screen.qml
|
||||
SpriteLayer 1.0 SpriteLayer.qml
|
||||
SpriteLayer 2.0 SpriteLayer.qml
|
||||
SpriteLayer 6.0 SpriteLayer.qml
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2021 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Quick Ultralite compatibility.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 or (at your option) any later version
|
||||
** approved by the KDE Free Qt Foundation. The licenses are as published by
|
||||
** the Free Software Foundation and appearing in the file LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QtQml/qqmlextensionplugin.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
class StudioCompatibilityQULLayers: public QQmlExtensionPlugin
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
|
||||
|
||||
public:
|
||||
StudioCompatibilityQULLayers(QObject *parent = nullptr);
|
||||
void registerTypes(const char *uri) override;
|
||||
};
|
||||
|
||||
StudioCompatibilityQULLayers::StudioCompatibilityQULLayers(QObject *parent)
|
||||
: QQmlExtensionPlugin(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void StudioCompatibilityQULLayers::registerTypes(const char *)
|
||||
{
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#include "studiocompatibilityqullayers.moc"
|
||||
@@ -0,0 +1,14 @@
|
||||
qt_add_library(QuickUltraLiteStudioProfiling STATIC)
|
||||
qt6_add_qml_module(QuickUltraLiteStudioProfiling
|
||||
URI "QtQuickUltralite.Profiling"
|
||||
VERSION "${PROJECT_VERSION}"
|
||||
RESOURCE_PREFIX "/qt-project.org/imports"
|
||||
DESIGNER_SUPPORTED
|
||||
PAST_MAJOR_VERSIONS 1 2
|
||||
QML_FILES
|
||||
QulPerfOverlay.qml
|
||||
)
|
||||
|
||||
target_link_libraries(QuickUltraLiteStudioProfiling PRIVATE Qt6::Gui)
|
||||
|
||||
register_plugin(QuickUltraLiteStudioProfiling)
|
||||
@@ -0,0 +1,69 @@
|
||||
/******************************************************************************
|
||||
**
|
||||
** Copyright (C) 2023 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Quick Ultralite module.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:COMM$
|
||||
**
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
******************************************************************************/
|
||||
|
||||
import QtQuick 2.15
|
||||
import QtQuickUltralite.Extras
|
||||
|
||||
Column {
|
||||
id: root
|
||||
|
||||
onVisibleChanged: {
|
||||
if (root.visible) {
|
||||
console.log("Benchmark Results:");
|
||||
console.log("Total frames: ", QulPerf.totalFrames);
|
||||
console.log("Average fps: ", QulPerf.averageFps.toFixed(2));
|
||||
console.log("Minimum fps: ", QulPerf.minimumFps.toFixed(1));
|
||||
console.log("Max heap usage: ", QulPerf.maxHeapUsage, "Bytes");
|
||||
console.log("Max stack usage: ", QulPerf.maxStackUsage, "Bytes");
|
||||
console.log("Average CPU load:", QulPerf.averageCpuLoad.toFixed(1), "%");
|
||||
}
|
||||
}
|
||||
|
||||
Text {
|
||||
color: "#ffb6c1"
|
||||
text: "Total frames: " + QulPerf.totalFrames
|
||||
}
|
||||
|
||||
Text {
|
||||
color: "#ffb6c1"
|
||||
text: "Average fps: " + QulPerf.averageFps.toFixed(2)
|
||||
}
|
||||
|
||||
Text {
|
||||
color: "#ffb6c1"
|
||||
text: "Minimum fps: " + QulPerf.minimumFps.toFixed(1)
|
||||
}
|
||||
|
||||
Text {
|
||||
color: "#ffb6c1"
|
||||
text: "Max heap usage: " + QulPerf.maxHeapUsage + " Bytes"
|
||||
}
|
||||
|
||||
Text {
|
||||
color: "#ffb6c1"
|
||||
text: "Max stack usage: " + QulPerf.maxStackUsage + " Bytes"
|
||||
}
|
||||
|
||||
Text {
|
||||
color: "#ffb6c1"
|
||||
text: "Average CPU load: " + QulPerf.averageCpuLoad.toFixed(1) + "%"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
import QtQuick.tooling 1.2
|
||||
|
||||
// This file describes the plugin-supplied types contained in the library.
|
||||
// It is used for QML tooling purposes only.
|
||||
//
|
||||
// This file was auto-generated by:
|
||||
// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Controls 2.15'
|
||||
|
||||
Module {
|
||||
dependencies: [
|
||||
"QtQuick 2.15"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
module QtQuickUltralite.Profiling
|
||||
designersupported
|
||||
linktarget studioqtquickultraliteprofilingplugin
|
||||
optional plugin studioqtquickultraliteprofilingplugin
|
||||
classname QtQuickUltralite_ProfilingPlugin
|
||||
typeinfo studioqtquickultraliteprofiling.qmltypes
|
||||
prefer :/QtQuickUltralite/Profiling/
|
||||
QulPerfOverlay 1.0 QulPerfOverlay.qml
|
||||
QulPerfOverlay 2.0 QulPerfOverlay.qml
|
||||
QulPerfOverlay 6.0 QulPerfOverlay.qml
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2023 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Quick Ultralite compatibility.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 or (at your option) any later version
|
||||
** approved by the KDE Free Qt Foundation. The licenses are as published by
|
||||
** the Free Software Foundation and appearing in the file LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QQmlEngine>
|
||||
#include <QQmlContext>
|
||||
#include <QtQml/qqmlextensionplugin.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
class StudioCompatibilityQULProfiling: public QQmlExtensionPlugin
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
|
||||
|
||||
public:
|
||||
StudioCompatibilityQULProfiling(QObject *parent = nullptr);
|
||||
void registerTypes(const char *uri) override;
|
||||
};
|
||||
|
||||
StudioCompatibilityQULProfiling::StudioCompatibilityQULProfiling(QObject *parent)
|
||||
: QQmlExtensionPlugin(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void StudioCompatibilityQULProfiling::registerTypes(const char *)
|
||||
{
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#include "studiocompatibilityqulprofiling.moc"
|
||||
+212
@@ -0,0 +1,212 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2022 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Android Automotive compatibility.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 or (at your option) any later version
|
||||
** approved by the KDE Free Qt Foundation. The licenses are as published by
|
||||
** the Free Software Foundation and appearing in the file LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
|
||||
Item {
|
||||
id: root
|
||||
|
||||
width: 480
|
||||
height: 640
|
||||
|
||||
property alias radius: rect.radius
|
||||
property string packageName: "some.package.name"
|
||||
property string className
|
||||
readonly property alias status: internal.status
|
||||
property alias placeholder: placeholderItem.children
|
||||
property bool usePlaceholder: false
|
||||
|
||||
onUsePlaceholderChanged: {
|
||||
if (placeholder) {
|
||||
placeholder.visible = usePlaceholder
|
||||
avMock.visible = !usePlaceholder
|
||||
} else {
|
||||
avMock.visible = true
|
||||
}
|
||||
}
|
||||
|
||||
onPlaceholderChanged: {
|
||||
if (!placeholder)
|
||||
avMock.visible = true
|
||||
}
|
||||
|
||||
enum Status {
|
||||
NotInitialized,
|
||||
Ready,
|
||||
Starting,
|
||||
Started
|
||||
}
|
||||
|
||||
QtObject {
|
||||
id: internal
|
||||
|
||||
property var status: ActivityView.NotInitialized
|
||||
property real fontPointSize: 20
|
||||
|
||||
function enumToString(val) {
|
||||
switch (val) {
|
||||
case ActivityView.NotInitialized: return "NotInitialized"
|
||||
case ActivityView.Ready: return "Ready"
|
||||
case ActivityView.Starting: return "Starting"
|
||||
case ActivityView.Started: return "Started"
|
||||
}
|
||||
return "Unknown"
|
||||
}
|
||||
}
|
||||
|
||||
component StatusButton: Rectangle {
|
||||
id: button
|
||||
|
||||
color: highlighted ? "lightGray" : "gray"
|
||||
radius: 5
|
||||
clip: true
|
||||
width: btnText.width
|
||||
height: btnText.height
|
||||
|
||||
property int statusId: 0
|
||||
property bool highlighted: false
|
||||
signal clicked(int value)
|
||||
|
||||
Label {
|
||||
id: btnText
|
||||
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
font.pointSize: internal.fontPointSize
|
||||
|
||||
text: " " + internal.enumToString(statusId) + " "
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: button.clicked(statusId)
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
id: placeholderItem
|
||||
anchors.fill: parent
|
||||
}
|
||||
|
||||
Item {
|
||||
id: avMock
|
||||
|
||||
anchors.fill: parent
|
||||
|
||||
Rectangle {
|
||||
id: rect
|
||||
|
||||
anchors.fill: parent
|
||||
color: "#AAAAAA"
|
||||
radius: 0
|
||||
border.color: "#888888"
|
||||
border.width: 2
|
||||
clip: true
|
||||
|
||||
Image {
|
||||
id: icon
|
||||
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: - statusArea.height / 2
|
||||
|
||||
source: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAQMAAAD58POIAAAABlBMV
|
||||
EUAAAA+Pj4LNneDAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAASNJREFUSMft1
|
||||
TFuwzAMBVApAqIlgNZu6hF6A/UovYm99VjV1mu46AUyelDNilJgftkx0gbtZg4C/BCFNETRSnE88
|
||||
3JQEi+8HAEel/DEywngYV624DTv24KjMrHmvsRBEfUIxhGdI4B+I/rqESgHgmHALZbhDOAZRoDAM
|
||||
AF0DARQniGNrhDbrERDmxXBpZwmBSnEj7mQ0Y9LSFLXBkipXf3TaVE51E5b0Lev8hOI7cveBcP9s
|
||||
Aw4U1c2JNkSYjkDO0PHv3b0OkPpAC/wcYF3gXQNgsDnDjv8AdxuuqZP07VOdtDrZdrZCZqfr5BOA
|
||||
j7ikJIr9i9w+2avJsxqBq3nWKjPE871wTZzfYffQ2zBUTTNx3MFlnrdjGiTz6j5AOvcsF09yG/q3
|
||||
/z/4fD/YgAAAABJRU5ErkJggg=="
|
||||
}
|
||||
|
||||
Label {
|
||||
id: packageLabel
|
||||
|
||||
anchors.top: icon.bottom
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.margins: 5
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
font.pointSize: internal.fontPointSize
|
||||
text: root.packageName
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: statusArea
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.top: statusFlow.top
|
||||
anchors.bottom: statusFlow.bottom
|
||||
anchors.topMargin: -5
|
||||
anchors.bottomMargin: -5
|
||||
color: "black"
|
||||
opacity: 0.5
|
||||
radius: rect.radius
|
||||
}
|
||||
|
||||
Label {
|
||||
id: statusLabel
|
||||
|
||||
anchors.top: statusFlow.top
|
||||
anchors.left: parent.left
|
||||
|
||||
text: " " + "status:" + " "
|
||||
color: "lightGray"
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
font.pointSize: internal.fontPointSize
|
||||
}
|
||||
|
||||
Flow {
|
||||
id: statusFlow
|
||||
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.margins: 5
|
||||
anchors.leftMargin: statusLabel.width
|
||||
spacing: 5
|
||||
|
||||
Repeater {
|
||||
model: [ActivityView.NotInitialized, ActivityView.Ready, ActivityView.Starting,
|
||||
ActivityView.Started]
|
||||
|
||||
delegate: StatusButton {
|
||||
statusId: modelData
|
||||
onClicked: (value) => internal.status = value
|
||||
highlighted: modelData === internal.status
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
qt_add_library(AndroidAutomotiveActivityView STATIC)
|
||||
qt6_add_qml_module(AndroidAutomotiveActivityView
|
||||
URI "QtAndroidAutomotive.ActivityView"
|
||||
VERSION "${PROJECT_VERSION}"
|
||||
RESOURCE_PREFIX "/qt-project.org/imports"
|
||||
DESIGNER_SUPPORTED
|
||||
PAST_MAJOR_VERSIONS 1
|
||||
QML_FILES
|
||||
ActivityView.qml
|
||||
)
|
||||
|
||||
target_link_libraries(AndroidAutomotiveActivityView PRIVATE Qt6::Gui)
|
||||
|
||||
register_plugin(AndroidAutomotiveActivityView)
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
import QtQuick.tooling 1.2
|
||||
|
||||
// This file describes the plugin-supplied types contained in the library.
|
||||
// It is used for QML tooling purposes only.
|
||||
//
|
||||
// This file was auto-generated by:
|
||||
// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Controls 2.15'
|
||||
|
||||
Module {
|
||||
dependencies: [
|
||||
"QtQuick 2.12"
|
||||
]
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
module QtAndroidAutomotive.ActivityView
|
||||
linktarget Qt6::AndroidAutomotiveActivityViewplugin
|
||||
optional plugin androidautomotiveactivityviewplugin
|
||||
classname QtAndroidAutomotive_ActivityViewPlugin
|
||||
designersupported
|
||||
typeinfo AndroidAutomotiveActivityView.qmltypes
|
||||
prefer :/qt-project.org/imports/QtAndroidAutomotive/ActivityView/
|
||||
ActivityView 6.0 ActivityView.qml
|
||||
ActivityView 1.0 ActivityView.qml
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2022 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of Qt Android Automotive compatibility.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL$
|
||||
** Commercial License Usage
|
||||
** Licensees holding valid commercial Qt licenses may use this file in
|
||||
** accordance with the commercial license agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and The Qt Company. For licensing terms
|
||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 or (at your option) any later version
|
||||
** approved by the KDE Free Qt Foundation. The licenses are as published by
|
||||
** the Free Software Foundation and appearing in the file LICENSE.GPL3
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QtQml/qqmlextensionplugin.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
class StudioCompatibilityQtAaActivityView: public QQmlExtensionPlugin
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
|
||||
|
||||
public:
|
||||
StudioCompatibilityQtAaActivityView(QObject *parent = nullptr);
|
||||
void registerTypes(const char *uri) override;
|
||||
};
|
||||
|
||||
StudioCompatibilityQtAaActivityView::StudioCompatibilityQtAaActivityView(QObject *parent)
|
||||
: QQmlExtensionPlugin(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void StudioCompatibilityQtAaActivityView::registerTypes(const char *)
|
||||
{
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
#include "studiocompatibilityqaaactivityview.moc"
|
||||
@@ -0,0 +1 @@
|
||||
add_subdirectory(ActivityView)
|
||||
Reference in New Issue
Block a user