forked from qt-creator/qt-creator
QmlDesigner: fix to not use not existing puppets
also remove the path if it is the same as the default path Task-number: QTCREATORBUG-21303 Change-Id: I811ffab789c1cfc200aa2c68672ee4d6ee83ecfe Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -371,7 +371,7 @@ QString PuppetCreator::qmlPuppetDirectory(PuppetType puppetType) const
|
||||
return qmlPuppetToplevelBuildDirectory() + '/' + QCoreApplication::applicationVersion()
|
||||
+ '/' + QString::fromLatin1(qtHash());
|
||||
|
||||
return qmlPuppetFallbackDirectory();
|
||||
return qmlPuppetFallbackDirectory(m_designerSettings);
|
||||
}
|
||||
|
||||
QString PuppetCreator::defaultPuppetFallbackDirectory()
|
||||
@@ -382,12 +382,12 @@ QString PuppetCreator::defaultPuppetFallbackDirectory()
|
||||
return Core::ICore::libexecPath();
|
||||
}
|
||||
|
||||
QString PuppetCreator::qmlPuppetFallbackDirectory() const
|
||||
QString PuppetCreator::qmlPuppetFallbackDirectory(const DesignerSettings &settings)
|
||||
{
|
||||
#ifndef QMLDESIGNER_TEST
|
||||
QString puppetFallbackDirectory = m_designerSettings.value(
|
||||
QString puppetFallbackDirectory = settings.value(
|
||||
DesignerSettingsKey::PUPPET_FALLBACK_DIRECTORY).toString();
|
||||
if (puppetFallbackDirectory.isEmpty())
|
||||
if (puppetFallbackDirectory.isEmpty() || !QFileInfo::exists(puppetFallbackDirectory))
|
||||
return defaultPuppetFallbackDirectory();
|
||||
return puppetFallbackDirectory;
|
||||
#else
|
||||
|
||||
@@ -66,12 +66,12 @@ public:
|
||||
|
||||
static QString defaultPuppetToplevelBuildDirectory();
|
||||
static QString defaultPuppetFallbackDirectory();
|
||||
static QString qmlPuppetFallbackDirectory(const DesignerSettings &settings);
|
||||
protected:
|
||||
bool build(const QString &qmlPuppetProjectFilePath) const;
|
||||
|
||||
|
||||
QString qmlPuppetToplevelBuildDirectory() const;
|
||||
QString qmlPuppetFallbackDirectory() const;
|
||||
QString qmlPuppetDirectory(PuppetType puppetPathType) const;
|
||||
QString qml2PuppetPath(PuppetType puppetType) const;
|
||||
|
||||
|
||||
@@ -69,7 +69,6 @@ SettingsPageWidget::SettingsPageWidget(QWidget *parent) :
|
||||
PuppetCreator::defaultPuppetFallbackDirectory());
|
||||
}
|
||||
);
|
||||
m_ui.fallbackPuppetPathLineEdit->setPath(PuppetCreator::defaultPuppetFallbackDirectory());
|
||||
m_ui.fallbackPuppetPathLineEdit->lineEdit()->setPlaceholderText(PuppetCreator::defaultPuppetFallbackDirectory());
|
||||
|
||||
connect(m_ui.resetQmlPuppetBuildPathButton, &QPushButton::clicked, [=]() {
|
||||
@@ -138,11 +137,15 @@ DesignerSettings SettingsPageWidget::settings() const
|
||||
m_ui.fallbackPuppetPathLineEdit->lineEdit()->placeholderText());
|
||||
if (newFallbackPuppetPath.isEmpty())
|
||||
newFallbackPuppetPath = m_ui.fallbackPuppetPathLineEdit->lineEdit()->placeholderText();
|
||||
QString oldFallbackPuppetPath = settings.value(DesignerSettingsKey::PUPPET_FALLBACK_DIRECTORY,
|
||||
PuppetCreator::defaultPuppetFallbackDirectory()).toString();
|
||||
if (oldFallbackPuppetPath != newFallbackPuppetPath) {
|
||||
settings.insert(DesignerSettingsKey::PUPPET_FALLBACK_DIRECTORY,
|
||||
newFallbackPuppetPath);
|
||||
QString oldFallbackPuppetPath = PuppetCreator::qmlPuppetFallbackDirectory(settings);
|
||||
|
||||
if (oldFallbackPuppetPath != newFallbackPuppetPath && QFileInfo::exists(newFallbackPuppetPath)) {
|
||||
if (newFallbackPuppetPath == PuppetCreator::defaultPuppetFallbackDirectory())
|
||||
settings.insert(DesignerSettingsKey::PUPPET_FALLBACK_DIRECTORY, QString());
|
||||
else
|
||||
settings.insert(DesignerSettingsKey::PUPPET_FALLBACK_DIRECTORY, newFallbackPuppetPath);
|
||||
} else if (!QFileInfo::exists(oldFallbackPuppetPath) || !QFileInfo::exists(newFallbackPuppetPath)){
|
||||
settings.insert(DesignerSettingsKey::PUPPET_FALLBACK_DIRECTORY, QString());
|
||||
}
|
||||
|
||||
if (!m_ui.puppetBuildPathLineEdit->path().isEmpty() &&
|
||||
|
||||
Reference in New Issue
Block a user