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:
Tim Jenssen
2018-10-15 06:21:33 +02:00
parent 218a439bd5
commit ada0c6f405
3 changed files with 14 additions and 11 deletions

View File

@@ -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

View File

@@ -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;

View File

@@ -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() &&