summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@qt.io>2018-10-15 06:21:33 +0200
committerTim Jenssen <tim.jenssen@qt.io>2018-10-17 16:07:37 +0000
commitada0c6f405c780b74a4ac26e4c48ad361fc7b8b2 (patch)
treed99e9c99f13462cc1b331f54d4fde060ff6c25cf /src/plugins
parent218a439bd5bfce74ebaf7837c8a90777020ac31a (diff)
downloadqt-creator-ada0c6f405c780b74a4ac26e4c48ad361fc7b8b2.tar.gz
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>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp8
-rw-r--r--src/plugins/qmldesigner/designercore/instances/puppetcreator.h2
-rw-r--r--src/plugins/qmldesigner/settingspage.cpp15
3 files changed, 14 insertions, 11 deletions
diff --git a/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp b/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp
index 0dce2b2a10..087ea4c269 100644
--- a/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp
@@ -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
diff --git a/src/plugins/qmldesigner/designercore/instances/puppetcreator.h b/src/plugins/qmldesigner/designercore/instances/puppetcreator.h
index 95c7d7e68a..8cde9692ad 100644
--- a/src/plugins/qmldesigner/designercore/instances/puppetcreator.h
+++ b/src/plugins/qmldesigner/designercore/instances/puppetcreator.h
@@ -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;
diff --git a/src/plugins/qmldesigner/settingspage.cpp b/src/plugins/qmldesigner/settingspage.cpp
index 6fb88e5f21..041efd809b 100644
--- a/src/plugins/qmldesigner/settingspage.cpp
+++ b/src/plugins/qmldesigner/settingspage.cpp
@@ -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() &&