From ef48306ba74fa46521ac05f3dbba4ce923da2e69 Mon Sep 17 00:00:00 2001 From: Kai Koehne <kai.koehne@nokia.com> Date: Thu, 10 Jun 2010 09:10:11 +0200 Subject: [PATCH] QmlProject: Consistently enable/disable debug & run buttons The heuristics to find the file to run and the logic that decides whether the show / debug button is shown weren't in sync. Also, don't try to run .qmlproject files if open in the editor. Reviewed-by: Lasse Holmstedt --- .../qmlprojectrunconfiguration.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp index da51b8bc591..3b959f83af0 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp @@ -85,12 +85,7 @@ bool QmlProjectRunConfiguration::isEnabled(ProjectExplorer::BuildConfiguration * { Q_UNUSED(bc); - if (!QFile::exists(mainScript()) - || !Core::ICore::instance()->mimeDatabase()->findByFile(mainScript()).matchesType(QLatin1String("application/x-qml"))) - { - return false; - } - return true; + return m_isEnabled; } void QmlProjectRunConfiguration::ctor() @@ -326,15 +321,17 @@ void QmlProjectRunConfiguration::changeCurrentFile(Core::IEditor *editor) bool enable = false; if (editor) { m_currentFileFilename = editor->file()->fileName(); - if (Core::ICore::instance()->mimeDatabase()->findByFile(mainScript()).matchesType(QLatin1String("application/x-qml"))) + if (Core::ICore::instance()->mimeDatabase()->findByFile(mainScript()).type() == QLatin1String("application/x-qml")) enable = true; - } else { + } + if (!editor + || Core::ICore::instance()->mimeDatabase()->findByFile(mainScript()).type() == QLatin1String("application/x-qmlproject")) { // find a qml file with lowercase filename. This is slow but only done in initialization/other border cases. foreach(const QString& filename, m_projectTarget->qmlProject()->files()) { const QFileInfo fi(filename); if (!filename.isEmpty() && fi.baseName()[0].isLower() - && Core::ICore::instance()->mimeDatabase()->findByFile(fi).matchesType(QLatin1String("application/x-qml"))) + && Core::ICore::instance()->mimeDatabase()->findByFile(fi).type() == QLatin1String("application/x-qml")) { m_currentFileFilename = filename; enable = true; -- GitLab