aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorAli Kianian <ali.kianian@qt.io>2023-12-28 11:51:20 +0200
committerAli Kianian <ali.kianian@qt.io>2024-01-12 14:51:07 +0000
commit194a34a8f13e0930735005ca6c82c1e7cfe3cc9d (patch)
tree2bb3282bff5eff033b3226e51e4352a68d3f2ca8 /src/plugins
parent191db5c9ae20a897bb40bcf9034e1dcf7750219c (diff)
QmlDesigner: Move CollectionEditor functions to utils
- Collection editor functions are moved to CollectionEditorUtils namespace - Collection import tools functions are also moved to CollectionEditorUtils. Also, the former files of import tools are deleted since their functions are moved. Task-number: QDS-11391 Change-Id: I1ec1b2b7568658c1637a4c267989425189f07039 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/qmldesigner/CMakeLists.txt1
-rw-r--r--src/plugins/qmldesigner/components/collectioneditor/collectiondetails.cpp6
-rw-r--r--src/plugins/qmldesigner/components/collectioneditor/collectiondetails.h4
-rw-r--r--src/plugins/qmldesigner/components/collectioneditor/collectiondetailsmodel.cpp14
-rw-r--r--src/plugins/qmldesigner/components/collectioneditor/collectiondetailssortfiltermodel.cpp4
-rw-r--r--src/plugins/qmldesigner/components/collectioneditor/collectioneditorconstants.h4
-rw-r--r--src/plugins/qmldesigner/components/collectioneditor/collectioneditorutils.cpp120
-rw-r--r--src/plugins/qmldesigner/components/collectioneditor/collectioneditorutils.h10
-rw-r--r--src/plugins/qmldesigner/components/collectioneditor/collectionimporttools.cpp113
-rw-r--r--src/plugins/qmldesigner/components/collectioneditor/collectionimporttools.h18
-rw-r--r--src/plugins/qmldesigner/components/collectioneditor/collectionlistmodel.cpp4
-rw-r--r--src/plugins/qmldesigner/components/collectioneditor/collectionsourcemodel.cpp26
-rw-r--r--src/plugins/qmldesigner/components/collectioneditor/collectionview.cpp15
-rw-r--r--src/plugins/qmldesigner/components/collectioneditor/collectionwidget.cpp21
-rw-r--r--src/plugins/qmldesigner/components/collectioneditor/datastoremodelnode.cpp45
15 files changed, 192 insertions, 213 deletions
diff --git a/src/plugins/qmldesigner/CMakeLists.txt b/src/plugins/qmldesigner/CMakeLists.txt
index e167a83db3..b13841019c 100644
--- a/src/plugins/qmldesigner/CMakeLists.txt
+++ b/src/plugins/qmldesigner/CMakeLists.txt
@@ -839,7 +839,6 @@ extend_qtc_plugin(QmlDesigner
collectiondetailssortfiltermodel.cpp collectiondetailssortfiltermodel.h
collectioneditorconstants.h
collectioneditorutils.cpp collectioneditorutils.h
- collectionimporttools.cpp collectionimporttools.h
collectionlistmodel.cpp collectionlistmodel.h
collectionsourcemodel.cpp collectionsourcemodel.h
collectionview.cpp collectionview.h
diff --git a/src/plugins/qmldesigner/components/collectioneditor/collectiondetails.cpp b/src/plugins/qmldesigner/components/collectioneditor/collectiondetails.cpp
index 0e6cb344e2..7245f70ae8 100644
--- a/src/plugins/qmldesigner/components/collectioneditor/collectiondetails.cpp
+++ b/src/plugins/qmldesigner/components/collectioneditor/collectiondetails.cpp
@@ -28,7 +28,7 @@ const QMap<DataTypeWarning::Warning, QString> DataTypeWarning::dataTypeWarnings
class CollectionDetails::Private
{
- using SourceFormat = CollectionEditor::SourceFormat;
+ using SourceFormat = CollectionEditorConstants::SourceFormat;
public:
QList<CollectionProperty> properties;
@@ -101,7 +101,7 @@ CollectionDetails::~CollectionDetails() = default;
void CollectionDetails::resetDetails(const QStringList &propertyNames,
const QList<QJsonObject> &elements,
- CollectionEditor::SourceFormat format)
+ CollectionEditorConstants::SourceFormat format)
{
if (!isValid())
return;
@@ -295,7 +295,7 @@ CollectionReference CollectionDetails::reference() const
return d->reference;
}
-CollectionEditor::SourceFormat CollectionDetails::sourceFormat() const
+CollectionEditorConstants::SourceFormat CollectionDetails::sourceFormat() const
{
return d->sourceFormat;
}
diff --git a/src/plugins/qmldesigner/components/collectioneditor/collectiondetails.h b/src/plugins/qmldesigner/components/collectioneditor/collectiondetails.h
index 202ba9bb00..9d8eb7eca0 100644
--- a/src/plugins/qmldesigner/components/collectioneditor/collectiondetails.h
+++ b/src/plugins/qmldesigner/components/collectioneditor/collectiondetails.h
@@ -70,7 +70,7 @@ public:
void resetDetails(const QStringList &propertyNames,
const QList<QJsonObject> &elements,
- CollectionEditor::SourceFormat format);
+ CollectionEditorConstants::SourceFormat format);
void insertColumn(const QString &propertyName,
int colIdx = -1,
const QVariant &defaultValue = {},
@@ -86,7 +86,7 @@ public:
bool setPropertyType(int column, DataType type);
CollectionReference reference() const;
- CollectionEditor::SourceFormat sourceFormat() const;
+ CollectionEditorConstants::SourceFormat sourceFormat() const;
QVariant data(int row, int column) const;
QString propertyAt(int column) const;
DataType typeAt(int column) const;
diff --git a/src/plugins/qmldesigner/components/collectioneditor/collectiondetailsmodel.cpp b/src/plugins/qmldesigner/components/collectioneditor/collectiondetailsmodel.cpp
index 048d5eac4e..559a556d6e 100644
--- a/src/plugins/qmldesigner/components/collectioneditor/collectiondetailsmodel.cpp
+++ b/src/plugins/qmldesigner/components/collectioneditor/collectiondetailsmodel.cpp
@@ -390,7 +390,7 @@ QStringList CollectionDetailsModel::typesList()
void CollectionDetailsModel::loadCollection(const ModelNode &sourceNode, const QString &collection)
{
- QString fileName = CollectionEditor::getSourceCollectionPath(sourceNode);
+ QString fileName = CollectionEditorUtils::getSourceCollectionPath(sourceNode);
CollectionReference newReference{sourceNode, collection};
bool alreadyOpen = m_openedCollections.contains(newReference);
@@ -405,9 +405,9 @@ void CollectionDetailsModel::loadCollection(const ModelNode &sourceNode, const Q
} else {
deselectAll();
switchToCollection(newReference);
- if (sourceNode.type() == CollectionEditor::JSONCOLLECTIONMODEL_TYPENAME)
+ if (sourceNode.type() == CollectionEditorConstants::JSONCOLLECTIONMODEL_TYPENAME)
loadJsonCollection(fileName, collection);
- else if (sourceNode.type() == CollectionEditor::CSVCOLLECTIONMODEL_TYPENAME)
+ else if (sourceNode.type() == CollectionEditorConstants::CSVCOLLECTIONMODEL_TYPENAME)
loadCsvCollection(fileName, collection);
}
}
@@ -467,7 +467,7 @@ void CollectionDetailsModel::closeCurrentCollectionIfSaved()
void CollectionDetailsModel::loadJsonCollection(const QString &source, const QString &collection)
{
- using CollectionEditor::SourceFormat;
+ using CollectionEditorConstants::SourceFormat;
QFile sourceFile(source);
QJsonArray collectionNodes;
@@ -512,7 +512,7 @@ void CollectionDetailsModel::loadJsonCollection(const QString &source, const QSt
void CollectionDetailsModel::loadCsvCollection(const QString &source,
[[maybe_unused]] const QString &collectionName)
{
- using CollectionEditor::SourceFormat;
+ using CollectionEditorConstants::SourceFormat;
QFile sourceFile(source);
QStringList headers;
@@ -601,8 +601,8 @@ bool CollectionDetailsModel::saveCollection(const QString &filePath, CollectionD
bool saved = false;
const ModelNode node = m_currentCollection.reference().node;
- QString path = CollectionEditor::getSourceCollectionPath(node);
- QString saveFormat = CollectionEditor::getSourceCollectionType(node);
+ QString path = CollectionEditorUtils::getSourceCollectionPath(node);
+ QString saveFormat = CollectionEditorUtils::getSourceCollectionType(node);
QFile sourceFile(path);
diff --git a/src/plugins/qmldesigner/components/collectioneditor/collectiondetailssortfiltermodel.cpp b/src/plugins/qmldesigner/components/collectioneditor/collectiondetailssortfiltermodel.cpp
index 50fcadd494..f56bb36e88 100644
--- a/src/plugins/qmldesigner/components/collectioneditor/collectiondetailssortfiltermodel.cpp
+++ b/src/plugins/qmldesigner/components/collectioneditor/collectiondetailssortfiltermodel.cpp
@@ -80,7 +80,9 @@ bool CollectionDetailsSortFilterModel::lessThan(const QModelIndex &sourceleft,
if (sourceleft.column() == sourceRight.column()) {
int column = sourceleft.column();
CollectionDetails::DataType columnType = m_source->propertyDataType(column);
- return CollectionEditor::variantIslessThan(sourceleft.data(), sourceRight.data(), columnType);
+ return CollectionEditorUtils::variantIslessThan(sourceleft.data(),
+ sourceRight.data(),
+ columnType);
}
return false;
diff --git a/src/plugins/qmldesigner/components/collectioneditor/collectioneditorconstants.h b/src/plugins/qmldesigner/components/collectioneditor/collectioneditorconstants.h
index e914891de3..a591719d87 100644
--- a/src/plugins/qmldesigner/components/collectioneditor/collectioneditorconstants.h
+++ b/src/plugins/qmldesigner/components/collectioneditor/collectioneditorconstants.h
@@ -3,7 +3,7 @@
#pragma once
-namespace QmlDesigner::CollectionEditor {
+namespace QmlDesigner::CollectionEditorConstants {
enum class SourceFormat { Unknown, Json, Csv };
@@ -17,4 +17,4 @@ inline constexpr char CSVCOLLECTIONMODEL_TYPENAME[] = "QtQuick.Studio.Ut
inline constexpr char JSONCOLLECTIONCHILDMODEL_TYPENAME[] = "QtQuick.Studio.Utils.ChildListModel";
inline constexpr char JSONBACKEND_TYPENAME[] = "JsonData";
-} // namespace QmlDesigner::CollectionEditor
+} // namespace QmlDesigner::CollectionEditorConstants
diff --git a/src/plugins/qmldesigner/components/collectioneditor/collectioneditorutils.cpp b/src/plugins/qmldesigner/components/collectioneditor/collectioneditorutils.cpp
index f48b6547ae..2f9ec4d47c 100644
--- a/src/plugins/qmldesigner/components/collectioneditor/collectioneditorutils.cpp
+++ b/src/plugins/qmldesigner/components/collectioneditor/collectioneditorutils.cpp
@@ -18,7 +18,10 @@
#include <QColor>
#include <QJsonArray>
+#include <QJsonDocument>
#include <QJsonObject>
+#include <QJsonParseError>
+#include <QJsonValue>
#include <QUrl>
namespace {
@@ -104,32 +107,32 @@ inline Utils::FilePath qmlDirFilePath()
} // namespace
-namespace QmlDesigner::CollectionEditor {
+namespace QmlDesigner::CollectionEditorUtils {
bool variantIslessThan(const QVariant &a, const QVariant &b, CollectionDetails::DataType type)
{
return std::visit(LessThanVisitor{}, valueToVariant(a, type), valueToVariant(b, type));
}
-SourceFormat getSourceCollectionFormat(const ModelNode &node)
+CollectionEditorConstants::SourceFormat getSourceCollectionFormat(const ModelNode &node)
{
using namespace QmlDesigner;
- if (node.type() == CollectionEditor::JSONCOLLECTIONMODEL_TYPENAME)
- return CollectionEditor::SourceFormat::Json;
+ if (node.type() == CollectionEditorConstants::JSONCOLLECTIONMODEL_TYPENAME)
+ return CollectionEditorConstants::SourceFormat::Json;
- if (node.type() == CollectionEditor::CSVCOLLECTIONMODEL_TYPENAME)
- return CollectionEditor::SourceFormat::Csv;
+ if (node.type() == CollectionEditorConstants::CSVCOLLECTIONMODEL_TYPENAME)
+ return CollectionEditorConstants::SourceFormat::Csv;
- return CollectionEditor::SourceFormat::Unknown;
+ return CollectionEditorConstants::SourceFormat::Unknown;
}
QString getSourceCollectionType(const ModelNode &node)
{
using namespace QmlDesigner;
- if (node.type() == CollectionEditor::JSONCOLLECTIONMODEL_TYPENAME)
+ if (node.type() == CollectionEditorConstants::JSONCOLLECTIONMODEL_TYPENAME)
return "json";
- if (node.type() == CollectionEditor::CSVCOLLECTIONMODEL_TYPENAME)
+ if (node.type() == CollectionEditorConstants::CSVCOLLECTIONMODEL_TYPENAME)
return "csv";
return {};
@@ -280,4 +283,101 @@ bool ensureDataStoreExists(bool &justCreated)
return false;
}
-} // namespace QmlDesigner::CollectionEditor
+QJsonArray loadAsSingleJsonCollection(const QUrl &url)
+{
+ QFile file(url.isLocalFile() ? url.toLocalFile() : url.toString());
+ QJsonArray collection;
+ QByteArray jsonData;
+ if (file.open(QFile::ReadOnly))
+ jsonData = file.readAll();
+
+ file.close();
+ if (jsonData.isEmpty())
+ return {};
+
+ QJsonParseError parseError;
+ QJsonDocument document = QJsonDocument::fromJson(jsonData, &parseError);
+ if (parseError.error != QJsonParseError::NoError)
+ return {};
+
+ auto refineJsonArray = [](const QJsonArray &array) -> QJsonArray {
+ QJsonArray resultArray;
+ for (const QJsonValue &collectionData : array) {
+ if (collectionData.isObject()) {
+ QJsonObject rowObject = collectionData.toObject();
+ const QStringList rowKeys = rowObject.keys();
+ for (const QString &key : rowKeys) {
+ QJsonValue cellValue = rowObject.value(key);
+ if (cellValue.isArray())
+ rowObject.remove(key);
+ }
+ resultArray.push_back(rowObject);
+ }
+ }
+ return resultArray;
+ };
+
+ if (document.isArray()) {
+ collection = refineJsonArray(document.array());
+ } else if (document.isObject()) {
+ QJsonObject documentObject = document.object();
+ const QStringList mainKeys = documentObject.keys();
+
+ bool arrayFound = false;
+ for (const QString &key : mainKeys) {
+ const QJsonValue &value = documentObject.value(key);
+ if (value.isArray()) {
+ arrayFound = true;
+ collection = refineJsonArray(value.toArray());
+ break;
+ }
+ }
+
+ if (!arrayFound) {
+ QJsonObject singleObject;
+ for (const QString &key : mainKeys) {
+ const QJsonValue value = documentObject.value(key);
+
+ if (!value.isObject())
+ singleObject.insert(key, value);
+ }
+ collection.push_back(singleObject);
+ }
+ }
+ return collection;
+}
+
+QJsonArray loadAsCsvCollection(const QUrl &url)
+{
+ QFile sourceFile(url.isLocalFile() ? url.toLocalFile() : url.toString());
+ QStringList headers;
+ QJsonArray elements;
+
+ if (sourceFile.open(QFile::ReadOnly)) {
+ QTextStream stream(&sourceFile);
+
+ if (!stream.atEnd())
+ headers = stream.readLine().split(',');
+
+ for (QString &header : headers)
+ header = header.trimmed();
+
+ if (!headers.isEmpty()) {
+ while (!stream.atEnd()) {
+ const QStringList recordDataList = stream.readLine().split(',');
+ int column = -1;
+ QJsonObject recordData;
+ for (const QString &cellData : recordDataList) {
+ if (++column == headers.size())
+ break;
+ recordData.insert(headers.at(column), cellData);
+ }
+ elements.append(recordData);
+ }
+ }
+ }
+
+ return elements;
+}
+
+} // namespace QmlDesigner::CollectionEditorUtils
diff --git a/src/plugins/qmldesigner/components/collectioneditor/collectioneditorutils.h b/src/plugins/qmldesigner/components/collectioneditor/collectioneditorutils.h
index 036304a381..5bb93aed1c 100644
--- a/src/plugins/qmldesigner/components/collectioneditor/collectioneditorutils.h
+++ b/src/plugins/qmldesigner/components/collectioneditor/collectioneditorutils.h
@@ -14,11 +14,11 @@ namespace Utils {
class FilePath;
}
-namespace QmlDesigner::CollectionEditor {
+namespace QmlDesigner::CollectionEditorUtils {
bool variantIslessThan(const QVariant &a, const QVariant &b, CollectionDetails::DataType type);
-SourceFormat getSourceCollectionFormat(const QmlDesigner::ModelNode &node);
+CollectionEditorConstants::SourceFormat getSourceCollectionFormat(const QmlDesigner::ModelNode &node);
QString getSourceCollectionType(const QmlDesigner::ModelNode &node);
@@ -36,4 +36,8 @@ bool canAcceptCollectionAsModel(const ModelNode &node);
QJsonArray defaultCollectionArray();
-} // namespace QmlDesigner::CollectionEditor
+QJsonArray loadAsSingleJsonCollection(const QUrl &url);
+
+QJsonArray loadAsCsvCollection(const QUrl &url);
+
+} // namespace QmlDesigner::CollectionEditorUtils
diff --git a/src/plugins/qmldesigner/components/collectioneditor/collectionimporttools.cpp b/src/plugins/qmldesigner/components/collectioneditor/collectionimporttools.cpp
deleted file mode 100644
index 183730873d..0000000000
--- a/src/plugins/qmldesigner/components/collectioneditor/collectionimporttools.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-// Copyright (C) 2023 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-
-#include "collectionimporttools.h"
-
-#include <QFile>
-#include <QJsonArray>
-#include <QJsonDocument>
-#include <QJsonObject>
-#include <QJsonParseError>
-#include <QJsonValue>
-#include <QUrl>
-
-namespace QmlDesigner::CollectionEditor::ImportTools {
-
-QJsonArray loadAsSingleJsonCollection(const QUrl &url)
-{
- QFile file(url.isLocalFile() ? url.toLocalFile() : url.toString());
- QJsonArray collection;
- QByteArray jsonData;
- if (file.open(QFile::ReadOnly))
- jsonData = file.readAll();
-
- file.close();
- if (jsonData.isEmpty())
- return {};
-
- QJsonParseError parseError;
- QJsonDocument document = QJsonDocument::fromJson(jsonData, &parseError);
- if (parseError.error != QJsonParseError::NoError)
- return {};
-
- auto refineJsonArray = [](const QJsonArray &array) -> QJsonArray {
- QJsonArray resultArray;
- for (const QJsonValue &collectionData : array) {
- if (collectionData.isObject()) {
- QJsonObject rowObject = collectionData.toObject();
- const QStringList rowKeys = rowObject.keys();
- for (const QString &key : rowKeys) {
- QJsonValue cellValue = rowObject.value(key);
- if (cellValue.isArray())
- rowObject.remove(key);
- }
- resultArray.push_back(rowObject);
- }
- }
- return resultArray;
- };
-
- if (document.isArray()) {
- collection = refineJsonArray(document.array());
- } else if (document.isObject()) {
- QJsonObject documentObject = document.object();
- const QStringList mainKeys = documentObject.keys();
-
- bool arrayFound = false;
- for (const QString &key : mainKeys) {
- const QJsonValue &value = documentObject.value(key);
- if (value.isArray()) {
- arrayFound = true;
- collection = refineJsonArray(value.toArray());
- break;
- }
- }
-
- if (!arrayFound) {
- QJsonObject singleObject;
- for (const QString &key : mainKeys) {
- const QJsonValue value = documentObject.value(key);
-
- if (!value.isObject())
- singleObject.insert(key, value);
- }
- collection.push_back(singleObject);
- }
- }
- return collection;
-}
-
-QJsonArray loadAsCsvCollection(const QUrl &url)
-{
- QFile sourceFile(url.isLocalFile() ? url.toLocalFile() : url.toString());
- QStringList headers;
- QJsonArray elements;
-
- if (sourceFile.open(QFile::ReadOnly)) {
- QTextStream stream(&sourceFile);
-
- if (!stream.atEnd())
- headers = stream.readLine().split(',');
-
- for (QString &header : headers)
- header = header.trimmed();
-
- if (!headers.isEmpty()) {
- while (!stream.atEnd()) {
- const QStringList recordDataList = stream.readLine().split(',');
- int column = -1;
- QJsonObject recordData;
- for (const QString &cellData : recordDataList) {
- if (++column == headers.size())
- break;
- recordData.insert(headers.at(column), cellData);
- }
- elements.append(recordData);
- }
- }
- }
-
- return elements;
-}
-
-} // namespace QmlDesigner::CollectionEditor::ImportTools
diff --git a/src/plugins/qmldesigner/components/collectioneditor/collectionimporttools.h b/src/plugins/qmldesigner/components/collectioneditor/collectionimporttools.h
deleted file mode 100644
index 6ee4f590f7..0000000000
--- a/src/plugins/qmldesigner/components/collectioneditor/collectionimporttools.h
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2023 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-
-#pragma once
-
-#include <QtCore/qtconfigmacros.h>
-
-QT_BEGIN_NAMESPACE
-class QJsonArray;
-class QUrl;
-QT_END_NAMESPACE
-
-namespace QmlDesigner::CollectionEditor::ImportTools {
-
-QJsonArray loadAsSingleJsonCollection(const QUrl &url);
-QJsonArray loadAsCsvCollection(const QUrl &url);
-
-} // namespace QmlDesigner::CollectionEditor::ImportTools
diff --git a/src/plugins/qmldesigner/components/collectioneditor/collectionlistmodel.cpp b/src/plugins/qmldesigner/components/collectioneditor/collectionlistmodel.cpp
index d910569f0d..3efb79e748 100644
--- a/src/plugins/qmldesigner/components/collectioneditor/collectionlistmodel.cpp
+++ b/src/plugins/qmldesigner/components/collectioneditor/collectionlistmodel.cpp
@@ -29,7 +29,7 @@ namespace QmlDesigner {
CollectionListModel::CollectionListModel(const ModelNode &sourceModel)
: QStringListModel()
, m_sourceNode(sourceModel)
- , m_sourceType(CollectionEditor::getSourceCollectionType(sourceModel))
+ , m_sourceType(CollectionEditorUtils::getSourceCollectionType(sourceModel))
{
connect(this, &CollectionListModel::modelReset, this, &CollectionListModel::updateEmpty);
connect(this, &CollectionListModel::rowsRemoved, this, &CollectionListModel::updateEmpty);
@@ -121,7 +121,7 @@ ModelNode CollectionListModel::sourceNode() const
QString CollectionListModel::sourceAddress() const
{
- return CollectionEditor::getSourceCollectionPath(m_sourceNode);
+ return CollectionEditorUtils::getSourceCollectionPath(m_sourceNode);
}
bool CollectionListModel::contains(const QString &collectionName) const
diff --git a/src/plugins/qmldesigner/components/collectioneditor/collectionsourcemodel.cpp b/src/plugins/qmldesigner/components/collectioneditor/collectionsourcemodel.cpp
index 0c57f18778..6740766c29 100644
--- a/src/plugins/qmldesigner/components/collectioneditor/collectionsourcemodel.cpp
+++ b/src/plugins/qmldesigner/components/collectioneditor/collectionsourcemodel.cpp
@@ -25,7 +25,8 @@ QSharedPointer<QmlDesigner::CollectionListModel> loadCollection(
const QmlDesigner::ModelNode &sourceNode,
QSharedPointer<QmlDesigner::CollectionListModel> initialCollection = {})
{
- using namespace QmlDesigner::CollectionEditor;
+ using namespace QmlDesigner::CollectionEditorConstants;
+ using namespace QmlDesigner::CollectionEditorUtils;
QString sourceFileAddress = getSourceCollectionPath(sourceNode);
QSharedPointer<QmlDesigner::CollectionListModel> collectionsList;
@@ -88,9 +89,9 @@ QVariant CollectionSourceModel::data(const QModelIndex &index, int role) const
case NodeRole:
return QVariant::fromValue(*collectionSource);
case CollectionTypeRole:
- return CollectionEditor::getSourceCollectionType(*collectionSource);
+ return CollectionEditorUtils::getSourceCollectionType(*collectionSource);
case SourceRole:
- return collectionSource->variantProperty(CollectionEditor::SOURCEFILE_PROPERTY).value();
+ return collectionSource->variantProperty(CollectionEditorConstants::SOURCEFILE_PROPERTY).value();
case SelectedRole:
return index.row() == m_selectedIndex;
case CollectionsRole:
@@ -116,7 +117,8 @@ bool CollectionSourceModel::setData(const QModelIndex &index, const QVariant &va
collectionName.setValue(value.toString());
} break;
case SourceRole: {
- auto sourceAddress = collectionSource.variantProperty(CollectionEditor::SOURCEFILE_PROPERTY);
+ auto sourceAddress = collectionSource.variantProperty(
+ CollectionEditorConstants::SOURCEFILE_PROPERTY);
if (sourceAddress.value() == value)
return false;
@@ -281,13 +283,13 @@ bool CollectionSourceModel::addCollectionToSource(const ModelNode &node,
if (idx < 0)
return returnError(tr("Node is not indexed in the models."));
- if (node.type() != CollectionEditor::JSONCOLLECTIONMODEL_TYPENAME)
+ if (node.type() != CollectionEditorConstants::JSONCOLLECTIONMODEL_TYPENAME)
return returnError(tr("Node should be a JSON model."));
if (collectionExists(node, collectionName))
return returnError(tr("A model with the identical name already exists."));
- QString sourceFileAddress = CollectionEditor::getSourceCollectionPath(node);
+ QString sourceFileAddress = CollectionEditorUtils::getSourceCollectionPath(node);
QFileInfo sourceFileInfo(sourceFileAddress);
if (!sourceFileInfo.isFile())
@@ -424,16 +426,16 @@ void CollectionSourceModel::onCollectionNameChanged(CollectionListModel *collect
return;
}
- if (node.type() == CollectionEditor::CSVCOLLECTIONMODEL_TYPENAME) {
+ if (node.type() == CollectionEditorConstants::CSVCOLLECTIONMODEL_TYPENAME) {
if (!setData(nodeIndex, newName, NameRole))
emitRenameWarning(tr("Can't rename the node"));
return;
- } else if (node.type() != CollectionEditor::JSONCOLLECTIONMODEL_TYPENAME) {
+ } else if (node.type() != CollectionEditorConstants::JSONCOLLECTIONMODEL_TYPENAME) {
emitRenameWarning(tr("Invalid node type"));
return;
}
- QString sourceFileAddress = CollectionEditor::getSourceCollectionPath(node);
+ QString sourceFileAddress = CollectionEditorUtils::getSourceCollectionPath(node);
QFileInfo sourceFileInfo(sourceFileAddress);
if (!sourceFileInfo.isFile()) {
@@ -513,15 +515,15 @@ void CollectionSourceModel::onCollectionsRemoved(CollectionListModel *collection
return;
}
- if (node.type() == CollectionEditor::CSVCOLLECTIONMODEL_TYPENAME) {
+ if (node.type() == CollectionEditorConstants::CSVCOLLECTIONMODEL_TYPENAME) {
removeSource(node);
return;
- } else if (node.type() != CollectionEditor::JSONCOLLECTIONMODEL_TYPENAME) {
+ } else if (node.type() != CollectionEditorConstants::JSONCOLLECTIONMODEL_TYPENAME) {
emitDeleteWarning(tr("Invalid node type"));
return;
}
- QString sourceFileAddress = CollectionEditor::getSourceCollectionPath(node);
+ QString sourceFileAddress = CollectionEditorUtils::getSourceCollectionPath(node);
QFileInfo sourceFileInfo(sourceFileAddress);
if (!sourceFileInfo.isFile()) {
diff --git a/src/plugins/qmldesigner/components/collectioneditor/collectionview.cpp b/src/plugins/qmldesigner/components/collectioneditor/collectionview.cpp
index f17abf5d9f..7f3ee7192a 100644
--- a/src/plugins/qmldesigner/components/collectioneditor/collectionview.cpp
+++ b/src/plugins/qmldesigner/components/collectioneditor/collectionview.cpp
@@ -31,7 +31,7 @@ namespace {
inline bool isStudioCollectionModel(const QmlDesigner::ModelNode &node)
{
- using namespace QmlDesigner::CollectionEditor;
+ using namespace QmlDesigner::CollectionEditorConstants;
return node.metaInfo().typeName() == JSONCOLLECTIONMODEL_TYPENAME
|| node.metaInfo().typeName() == CSVCOLLECTIONMODEL_TYPENAME;
}
@@ -151,7 +151,7 @@ void CollectionView::variantPropertiesChanged(const QList<VariantProperty> &prop
if (isStudioCollectionModel(node)) {
if (property.name() == "objectName")
m_widget->sourceModel()->updateNodeName(node);
- else if (property.name() == CollectionEditor::SOURCEFILE_PROPERTY)
+ else if (property.name() == CollectionEditorConstants::SOURCEFILE_PROPERTY)
m_widget->sourceModel()->updateNodeSource(node);
}
}
@@ -169,7 +169,8 @@ void CollectionView::selectedNodesChanged(const QList<ModelNode> &selectedNodeLi
bool singleSelectedHasModelProperty = false;
if (singleNonCollectionNodeSelected) {
const ModelNode selectedNode = selectedNodeList.first();
- singleSelectedHasModelProperty = CollectionEditor::canAcceptCollectionAsModel(selectedNode);
+ singleSelectedHasModelProperty = CollectionEditorUtils::canAcceptCollectionAsModel(
+ selectedNode);
}
m_widget->setTargetNodeSelected(singleSelectedHasModelProperty);
@@ -204,7 +205,7 @@ void CollectionView::addResource(const QUrl &url, const QString &name, const QSt
resourceMetaInfo.majorVersion(),
resourceMetaInfo.minorVersion());
VariantProperty sourceProperty = resourceNode.variantProperty(
- CollectionEditor::SOURCEFILE_PROPERTY);
+ CollectionEditorConstants::SOURCEFILE_PROPERTY);
VariantProperty nameProperty = resourceNode.variantProperty("objectName");
sourceProperty.setValue(sourceAddress);
nameProperty.setValue(name);
@@ -252,18 +253,18 @@ void CollectionView::refreshModel()
NodeMetaInfo CollectionView::jsonCollectionMetaInfo() const
{
- return model()->metaInfo(CollectionEditor::JSONCOLLECTIONMODEL_TYPENAME);
+ return model()->metaInfo(CollectionEditorConstants::JSONCOLLECTIONMODEL_TYPENAME);
}
NodeMetaInfo CollectionView::csvCollectionMetaInfo() const
{
- return model()->metaInfo(CollectionEditor::CSVCOLLECTIONMODEL_TYPENAME);
+ return model()->metaInfo(CollectionEditorConstants::CSVCOLLECTIONMODEL_TYPENAME);
}
void CollectionView::ensureStudioModelImport()
{
executeInTransaction(__FUNCTION__, [&] {
- Import import = Import::createLibraryImport(CollectionEditor::COLLECTIONMODEL_IMPORT);
+ Import import = Import::createLibraryImport(CollectionEditorConstants::COLLECTIONMODEL_IMPORT);
try {
if (!model()->hasImport(import, true, true))
model()->changeImports({import}, {});
diff --git a/src/plugins/qmldesigner/components/collectioneditor/collectionwidget.cpp b/src/plugins/qmldesigner/components/collectioneditor/collectionwidget.cpp
index 9b14c2cd03..39097cbeb3 100644
--- a/src/plugins/qmldesigner/components/collectioneditor/collectionwidget.cpp
+++ b/src/plugins/qmldesigner/components/collectioneditor/collectionwidget.cpp
@@ -6,7 +6,6 @@
#include "collectiondetailsmodel.h"
#include "collectiondetailssortfiltermodel.h"
#include "collectioneditorutils.h"
-#include "collectionimporttools.h"
#include "collectionsourcemodel.h"
#include "collectionview.h"
#include "qmldesignerconstants.h"
@@ -216,7 +215,7 @@ bool CollectionWidget::addCollection(const QString &collectionName,
if (collectionType == "json") {
QJsonObject jsonObject;
- jsonObject.insert(collectionName, CollectionEditor::defaultCollectionArray());
+ jsonObject.insert(collectionName, CollectionEditorUtils::defaultCollectionArray());
QFile sourceFile(sourcePath);
if (!sourceFile.open(QFile::WriteOnly)) {
@@ -258,10 +257,8 @@ bool CollectionWidget::addCollection(const QString &collectionName,
}
} else if (collectionType == "json") {
QString errorMsg;
- bool added = m_sourceModel->addCollectionToSource(node,
- collectionName,
- CollectionEditor::defaultCollectionArray(),
- &errorMsg);
+ bool added = m_sourceModel->addCollectionToSource(
+ node, collectionName, CollectionEditorUtils::defaultCollectionArray(), &errorMsg);
if (!added)
warn(tr("Can not add a model to the JSON file"), errorMsg);
return added;
@@ -274,10 +271,10 @@ bool CollectionWidget::importToJson(const QVariant &sourceNode,
const QString &collectionName,
const QUrl &url)
{
- using CollectionEditor::SourceFormat;
+ using CollectionEditorConstants::SourceFormat;
using Utils::FilePath;
const ModelNode node = sourceNode.value<ModelNode>();
- const SourceFormat nodeFormat = CollectionEditor::getSourceCollectionFormat(node);
+ const SourceFormat nodeFormat = CollectionEditorUtils::getSourceCollectionFormat(node);
QTC_ASSERT(node.isValid() && nodeFormat == SourceFormat::Json, return false);
FilePath fileInfo = FilePath::fromUserInput(url.isLocalFile() ? url.toLocalFile()
@@ -287,9 +284,9 @@ bool CollectionWidget::importToJson(const QVariant &sourceNode,
QJsonArray loadedCollection;
if (fileInfo.suffix() == "json")
- loadedCollection = CollectionEditor::ImportTools::loadAsSingleJsonCollection(url);
+ loadedCollection = CollectionEditorUtils::loadAsSingleJsonCollection(url);
else if (fileInfo.suffix() == "csv")
- loadedCollection = CollectionEditor::ImportTools::loadAsCsvCollection(url);
+ loadedCollection = CollectionEditorUtils::loadAsCsvCollection(url);
if (!loadedCollection.isEmpty()) {
const QString newCollectionName = generateUniqueCollectionName(node, collectionName);
@@ -327,7 +324,7 @@ bool CollectionWidget::addCollectionToDataStore(const QString &collectionName)
bool added = m_sourceModel->addCollectionToSource(node,
generateUniqueCollectionName(node,
collectionName),
- CollectionEditor::defaultCollectionArray(),
+ CollectionEditorUtils::defaultCollectionArray(),
&errorMsg);
if (!added)
warn(tr("Failed to add a model to the default model group"), errorMsg);
@@ -343,7 +340,7 @@ void CollectionWidget::assignCollectionToSelectedNode(const QString collectionNa
void CollectionWidget::ensureDataStoreExists()
{
bool filesJustCreated = false;
- bool filesExist = CollectionEditor::ensureDataStoreExists(filesJustCreated);
+ bool filesExist = CollectionEditorUtils::ensureDataStoreExists(filesJustCreated);
if (filesExist && filesJustCreated)
m_view->resetDataStoreNode();
}
diff --git a/src/plugins/qmldesigner/components/collectioneditor/datastoremodelnode.cpp b/src/plugins/qmldesigner/components/collectioneditor/datastoremodelnode.cpp
index 07f2116b6b..3a1dbae713 100644
--- a/src/plugins/qmldesigner/components/collectioneditor/datastoremodelnode.cpp
+++ b/src/plugins/qmldesigner/components/collectioneditor/datastoremodelnode.cpp
@@ -41,10 +41,11 @@ QmlDesigner::PropertyNameList createNameList(const QmlDesigner::ModelNode &node)
using QmlDesigner::AbstractProperty;
using QmlDesigner::PropertyName;
using QmlDesigner::PropertyNameList;
- static PropertyNameList defaultsNodeProps = {"id",
- QmlDesigner::CollectionEditor::SOURCEFILE_PROPERTY,
- QmlDesigner::CollectionEditor::JSONCHILDMODELNAME_PROPERTY,
- "backend"};
+ static PropertyNameList defaultsNodeProps = {
+ "id",
+ QmlDesigner::CollectionEditorConstants::SOURCEFILE_PROPERTY,
+ QmlDesigner::CollectionEditorConstants::JSONCHILDMODELNAME_PROPERTY,
+ "backend"};
PropertyNameList dynamicPropertyNames = Utils::transform(
node.dynamicProperties(),
[](const AbstractProperty &property) -> PropertyName { return property.name(); });
@@ -57,8 +58,8 @@ QmlDesigner::PropertyNameList createNameList(const QmlDesigner::ModelNode &node)
bool isValidCollectionPropertyName(const QString &collectionId)
{
static const QmlDesigner::PropertyNameList reservedKeywords = {
- QmlDesigner::CollectionEditor::SOURCEFILE_PROPERTY,
- QmlDesigner::CollectionEditor::JSONBACKEND_TYPENAME,
+ QmlDesigner::CollectionEditorConstants::SOURCEFILE_PROPERTY,
+ QmlDesigner::CollectionEditorConstants::JSONBACKEND_TYPENAME,
"backend",
"models",
};
@@ -83,8 +84,9 @@ QMap<QString, QmlDesigner::PropertyName> getModelIdMap(const QmlDesigner::ModelN
continue;
ModelNode childNode = nodeProperty.modelNode();
- if (childNode.hasProperty(CollectionEditor::JSONCHILDMODELNAME_PROPERTY)) {
- QString modelName = childNode.property(CollectionEditor::JSONCHILDMODELNAME_PROPERTY)
+ if (childNode.hasProperty(CollectionEditorConstants::JSONCHILDMODELNAME_PROPERTY)) {
+ QString modelName = childNode
+ .property(CollectionEditorConstants::JSONCHILDMODELNAME_PROPERTY)
.toVariantProperty()
.value()
.toString();
@@ -136,15 +138,16 @@ void DataStoreModelNode::reloadModel()
}
bool forceUpdate = false;
- const FilePath dataStoreQmlPath = CollectionEditor::dataStoreQmlFilePath();
- const FilePath dataStoreJsonPath = CollectionEditor::dataStoreJsonFilePath();
+ const FilePath dataStoreQmlPath = CollectionEditorUtils::dataStoreQmlFilePath();
+ const FilePath dataStoreJsonPath = CollectionEditorUtils::dataStoreJsonFilePath();
QUrl dataStoreQmlUrl = dataStoreQmlPath.toUrl();
if (dataStoreQmlPath.exists() && dataStoreJsonPath.exists()) {
if (!m_model.get() || m_model->fileUrl() != dataStoreQmlUrl) {
- m_model = Model::create(CollectionEditor::JSONCOLLECTIONMODEL_TYPENAME, 1, 1);
+ m_model = Model::create(CollectionEditorConstants::JSONCOLLECTIONMODEL_TYPENAME, 1, 1);
forceUpdate = true;
- Import import = Import::createLibraryImport(CollectionEditor::COLLECTIONMODEL_IMPORT);
+ Import import = Import::createLibraryImport(
+ CollectionEditorConstants::COLLECTIONMODEL_IMPORT);
try {
if (!m_model->hasImport(import, true, true))
m_model->changeImports({import}, {});
@@ -247,8 +250,9 @@ void DataStoreModelNode::updateDataStoreProperties()
continue;
ModelNode childNode = nodeProprty.modelNode();
- if (childNode.hasProperty(CollectionEditor::JSONCHILDMODELNAME_PROPERTY)) {
- QString modelName = childNode.property(CollectionEditor::JSONCHILDMODELNAME_PROPERTY)
+ if (childNode.hasProperty(CollectionEditorConstants::JSONCHILDMODELNAME_PROPERTY)) {
+ QString modelName = childNode
+ .property(CollectionEditorConstants::JSONCHILDMODELNAME_PROPERTY)
.toVariantProperty()
.value()
.toString();
@@ -271,12 +275,13 @@ void DataStoreModelNode::updateDataStoreProperties()
addCollectionNameToTheModel(collectionName, getUniquePropertyName(collectionName));
// Backend Property
- ModelNode backendNode = model()->createModelNode(CollectionEditor::JSONBACKEND_TYPENAME);
+ ModelNode backendNode = model()->createModelNode(CollectionEditorConstants::JSONBACKEND_TYPENAME);
NodeProperty backendProperty = rootNode.nodeProperty("backend");
- backendProperty.setDynamicTypeNameAndsetModelNode(CollectionEditor::JSONBACKEND_TYPENAME,
+ backendProperty.setDynamicTypeNameAndsetModelNode(CollectionEditorConstants::JSONBACKEND_TYPENAME,
backendNode);
// Source Property
- VariantProperty sourceProp = rootNode.variantProperty(CollectionEditor::SOURCEFILE_PROPERTY);
+ VariantProperty sourceProp = rootNode.variantProperty(
+ CollectionEditorConstants::SOURCEFILE_PROPERTY);
sourceProp.setValue(m_dataRelativePath);
}
@@ -321,7 +326,7 @@ void DataStoreModelNode::addCollectionNameToTheModel(const QString &collectionNa
ModelNode collectionNode = model()->createModelNode(CHILDLISTMODEL_TYPENAME);
VariantProperty modelNameProperty = collectionNode.variantProperty(
- CollectionEditor::JSONCHILDMODELNAME_PROPERTY);
+ CollectionEditorConstants::JSONCHILDMODELNAME_PROPERTY);
modelNameProperty.setValue(collectionName);
NodeProperty nodeProp = rootNode.nodeProperty(dataStorePropertyName);
@@ -393,7 +398,7 @@ void DataStoreModelNode::renameCollection(const QString &oldName, const QString
NodeProperty collectionNode = dataStoreNode.property(oldPropertyName).toNodeProperty();
if (collectionNode.isValid()) {
VariantProperty modelNameProperty = collectionNode.modelNode().variantProperty(
- CollectionEditor::JSONCHILDMODELNAME_PROPERTY);
+ CollectionEditorConstants::JSONCHILDMODELNAME_PROPERTY);
modelNameProperty.setValue(newName);
m_collectionPropertyNames.remove(oldName);
m_collectionPropertyNames.insert(newName, collectionNode.name());
@@ -426,7 +431,7 @@ void DataStoreModelNode::assignCollectionToNode(AbstractView *view,
{
QTC_ASSERT(targetNode.isValid(), return);
- if (!CollectionEditor::canAcceptCollectionAsModel(targetNode))
+ if (!CollectionEditorUtils::canAcceptCollectionAsModel(targetNode))
return;
if (!m_collectionPropertyNames.contains(collectionName)) {