diff --git a/.gitignore b/.gitignore
index c1e0548149a..067d81b8729 100644
--- a/.gitignore
+++ b/.gitignore
@@ -34,6 +34,10 @@ Thumbs.db
*.embed.manifest
/.qmake.cache
/.qmake.stash
+*_wrapper.sh
+*_wrapper.bat
+wrapper.sh
+wrapper.bat
# qtcreator generated files
*.pro.user*
diff --git a/share/qtcreator/translations/qtcreator_ru.ts b/share/qtcreator/translations/qtcreator_ru.ts
index 0154b6c420f..ddd6ece543f 100644
--- a/share/qtcreator/translations/qtcreator_ru.ts
+++ b/share/qtcreator/translations/qtcreator_ru.ts
@@ -3752,40 +3752,6 @@ For example, "Revision: 15" will leave the branch at revision 15.Находится в %1
-
- ClangCodeModel::Internal::ClangProjectSettingsPropertiesPage
-
- Pre-compiled headers:
- Предкомпиляция:
-
-
- None
- Нет
-
-
- Build system (exact)
- Система сборки (точно)
-
-
- Build system (fuzzy)
- Система сборки (приближённо)
-
-
- Custom
- Особая
-
-
- Choose...
- Выбрать...
-
-
-
- ClangCodeModel::Internal::ClangProjectSettingsWidget
-
- Clang Settings
- Настройки Clang
-
-
ClangCodeModel::Internal::ModelManagerSupport
@@ -13230,10 +13196,6 @@ Do you want to retry?
Start Watching
Начинать наблюдение
-
- Close
- Закрыть
-
Kit:
Комплект:
@@ -24082,6 +24044,10 @@ Preselects a desktop Qt for building the application if available.
Qt Canvas 3D Application
Приложение Qt Canvas 3D
+
+ Qt 5.6
+ Qt 5.6
+
Qt 5.5
Qt 5.5
@@ -28819,10 +28785,6 @@ This is independent of the visibility property in QML.
QmlDesigner::QmlDesignerPlugin
-
- Cannot create OpenGL context.
- Не удалось создать контекст OpenGL.
-
Switch Text/Design
Переключить текст/дизайн
@@ -29784,10 +29746,6 @@ Please build the qmldump application on the Qt version options page.
Major version different from 1 not supported.
Версия с основным номером отличным от 1 не поддерживается.
-
- Reading only version 1.1 parts.
- Чтение разделов версии 1.1.
-
Expected document to contain a single object definition.
Требуется определение в документе ровно одного объекта.
@@ -29796,10 +29754,6 @@ Please build the qmldump application on the Qt version options page.
Expected document to contain a Module {} member.
В документе требуется наличие члена Module {}.
-
- Expected only Component and ModuleApi object definitions.
- Допустимы только определения объектов Component и ModuleApi.
-
Expected only Property, Method, Signal and Enum object definitions, not "%1".
Допустимы только определения объектов Property, Method, Signal и Enum, а не «%1».
@@ -30595,10 +30549,6 @@ references to elements in other files, loops, and so on.)
QmlProfiler::Internal::QmlProfilerPlugin
-
- Cannot create OpenGL context.
- Не удалось создать контекст OpenGL.
-
QML Profiler
Профайлер QML
@@ -31825,6 +31775,13 @@ cannot be found in the path.
Журнал сборки помощника отладчика
+
+ QtSupport::ProMessageHandler
+
+ [Inexact]
+ [Примерно]
+
+
QtSupport::QtKitInformation
@@ -38685,13 +38642,6 @@ should a repository require SSH-authentication (see documentation on SSH and the
Ошибка загрузки режима приветствия
-
- Welcome::Internal::WelcomePlugin
-
- Cannot create OpenGL context.
- Не удалось создать контекст OpenGL.
-
-
WidgetPluginManager
diff --git a/src/plugins/coreplugin/coreplugin.pro b/src/plugins/coreplugin/coreplugin.pro
index 2628f5d44df..bc9f76d109b 100644
--- a/src/plugins/coreplugin/coreplugin.pro
+++ b/src/plugins/coreplugin/coreplugin.pro
@@ -1,5 +1,5 @@
DEFINES += CORE_LIBRARY
-QT += gui-private \
+QT += \
help \
network \
printsupport \
diff --git a/src/plugins/projectexplorer/msvctoolchain.cpp b/src/plugins/projectexplorer/msvctoolchain.cpp
index 92bc5de99e8..8b7ecee5abc 100644
--- a/src/plugins/projectexplorer/msvctoolchain.cpp
+++ b/src/plugins/projectexplorer/msvctoolchain.cpp
@@ -540,6 +540,45 @@ static ToolChain *findOrCreateToolChain(const QList &alreadyKnown,
return tc;
}
+// Detect build tools introduced with MSVC2015
+static void detectCppBuildTools(QList *list)
+{
+ struct Entry {
+ const char *postFix;
+ const char *varsBatArg;
+ Abi::Architecture architecture;
+ Abi::BinaryFormat format;
+ unsigned char wordSize;
+ };
+
+ const Entry entries[] = {
+ {" (x86)", "x86", Abi::X86Architecture, Abi::PEFormat, 32},
+ {" (x64)", "amd64", Abi::X86Architecture, Abi::PEFormat, 64},
+ {" (x86_arm)", "x86_arm", Abi::ArmArchitecture, Abi::PEFormat, 32},
+ {" (x64_arm)", "amd64_arm", Abi::ArmArchitecture, Abi::PEFormat, 64}
+ };
+
+#ifdef Q_OS_WIN64
+ const char programFilesC[] = "ProgramFiles(x86)";
+#else
+ const char programFilesC[] = "ProgramFiles";
+#endif
+ const QString name = QStringLiteral("Microsoft Visual C++ Build Tools");
+ const QString vcVarsBat = QFile::decodeName(qgetenv(programFilesC))
+ + QLatin1Char('/') + name + QStringLiteral("/vcbuildtools.bat");
+ if (!QFileInfo(vcVarsBat).isFile())
+ return;
+ const size_t count = sizeof(entries) / sizeof(entries[0]);
+ for (size_t i = 0; i < count; ++i) {
+ const Entry &e = entries[i];
+ const Abi abi(e.architecture, Abi::WindowsOS, Abi::WindowsMsvc2015Flavor,
+ e.format, e.wordSize);
+ list->append(new MsvcToolChain(name + QLatin1String(e.postFix), abi,
+ vcVarsBat, QLatin1String(e.varsBatArg),
+ ToolChain::AutoDetection));
+ }
+}
+
QList MsvcToolChainFactory::autoDetect(const QList &alreadyKnown)
{
QList results;
@@ -630,6 +669,8 @@ QList MsvcToolChainFactory::autoDetect(const QList &al
}
}
+ detectCppBuildTools(&results);
+
return results;
}
diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp
index bd5b4a058de..8ba13de3d39 100644
--- a/src/plugins/texteditor/texteditor.cpp
+++ b/src/plugins/texteditor/texteditor.cpp
@@ -5488,6 +5488,14 @@ void TextEditorWidget::wheelEvent(QWheelEvent *e)
QPlainTextEdit::wheelEvent(e);
}
+static void showZoomIndicator(QWidget *editor, const int newZoom)
+{
+ Utils::FadingIndicator::showText(editor,
+ QCoreApplication::translate("TextEditor::TextEditorWidget",
+ "Zoom: %1%").arg(newZoom),
+ Utils::FadingIndicator::SmallText);
+}
+
void TextEditorWidget::zoomF(float delta)
{
d->clearVisibleFoldedBlock();
@@ -5499,14 +5507,13 @@ void TextEditorWidget::zoomF(float delta)
step = -1;
const int newZoom = TextEditorSettings::instance()->increaseFontZoom(int(step));
- Utils::FadingIndicator::showText(this,
- tr("Zoom: %1%").arg(newZoom),
- Utils::FadingIndicator::SmallText);
+ showZoomIndicator(this, newZoom);
}
void TextEditorWidget::zoomReset()
{
TextEditorSettings::instance()->resetFontZoom();
+ showZoomIndicator(this, 100);
}
TextEditorWidget::Link TextEditorWidget::findLinkAt(const QTextCursor &, bool, bool)
diff --git a/src/tools/clangbackend/clangbackendmain.cpp b/src/tools/clangbackend/clangbackendmain.cpp
index 641ec78f942..2a7e4e1804f 100644
--- a/src/tools/clangbackend/clangbackendmain.cpp
+++ b/src/tools/clangbackend/clangbackendmain.cpp
@@ -23,6 +23,7 @@
**
****************************************************************************/
+#include
#include
#include
@@ -30,6 +31,22 @@
#include
#include
+QString processArguments(QCoreApplication &application)
+{
+ QCommandLineParser parser;
+ parser.setApplicationDescription(QStringLiteral("Qt Creator Clang backend process."));
+ parser.addHelpOption();
+ parser.addVersionOption();
+ parser.addPositionalArgument(QStringLiteral("connection"), QStringLiteral("Connection"));
+
+ parser.process(application);
+
+ if (parser.positionalArguments().isEmpty())
+ parser.showHelp(1);
+
+ return parser.positionalArguments().first();
+}
+
int main(int argc, char *argv[])
{
QLoggingCategory::setFilterRules(QStringLiteral("*.debug=false"));
@@ -41,10 +58,7 @@ int main(int argc, char *argv[])
QCoreApplication application(argc, argv);
- if (application.arguments().count() != 2) {
- qWarning() << "wrong argument count";
- return 1;
- }
+ const QString connection = processArguments(application);
ClangBackEnd::Messages::registerMessages();
@@ -52,7 +66,7 @@ int main(int argc, char *argv[])
clang_enableStackTraces();
ClangBackEnd::ClangIpcServer clangIpcServer;
- ClangBackEnd::ConnectionServer connectionServer(application.arguments()[1]);
+ ClangBackEnd::ConnectionServer connectionServer(connection);
connectionServer.start();
connectionServer.setIpcServer(&clangIpcServer);
diff --git a/tests/system/shared/suites_qtta.py b/tests/system/shared/suites_qtta.py
index e58d1b11ef0..d465ea6aa46 100755
--- a/tests/system/shared/suites_qtta.py
+++ b/tests/system/shared/suites_qtta.py
@@ -59,12 +59,15 @@ def checkSyntaxError(issuesView, expectedTextsArray, warnIfMoreIssues = True):
return False
# change autocomplete options to manual
-def changeAutocompleteToManual():
+def changeAutocompleteToManual(toManual=True):
invokeMenuItem("Tools", "Options...")
mouseClick(waitForObjectItem(":Options_QListView", "Text Editor"), 5, 5, 0, Qt.LeftButton)
clickOnTab(":Options.qt_tabwidget_tabbar_QTabBar", "Completion")
- ensureChecked(waitForObject(":Behavior.Autocomplete common prefix_QCheckBox"), False)
- selectFromCombo(":Behavior.completionTrigger_QComboBox", "Manually")
+ ensureChecked(waitForObject(":Behavior.Autocomplete common prefix_QCheckBox"), not toManual)
+ activateCompletion = "Always"
+ if toManual:
+ activateCompletion = "Manually"
+ selectFromCombo(":Behavior.completionTrigger_QComboBox", activateCompletion)
verifyEnabled(":Options.OK_QPushButton")
clickButton(waitForObject(":Options.OK_QPushButton"))
diff --git a/tests/system/suite_CSUP/tst_CSUP01/test.py b/tests/system/suite_CSUP/tst_CSUP01/test.py
index 1c710b6e891..a75292833f3 100644
--- a/tests/system/suite_CSUP/tst_CSUP01/test.py
+++ b/tests/system/suite_CSUP/tst_CSUP01/test.py
@@ -43,57 +43,66 @@ def triggerCompletion(editorWidget):
# entry of test
def main():
- startApplication("qtcreator" + SettingsPath)
+ clangLoaded = startCreatorTryingClang()
if not startedWithoutPluginError():
return
# create qt quick application
# Step 1: Open test .pro project.
createNewQtQuickApplication(tempDir(), "SampleApp")
+ for useClang in set([False, clangLoaded]):
+ selectClangCodeModel(clangLoaded, useClang)
+ changeAutocompleteToManual(False)
# Step 2: Open .cpp file in Edit mode.
- if not openDocument("SampleApp.Sources.main\\.cpp"):
- test.fatal("Could not open main.cpp")
- invokeMenuItem("File", "Exit")
- return
- test.verify(checkIfObjectExists(":Qt Creator_CppEditor::Internal::CPPEditorWidget"),
- "Step 2: Verifying if: .cpp file is opened in Edit mode.")
+ if not openDocument("SampleApp.Sources.main\\.cpp"):
+ test.fatal("Could not open main.cpp")
+ invokeMenuItem("File", "Exit")
+ return
+ test.verify(checkIfObjectExists(":Qt Creator_CppEditor::Internal::CPPEditorWidget"),
+ "Step 2: Verifying if: .cpp file is opened in Edit mode.")
# Step 3: Insert text "re" to new line in Editor mode and press Ctrl+Space.
- editorWidget = findObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")
- if not placeCursorToLine(editorWidget, "QGuiApplication app(argc, argv);"):
- earlyExit("Did not find first line in function block.")
- return
- type(editorWidget, "")
- type(editorWidget, "re")
- triggerCompletion(editorWidget)
- waitForObjectItem(":popupFrame_Proposal_QListView", "register")
- doubleClickItem(":popupFrame_Proposal_QListView", "register", 5, 5, 0, Qt.LeftButton)
- test.compare(str(lineUnderCursor(editorWidget)).strip(), "register",
- "Step 3: Verifying if: The list of suggestions is opened. It is "
- "possible to select one of the suggestions.")
+ editorWidget = findObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")
+ if not placeCursorToLine(editorWidget, "QGuiApplication app(argc, argv);"):
+ earlyExit("Did not find first line in function block.")
+ return
+ type(editorWidget, "")
+ type(editorWidget, "re")
+ triggerCompletion(editorWidget)
+ waitForObjectItem(":popupFrame_Proposal_QListView", "realloc")
+ doubleClickItem(":popupFrame_Proposal_QListView", "realloc", 5, 5, 0, Qt.LeftButton)
+ test.compare(str(lineUnderCursor(editorWidget)).strip(), "realloc()",
+ "Step 3: Verifying if: The list of suggestions is opened. It is "
+ "possible to select one of the suggestions.")
# Step 4: Insert text "voi" to new line and press Tab.
- resetLine(editorWidget)
- type(editorWidget, "voi")
- waitForObjectItem(":popupFrame_Proposal_QListView", "void")
- type(waitForObject(":popupFrame_Proposal_QListView"), "")
- test.compare(str(lineUnderCursor(editorWidget)).strip(), "void",
- "Step 4: Verifying if: Word 'void' is completed because only one option is available.")
+ resetLine(editorWidget)
+ type(editorWidget, "voi")
+ waitForObjectItem(":popupFrame_Proposal_QListView", "void")
+ type(waitForObject(":popupFrame_Proposal_QListView"), "")
+ test.compare(str(lineUnderCursor(editorWidget)).strip(), "void",
+ "Step 4: Verifying if: Word 'void' is completed because only one option is available.")
# Step 5: From "Tools -> Options -> Text Editor -> Completion" select Activate completion Manually,
# uncheck Autocomplete common prefix and press Apply and then Ok . Return to Edit mode.
- test.log("Step 5: Change Code Completion settings")
- changeAutocompleteToManual()
+ test.log("Step 5: Change Code Completion settings")
+ changeAutocompleteToManual()
# Step 6: Insert text "ret" and press Ctrl+Space.
- editorWidget = waitForObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")
- resetLine(editorWidget)
- type(editorWidget, "ret")
- triggerCompletion(editorWidget)
- try:
- waitForObjectItem(":popupFrame_Proposal_QListView", "return")
- except:
- test.fail("Could not find proposal popup.")
- type(editorWidget, "")
- type(editorWidget, "")
- test.compare(str(lineUnderCursor(editorWidget)).strip(), "ret",
- "Step 6: Verifying if: Suggestion is displayed but text is not "
- "completed automatically even there is only one suggestion.")
+ editorWidget = waitForObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")
+ resetLine(editorWidget)
+ type(editorWidget, "retu")
+ triggerCompletion(editorWidget)
+ try:
+ proposal = "return"
+ if useClang:
+ # clang adds a whitespace because the function needs to return a value
+ proposal += " "
+ waitForObjectItem(":popupFrame_Proposal_QListView", proposal)
+ except:
+ test.fail("Could not find proposal popup.")
+ type(editorWidget, "")
+ type(editorWidget, "")
+ test.compare(str(lineUnderCursor(editorWidget)).strip(), "retu",
+ "Step 6: Verifying if: Suggestion is displayed but text is not "
+ "completed automatically even there is only one suggestion.")
+ invokeMenuItem('File', 'Revert "main.cpp" to Saved')
+ clickButton(waitForObject(":Revert to Saved.Proceed_QPushButton"))
# exit qt creator
invokeMenuItem("File", "Save All")
invokeMenuItem("File", "Exit")