forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/14.0'
Conflicts: src/plugins/qmljseditor/qmljseditingsettingspage.cpp src/plugins/qmljseditor/qmllssettings.h Change-Id: I49b97101467a6e80653c0f5f3e3fe5801dca5274
This commit is contained in:
@@ -35,6 +35,7 @@ const char QML_CONTEXTPANEPIN_KEY[] = "QmlJSEditor.ContextPanePinned";
|
||||
const char FOLD_AUX_DATA[] = "QmlJSEditor.FoldAuxData";
|
||||
const char USE_QMLLS[] = "QmlJSEditor.UseQmlls";
|
||||
const char USE_LATEST_QMLLS[] = "QmlJSEditor.UseLatestQmlls";
|
||||
const char IGNORE_MINIMUM_QMLLS_VERSION[] = "QmlJSEditor.IgnoreMinimumQmllsVersion";
|
||||
const char DISABLE_BUILTIN_CODEMODEL[] = "QmlJSEditor.DisableBuiltinCodemodel";
|
||||
const char GENERATE_QMLLS_INI_FILES[] = "QmlJSEditor.GenerateQmllsIniFiles";
|
||||
const char UIQML_OPEN_MODE[] = "QmlJSEditor.openUiQmlMode";
|
||||
@@ -107,8 +108,9 @@ void QmlJsEditingSettings::fromSettings(QtcSettings *settings)
|
||||
m_uiQmlOpenMode = settings->value(UIQML_OPEN_MODE, "").toString();
|
||||
m_useQmlls = settings->value(USE_QMLLS, QVariant(true)).toBool();
|
||||
m_useLatestQmlls = settings->value(USE_LATEST_QMLLS, QVariant(false)).toBool();
|
||||
m_disableBuiltinCodemodel
|
||||
= settings->value(DISABLE_BUILTIN_CODEMODEL, QVariant(false)).toBool();
|
||||
m_ignoreMinimumQmllsVersion
|
||||
= settings->value(IGNORE_MINIMUM_QMLLS_VERSION, QVariant(false)).toBool();
|
||||
m_disableBuiltinCodemodel = settings->value(DISABLE_BUILTIN_CODEMODEL, QVariant(false)).toBool();
|
||||
m_generateQmllsIniFiles
|
||||
= settings->value(GENERATE_QMLLS_INI_FILES, QVariant(false)).toBool();
|
||||
m_formatCommand = settings->value(FORMAT_COMMAND, {}).toString();
|
||||
@@ -138,6 +140,7 @@ void QmlJsEditingSettings::toSettings(QtcSettings *settings) const
|
||||
settings->setValue(UIQML_OPEN_MODE, m_uiQmlOpenMode);
|
||||
settings->setValue(USE_QMLLS, m_useQmlls);
|
||||
settings->setValue(USE_LATEST_QMLLS, m_useLatestQmlls);
|
||||
settings->setValue(IGNORE_MINIMUM_QMLLS_VERSION, m_ignoreMinimumQmllsVersion);
|
||||
settings->setValue(DISABLE_BUILTIN_CODEMODEL, m_disableBuiltinCodemodel);
|
||||
settings->setValue(GENERATE_QMLLS_INI_FILES, m_generateQmllsIniFiles);
|
||||
settings->setValueWithDefault(FORMAT_COMMAND, m_formatCommand, {});
|
||||
@@ -329,6 +332,16 @@ void QmlJsEditingSettings::setUseLatestQmlls(bool newUseLatestQmlls)
|
||||
m_useLatestQmlls = newUseLatestQmlls;
|
||||
}
|
||||
|
||||
bool QmlJsEditingSettings::ignoreMinimumQmllsVersion() const
|
||||
{
|
||||
return m_ignoreMinimumQmllsVersion;
|
||||
}
|
||||
|
||||
void QmlJsEditingSettings::setIgnoreMinimumQmllsVersion(bool newIgnoreMinimumQmllsVersion)
|
||||
{
|
||||
m_ignoreMinimumQmllsVersion = newIgnoreMinimumQmllsVersion;
|
||||
}
|
||||
|
||||
bool QmlJsEditingSettings::useQmlls() const
|
||||
{
|
||||
return m_useQmlls;
|
||||
@@ -434,6 +447,13 @@ public:
|
||||
|
||||
useQmlls = new QCheckBox(Tr::tr("Enable QML Language Server"));
|
||||
useQmlls->setChecked(s.useQmlls());
|
||||
|
||||
ignoreMinimumQmllsVersion = new QCheckBox(
|
||||
Tr::tr("Allow versions below Qt %1")
|
||||
.arg(QmllsSettingsManager::mininumQmllsVersion.toString()));
|
||||
ignoreMinimumQmllsVersion->setChecked(s.ignoreMinimumQmllsVersion());
|
||||
ignoreMinimumQmllsVersion->setEnabled(s.useQmlls());
|
||||
|
||||
disableBuiltInCodemodel = new QCheckBox(
|
||||
Tr::tr("Use QML Language Server advanced features (renaming, find usages and co.) "
|
||||
"(EXPERIMENTAL!)"));
|
||||
@@ -442,6 +462,7 @@ public:
|
||||
useLatestQmlls = new QCheckBox(Tr::tr("Use QML Language Server from latest Qt version"));
|
||||
useLatestQmlls->setChecked(s.useLatestQmlls());
|
||||
useLatestQmlls->setEnabled(s.useQmlls());
|
||||
|
||||
generateQmllsIniFiles = new QCheckBox(
|
||||
Tr::tr("Generate QML Language Server .qmlls.ini configurations for new projects."));
|
||||
generateQmllsIniFiles->setChecked(s.generateQmllsIniFiles());
|
||||
@@ -450,6 +471,7 @@ public:
|
||||
useLatestQmlls->setEnabled(checked != Qt::Unchecked);
|
||||
disableBuiltInCodemodel->setEnabled(checked != Qt::Unchecked);
|
||||
generateQmllsIniFiles->setEnabled(checked != Qt::Unchecked);
|
||||
ignoreMinimumQmllsVersion->setEnabled(checked != Qt::Unchecked);
|
||||
});
|
||||
|
||||
useCustomAnalyzer = new QCheckBox(Tr::tr("Use customized static analyzer"));
|
||||
@@ -502,7 +524,7 @@ public:
|
||||
},
|
||||
Group{
|
||||
title(Tr::tr("QML Language Server")),
|
||||
Column{useQmlls, disableBuiltInCodemodel , useLatestQmlls, generateQmllsIniFiles},
|
||||
Column{useQmlls, ignoreMinimumQmllsVersion, disableBuiltInCodemodel, useLatestQmlls, generateQmllsIniFiles},
|
||||
},
|
||||
Group {
|
||||
title(Tr::tr("Static Analyzer")),
|
||||
@@ -548,6 +570,7 @@ public:
|
||||
s.setUseQmlls(useQmlls->isChecked());
|
||||
s.setDisableBuiltinCodemodel(disableBuiltInCodemodel->isChecked());
|
||||
s.setUseLatestQmlls(useLatestQmlls->isChecked());
|
||||
s.setIgnoreMinimumQmllsVersion(ignoreMinimumQmllsVersion->isChecked());
|
||||
s.setGenerateQmllsIniFiles(generateQmllsIniFiles->isChecked());
|
||||
s.setUseCustomAnalyzer(useCustomAnalyzer->isChecked());
|
||||
QSet<int> disabled;
|
||||
@@ -606,6 +629,7 @@ private:
|
||||
QCheckBox *foldAuxData;
|
||||
QCheckBox *useQmlls;
|
||||
QCheckBox *useLatestQmlls;
|
||||
QCheckBox *ignoreMinimumQmllsVersion;
|
||||
QCheckBox *disableBuiltInCodemodel;
|
||||
QCheckBox *generateQmllsIniFiles;
|
||||
QComboBox *uiQmlOpenComboBox;
|
||||
|
||||
@@ -68,6 +68,9 @@ public:
|
||||
bool useLatestQmlls() const;
|
||||
void setUseLatestQmlls(bool newUseLatestQmlls);
|
||||
|
||||
bool ignoreMinimumQmllsVersion() const;
|
||||
void setIgnoreMinimumQmllsVersion(bool newIgnoreMinimumQmllsVersion);
|
||||
|
||||
bool disableBuiltinCodemodel() const;
|
||||
void setDisableBuiltinCodemodel(bool newDisableBuiltinCodemodel);
|
||||
|
||||
@@ -89,6 +92,7 @@ private:
|
||||
bool m_useCustomAnalyzer = false;
|
||||
bool m_useQmlls = true;
|
||||
bool m_useLatestQmlls = false;
|
||||
bool m_ignoreMinimumQmllsVersion = false;
|
||||
bool m_disableBuiltinCodemodel = false;
|
||||
bool m_generateQmllsIniFiles = false;
|
||||
QString m_uiQmlOpenMode;
|
||||
|
||||
@@ -744,6 +744,12 @@ static Utils::FilePath qmllsForFile(const Utils::FilePath &file,
|
||||
if (settingsManager->useLatestQmlls())
|
||||
return settingsManager->latestQmlls();
|
||||
QmlJS::ModelManagerInterface::ProjectInfo pInfo = modelManager->projectInfoForPath(file);
|
||||
|
||||
if (!settingsManager->ignoreMinimumQmllsVersion()
|
||||
&& QVersionNumber::fromString(pInfo.qtVersionString)
|
||||
< QmllsSettingsManager::mininumQmllsVersion) {
|
||||
return {};
|
||||
}
|
||||
return pInfo.qmllsPath;
|
||||
}
|
||||
|
||||
|
||||
@@ -33,9 +33,13 @@ static FilePath evaluateLatestQmlls()
|
||||
QVersionNumber latestVersion;
|
||||
FilePath latestQmakeFilePath;
|
||||
int latestUniqueId = std::numeric_limits<int>::min();
|
||||
const bool ignoreMinimumQmllsVersion
|
||||
= QmllsSettingsManager::instance()->ignoreMinimumQmllsVersion();
|
||||
for (QtVersion *v : versions) {
|
||||
// check if we find qmlls
|
||||
QVersionNumber vNow = v->qtVersion();
|
||||
if (!ignoreMinimumQmllsVersion && vNow < QmllsSettingsManager::mininumQmllsVersion)
|
||||
continue;
|
||||
FilePath qmllsNow = QmlJS::ModelManagerInterface::qmllsForBinPath(v->hostBinPath(), vNow);
|
||||
if (!qmllsNow.isExecutableFile())
|
||||
continue;
|
||||
@@ -113,6 +117,11 @@ bool QmllsSettingsManager::useLatestQmlls() const
|
||||
return m_useLatestQmlls;
|
||||
}
|
||||
|
||||
bool QmllsSettingsManager::ignoreMinimumQmllsVersion() const
|
||||
{
|
||||
return m_ignoreMinimumQmllsVersion;
|
||||
}
|
||||
|
||||
bool QmllsSettingsManager::useQmlls() const
|
||||
{
|
||||
return m_useQmlls;
|
||||
|
||||
@@ -6,8 +6,10 @@
|
||||
#include "qmljseditor_global.h"
|
||||
|
||||
#include <utils/filepath.h>
|
||||
|
||||
#include <QMutex>
|
||||
#include <QObject>
|
||||
#include <QVersionNumber>
|
||||
|
||||
namespace QmlJSEditor {
|
||||
|
||||
@@ -16,6 +18,8 @@ class QMLJSEDITOR_EXPORT QmllsSettingsManager : public QObject
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
static const inline QVersionNumber mininumQmllsVersion = QVersionNumber(6, 8);
|
||||
|
||||
static QmllsSettingsManager *instance();
|
||||
|
||||
Utils::FilePath latestQmlls();
|
||||
@@ -23,6 +27,7 @@ public:
|
||||
|
||||
bool useQmlls() const;
|
||||
bool useLatestQmlls() const;
|
||||
bool ignoreMinimumQmllsVersion() const;
|
||||
|
||||
public slots:
|
||||
void checkForChanges();
|
||||
@@ -33,6 +38,7 @@ private:
|
||||
QMutex m_mutex;
|
||||
bool m_useQmlls = true;
|
||||
bool m_useLatestQmlls = false;
|
||||
bool m_ignoreMinimumQmllsVersion = false;
|
||||
bool m_disableBuiltinCodemodel = false;
|
||||
bool m_generateQmllsIniFiles = false;
|
||||
Utils::FilePath m_latestQmlls;
|
||||
|
||||
Reference in New Issue
Block a user