summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/images/qtcreator-build-environment.pngbin36598 -> 29575 bytes
-rw-r--r--doc/images/qtcreator-build-steps-custom.pngbin8338 -> 4254 bytes
-rw-r--r--doc/images/qtcreator-build-steps.pngbin16943 -> 14606 bytes
-rw-r--r--doc/images/qtcreator-clean-steps.pngbin6740 -> 6770 bytes
-rw-r--r--doc/images/qtcreator-disable-steps.pngbin0 -> 470 bytes
-rw-r--r--doc/images/qtcreator-movestep.pngbin357 -> 660 bytes
-rw-r--r--doc/images/qtcreator-projectpane.pngbin37808 -> 11818 bytes
-rw-r--r--doc/src/projects/creator-projects-settings-build.qdoc27
-rw-r--r--share/qtcreator/welcomescreen/widgets/SessionItem.qml1
-rw-r--r--src/app/main.cpp42
-rw-r--r--src/libs/3rdparty/cplusplus/Parser.cpp6
-rw-r--r--src/libs/utils/filenamevalidatinglineedit.cpp13
-rw-r--r--src/libs/utils/fileutils.cpp2
-rw-r--r--src/plugins/cmakeprojectmanager/makestep.cpp6
-rw-r--r--src/plugins/cpptools/cppfindreferences.cpp10
-rw-r--r--src/plugins/cpptools/cppmodelmanager.cpp13
-rw-r--r--src/plugins/genericprojectmanager/genericmakestep.cpp8
-rw-r--r--src/plugins/projectexplorer/abstractmsvctoolchain.cpp2
-rw-r--r--src/plugins/projectexplorer/session.cpp7
-rw-r--r--tests/auto/cplusplus/ast/tst_ast.cpp8
-rw-r--r--tests/system/settings/unix/Nokia/qtversion.xml12
-rw-r--r--tests/system/settings/windows/Nokia/qtversion.xml32
-rw-r--r--tests/system/shared/project.py4
-rw-r--r--tests/system/shared/project_explorer.py7
-rw-r--r--tests/system/suite_general/tst_build_speedcrunch/test.py11
25 files changed, 153 insertions, 58 deletions
diff --git a/doc/images/qtcreator-build-environment.png b/doc/images/qtcreator-build-environment.png
index 9818ebbc24..33b0a7b9e0 100644
--- a/doc/images/qtcreator-build-environment.png
+++ b/doc/images/qtcreator-build-environment.png
Binary files differ
diff --git a/doc/images/qtcreator-build-steps-custom.png b/doc/images/qtcreator-build-steps-custom.png
index ab9eef4b96..9f46ee7af7 100644
--- a/doc/images/qtcreator-build-steps-custom.png
+++ b/doc/images/qtcreator-build-steps-custom.png
Binary files differ
diff --git a/doc/images/qtcreator-build-steps.png b/doc/images/qtcreator-build-steps.png
index 1688209c70..5f03246e76 100644
--- a/doc/images/qtcreator-build-steps.png
+++ b/doc/images/qtcreator-build-steps.png
Binary files differ
diff --git a/doc/images/qtcreator-clean-steps.png b/doc/images/qtcreator-clean-steps.png
index 0814009d98..6946143f5c 100644
--- a/doc/images/qtcreator-clean-steps.png
+++ b/doc/images/qtcreator-clean-steps.png
Binary files differ
diff --git a/doc/images/qtcreator-disable-steps.png b/doc/images/qtcreator-disable-steps.png
new file mode 100644
index 0000000000..5fd83de9f9
--- /dev/null
+++ b/doc/images/qtcreator-disable-steps.png
Binary files differ
diff --git a/doc/images/qtcreator-movestep.png b/doc/images/qtcreator-movestep.png
index 59a3b21163..57e0f17ab6 100644
--- a/doc/images/qtcreator-movestep.png
+++ b/doc/images/qtcreator-movestep.png
Binary files differ
diff --git a/doc/images/qtcreator-projectpane.png b/doc/images/qtcreator-projectpane.png
index 782f21c942..f888b00cf3 100644
--- a/doc/images/qtcreator-projectpane.png
+++ b/doc/images/qtcreator-projectpane.png
Binary files differ
diff --git a/doc/src/projects/creator-projects-settings-build.qdoc b/doc/src/projects/creator-projects-settings-build.qdoc
index 86e876a06e..2b436a4a64 100644
--- a/doc/src/projects/creator-projects-settings-build.qdoc
+++ b/doc/src/projects/creator-projects-settings-build.qdoc
@@ -42,9 +42,6 @@
the final installation file.
You specify build settings in the \gui Projects mode.
-
- \image qtcreator-projectpane.png
-
To add a new build configuration, click \gui Add and select the type of
configuration you would like to add. You can add as many build
configurations as you need.
@@ -53,6 +50,8 @@
\section1 Editing Build Configurations
+ \image qtcreator-projectpane.png
+
To edit a build configuration:
\list 1
@@ -150,7 +149,7 @@
\image qtcreator-build-steps.png "Build steps"
- To override the shell command that \QC constructs by default, remove
+ To override the shell command that \QC constructs by default, disable or remove
the build step and add a custom build step that specifies another shell
command.
@@ -159,8 +158,9 @@
To add custom steps to the build settings, select \gui {Add Build Step >
Custom Process Step}.
- By default, custom steps are disabled. To activate a custom step, select
- the \gui{Enable custom process step} check-box.
+ By default, custom steps are enabled. To disable a custom step, select
+ the \inlineimage qtcreator-disable-steps.png
+ (\gui Disable) button.
\image qtcreator-build-steps-custom.png "Custom Process Step"
@@ -179,14 +179,14 @@
\o To add a clean step using make or a custom process, click
\gui{Add Clean Step} and select the type of step you want to add.
- By default, custom steps are disabled. To activate a custom step,
- select the \gui{Enable custom process step} check-box.
+ By default, custom steps are enabled. To disable a custom step,
+ select the \gui Disable button.
\o To remove a clean step, click \gui{Remove Item}.
\o To change the order of steps, click
\inlineimage qtcreator-movestep.png
- .
+ (\gui {Move Up} and \gui {Move Down}).
\endlist
\section1 Build Environment
@@ -214,4 +214,13 @@
compilers and tools need. Therefore, the environment is never totally empty,
even after you clear it.
+ \section1 Related Topics
+
+ \list
+
+ \o \l{Adding Qt Versions}
+ \o \l{Adding Tool Chains}
+
+ \endlist
+
*/
diff --git a/share/qtcreator/welcomescreen/widgets/SessionItem.qml b/share/qtcreator/welcomescreen/widgets/SessionItem.qml
index fb660c7ec3..20eaa3b0e3 100644
--- a/share/qtcreator/welcomescreen/widgets/SessionItem.qml
+++ b/share/qtcreator/welcomescreen/widgets/SessionItem.qml
@@ -177,6 +177,7 @@ Item {
Row {
x: 6
spacing: 4
+ visible: !defaultSession
Image { source: "images/icons/clone.png" }
LinkedText {
diff --git a/src/app/main.cpp b/src/app/main.cpp
index 612aadd055..0fbbc5e1b0 100644
--- a/src/app/main.cpp
+++ b/src/app/main.cpp
@@ -234,10 +234,6 @@ int main(int argc, char **argv)
QtSystemExceptionHandler systemExceptionHandler;
#endif
- QTranslator translator;
- QTranslator qtTranslator;
- QString locale = QLocale::system().name();
-
// Manually determine -settingspath command line option
// We can't use the regular way of the plugin manager, because that needs to parse pluginspecs
// but the settings path can influence which plugins are enabled
@@ -273,19 +269,37 @@ int main(int argc, char **argv)
pluginManager.setGlobalSettings(globalSettings);
pluginManager.setSettings(settings);
- locale = settings->value("General/OverrideLanguage", locale).toString();
+ QTranslator translator;
+ QTranslator qtTranslator;
+ QStringList uiLanguages;
+#if QT_VERSION >= 0x040800
+ uiLanguages = QLocale::system().uiLanguages();
+#else
+ uiLanguages << QLocale::system().name();
+#endif
+ QString overrideLanguage = settings->value("General/OverrideLanguage").toString();
+ if (!overrideLanguage.isEmpty())
+ uiLanguages.prepend(overrideLanguage);
const QString &creatorTrPath = QCoreApplication::applicationDirPath()
+ QLatin1String(SHARE_PATH "/translations");
- if (translator.load(QLatin1String("qtcreator_") + locale, creatorTrPath)) {
- const QString &qtTrPath = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
- const QString &qtTrFile = QLatin1String("qt_") + locale;
- // Binary installer puts Qt tr files into creatorTrPath
- if (qtTranslator.load(qtTrFile, qtTrPath) || qtTranslator.load(qtTrFile, creatorTrPath)) {
- app.installTranslator(&translator);
- app.installTranslator(&qtTranslator);
- app.setProperty("qtc_locale", locale);
- } else {
+ foreach (const QString &locale, uiLanguages) {
+ if (translator.load(QLatin1String("qtcreator_") + locale, creatorTrPath)) {
+ const QString &qtTrPath = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
+ const QString &qtTrFile = QLatin1String("qt_") + locale;
+ // Binary installer puts Qt tr files into creatorTrPath
+ if (qtTranslator.load(qtTrFile, qtTrPath) || qtTranslator.load(qtTrFile, creatorTrPath)) {
+ app.installTranslator(&translator);
+ app.installTranslator(&qtTranslator);
+ app.setProperty("qtc_locale", locale);
+ break;
+ }
translator.load(QString()); // unload()
+ } else if (locale == QLatin1String("C") /* overrideLanguage == "English" */) {
+ // use built-in
+ break;
+ } else if (locale.startsWith(QLatin1String("en")) /* "English" is built-in */) {
+ // use built-in
+ break;
}
}
diff --git a/src/libs/3rdparty/cplusplus/Parser.cpp b/src/libs/3rdparty/cplusplus/Parser.cpp
index 77d7a5e200..95fd714798 100644
--- a/src/libs/3rdparty/cplusplus/Parser.cpp
+++ b/src/libs/3rdparty/cplusplus/Parser.cpp
@@ -3638,11 +3638,9 @@ bool Parser::parseBuiltinTypeSpecifier(SpecifierListAST *&node)
DecltypeSpecifierAST *ast = new (_pool) DecltypeSpecifierAST;
ast->decltype_token = consumeToken();
match(T_LPAREN, &ast->lparen_token);
- if (parseExpression(ast->expression)) {
+ if (parseExpression(ast->expression))
match(T_RPAREN, &ast->rparen_token);
- node = new (_pool) SpecifierListAST(ast);
- return true;
- }
+ node = new (_pool) SpecifierListAST(ast);
skipUntilDeclaration();
return true;
} else if (lookAtBuiltinTypeSpecifier()) {
diff --git a/src/libs/utils/filenamevalidatinglineedit.cpp b/src/libs/utils/filenamevalidatinglineedit.cpp
index 4bbed5720f..a90356e190 100644
--- a/src/libs/utils/filenamevalidatinglineedit.cpp
+++ b/src/libs/utils/filenamevalidatinglineedit.cpp
@@ -95,14 +95,11 @@ void FileNameValidatingLineEdit::setForceFirstCapitalLetter(bool b)
/* Validate a file base name, check for forbidden characters/strings. */
-#ifdef Q_OS_WIN
-# define SLASHES "/\\"
-#else
-# define SLASHES "/"
-#endif
-
-static const char notAllowedCharsSubDir[] = "~!?:&*\"|#%<>$\"'();`' ";
-static const char notAllowedCharsNoSubDir[] = "~!?:&*\"|#%<>$\"'();`' "SLASHES;
+
+#define SLASHES "/\\"
+
+static const char notAllowedCharsSubDir[] = ",^@=+{}[]~!?:&*\"|#%<>$\"'();`' ";
+static const char notAllowedCharsNoSubDir[] = ",^@=+{}[]~!?:&*\"|#%<>$\"'();`' "SLASHES;
static const char *notAllowedSubStrings[] = {".."};
diff --git a/src/libs/utils/fileutils.cpp b/src/libs/utils/fileutils.cpp
index 3c201d31c7..cb62ca4172 100644
--- a/src/libs/utils/fileutils.cpp
+++ b/src/libs/utils/fileutils.cpp
@@ -62,7 +62,7 @@ namespace Utils {
bool FileUtils::removeRecursively(const QString &filePath, QString *error)
{
QFileInfo fileInfo(filePath);
- if (!fileInfo.exists())
+ if (!fileInfo.exists() && !fileInfo.isSymLink())
return true;
QFile::setPermissions(filePath, fileInfo.permissions() | QFile::WriteUser);
if (fileInfo.isDir()) {
diff --git a/src/plugins/cmakeprojectmanager/makestep.cpp b/src/plugins/cmakeprojectmanager/makestep.cpp
index 431b6c9dea..524ba5548a 100644
--- a/src/plugins/cmakeprojectmanager/makestep.cpp
+++ b/src/plugins/cmakeprojectmanager/makestep.cpp
@@ -249,7 +249,7 @@ MakeStepConfigWidget::MakeStepConfigWidget(MakeStep *makeStep)
// TODO update this list also on rescans of the CMakeLists.txt
// TODO shouldn't be accessing project
- CMakeProject *pro = m_makeStep->cmakeBuildConfiguration()->cmakeTarget()->cmakeProject();
+ CMakeProject *pro = static_cast<CMakeProject *>(m_makeStep->target()->project());
foreach (const QString& buildTarget, pro->buildTargetTitles()) {
QListWidgetItem *item = new QListWidgetItem(buildTarget, m_buildTargetsList);
item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
@@ -288,7 +288,7 @@ void MakeStepConfigWidget::buildTargetsChanged()
{
disconnect(m_buildTargetsList, SIGNAL(itemChanged(QListWidgetItem*)), this, SLOT(itemChanged(QListWidgetItem*)));
m_buildTargetsList->clear();
- CMakeProject *pro = m_makeStep->cmakeBuildConfiguration()->cmakeTarget()->cmakeProject();
+ CMakeProject *pro = static_cast<CMakeProject *>(m_makeStep->target()->project());
foreach (const QString& buildTarget, pro->buildTargetTitles()) {
QListWidgetItem *item = new QListWidgetItem(buildTarget, m_buildTargetsList);
item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
@@ -301,6 +301,8 @@ void MakeStepConfigWidget::buildTargetsChanged()
void MakeStepConfigWidget::updateDetails()
{
CMakeBuildConfiguration *bc = m_makeStep->cmakeBuildConfiguration();
+ if (!bc)
+ bc = static_cast<CMakeBuildConfiguration *>(m_makeStep->target()->activeBuildConfiguration());
ProjectExplorer::ToolChain *tc = bc->toolChain();
if (tc) {
QString arguments = Utils::QtcProcess::joinArgs(m_makeStep->m_buildTargets);
diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp
index 30e5690b7e..91676c6333 100644
--- a/src/plugins/cpptools/cppfindreferences.cpp
+++ b/src/plugins/cpptools/cppfindreferences.cpp
@@ -514,11 +514,13 @@ void CppFindReferences::cancel()
void CppFindReferences::openEditor(const Find::SearchResultItem &item)
{
if (item.path.size() > 0) {
- TextEditor::BaseTextEditorWidget::openEditorAt(item.path.first(), item.lineNumber, item.textMarkPos,
- Core::Id(),
- Core::EditorManager::ModeSwitch);
+ TextEditor::BaseTextEditorWidget::openEditorAt(QDir::fromNativeSeparators(item.path.first()),
+ item.lineNumber, item.textMarkPos,
+ Core::Id(),
+ Core::EditorManager::ModeSwitch);
} else {
- Core::EditorManager::instance()->openEditor(item.text, Core::Id(), Core::EditorManager::ModeSwitch);
+ Core::EditorManager::instance()->openEditor(QDir::fromNativeSeparators(item.text),
+ Core::Id(), Core::EditorManager::ModeSwitch);
}
}
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index c5032e5ba5..f5a721adf8 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -812,12 +812,21 @@ QStringList CppModelManager::internalFrameworkPaths() const
QByteArray CppModelManager::internalDefinedMacros() const
{
QByteArray macros;
+ QSet<QByteArray> alreadyIn;
QMapIterator<ProjectExplorer::Project *, ProjectInfo> it(m_projects);
while (it.hasNext()) {
it.next();
ProjectInfo pinfo = it.value();
- foreach (const ProjectPart::Ptr &part, pinfo.projectParts())
- macros += part->defines;
+ foreach (const ProjectPart::Ptr &part, pinfo.projectParts()) {
+ const QList<QByteArray> defs = part->defines.split('\n');
+ foreach (const QByteArray &def, defs) {
+ if (!alreadyIn.contains(def)) {
+ macros += def;
+ macros.append('\n');
+ alreadyIn.insert(def);
+ }
+ }
+ }
}
return macros;
}
diff --git a/src/plugins/genericprojectmanager/genericmakestep.cpp b/src/plugins/genericprojectmanager/genericmakestep.cpp
index 5a6d782ee4..57bb1d49b0 100644
--- a/src/plugins/genericprojectmanager/genericmakestep.cpp
+++ b/src/plugins/genericprojectmanager/genericmakestep.cpp
@@ -110,6 +110,8 @@ GenericBuildConfiguration *GenericMakeStep::genericBuildConfiguration() const
bool GenericMakeStep::init()
{
GenericBuildConfiguration *bc = genericBuildConfiguration();
+ if (!bc)
+ bc = static_cast<GenericBuildConfiguration *>(target()->activeBuildConfiguration());
ProjectExplorer::ProcessParameters *pp = processParameters();
pp->setMacroExpander(bc->macroExpander());
@@ -173,7 +175,7 @@ QString GenericMakeStep::makeCommand() const
{
QString command = m_makeCommand;
if (command.isEmpty()) {
- GenericProject *pro = genericBuildConfiguration()->genericTarget()->genericProject();
+ GenericProject *pro = static_cast<GenericProject *>(target()->project());
if (ProjectExplorer::ToolChain *toolChain = pro->toolChain())
command = toolChain->makeCommand();
else
@@ -224,7 +226,7 @@ GenericMakeStepConfigWidget::GenericMakeStepConfigWidget(GenericMakeStep *makeSt
m_ui->setupUi(this);
// TODO update this list also on rescans of the GenericLists.txt
- GenericProject *pro = m_makeStep->genericBuildConfiguration()->genericTarget()->genericProject();
+ GenericProject *pro = static_cast<GenericProject *>(m_makeStep->target()->project());
foreach (const QString &target, pro->buildTargets()) {
QListWidgetItem *item = new QListWidgetItem(target, m_ui->targetsList);
item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
@@ -263,6 +265,8 @@ void GenericMakeStepConfigWidget::updateMakeOverrrideLabel()
void GenericMakeStepConfigWidget::updateDetails()
{
GenericBuildConfiguration *bc = m_makeStep->genericBuildConfiguration();
+ if (!bc)
+ bc = static_cast<GenericBuildConfiguration *>(m_makeStep->target()->activeBuildConfiguration());
ProjectExplorer::ProcessParameters param;
param.setMacroExpander(bc->macroExpander());
diff --git a/src/plugins/projectexplorer/abstractmsvctoolchain.cpp b/src/plugins/projectexplorer/abstractmsvctoolchain.cpp
index 136bef3069..4bb17b044e 100644
--- a/src/plugins/projectexplorer/abstractmsvctoolchain.cpp
+++ b/src/plugins/projectexplorer/abstractmsvctoolchain.cpp
@@ -203,7 +203,7 @@ bool AbstractMsvcToolChain::generateEnvironmentSettings(Utils::Environment &env,
Utils::TempFileSaver saver(QDir::tempPath() + QLatin1String("/XXXXXX.bat"));
QByteArray call = "call ";
- call += Utils::QtcProcess::quoteArg(batchFile).toLocal8Bit() + "\r\n";
+ call += Utils::QtcProcess::quoteArg(batchFile).toLocal8Bit();
if (!batchArgs.isEmpty()) {
call += ' ';
call += batchArgs.toLocal8Bit();
diff --git a/src/plugins/projectexplorer/session.cpp b/src/plugins/projectexplorer/session.cpp
index 103bf494c2..1b5d590511 100644
--- a/src/plugins/projectexplorer/session.cpp
+++ b/src/plugins/projectexplorer/session.cpp
@@ -285,11 +285,6 @@ void SessionManager::addProjects(const QList<Project*> &projects)
if (clearedList.count() == 1)
emit singleProjectAdded(clearedList.first());
-
- // maybe we have a new startup project?
- if (!startupProject())
- if (!m_projects.isEmpty())
- setStartupProject(m_projects.first());
}
void SessionManager::removeProject(Project *project)
@@ -759,7 +754,7 @@ void SessionManager::restoreStartupProject(const Utils::PersistentSettingsReader
const QString startupProjectPath = startupProject;
foreach (Project *pro, m_projects) {
if (QDir::cleanPath(pro->document()->fileName()) == startupProjectPath) {
- setStartupProject(m_startupProject);
+ setStartupProject(pro);
break;
}
}
diff --git a/tests/auto/cplusplus/ast/tst_ast.cpp b/tests/auto/cplusplus/ast/tst_ast.cpp
index 13f90d2a29..6f5e349f70 100644
--- a/tests/auto/cplusplus/ast/tst_ast.cpp
+++ b/tests/auto/cplusplus/ast/tst_ast.cpp
@@ -101,6 +101,7 @@ private slots:
void gcc_attributes_1();
void gcc_attributes_2();
void gcc_attributes_3();
+ void crash_test_1();
// expressions
void simple_name_1();
@@ -212,6 +213,13 @@ void tst_AST::gcc_attributes_3()
QCOMPARE(unit->tokenKind(link->rbrace_token), (int) T_RBRACE);
}
+void tst_AST::crash_test_1()
+{
+ QSharedPointer<TranslationUnit> unit(parseStatement("decltype auto\n"));
+ AST *ast = unit->ast();
+ QVERIFY(ast);
+}
+
void tst_AST::simple_declaration_1()
{
QSharedPointer<TranslationUnit> unit(parseStatement("\n"
diff --git a/tests/system/settings/unix/Nokia/qtversion.xml b/tests/system/settings/unix/Nokia/qtversion.xml
index a06c086f4f..8d8ce4b3c7 100644
--- a/tests/system/settings/unix/Nokia/qtversion.xml
+++ b/tests/system/settings/unix/Nokia/qtversion.xml
@@ -54,8 +54,18 @@
</valuemap>
</data>
<data>
+ <variable>QtVersion.5</variable>
+ <valuemap type="QVariantMap">
+ <value type="int" key="Id">2</value>
+ <value type="QString" key="Name">Desktop Qt 4.8 for GCC (Qt SDK)</value>
+ <value type="QString" key="QMakePath">~/QtSDK/Desktop/Qt/4.8.0/gcc/bin/qmake</value>
+ <value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Desktop</value>
+ <value type="bool" key="isAutodetected">false</value>
+ </valuemap>
+ </data>
+ <data>
<variable>QtVersion.Count</variable>
- <value type="int">5</value>
+ <value type="int">6</value>
</data>
<data>
<variable>Version</variable>
diff --git a/tests/system/settings/windows/Nokia/qtversion.xml b/tests/system/settings/windows/Nokia/qtversion.xml
index c368196718..cfc45474e6 100644
--- a/tests/system/settings/windows/Nokia/qtversion.xml
+++ b/tests/system/settings/windows/Nokia/qtversion.xml
@@ -108,8 +108,38 @@
</valuemap>
</data>
<data>
+ <variable>QtVersion.9</variable>
+ <valuemap type="QVariantMap">
+ <value type="int" key="Id">1</value>
+ <value type="QString" key="Name">Qt 4.8 for Desktop - MSVC2008 (Qt SDK)</value>
+ <value type="QString" key="QMakePath">C:/QtSDK/Desktop/Qt/4.8.0/msvc2008/bin/qmake.exe</value>
+ <value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Desktop</value>
+ <value type="bool" key="isAutodetected">false</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>QtVersion.10</variable>
+ <valuemap type="QVariantMap">
+ <value type="int" key="Id">2</value>
+ <value type="QString" key="Name">Qt 4.8 for Desktop - MSVC2010 (Qt SDK)</value>
+ <value type="QString" key="QMakePath">C:/QtSDK/Desktop/Qt/4.8.0/msvc2010/bin/qmake.exe</value>
+ <value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Desktop</value>
+ <value type="bool" key="isAutodetected">false</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>QtVersion.10</variable>
+ <valuemap type="QVariantMap">
+ <value type="int" key="Id">3</value>
+ <value type="QString" key="Name">Qt 4.8 for Desktop - MinGW (Qt SDK)</value>
+ <value type="QString" key="QMakePath">C:/QtSDK/Desktop/Qt/4.8.0/mingw/bin/qmake.exe</value>
+ <value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Desktop</value>
+ <value type="bool" key="isAutodetected">false</value>
+ </valuemap>
+ </data>
+ <data>
<variable>QtVersion.Count</variable>
- <value type="int">9</value>
+ <value type="int">12</value>
</data>
<data>
<variable>Version</variable>
diff --git a/tests/system/shared/project.py b/tests/system/shared/project.py
index 7aff291bf3..fc039880b6 100644
--- a/tests/system/shared/project.py
+++ b/tests/system/shared/project.py
@@ -11,11 +11,12 @@ def __handleProcessExited__(object, exitCode):
global processExited
processExited = True
-def openQmakeProject(projectPath):
+def openQmakeProject(projectPath, targets=QtQuickConstants.Targets.DESKTOP):
invokeMenuItem("File", "Open File or Project...")
selectFromFileDialog(projectPath)
selectFromCombo(waitForObject(":Qt Creator.Create Build Configurations:_QComboBox", 180000),
"For Each Qt Version One Debug And One Release")
+ __chooseTargets__(targets)
configureButton = waitForObject("{text='Configure Project' type='QPushButton' unnamed='1' visible='1'"
"window=':Qt Creator_Core::Internal::MainWindow'}", 20000)
clickButton(configureButton)
@@ -271,6 +272,7 @@ def __chooseTargets__(targets=QtQuickConstants.Targets.DESKTOP, availableTargets
QtQuickConstants.Targets.SIMULATOR, QtQuickConstants.Targets.HARMATTAN]
if platform.system() in ('Windows', 'Microsoft'):
available += [QtQuickConstants.Targets.SYMBIAN]
+ available.remove(QtQuickConstants.Targets.EMBEDDED_LINUX)
for current in available:
mustCheck = targets & current == current
try:
diff --git a/tests/system/shared/project_explorer.py b/tests/system/shared/project_explorer.py
index 92055a9fee..643182f3f4 100644
--- a/tests/system/shared/project_explorer.py
+++ b/tests/system/shared/project_explorer.py
@@ -2,11 +2,14 @@ import re;
# this function switches the MainWindow of creator to the specified view
def switchViewTo(view):
+ # make sure that no tooltip is shown, so move the mouse away and wait until all disappear
+ mouseMove(waitForObject(':Qt Creator_Core::Internal::MainWindow'), -20, -20)
+ waitFor("not QToolTip.isVisible()", 15000)
if view < ViewConstants.WELCOME or view > ViewConstants.LAST_AVAILABLE:
return
tabBar = waitForObject("{type='Core::Internal::FancyTabBar' unnamed='1' visible='1' "
"window=':Qt Creator_Core::Internal::MainWindow'}")
- mouseMove(tabBar, 10, 10 + 52 * view)
+ mouseMove(tabBar, 20, 20 + 52 * view)
if waitFor("QToolTip.isVisible()", 10000):
text = str(QToolTip.text())
else:
@@ -18,7 +21,7 @@ def switchViewTo(view):
else:
test.warning("ToolTip does not match", "Expected pattern: %s\nGot: %s" % (pattern, text))
mouseClick(waitForObject("{type='Core::Internal::FancyTabBar' unnamed='1' visible='1' "
- "window=':Qt Creator_Core::Internal::MainWindow'}"), 5, 5 + 52 * view, 0, Qt.LeftButton)
+ "window=':Qt Creator_Core::Internal::MainWindow'}"), 20, 20 + 52 * view, 0, Qt.LeftButton)
# this function is used to make sure that simple building prerequisites are met
# param targetCount specifies how many build targets had been selected (it's important that this one is correct)
diff --git a/tests/system/suite_general/tst_build_speedcrunch/test.py b/tests/system/suite_general/tst_build_speedcrunch/test.py
index a977de109b..cd2c09879a 100644
--- a/tests/system/suite_general/tst_build_speedcrunch/test.py
+++ b/tests/system/suite_general/tst_build_speedcrunch/test.py
@@ -1,4 +1,5 @@
source("../../shared/qtcreator.py")
+import re
SpeedCrunchPath = ""
@@ -25,7 +26,17 @@ def main():
fancyToolButton = waitForObject(":*Qt Creator_Core::Internal::FancyToolButton")
+ qtVerPattern = re.compile("\d\.\d(\.\d+)?")
for config in iterateBuildConfigs(1, 0, "(Desktop )?Qt.*Release"):
+ qtVersion = qtVerPattern.search(config)
+ if qtVersion:
+ qtVersion = qtVersion.group()
+ if qtVersion >= "4.8":
+ test.log("Skipping config %s - this project needs Qt <= 4.7.x (got %s)" % (config, qtVersion))
+ continue
+ else:
+ test.warning("Could not determine Qt version for config '%s' - skipping..." % config)
+ continue
selectBuildConfig(1, 0, config)
buildConfig = buildConfigFromFancyToolButton(fancyToolButton)
if buildConfig != config: