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() return qmlPuppetToplevelBuildDirectory() + '/' + QCoreApplication::applicationVersion()
+ '/' + QString::fromLatin1(qtHash()); + '/' + QString::fromLatin1(qtHash());
return qmlPuppetFallbackDirectory(); return qmlPuppetFallbackDirectory(m_designerSettings);
} }
QString PuppetCreator::defaultPuppetFallbackDirectory() QString PuppetCreator::defaultPuppetFallbackDirectory()
@@ -382,12 +382,12 @@ QString PuppetCreator::defaultPuppetFallbackDirectory()
return Core::ICore::libexecPath(); return Core::ICore::libexecPath();
} }
QString PuppetCreator::qmlPuppetFallbackDirectory() const QString PuppetCreator::qmlPuppetFallbackDirectory(const DesignerSettings &settings)
{ {
#ifndef QMLDESIGNER_TEST #ifndef QMLDESIGNER_TEST
QString puppetFallbackDirectory = m_designerSettings.value( QString puppetFallbackDirectory = settings.value(
DesignerSettingsKey::PUPPET_FALLBACK_DIRECTORY).toString(); DesignerSettingsKey::PUPPET_FALLBACK_DIRECTORY).toString();
if (puppetFallbackDirectory.isEmpty()) if (puppetFallbackDirectory.isEmpty() || !QFileInfo::exists(puppetFallbackDirectory))
return defaultPuppetFallbackDirectory(); return defaultPuppetFallbackDirectory();
return puppetFallbackDirectory; return puppetFallbackDirectory;
#else #else

View File

@@ -66,12 +66,12 @@ public:
static QString defaultPuppetToplevelBuildDirectory(); static QString defaultPuppetToplevelBuildDirectory();
static QString defaultPuppetFallbackDirectory(); static QString defaultPuppetFallbackDirectory();
static QString qmlPuppetFallbackDirectory(const DesignerSettings &settings);
protected: protected:
bool build(const QString &qmlPuppetProjectFilePath) const; bool build(const QString &qmlPuppetProjectFilePath) const;
QString qmlPuppetToplevelBuildDirectory() const; QString qmlPuppetToplevelBuildDirectory() const;
QString qmlPuppetFallbackDirectory() const;
QString qmlPuppetDirectory(PuppetType puppetPathType) const; QString qmlPuppetDirectory(PuppetType puppetPathType) const;
QString qml2PuppetPath(PuppetType puppetType) const; QString qml2PuppetPath(PuppetType puppetType) const;

View File

@@ -69,7 +69,6 @@ SettingsPageWidget::SettingsPageWidget(QWidget *parent) :
PuppetCreator::defaultPuppetFallbackDirectory()); PuppetCreator::defaultPuppetFallbackDirectory());
} }
); );
m_ui.fallbackPuppetPathLineEdit->setPath(PuppetCreator::defaultPuppetFallbackDirectory());
m_ui.fallbackPuppetPathLineEdit->lineEdit()->setPlaceholderText(PuppetCreator::defaultPuppetFallbackDirectory()); m_ui.fallbackPuppetPathLineEdit->lineEdit()->setPlaceholderText(PuppetCreator::defaultPuppetFallbackDirectory());
connect(m_ui.resetQmlPuppetBuildPathButton, &QPushButton::clicked, [=]() { connect(m_ui.resetQmlPuppetBuildPathButton, &QPushButton::clicked, [=]() {
@@ -138,11 +137,15 @@ DesignerSettings SettingsPageWidget::settings() const
m_ui.fallbackPuppetPathLineEdit->lineEdit()->placeholderText()); m_ui.fallbackPuppetPathLineEdit->lineEdit()->placeholderText());
if (newFallbackPuppetPath.isEmpty()) if (newFallbackPuppetPath.isEmpty())
newFallbackPuppetPath = m_ui.fallbackPuppetPathLineEdit->lineEdit()->placeholderText(); newFallbackPuppetPath = m_ui.fallbackPuppetPathLineEdit->lineEdit()->placeholderText();
QString oldFallbackPuppetPath = settings.value(DesignerSettingsKey::PUPPET_FALLBACK_DIRECTORY, QString oldFallbackPuppetPath = PuppetCreator::qmlPuppetFallbackDirectory(settings);
PuppetCreator::defaultPuppetFallbackDirectory()).toString();
if (oldFallbackPuppetPath != newFallbackPuppetPath) { if (oldFallbackPuppetPath != newFallbackPuppetPath && QFileInfo::exists(newFallbackPuppetPath)) {
settings.insert(DesignerSettingsKey::PUPPET_FALLBACK_DIRECTORY, if (newFallbackPuppetPath == PuppetCreator::defaultPuppetFallbackDirectory())
newFallbackPuppetPath); 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() && if (!m_ui.puppetBuildPathLineEdit->path().isEmpty() &&