forked from qt-creator/qt-creator
QmlProject: Disable debug action if qmlobserver cannot be built
QmlObserver right now requires 4.7.1 minimum. There's no gain in telling the user that he needs qmlobserver to debug, if it can't be build with 4.7.0 anyway. Reviewed-by: Christiaan Janssen
This commit is contained in:
@@ -114,26 +114,22 @@ Internal::QmlProjectTarget *QmlProjectRunConfiguration::qmlTarget() const
|
||||
|
||||
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());
|
||||
|
||||
} 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());
|
||||
|
||||
} else {
|
||||
return version->qmlObserverTool();
|
||||
}
|
||||
}
|
||||
|
||||
QStringList QmlProjectRunConfiguration::viewerArguments() const
|
||||
@@ -162,6 +158,18 @@ QString QmlProjectRunConfiguration::workingDirectory() 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();
|
||||
@@ -381,10 +389,10 @@ void QmlProjectRunConfiguration::updateEnabled()
|
||||
bool newValue = (QFileInfo(viewerPath()).exists()
|
||||
|| QFileInfo(observerPath()).exists()) && qmlFileFound;
|
||||
|
||||
if (m_isEnabled != newValue) {
|
||||
|
||||
// Always emit change signal to force reevaluation of run/debug buttons
|
||||
m_isEnabled = newValue;
|
||||
emit isEnabledChanged(m_isEnabled);
|
||||
}
|
||||
}
|
||||
|
||||
void QmlProjectRunConfiguration::updateQtVersions()
|
||||
|
||||
@@ -74,6 +74,7 @@ public:
|
||||
QString observerPath() const;
|
||||
QStringList viewerArguments() const;
|
||||
QString workingDirectory() const;
|
||||
Qt4ProjectManager::QtVersion *qtVersion() const;
|
||||
|
||||
// RunConfiguration
|
||||
virtual QWidget *createConfigurationWidget();
|
||||
|
||||
@@ -43,6 +43,8 @@
|
||||
#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>
|
||||
@@ -148,9 +150,18 @@ bool QmlRunControlFactory::canRun(RunConfiguration *runConfiguration,
|
||||
} 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;
|
||||
|
||||
Reference in New Issue
Block a user