// Copyright (C) 2025 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "qmlformatsettingswidget.h" #include "coreplugin/messagemanager.h" #include "qmlformatsettings.h" #include "qmljscodestylesettings.h" #include "qmljsformatterselectionwidget.h" #include "qmljstoolstr.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std::chrono_literals; using namespace ProjectExplorer; namespace QmlJSTools { class QmlFormatOptionsModel : public QAbstractTableModel { Q_OBJECT public: enum Column : int { Name = 0, Value }; struct Option { QString name; QVariant value; QString hint; bool hidden = false; bool isBool() const { return hint == QString::fromUtf8(QMetaType::fromType().name()); } bool isInt() const { return hint == QString::fromUtf8(QMetaType::fromType().name()); } bool isString() const { return hint == QString::fromUtf8(QMetaType::fromType().name()); } bool isStringList() const { return !isBool() && !isInt() && !isString() && !isNull(); } bool isNull() const { return hint.isEmpty(); } }; explicit QmlFormatOptionsModel(QObject *parent = nullptr); int rowCount(const QModelIndex &parent = QModelIndex()) const override; int columnCount(const QModelIndex &parent = QModelIndex()) const override; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override; Qt::ItemFlags flags(const QModelIndex &index) const override; void setOptionsFromJson(const QJsonDocument &doc); QString writeGlobalQmlFormatIniFile() const; void loadGlobalQmlFormatIniFile(); const QList