diff options
author | Tim Jenssen <tim.jenssen@qt.io> | 2018-10-15 06:21:33 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@qt.io> | 2018-10-17 16:07:37 +0000 |
commit | ada0c6f405c780b74a4ac26e4c48ad361fc7b8b2 (patch) | |
tree | d99e9c99f13462cc1b331f54d4fde060ff6c25cf /src/plugins | |
parent | 218a439bd5bfce74ebaf7837c8a90777020ac31a (diff) | |
download | qt-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')
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() && |