QString QmlProjectRunConfiguration::viewerPath() const
{
- if (m_qtVersionId == -1)
+ Qt4ProjectManager::QtVersion *version = qtVersion();
+ if (!version) {
return QString();
-
- Qt4ProjectManager::QtVersionManager *versionManager = Qt4ProjectManager::QtVersionManager::instance();
- Qt4ProjectManager::QtVersion *version = versionManager->version(m_qtVersionId);
- QTC_ASSERT(version, return QString());
-
- return version->qmlviewerCommand();
+ } else {
+ return version->qmlviewerCommand();
+ }
}
QString QmlProjectRunConfiguration::observerPath() const
{
- if (m_qtVersionId == -1)
+ Qt4ProjectManager::QtVersion *version = qtVersion();
+ if (!version) {
return QString();
-
- Qt4ProjectManager::QtVersionManager *versionManager = Qt4ProjectManager::QtVersionManager::instance();
- Qt4ProjectManager::QtVersion *version = versionManager->version(m_qtVersionId);
- QTC_ASSERT(version, return QString());
-
- return version->qmlObserverTool();
+ } else {
+ return version->qmlObserverTool();
+ }
}
QStringList QmlProjectRunConfiguration::viewerArguments() const
return projectFile.absolutePath();
}
+Qt4ProjectManager::QtVersion *QmlProjectRunConfiguration::qtVersion() const
+{
+ if (m_qtVersionId == -1)
+ return 0;
+
+ Qt4ProjectManager::QtVersionManager *versionManager = Qt4ProjectManager::QtVersionManager::instance();
+ Qt4ProjectManager::QtVersion *version = versionManager->version(m_qtVersionId);
+ QTC_ASSERT(version, return 0);
+
+ return version;
+}
+
static bool caseInsensitiveLessThan(const QString &s1, const QString &s2)
{
return s1.toLower() < s2.toLower();
bool newValue = (QFileInfo(viewerPath()).exists()
|| QFileInfo(observerPath()).exists()) && qmlFileFound;
- if (m_isEnabled != newValue) {
- m_isEnabled = newValue;
- emit isEnabledChanged(m_isEnabled);
- }
+
+ // Always emit change signal to force reevaluation of run/debug buttons
+ m_isEnabled = newValue;
+ emit isEnabledChanged(m_isEnabled);
}
void QmlProjectRunConfiguration::updateQtVersions()
#include <debugger/debuggeruiswitcher.h>
#include <debugger/debuggerengine.h>
#include <qmljsinspector/qmljsinspectorconstants.h>
+#include <qt4projectmanager/qtversionmanager.h>
+#include <qt4projectmanager/qmlobservertool.h>
#include <qt4projectmanager/qt4projectmanagerconstants.h>
#include <QApplication>
} else {
bool qmlDebugSupportInstalled = Debugger::DebuggerUISwitcher::instance()->supportedLanguages()
& Debugger::QmlLanguage;
- // don't check for qmlobserver already here because we can't update the run buttons
- // if it has been built in the meantime
- return (config != 0) && qmlDebugSupportInstalled;
+
+ if (config && qmlDebugSupportInstalled) {
+ if (!config->observerPath().isEmpty()) {
+ return true;
+ }
+
+ if (config->qtVersion() && Qt4ProjectManager::QmlObserverTool::canBuild(config->qtVersion())) {
+ return true;
+ } else {
+ return false;
+ }
+ }
}
return false;