Inital commit of the Komplex Hub

This commit is contained in:
Digital Artifex
2026-06-02 15:11:36 -04:00
commit 15a625008e
2911 changed files with 655555 additions and 0 deletions
@@ -0,0 +1,61 @@
/****************************************************************************
**
** Copyright (C) 2023 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL3$
** 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 http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 3 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 3 requirements
** will be met: https://www.gnu.org/licenses/lgpl.html.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 2.0 or later as published by the Free
** Software Foundation and appearing in the file LICENSE.GPL included in
** the packaging of this file. Please review the following information to
** ensure the GNU General Public License version 2.0 requirements will be
** met: http://www.gnu.org/licenses/gpl-2.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
import QtQml.Models as M
import QtQuick.Studio.Utils
M.ListModel {
id: listModel
property string modelName
property var jsonObject: null
dynamicRoles: true
// qmllint disable compiler
onJsonObjectChanged: {
listModel.clear()
var objectArray = listModel.jsonObject
if (modelName.modelName !== "")
objectArray = objectArray[listModel.modelName]
for (var key in objectArray) {
var jo = objectArray[key]
listModel.append(jo)
}
}
// qmllint enable compiler
}
@@ -0,0 +1,75 @@
/****************************************************************************
**
** Copyright (C) 2023 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL3$
** 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 http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 3 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 3 requirements
** will be met: https://www.gnu.org/licenses/lgpl.html.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 2.0 or later as published by the Free
** Software Foundation and appearing in the file LICENSE.GPL included in
** the packaging of this file. Please review the following information to
** ensure the GNU General Public License version 2.0 requirements will be
** met: http://www.gnu.org/licenses/gpl-2.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
import QtQuick
import QtQuick.Studio.Utils
QtObject {
id: server
property url source
property FileReader fileReader: FileReader {
id: fileReader
filePath: server.source
onContentChanged: server.updateJSON()
}
// qmllint disable compiler
function updateJSON() {
if (fileReader.content === "")
return
var objectArray = parseJSONString(fileReader.content)
for (var key in objectArray) {
var jo = objectArray[key]
if (server[key] !== undefined)
server[key] = jo
else
console.warn(key, "undefined")
}
}
function parseJSONString(jsonString) {
var objectArray = JSON.parse(jsonString)
if (!objectArray)
console.error("JSON parsing failed")
return objectArray
}
// qmllint enable compiler
}
@@ -0,0 +1,130 @@
/****************************************************************************
**
** Copyright (C) 2023 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL3$
** 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 http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 3 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 3 requirements
** will be met: https://www.gnu.org/licenses/lgpl.html.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 2.0 or later as published by the Free
** Software Foundation and appearing in the file LICENSE.GPL included in
** the packaging of this file. Please review the following information to
** ensure the GNU General Public License version 2.0 requirements will be
** met: http://www.gnu.org/licenses/gpl-2.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
import QtQml
import QtQml.Models as M
import QtQuick.Studio.Utils as U
M.ListModel {
id: listModel
property url source
property var jsonObject
dynamicRoles: true
property U.FileReader fileReader: U.FileReader {
id: fileReader
filePath: listModel.source
onContentChanged: listModel.updateJSON()
}
// qmllint disable compiler
onJsonObjectChanged: {
listModel.clear()
var objectArray = listModel.jsonObject
for (var key in objectArray) {
var jo = objectArray[key]
listModel.append(jo)
}
}
function updateJSON() {
var objectArray = JSON.parse(fileReader.content)
listModel.jsonObject = fromLocalJson(objectArray)
invalidateChildModels()
}
function isObject(obj) {
return obj && obj.constructor === Object
}
function fromLocalJson(localJson) {
if (!isObject(localJson))
return {}
var parsedModel = {}
for (let collectionName in localJson) {
let collection = localJson[collectionName]
if (isObject(collection)) {
if (Array.isArray(collection.columns) && Array.isArray(collection.data)) {
let propertyNames = []
let extractedCollection = []
for (let columnId in collection.columns) {
let column = collection.columns[columnId]
propertyNames.push(isObject(column) ? column.name : null)
}
for (let rowId in collection.data) {
let extractedElement = {}
let row = collection.data[rowId]
if (Array.isArray(row)) {
let maxIdx = Math.min(row.length, propertyNames.length)
for (let idx = 0; idx < maxIdx; ++idx) {
let propertyName = propertyNames[idx]
if (propertyName !== "") {
let value = row[idx]
if (value !== undefined && value !== null)
extractedElement[propertyName] = value
}
}
}
extractedCollection.push(extractedElement)
}
parsedModel[collectionName] = extractedCollection
}
}
}
return parsedModel
}
function invalidateChildModels() {
for (let property in listModel) {
let propertyValue = listModel[property]
let propertyValueIsObject = propertyValue && typeof(propertyValue) === "object"
if (propertyValueIsObject && propertyValue.jsonObject !== undefined)
propertyValue.jsonObject = listModel.jsonObject
}
}
Component.onCompleted: {
updateJSON()
}
// qmllint enable compiler
}
@@ -0,0 +1,633 @@
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 qmltyperegistrar.
Module {
Component {
file: "qabstractitemmodel.h"
lineNumber: 259
name: "QAbstractItemModel"
accessSemantics: "reference"
prototype: "QObject"
Enum {
name: "LayoutChangeHint"
lineNumber: 335
values: [
"NoLayoutChangeHint",
"VerticalSortHint",
"HorizontalSortHint"
]
}
Enum {
name: "CheckIndexOption"
isScoped: true
lineNumber: 343
values: [
"NoOption",
"IndexIsValid",
"DoNotUseParent",
"ParentIsInvalid"
]
}
Signal {
name: "dataChanged"
lineNumber: 357
Parameter { name: "topLeft"; type: "QModelIndex" }
Parameter { name: "bottomRight"; type: "QModelIndex" }
Parameter { name: "roles"; type: "int"; isList: true }
}
Signal {
name: "dataChanged"
isCloned: true
lineNumber: 357
Parameter { name: "topLeft"; type: "QModelIndex" }
Parameter { name: "bottomRight"; type: "QModelIndex" }
}
Signal {
name: "headerDataChanged"
lineNumber: 359
Parameter { name: "orientation"; type: "Qt::Orientation" }
Parameter { name: "first"; type: "int" }
Parameter { name: "last"; type: "int" }
}
Signal {
name: "layoutChanged"
lineNumber: 360
Parameter { name: "parents"; type: "QPersistentModelIndex"; isList: true }
Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
}
Signal {
name: "layoutChanged"
isCloned: true
lineNumber: 360
Parameter { name: "parents"; type: "QPersistentModelIndex"; isList: true }
}
Signal { name: "layoutChanged"; isCloned: true; lineNumber: 360 }
Signal {
name: "layoutAboutToBeChanged"
lineNumber: 361
Parameter { name: "parents"; type: "QPersistentModelIndex"; isList: true }
Parameter { name: "hint"; type: "QAbstractItemModel::LayoutChangeHint" }
}
Signal {
name: "layoutAboutToBeChanged"
isCloned: true
lineNumber: 361
Parameter { name: "parents"; type: "QPersistentModelIndex"; isList: true }
}
Signal { name: "layoutAboutToBeChanged"; isCloned: true; lineNumber: 361 }
Signal {
name: "rowsAboutToBeInserted"
lineNumber: 363
Parameter { name: "parent"; type: "QModelIndex" }
Parameter { name: "first"; type: "int" }
Parameter { name: "last"; type: "int" }
}
Signal {
name: "rowsInserted"
lineNumber: 364
Parameter { name: "parent"; type: "QModelIndex" }
Parameter { name: "first"; type: "int" }
Parameter { name: "last"; type: "int" }
}
Signal {
name: "rowsAboutToBeRemoved"
lineNumber: 366
Parameter { name: "parent"; type: "QModelIndex" }
Parameter { name: "first"; type: "int" }
Parameter { name: "last"; type: "int" }
}
Signal {
name: "rowsRemoved"
lineNumber: 367
Parameter { name: "parent"; type: "QModelIndex" }
Parameter { name: "first"; type: "int" }
Parameter { name: "last"; type: "int" }
}
Signal {
name: "columnsAboutToBeInserted"
lineNumber: 369
Parameter { name: "parent"; type: "QModelIndex" }
Parameter { name: "first"; type: "int" }
Parameter { name: "last"; type: "int" }
}
Signal {
name: "columnsInserted"
lineNumber: 370
Parameter { name: "parent"; type: "QModelIndex" }
Parameter { name: "first"; type: "int" }
Parameter { name: "last"; type: "int" }
}
Signal {
name: "columnsAboutToBeRemoved"
lineNumber: 372
Parameter { name: "parent"; type: "QModelIndex" }
Parameter { name: "first"; type: "int" }
Parameter { name: "last"; type: "int" }
}
Signal {
name: "columnsRemoved"
lineNumber: 373
Parameter { name: "parent"; type: "QModelIndex" }
Parameter { name: "first"; type: "int" }
Parameter { name: "last"; type: "int" }
}
Signal { name: "modelAboutToBeReset"; lineNumber: 375 }
Signal { name: "modelReset"; lineNumber: 376 }
Signal {
name: "rowsAboutToBeMoved"
lineNumber: 378
Parameter { name: "sourceParent"; type: "QModelIndex" }
Parameter { name: "sourceStart"; type: "int" }
Parameter { name: "sourceEnd"; type: "int" }
Parameter { name: "destinationParent"; type: "QModelIndex" }
Parameter { name: "destinationRow"; type: "int" }
}
Signal {
name: "rowsMoved"
lineNumber: 379
Parameter { name: "sourceParent"; type: "QModelIndex" }
Parameter { name: "sourceStart"; type: "int" }
Parameter { name: "sourceEnd"; type: "int" }
Parameter { name: "destinationParent"; type: "QModelIndex" }
Parameter { name: "destinationRow"; type: "int" }
}
Signal {
name: "columnsAboutToBeMoved"
lineNumber: 381
Parameter { name: "sourceParent"; type: "QModelIndex" }
Parameter { name: "sourceStart"; type: "int" }
Parameter { name: "sourceEnd"; type: "int" }
Parameter { name: "destinationParent"; type: "QModelIndex" }
Parameter { name: "destinationColumn"; type: "int" }
}
Signal {
name: "columnsMoved"
lineNumber: 382
Parameter { name: "sourceParent"; type: "QModelIndex" }
Parameter { name: "sourceStart"; type: "int" }
Parameter { name: "sourceEnd"; type: "int" }
Parameter { name: "destinationParent"; type: "QModelIndex" }
Parameter { name: "destinationColumn"; type: "int" }
}
Method { name: "submit"; type: "bool"; lineNumber: 385 }
Method { name: "revert"; lineNumber: 386 }
Method { name: "resetInternalData"; lineNumber: 389 }
Method {
name: "hasIndex"
type: "bool"
isMethodConstant: true
lineNumber: 271
Parameter { name: "row"; type: "int" }
Parameter { name: "column"; type: "int" }
Parameter { name: "parent"; type: "QModelIndex" }
}
Method {
name: "hasIndex"
type: "bool"
isCloned: true
isMethodConstant: true
lineNumber: 271
Parameter { name: "row"; type: "int" }
Parameter { name: "column"; type: "int" }
}
Method {
name: "index"
type: "QModelIndex"
isMethodConstant: true
lineNumber: 272
Parameter { name: "row"; type: "int" }
Parameter { name: "column"; type: "int" }
Parameter { name: "parent"; type: "QModelIndex" }
}
Method {
name: "index"
type: "QModelIndex"
isCloned: true
isMethodConstant: true
lineNumber: 272
Parameter { name: "row"; type: "int" }
Parameter { name: "column"; type: "int" }
}
Method {
name: "parent"
type: "QModelIndex"
isMethodConstant: true
lineNumber: 274
Parameter { name: "child"; type: "QModelIndex" }
}
Method {
name: "sibling"
type: "QModelIndex"
isMethodConstant: true
lineNumber: 276
Parameter { name: "row"; type: "int" }
Parameter { name: "column"; type: "int" }
Parameter { name: "idx"; type: "QModelIndex" }
}
Method {
name: "rowCount"
type: "int"
isMethodConstant: true
lineNumber: 277
Parameter { name: "parent"; type: "QModelIndex" }
}
Method { name: "rowCount"; type: "int"; isCloned: true; isMethodConstant: true; lineNumber: 277 }
Method {
name: "columnCount"
type: "int"
isMethodConstant: true
lineNumber: 278
Parameter { name: "parent"; type: "QModelIndex" }
}
Method {
name: "columnCount"
type: "int"
isCloned: true
isMethodConstant: true
lineNumber: 278
}
Method {
name: "hasChildren"
type: "bool"
isMethodConstant: true
lineNumber: 279
Parameter { name: "parent"; type: "QModelIndex" }
}
Method {
name: "hasChildren"
type: "bool"
isCloned: true
isMethodConstant: true
lineNumber: 279
}
Method {
name: "data"
type: "QVariant"
isMethodConstant: true
lineNumber: 281
Parameter { name: "index"; type: "QModelIndex" }
Parameter { name: "role"; type: "int" }
}
Method {
name: "data"
type: "QVariant"
isCloned: true
isMethodConstant: true
lineNumber: 281
Parameter { name: "index"; type: "QModelIndex" }
}
Method {
name: "setData"
type: "bool"
lineNumber: 282
Parameter { name: "index"; type: "QModelIndex" }
Parameter { name: "value"; type: "QVariant" }
Parameter { name: "role"; type: "int" }
}
Method {
name: "setData"
type: "bool"
isCloned: true
lineNumber: 282
Parameter { name: "index"; type: "QModelIndex" }
Parameter { name: "value"; type: "QVariant" }
}
Method {
name: "headerData"
type: "QVariant"
isMethodConstant: true
lineNumber: 284
Parameter { name: "section"; type: "int" }
Parameter { name: "orientation"; type: "Qt::Orientation" }
Parameter { name: "role"; type: "int" }
}
Method {
name: "headerData"
type: "QVariant"
isCloned: true
isMethodConstant: true
lineNumber: 284
Parameter { name: "section"; type: "int" }
Parameter { name: "orientation"; type: "Qt::Orientation" }
}
Method {
name: "insertRows"
revision: 1540
type: "bool"
lineNumber: 302
Parameter { name: "row"; type: "int" }
Parameter { name: "count"; type: "int" }
Parameter { name: "parent"; type: "QModelIndex" }
}
Method {
name: "insertRows"
revision: 1540
type: "bool"
isCloned: true
lineNumber: 302
Parameter { name: "row"; type: "int" }
Parameter { name: "count"; type: "int" }
}
Method {
name: "insertColumns"
revision: 1540
type: "bool"
lineNumber: 303
Parameter { name: "column"; type: "int" }
Parameter { name: "count"; type: "int" }
Parameter { name: "parent"; type: "QModelIndex" }
}
Method {
name: "insertColumns"
revision: 1540
type: "bool"
isCloned: true
lineNumber: 303
Parameter { name: "column"; type: "int" }
Parameter { name: "count"; type: "int" }
}
Method {
name: "removeRows"
revision: 1540
type: "bool"
lineNumber: 304
Parameter { name: "row"; type: "int" }
Parameter { name: "count"; type: "int" }
Parameter { name: "parent"; type: "QModelIndex" }
}
Method {
name: "removeRows"
revision: 1540
type: "bool"
isCloned: true
lineNumber: 304
Parameter { name: "row"; type: "int" }
Parameter { name: "count"; type: "int" }
}
Method {
name: "removeColumns"
revision: 1540
type: "bool"
lineNumber: 305
Parameter { name: "column"; type: "int" }
Parameter { name: "count"; type: "int" }
Parameter { name: "parent"; type: "QModelIndex" }
}
Method {
name: "removeColumns"
revision: 1540
type: "bool"
isCloned: true
lineNumber: 305
Parameter { name: "column"; type: "int" }
Parameter { name: "count"; type: "int" }
}
Method {
name: "moveRows"
revision: 1540
type: "bool"
lineNumber: 306
Parameter { name: "sourceParent"; type: "QModelIndex" }
Parameter { name: "sourceRow"; type: "int" }
Parameter { name: "count"; type: "int" }
Parameter { name: "destinationParent"; type: "QModelIndex" }
Parameter { name: "destinationChild"; type: "int" }
}
Method {
name: "moveColumns"
revision: 1540
type: "bool"
lineNumber: 308
Parameter { name: "sourceParent"; type: "QModelIndex" }
Parameter { name: "sourceColumn"; type: "int" }
Parameter { name: "count"; type: "int" }
Parameter { name: "destinationParent"; type: "QModelIndex" }
Parameter { name: "destinationChild"; type: "int" }
}
Method {
name: "insertRow"
revision: 1540
type: "bool"
lineNumber: 311
Parameter { name: "row"; type: "int" }
Parameter { name: "parent"; type: "QModelIndex" }
}
Method {
name: "insertRow"
revision: 1540
type: "bool"
isCloned: true
lineNumber: 311
Parameter { name: "row"; type: "int" }
}
Method {
name: "insertColumn"
revision: 1540
type: "bool"
lineNumber: 312
Parameter { name: "column"; type: "int" }
Parameter { name: "parent"; type: "QModelIndex" }
}
Method {
name: "insertColumn"
revision: 1540
type: "bool"
isCloned: true
lineNumber: 312
Parameter { name: "column"; type: "int" }
}
Method {
name: "removeRow"
revision: 1540
type: "bool"
lineNumber: 313
Parameter { name: "row"; type: "int" }
Parameter { name: "parent"; type: "QModelIndex" }
}
Method {
name: "removeRow"
revision: 1540
type: "bool"
isCloned: true
lineNumber: 313
Parameter { name: "row"; type: "int" }
}
Method {
name: "removeColumn"
revision: 1540
type: "bool"
lineNumber: 314
Parameter { name: "column"; type: "int" }
Parameter { name: "parent"; type: "QModelIndex" }
}
Method {
name: "removeColumn"
revision: 1540
type: "bool"
isCloned: true
lineNumber: 314
Parameter { name: "column"; type: "int" }
}
Method {
name: "moveRow"
revision: 1540
type: "bool"
lineNumber: 315
Parameter { name: "sourceParent"; type: "QModelIndex" }
Parameter { name: "sourceRow"; type: "int" }
Parameter { name: "destinationParent"; type: "QModelIndex" }
Parameter { name: "destinationChild"; type: "int" }
}
Method {
name: "moveColumn"
revision: 1540
type: "bool"
lineNumber: 317
Parameter { name: "sourceParent"; type: "QModelIndex" }
Parameter { name: "sourceColumn"; type: "int" }
Parameter { name: "destinationParent"; type: "QModelIndex" }
Parameter { name: "destinationChild"; type: "int" }
}
Method {
name: "fetchMore"
lineNumber: 320
Parameter { name: "parent"; type: "QModelIndex" }
}
Method {
name: "canFetchMore"
type: "bool"
isMethodConstant: true
lineNumber: 321
Parameter { name: "parent"; type: "QModelIndex" }
}
Method {
name: "flags"
type: "Qt::ItemFlags"
isMethodConstant: true
lineNumber: 322
Parameter { name: "index"; type: "QModelIndex" }
}
Method {
name: "sort"
revision: 1540
lineNumber: 323
Parameter { name: "column"; type: "int" }
Parameter { name: "order"; type: "Qt::SortOrder" }
}
Method {
name: "sort"
revision: 1540
isCloned: true
lineNumber: 323
Parameter { name: "column"; type: "int" }
}
Method {
name: "match"
type: "QModelIndexList"
isMethodConstant: true
lineNumber: 325
Parameter { name: "start"; type: "QModelIndex" }
Parameter { name: "role"; type: "int" }
Parameter { name: "value"; type: "QVariant" }
Parameter { name: "hits"; type: "int" }
Parameter { name: "flags"; type: "Qt::MatchFlags" }
}
Method {
name: "match"
type: "QModelIndexList"
isCloned: true
isMethodConstant: true
lineNumber: 325
Parameter { name: "start"; type: "QModelIndex" }
Parameter { name: "role"; type: "int" }
Parameter { name: "value"; type: "QVariant" }
Parameter { name: "hits"; type: "int" }
}
Method {
name: "match"
type: "QModelIndexList"
isCloned: true
isMethodConstant: true
lineNumber: 325
Parameter { name: "start"; type: "QModelIndex" }
Parameter { name: "role"; type: "int" }
Parameter { name: "value"; type: "QVariant" }
}
}
Component {
file: "qabstractitemmodel.h"
lineNumber: 451
name: "QAbstractTableModel"
accessSemantics: "reference"
prototype: "QAbstractItemModel"
}
Component {
file: "quickstudiocsvtablemodel.h"
lineNumber: 58
name: "QuickStudioCsvTableModel"
accessSemantics: "reference"
prototype: "QAbstractTableModel"
exports: [
"QtQuick.Studio.Utils/CsvTableModel 6.2",
"QtQuick.Studio.Utils/CsvTableModel 6.4",
"QtQuick.Studio.Utils/CsvTableModel 254.0"
]
exportMetaObjectRevisions: [1538, 1540, 65024]
Property {
name: "source"
type: "QUrl"
read: "source"
write: "setSource"
notify: "sourceChanged"
index: 0
lineNumber: 65
}
Signal {
name: "sourceChanged"
lineNumber: 81
Parameter { name: "url"; type: "QUrl" }
}
Method { name: "reloadModel"; lineNumber: 84 }
Method {
name: "checkPathAndReload"
lineNumber: 85
Parameter { name: "path"; type: "QString" }
}
}
Component {
file: "quickstudiofilereader.h"
lineNumber: 58
name: "QuickStudioFileReader"
accessSemantics: "reference"
prototype: "QObject"
exports: [
"QtQuick.Studio.Utils/FileReader 6.2",
"QtQuick.Studio.Utils/FileReader 254.0"
]
exportMetaObjectRevisions: [1538, 65024]
Property {
name: "filePath"
type: "QUrl"
read: "filePath"
write: "setFilePath"
notify: "filePathChanged"
index: 0
lineNumber: 65
}
Property {
name: "content"
type: "QString"
read: "content"
notify: "contentChanged"
index: 1
lineNumber: 66
isReadonly: true
}
Signal { name: "filePathChanged"; lineNumber: 77 }
Signal { name: "contentChanged"; lineNumber: 78 }
}
}
@@ -0,0 +1,6 @@
<RCC>
<qresource prefix="/">
<file alias="/qt-project.org/imports/QtQuick/Studio/Utils">/home/parametheus/Projects/QtDesigner/KomplexHub/build/qml/QtQuick/Studio/Utils</file>
</qresource>
</RCC>
+14
View File
@@ -0,0 +1,14 @@
module QtQuick.Studio.Utils
linktarget QuickStudioUtilsplugin
optional plugin QuickStudioUtilsplugin
classname QtQuick_Studio_UtilsPlugin
designersupported
typeinfo QuickStudioUtils.qmltypes
prefer :/qt-project.org/imports/QtQuick/Studio/Utils/
JsonListModel 254.0 JsonListModel.qml
JsonListModel 1.0 JsonListModel.qml
JsonBackend 254.0 JsonBackend.qml
JsonBackend 1.0 JsonBackend.qml
ChildListModel 254.0 ChildListModel.qml
ChildListModel 1.0 ChildListModel.qml