summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcon <qtc-committer@nokia.com>2010-04-30 16:39:05 +0200
committercon <qtc-committer@nokia.com>2010-04-30 16:39:05 +0200
commit4532087c904b7de5fbac98e11adf0112dbcc96c9 (patch)
treee61a9d481833916f6d3da87b8f9501fa4caf1af1
parent5560f5e2f16bb7a42ca39c7c56d642b64fcb5091 (diff)
parent78989998d5703a42d1cb567b7ac540490752d8c5 (diff)
downloadqt-creator-4532087c904b7de5fbac98e11adf0112dbcc96c9.tar.gz
Merge remote branch 'origin/2.0'
-rw-r--r--src/libs/qmljs/qmljscompletioncontextfinder.cpp3
-rw-r--r--src/libs/qmljs/qmljsindenter.cpp3
-rw-r--r--src/libs/qmljs/qmljslineinfo.cpp7
-rw-r--r--src/libs/qmljs/qmljslineinfo.h4
-rw-r--r--src/plugins/debugger/registerpostmortemaction.cpp2
-rw-r--r--src/plugins/qmljseditor/qmljscodecompletion.cpp1
-rw-r--r--src/plugins/qt4projectmanager/qt4projectmanagerconstants.h1
-rw-r--r--src/plugins/qt4projectmanager/qt4target.cpp9
-rw-r--r--src/plugins/qt4projectmanager/qtoptionspage.cpp2
-rw-r--r--src/plugins/qt4projectmanager/qtversionmanager.cpp35
-rw-r--r--src/plugins/qt4projectmanager/qtversionmanager.h2
-rw-r--r--src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp5
-rw-r--r--src/shared/registryaccess/registryaccess.cpp1
13 files changed, 67 insertions, 8 deletions
diff --git a/src/libs/qmljs/qmljscompletioncontextfinder.cpp b/src/libs/qmljs/qmljscompletioncontextfinder.cpp
index 0fd7ab856b..645472c220 100644
--- a/src/libs/qmljs/qmljscompletioncontextfinder.cpp
+++ b/src/libs/qmljs/qmljscompletioncontextfinder.cpp
@@ -31,6 +31,9 @@ CompletionContextFinder::CompletionContextFinder(const QTextCursor &cursor)
break;
}
+ if (m_startTokenIndex == yyLinizerState.tokens.size() - 1 && yyLinizerState.insertedSemicolon)
+ --m_startTokenIndex;
+
getQmlObjectTypeName(m_startTokenIndex);
checkBinding();
}
diff --git a/src/libs/qmljs/qmljsindenter.cpp b/src/libs/qmljs/qmljsindenter.cpp
index 49b95ebc86..ba941c0e07 100644
--- a/src/libs/qmljs/qmljsindenter.cpp
+++ b/src/libs/qmljs/qmljsindenter.cpp
@@ -569,6 +569,9 @@ int QmlJSIndenter::indentForStandaloneLine()
*/
int QmlJSIndenter::indentForBottomLine(QTextBlock begin, QTextBlock end, QChar typedIn)
{
+ if (begin == end)
+ return 0;
+
const QTextBlock last = end.previous();
initialize(begin, last);
diff --git a/src/libs/qmljs/qmljslineinfo.cpp b/src/libs/qmljs/qmljslineinfo.cpp
index 29f74443ad..5bae0d727c 100644
--- a/src/libs/qmljs/qmljslineinfo.cpp
+++ b/src/libs/qmljs/qmljslineinfo.cpp
@@ -208,6 +208,7 @@ QString LineInfo::trimmedCodeLine(const QString &t)
const Token sc(trimmed.size(), 1, Token::Semicolon);
yyLinizerState.tokens.append(sc);
trimmed.append(QLatin1Char(';'));
+ yyLinizerState.insertedSemicolon = true;
}
}
@@ -276,6 +277,8 @@ bool LineInfo::readLine()
(firstNonWhiteSpace(yyLinizerState.line) == QLatin1Char('{'));
do {
+ yyLinizerState.insertedSemicolon = false;
+
if (yyLinizerState.iter == yyProgram.firstBlock()) {
yyLinizerState.line.clear();
return false;
@@ -332,6 +335,7 @@ void LineInfo::startLinizer()
{
yyLinizerState.braceDepth = 0;
yyLinizerState.pendingRightBrace = false;
+ yyLinizerState.insertedSemicolon = false;
yyLine = &yyLinizerState.line;
yyBraceDepth = &yyLinizerState.braceDepth;
@@ -564,9 +568,6 @@ bool LineInfo::isContinuationLine()
void LineInfo::initialize(QTextBlock begin, QTextBlock end)
{
- if (begin == end)
- return;
-
yyProgram = Program(begin, end);
startLinizer();
}
diff --git a/src/libs/qmljs/qmljslineinfo.h b/src/libs/qmljs/qmljslineinfo.h
index 2112e313f0..8173f9ddc7 100644
--- a/src/libs/qmljs/qmljslineinfo.h
+++ b/src/libs/qmljs/qmljslineinfo.h
@@ -84,12 +84,14 @@ protected:
LinizerState()
: braceDepth(0),
leftBraceFollows(false),
- pendingRightBrace(false)
+ pendingRightBrace(false),
+ insertedSemicolon(false)
{ }
int braceDepth;
bool leftBraceFollows;
bool pendingRightBrace;
+ bool insertedSemicolon;
QString line;
QList<Token> tokens;
QTextBlock iter;
diff --git a/src/plugins/debugger/registerpostmortemaction.cpp b/src/plugins/debugger/registerpostmortemaction.cpp
index 4398a1d977..b18e09c2ac 100644
--- a/src/plugins/debugger/registerpostmortemaction.cpp
+++ b/src/plugins/debugger/registerpostmortemaction.cpp
@@ -79,6 +79,8 @@ RegisterPostMortemAction::RegisterPostMortemAction(QObject *parent) : Utils::Sav
void RegisterPostMortemAction::readSettings(const QSettings *)
{
+ Q_UNUSED(debuggerRegistryValueNameC); // avoid warning from MinGW
+
bool registered = false;
HKEY handle = 0;
QString errorMessage;
diff --git a/src/plugins/qmljseditor/qmljscodecompletion.cpp b/src/plugins/qmljseditor/qmljscodecompletion.cpp
index a5a5d15f57..aae8b16863 100644
--- a/src/plugins/qmljseditor/qmljscodecompletion.cpp
+++ b/src/plugins/qmljseditor/qmljscodecompletion.cpp
@@ -690,7 +690,6 @@ int CodeCompletion::startCompletion(TextEditor::ITextEditable *editor)
if (contextFinder.isInRhsOfBinding() && qmlScopeType) {
doQmlKeywordCompletion = false;
- qDebug() << "property name: " << contextFinder.bindingPropertyName();
if (!contextFinder.bindingPropertyName().isEmpty()) {
const Interpreter::Value *value = qmlScopeType;
diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
index 95181658a6..8633d8dcf3 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
+++ b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
@@ -96,6 +96,7 @@ const char * const DESKTOP_TARGET_ID("Qt4ProjectManager.Target.DesktopTarget");
const char * const S60_EMULATOR_TARGET_ID("Qt4ProjectManager.Target.S60EmulatorTarget");
const char * const S60_DEVICE_TARGET_ID("Qt4ProjectManager.Target.S60DeviceTarget");
const char * const MAEMO_DEVICE_TARGET_ID("Qt4ProjectManager.Target.MaemoDeviceTarget");
+const char * const QT_SIMULATOR_TARGET_ID("Qt4ProjectManager.Target.QtSimulatorTarget");
} // namespace Constants
} // namespace Qt4ProjectManager
diff --git a/src/plugins/qt4projectmanager/qt4target.cpp b/src/plugins/qt4projectmanager/qt4target.cpp
index 26cafa8ba1..784897f646 100644
--- a/src/plugins/qt4projectmanager/qt4target.cpp
+++ b/src/plugins/qt4projectmanager/qt4target.cpp
@@ -65,6 +65,8 @@ QString displayNameForId(const QString &id) {
return QApplication::translate("Qt4ProjectManager::Internal::Qt4Target", "Symbian Device", "Qt4 Symbian Device target display name");
if (id == QLatin1String(Constants::MAEMO_DEVICE_TARGET_ID))
return QApplication::translate("Qt4ProjectManager::Internal::Qt4Target", "Maemo", "Qt4 Maemo target display name");
+ if (id == QLatin1String(Constants::QT_SIMULATOR_TARGET_ID))
+ return QApplication::translate("Qt4ProjectManager::Internal::Qt4Target", "Qt Simulator", "Qt4 Simulator target display name");
return QString();
}
@@ -77,6 +79,8 @@ QIcon iconForId(const QString &id) {
return QIcon(":/projectexplorer/images/SymbianDevice.png");
if (id == QLatin1String(Constants::MAEMO_DEVICE_TARGET_ID))
return QIcon(":/projectexplorer/images/MaemoDevice.png");
+ if (id == QLatin1String(Constants::QT_SIMULATOR_TARGET_ID))
+ return QIcon(":/projectexplorer/images/SymbianEmulator.png");
return QIcon();
}
@@ -315,7 +319,8 @@ Qt4BuildConfigurationFactory *Qt4Target::buildConfigurationFactory() const
void Qt4Target::addRunConfigurationForPath(const QString &proFilePath)
{
- if (id() == QLatin1String(Constants::DESKTOP_TARGET_ID))
+ if (id() == QLatin1String(Constants::DESKTOP_TARGET_ID) ||
+ id() == QLatin1String(Constants::QT_SIMULATOR_TARGET_ID))
addRunConfiguration(new Qt4RunConfiguration(this, proFilePath));
else if (id() == QLatin1String(Constants::S60_EMULATOR_TARGET_ID))
addRunConfiguration(new S60EmulatorRunConfiguration(this, proFilePath));
@@ -370,6 +375,8 @@ QString Qt4Target::defaultBuildDirectory() const
shortName = QLatin1String("symbian");
else if (id() == QLatin1String(Constants::MAEMO_DEVICE_TARGET_ID))
shortName = QLatin1String("maemo");
+ else if (id() == QLatin1String(Constants::QT_SIMULATOR_TARGET_ID))
+ shortName = QLatin1String("simulator");
// currently we can't have the build directory to be deeper then the source directory
// since that is broken in qmake
diff --git a/src/plugins/qt4projectmanager/qtoptionspage.cpp b/src/plugins/qt4projectmanager/qtoptionspage.cpp
index 26b27def1c..12c42f4b85 100644
--- a/src/plugins/qt4projectmanager/qtoptionspage.cpp
+++ b/src/plugins/qt4projectmanager/qtoptionspage.cpp
@@ -528,6 +528,8 @@ void QtOptionsPageWidget::showEnvironmentPage(QTreeWidgetItem *item)
envs = tr("Symbian", "Qt Version is meant for Symbian");
else if (targets.contains(Constants::MAEMO_DEVICE_TARGET_ID))
envs = tr("Maemo", "Qt Version is meant for Maemo");
+ else if (targets.contains(Constants::QT_SIMULATOR_TARGET_ID))
+ envs = tr("Qt Simulator", "Qt Version is meant for Qt Simulator");
else
envs = tr("unkown", "No idea what this Qt Version is meant for!");
m_ui->errorLabel->setText(tr("Found Qt version %1, using mkspec %2 (%3)")
diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp
index b55b4b0729..b658c96b79 100644
--- a/src/plugins/qt4projectmanager/qtversionmanager.cpp
+++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp
@@ -47,6 +47,7 @@
#include <help/helpmanager.h>
#include <utils/qtcassert.h>
+#include <QtCore/QFile>
#include <QtCore/QProcess>
#include <QtCore/QSettings>
#include <QtCore/QTime>
@@ -1196,7 +1197,8 @@ bool QtVersion::supportsMobileTarget() const
{
return supportsTargetId(Constants::S60_DEVICE_TARGET_ID) ||
supportsTargetId(Constants::S60_EMULATOR_TARGET_ID) ||
- supportsTargetId(Constants::MAEMO_DEVICE_TARGET_ID);
+ supportsTargetId(Constants::MAEMO_DEVICE_TARGET_ID) ||
+ supportsTargetId(Constants::QT_SIMULATOR_TARGET_ID);
}
QList<QSharedPointer<ProjectExplorer::ToolChain> > QtVersion::toolChains() const
@@ -1420,6 +1422,31 @@ void QtVersion::updateToolChainAndMkspec() const
delete reader;
ProFileCacheManager::instance()->decRefCount();
m_toolChainUpToDate = true;
+
+ // Check qconfig.h for QT_SIMULATOR define on desktop builds and switch the
+ // Qt version to Qt simulator target:
+ if (m_targetIds.contains(Constants::DESKTOP_TARGET_ID)) {
+ QString path(headerInstallPath());
+ path.append(QLatin1String("/Qt/qconfig.h"));
+ QFile qconfig(path);
+ if (!qconfig.exists())
+ return;
+ qconfig.open(QIODevice::ReadOnly);
+ QTextStream stream(&qconfig);
+ QString line;
+ bool isSimulator = false;
+ while (!(line = stream.readLine()).isNull()) {
+ if (line.startsWith(QLatin1String("#define QT_SIMULATOR"))) {
+ isSimulator = true;
+ break;
+ }
+ }
+ qconfig.close();
+ if (isSimulator) {
+ m_targetIds.remove(QLatin1String(Constants::DESKTOP_TARGET_ID));
+ m_targetIds.insert(QLatin1String(Constants::QT_SIMULATOR_TARGET_ID));
+ }
+ }
}
QString QtVersion::mwcDirectory() const
@@ -1590,6 +1617,12 @@ QString QtVersion::demosPath() const
return m_versionInfo["QT_INSTALL_DEMOS"];
}
+QString QtVersion::headerInstallPath() const
+{
+ updateVersionInfo();
+ return m_versionInfo["QT_INSTALL_HEADERS"];
+}
+
bool QtVersion::hasExamples() const
{
updateVersionInfo();
diff --git a/src/plugins/qt4projectmanager/qtversionmanager.h b/src/plugins/qt4projectmanager/qtversionmanager.h
index 68e155348f..6ccacad406 100644
--- a/src/plugins/qt4projectmanager/qtversionmanager.h
+++ b/src/plugins/qt4projectmanager/qtversionmanager.h
@@ -123,6 +123,8 @@ public:
bool hasDemos() const;
QString demosPath() const;
+ QString headerInstallPath() const;
+
// All valid Ids are >= 0
int uniqueId() const;
bool isQt64Bit() const;
diff --git a/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp b/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp
index 61de3d88ca..dfe383e3fa 100644
--- a/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp
+++ b/src/plugins/qt4projectmanager/wizards/targetsetuppage.cpp
@@ -245,8 +245,11 @@ bool TargetSetupPage::setupProject(Qt4ProjectManager::Qt4Project *project)
if (!targetInfos.isEmpty())
target = project->targetFactory()->create(project, targetId, targetInfos);
- if (target)
+ if (target) {
project->addTarget(target);
+ if (target->id() == QLatin1String(Constants::QT_SIMULATOR_TARGET_ID))
+ project->setActiveTarget(target);
+ }
}
// Create the default target if nothing else was set up:
diff --git a/src/shared/registryaccess/registryaccess.cpp b/src/shared/registryaccess/registryaccess.cpp
index f4148d06d5..3b0c8ae90e 100644
--- a/src/shared/registryaccess/registryaccess.cpp
+++ b/src/shared/registryaccess/registryaccess.cpp
@@ -104,6 +104,7 @@ bool openRegistryKey(HKEY category, // HKEY_LOCAL_MACHINE, etc.
HKEY *keyHandle,
QString *errorMessage)
{
+ Q_UNUSED(debuggerRegistryKeyC); // avoid warning from MinGW
REGSAM accessRights = KEY_READ;
if (readWrite)