aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLasse Holmstedt <lasse.holmstedt@nokia.com>2010-03-08 14:36:44 +0100
committercon <qtc-committer@nokia.com>2010-03-09 18:26:43 +0100
commitaa7c7738015b640239c151e56851cad2689f9643 (patch)
treecab42814ad7e996608fc43bb5312913a21317b77
parent90eb7c62611e130147ddb2577f06fe618eba0835 (diff)
QML project executable file to default to lowercase .qml file
Use a lowercase .qml file found in project tree if no current file is selected. This way we don't have to disable run controls if there are some files to execute. Reviewed-by: kkoehne (cherry picked from commit 61ca001e67d06ebebdca38b5af9ed4c513dd2a53)
-rw-r--r--src/plugins/qmlprojectmanager/qmlproject.cpp5
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp15
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h7
3 files changed, 26 insertions, 1 deletions
diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp
index 0cf210c5df..4f11072894 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.cpp
+++ b/src/plugins/qmlprojectmanager/qmlproject.cpp
@@ -31,6 +31,7 @@
#include "qmlprojectfile.h"
#include "qmlprojectmanagerconstants.h"
#include "fileformat/qmlprojectitem.h"
+#include "qmlprojectrunconfiguration.h"
#include <coreplugin/icore.h>
#include <coreplugin/messagemanager.h>
@@ -255,6 +256,10 @@ bool QmlProject::fromMap(const QVariantMap &map)
}
refresh(Everything);
+ // FIXME workaround to guarantee that run/debug actions are enabled if a valid file exists
+ QmlProjectRunConfiguration *runConfig = static_cast<QmlProjectRunConfiguration*>(activeTarget()->activeRunConfiguration());
+ runConfig->changeCurrentFile(0);
+
return true;
}
diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
index a8c21398b9..6efb6c9932 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
@@ -54,6 +54,7 @@ QmlProjectRunConfiguration::QmlProjectRunConfiguration(Internal::QmlProjectTarge
ProjectExplorer::RunConfiguration(parent, QLatin1String(Constants::QML_RC_ID)),
m_debugServerAddress("127.0.0.1"),
m_debugServerPort(Constants::QML_DEFAULT_DEBUG_SERVER_PORT),
+ m_projectTarget(parent),
m_usingCurrentFile(false),
m_isEnabled(false)
{
@@ -291,6 +292,20 @@ void QmlProjectRunConfiguration::changeCurrentFile(Core::IEditor *editor)
m_currentFileFilename = editor->file()->fileName();
if (Core::ICore::instance()->mimeDatabase()->findByFile(mainScript()).matchesType(QLatin1String("application/x-qml")))
enable = true;
+ } else {
+ // 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")))
+ {
+ m_currentFileFilename = filename;
+ enable = true;
+ break;
+ }
+
+ }
}
setEnabled(enable);
diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h
index 76efd3147e..12d61a071e 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h
+++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h
@@ -71,8 +71,11 @@ public:
QVariantMap toMap() const;
-private slots:
+public slots:
void changeCurrentFile(Core::IEditor*);
+
+private slots:
+
QString mainScript() const;
void setMainScript(const QString &scriptFile);
@@ -101,6 +104,8 @@ private:
QString m_debugServerAddress;
uint m_debugServerPort;
+ Internal::QmlProjectTarget *m_projectTarget;
+
bool m_usingCurrentFile;
bool m_isEnabled;