From 690153786e0585652987a924bdfe579a487ca67d Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Mon, 11 Aug 2014 15:55:13 +0200 Subject: [PATCH 01/44] Squish: Provide test for ClangCodeModel plugin Change-Id: I4bf45cf838baa89b558292ca9d08ec184e80c20d Reviewed-by: Robert Loehning --- tests/system/README | 2 + tests/system/suite_CSUP/suite.conf | 2 +- tests/system/suite_CSUP/tst_CSUP06/test.py | 217 +++++++++++++++++++++ 3 files changed, 220 insertions(+), 1 deletion(-) create mode 100644 tests/system/suite_CSUP/tst_CSUP06/test.py diff --git a/tests/system/README b/tests/system/README index d09f3239fdf..9f0b951a1c2 100644 --- a/tests/system/README +++ b/tests/system/README @@ -28,6 +28,8 @@ Fifth - you'll have to make sure that some needed tools are available (no matter * wget or curl, capable of HTTPS Normally it should be okay to just install them as usual and add their executables' path(s) to the PATH variable. +Sixth - Qt Creator should be built with ClangCodeModel plugin. +How to do so, see QTCREATOR_REPO/src/plugins/clangcodemodel/README. Attention! If any of these prerequisites cannot be satisfied the tests will likely fail (or not run at all). diff --git a/tests/system/suite_CSUP/suite.conf b/tests/system/suite_CSUP/suite.conf index 0ce87868358..83a7d216472 100644 --- a/tests/system/suite_CSUP/suite.conf +++ b/tests/system/suite_CSUP/suite.conf @@ -7,6 +7,6 @@ HOOK_SUB_PROCESSES=false IMPLICITAUTSTART=0 LANGUAGE=Python OBJECTMAP=../objects.map -TEST_CASES=tst_CSUP01 tst_CSUP02 tst_CSUP03 tst_CSUP04 tst_CSUP05 +TEST_CASES=tst_CSUP01 tst_CSUP02 tst_CSUP03 tst_CSUP04 tst_CSUP05 tst_CSUP06 VERSION=2 WRAPPERS=Qt diff --git a/tests/system/suite_CSUP/tst_CSUP06/test.py b/tests/system/suite_CSUP/tst_CSUP06/test.py new file mode 100644 index 00000000000..92e34febef3 --- /dev/null +++ b/tests/system/suite_CSUP/tst_CSUP06/test.py @@ -0,0 +1,217 @@ +############################################################################# +## +## Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +## Contact: http://www.qt-project.org/legal +## +## This file is part of Qt Creator. +## +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and Digia. For licensing terms and +## conditions see http://qt.digia.com/licensing. For further information +## use the contact form at http://qt.digia.com/contact-us. +## +## GNU Lesser General Public License Usage +## Alternatively, this file may be used under the terms of the GNU Lesser +## General Public License version 2.1 as published by the Free Software +## Foundation and appearing in the file LICENSE.LGPL included in the +## packaging of this file. Please review the following information to +## ensure the GNU Lesser General Public License version 2.1 requirements +## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## In addition, as a special exception, Digia gives you certain additional +## rights. These rights are described in the Digia Qt LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +############################################################################# + +source("../../shared/qtcreator.py") + +def makeClangDefaultCodeModel(pluginAvailable): + invokeMenuItem("Tools", "Options...") + waitForObjectItem(":Options_QListView", "C++") + clickItem(":Options_QListView", "C++", 14, 15, 0, Qt.LeftButton) + clickOnTab(":Options.qt_tabwidget_tabbar_QTabBar", "Code Model") + expectedObjNames = ['cChooser', 'cppChooser', 'objcChooser', 'objcppChooser', 'hChooser'] + for exp in expectedObjNames: + test.verify(checkIfObjectExists("{type='QComboBox' name='%s' visible='1'}" % exp), + "Verifying whether combobox '%s' exists." % exp) + combo = findObject("{type='QComboBox' name='%s' visible='1'}" % exp) + if test.verify(combo.enabled == pluginAvailable, "Verifying whether combobox is enabled."): + if test.compare(combo.currentText, "Qt Creator Built-in", + "Verifying whether default is Qt Creator's builtin code model"): + items = dumpItems(combo.model()) + if (pluginAvailable and + test.verify("Clang" in items, + "Verifying whether clang code model can be chosen.")): + selectFromCombo(combo, "Clang") + test.verify(verifyChecked("{name='ignorePCHCheckBox' type='QCheckBox' visible='1'}"), + "Verifying whether 'Ignore pre-compiled headers' is checked by default.") + clickButton(waitForObject(":Options.OK_QPushButton")) + +def moveDownToNextNonEmptyLine(editor): + currentLine = "" # there's no do-while in python - so use empty line which fails + while not currentLine: + type(editor, "") + currentLine = str(lineUnderCursor(editor)).strip() + return currentLine + +def performAutoCompletionTest(editor, lineToStartRegEx, linePrefix, testFunc, *funcArgs): + if platform.system() == "Darwin": + bol = "" + eol = "" + autoComp = "" + else: + bol = "" + eol = "" + autoComp = "" + + if not placeCursorToLine(editor, lineToStartRegEx, True): + return + type(editor, bol) + # place cursor onto the first statement to be tested + while not str(lineUnderCursor(editor)).strip().startswith(linePrefix): + type(editor, "") + currentLine = str(lineUnderCursor(editor)).strip() + while currentLine.startswith(linePrefix): + type(editor, eol) + type(editor, "") # uncomment current line + type(editor, autoComp) # invoke auto-completion + testFunc(currentLine, *funcArgs) + type(editor, "") # comment current line again + type(editor, bol) + currentLine = moveDownToNextNonEmptyLine(editor) + +def checkIncludeCompletion(editor): + test.log("Check auto-completion of include statements.") + # define special handlings + noProposal = ["vec", "detail/hea", "dum"] + specialHandling = {"ios":"iostream", "cstd":"cstdio"} + if platform.system() in ('Microsoft', 'Windows'): + missing = ["lin"] + elif platform.system() == "Darwin": + missing = ["lin", "Win"] + noProposal.remove("vec") + else: + missing = ["Win"] + + # define test function to perform the _real_ auto completion test on the current line + def testIncl(currentLine, *args): + missing, noProposal, specialHandling = args + inclSnippet = currentLine.split("//#include")[-1].strip().strip('<"') + propShown = waitFor("object.exists(':popupFrame_TextEditor::GenericProposalWidget')", 2500) + test.compare(not propShown, inclSnippet in missing or inclSnippet in noProposal, + "Proposal widget is (not) shown as expected (%s)" % inclSnippet) + if propShown: + proposalListView = waitForObject(':popupFrame_Proposal_QListView') + if inclSnippet in specialHandling: + doubleClickItem(':popupFrame_Proposal_QListView', specialHandling[inclSnippet], + 5, 5, 0, Qt.LeftButton) + else: + type(proposalListView, "") + changedLine = str(lineUnderCursor(editor)).strip() + if inclSnippet in missing: + test.compare(changedLine, currentLine.lstrip("/"), "Include has not been modified.") + else: + test.verify(changedLine.endswith('>') or changedLine.endswith('"'), + "'%s' has been completed to '%s'" % (currentLine.lstrip("/"), changedLine)) + + performAutoCompletionTest(editor, ".*Complete includes.*", "//#include", + testIncl, missing, noProposal, specialHandling) + +def checkSymbolCompletion(editor, isClangCodeModel): + test.log("Check auto-completion of symbols.") + # define special handlings + expectedSuggestion = {"in":["internal", "int", "INT_MAX", "INT_MIN"], + "Dum":["Dummy", "dummy"], "Dummy::O":["ONE","one"], + "dummy.":["foo", "bla", "ONE", "one", "PI", "sfunc", "v1", "v2", "v3"], + "dummy.o":["one", "ONE"], "Dummy::In":["Internal", "INT"], + "Dummy::Internal::":["DOUBLE", "one"] + } + missing = ["Dummy::s", "Dummy::P", "dummy.b", "dummy.bla(", "internal.o", "freefunc2", + "using namespace st", "afun"] + expectedResults = {"dummy.":"dummy.foo(", "Dummy::s":"Dummy::sfunc()", + "Dummy::P":"Dummy::PI", "dummy.b":"dummy.bla(", "dummy.bla(":"dummy.bla(", + "internal.o":"internal.one", "freefunc2":"freefunc2(", + "using namespace st":"using namespace std", "afun":"afunc()"} + if not isClangCodeModel: + expectedSuggestion["using namespace st"] = ["std", "st"] + missing.remove("using namespace st") + elif platform.system() in ('Microsoft', 'Windows'): + expectedSuggestion["using namespace st"] = ["std", "stdext"] + missing.remove("using namespace st") + # define test function to perform the _real_ auto completion test on the current line + def testSymb(currentLine, *args): + missing, expectedSug, expectedRes = args + symbol = currentLine.lstrip("/").strip() + propShown = waitFor("object.exists(':popupFrame_TextEditor::GenericProposalWidget')", 2500) + test.compare(not propShown, symbol in missing, + "Proposal widget is (not) shown as expected (%s)" % symbol) + if propShown: + proposalListView = waitForObject(':popupFrame_Proposal_QListView') + found = dumpItems(proposalListView.model()) + diffShownExp = set(expectedSug.get(symbol, [])) - set(found) + if not test.verify(len(diffShownExp) == 0, + "Verify if all expected suggestions could be found"): + test.log("Expected but not found suggestions: %s" % diffShownExp, + "%s | %s" % (expectedSug[symbol], str(found))) + # select first item of the expected suggestion list + doubleClickItem(':popupFrame_Proposal_QListView', expectedSug.get(symbol, found)[0], + 5, 5, 0, Qt.LeftButton) + changedLine = str(lineUnderCursor(editor)).strip() + if symbol in expectedRes: + exp = expectedRes[symbol] + else: + exp = (symbol[:max(symbol.rfind(":"), symbol.rfind(".")) + 1] + + expectedSug.get(symbol, found)[0]) + test.compare(changedLine, exp, "Verify completion matches.") + + performAutoCompletionTest(editor, ".*Complete symbols.*", "//", + testSymb, missing, expectedSuggestion, expectedResults) + +def main(): + examplePath = os.path.join(srcPath, "creator", "tests", "manual", "cplusplus-tools") + if not neededFilePresent(os.path.join(examplePath, "cplusplus-tools.pro")): + return + try: + # start Qt Creator with enabled ClangCodeModel plugin (without modifying settings) + startApplication("qtcreator -load ClangCodeModel" + SettingsPath) + errorMsg = "{type='QMessageBox' unnamed='1' visible='1' windowTitle='Qt Creator'}" + errorOK = "{text='OK' type='QPushButton' unnamed='1' visible='1' window=%s}" % errorMsg + if waitFor("object.exists(errorOK)", 5000): + clickButton(errorOK) # Error message + clickButton(errorOK) # Help message + raise Exception("ClangCodeModel not found.") + clangCodeModelPluginAvailable = True + models = ["builtin", "clang"] + except: + # ClangCodeModel plugin has not been built - start without it + test.warning("ClangCodeModel plugin not available - performing test without.") + startApplication("qtcreator" + SettingsPath) + clangCodeModelPluginAvailable = False + models = ["builtin"] + if not startedWithoutPluginError(): + return + + templateDir = prepareTemplate(examplePath) + examplePath = os.path.join(templateDir, "cplusplus-tools.pro") + openQmakeProject(examplePath, Targets.DESKTOP_531_DEFAULT) + for current in models: + test.log("Testing code model: %s" % current) + if not openDocument("cplusplus-tools.Sources.main\\.cpp"): + earlyExit("Failed to open main.cpp.") + return + editor = getEditorForFileSuffix("main.cpp") + if editor: + checkIncludeCompletion(editor) + checkSymbolCompletion(editor, current != "builtin") + invokeMenuItem('File', 'Revert "main.cpp" to Saved') + clickButton(waitForObject(":Revert to Saved.Proceed_QPushButton")) + if current == "builtin": + makeClangDefaultCodeModel(clangCodeModelPluginAvailable) + # editor must be closed to get the second code model applied on re-opening the file + invokeMenuItem('File', 'Close "main.cpp"') + + invokeMenuItem("File", "Exit") From caa56ea0fad3d277c69ac223952e7b4d8cb8d632 Mon Sep 17 00:00:00 2001 From: Vicken Simonian Date: Mon, 1 Sep 2014 03:10:07 -0700 Subject: [PATCH 02/44] Editor: Draw column wrap line after drawing ifdef blocks Task-number: QTCREATORBUG-12940 Change-Id: I431176c1879236bc107a2c1db11890da5d75f750 Reviewed-by: Eike Ziller --- src/plugins/texteditor/basetexteditor.cpp | 39 ++++++++++++----------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index f957b23c4c7..4f18085d290 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -3066,25 +3066,6 @@ void BaseTextEditorWidget::paintEvent(QPaintEvent *e) qreal lineX = 0; - if (d->m_visibleWrapColumn > 0) { - // Don't use QFontMetricsF::averageCharWidth here, due to it returning - // a fractional size even when this is not supported by the platform. - lineX = QFontMetricsF(font()).width(QLatin1Char('x')) * d->m_visibleWrapColumn + offset.x() + 4; - - if (lineX < viewportRect.width()) { - const QBrush background = ifdefedOutFormat.background(); - painter.fillRect(QRectF(lineX, er.top(), viewportRect.width() - lineX, er.height()), - background); - - const QColor col = (palette().base().color().value() > 128) ? Qt::black : Qt::white; - const QPen pen = painter.pen(); - painter.setPen(blendColors(background.isOpaque() ? background.color() : palette().base().color(), - col, 32)); - painter.drawLine(QPointF(lineX, er.top()), QPointF(lineX, er.bottom())); - painter.setPen(pen); - } - } - // Set a brush origin so that the WaveUnderline knows where the wave started painter.setBrushOrigin(offset); @@ -3226,6 +3207,26 @@ void BaseTextEditorWidget::paintEvent(QPaintEvent *e) } } + // draw wrap column after ifdefed out blocks + if (d->m_visibleWrapColumn > 0) { + // Don't use QFontMetricsF::averageCharWidth here, due to it returning + // a fractional size even when this is not supported by the platform. + lineX = QFontMetricsF(font()).width(QLatin1Char('x')) * d->m_visibleWrapColumn + offset.x() + 4; + + if (lineX < viewportRect.width()) { + const QBrush background = ifdefedOutFormat.background(); + painter.fillRect(QRectF(lineX, er.top(), viewportRect.width() - lineX, er.height()), + background); + + const QColor col = (palette().base().color().value() > 128) ? Qt::black : Qt::white; + const QPen pen = painter.pen(); + painter.setPen(blendColors(background.isOpaque() ? background.color() : palette().base().color(), + col, 32)); + painter.drawLine(QPointF(lineX, er.top()), QPointF(lineX, er.bottom())); + painter.setPen(pen); + } + } + // possible extra pass for the block selection find scope if (!d->m_findScopeStart.isNull() && d->m_findScopeVerticalBlockSelectionFirstColumn >= 0) { QTextBlock blockFS = block; From bed2c39bbef95f549f69e28c3471d21f5b143a86 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Thu, 4 Sep 2014 17:04:29 +0200 Subject: [PATCH 03/44] Fix keyboard selection shortcuts on Qml/JS Console Change-Id: I804df07c711de62c6c8e34810aa17a7ed86f2011 Task-number: QTCREATORBUG-12956 Reviewed-by: Aurindam Jana Reviewed-by: Ulf Hermann --- src/plugins/qmljstools/qmlconsoleedit.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/plugins/qmljstools/qmlconsoleedit.cpp b/src/plugins/qmljstools/qmlconsoleedit.cpp index 8b47f27be60..ab3ac79e491 100644 --- a/src/plugins/qmljstools/qmlconsoleedit.cpp +++ b/src/plugins/qmljstools/qmlconsoleedit.cpp @@ -102,7 +102,9 @@ void QmlConsoleEdit::keyPressEvent(QKeyEvent *e) case Qt::Key_Home: { QTextCursor c(textCursor()); - c.setPosition(m_startOfEditableArea); + bool select = e->modifiers() & Qt::ShiftModifier; + c.setPosition(m_startOfEditableArea, + select ? QTextCursor::KeepAnchor : QTextCursor::MoveAnchor); setTextCursor(c); keyConsumed = true; break; @@ -124,7 +126,9 @@ void QmlConsoleEdit::keyPressEvent(QKeyEvent *e) if (textCursor().position() <= m_startOfEditableArea || e->modifiers() & Qt::ControlModifier) { QTextCursor c(textCursor()); - c.setPosition(m_startOfEditableArea); + bool select = e->modifiers() & Qt::ShiftModifier; + c.setPosition(m_startOfEditableArea, + select ? QTextCursor::KeepAnchor : QTextCursor::MoveAnchor); setTextCursor(c); keyConsumed = true; } From 79d5c78a4584f2ec503dce2b63c707794cd4618a Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Sun, 24 Aug 2014 13:58:22 +0300 Subject: [PATCH 04/44] SdkTool: Fix "get" for complex types Change-Id: I8dd8101e33da4a2bdb0bf36f4217f1c466583b47 Reviewed-by: Tobias Hunger --- src/tools/sdktool/getoperation.cpp | 37 +++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/src/tools/sdktool/getoperation.cpp b/src/tools/sdktool/getoperation.cpp index 2beb77f9e52..d9ca1cde368 100644 --- a/src/tools/sdktool/getoperation.cpp +++ b/src/tools/sdktool/getoperation.cpp @@ -62,6 +62,41 @@ bool GetOperation::setArguments(const QStringList &args) return !m_file.isEmpty() && !m_keys.isEmpty(); } +static QString toString(const QVariant &variant, int indentation = 0) +{ + const QString indent(indentation, QLatin1Char(' ')); + switch (variant.type()) { + case QVariant::Map: { + QVariantMap map = variant.toMap(); + QString res; + for (auto item = map.begin(); item != map.end(); ++item) { + res += indent + item.key() + QLatin1String(": "); + QVariant value = item.value(); + switch (value.type()) { + case QVariant::Map: + case QVariant::List: + res += QLatin1Char('\n') + toString(value, indentation + 1); + break; + default: + res += value.toString(); + break; + } + res += QLatin1Char('\n'); + } + return res; + } + case QVariant::List: { + QVariantList list = variant.toList(); + QString res; + int counter = 0; + foreach (const QVariant &item, list) + res += indent + QString::number(counter++) + QLatin1String(":\n") + toString(item, indentation + 1); + return res; + } + } + return indent + variant.toString(); +} + int GetOperation::execute() const { Q_ASSERT(!m_keys.isEmpty()); @@ -72,7 +107,7 @@ int GetOperation::execute() const if (!result.isValid()) std::cout << "" << std::endl; else - std::cout << qPrintable(result.toString()) << std::endl; + std::cout << qPrintable(toString(result)) << std::endl; } return 0; From 1f3d7c9e61d4d095cd25e228ce1413c898c7bd8a Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Thu, 4 Sep 2014 12:50:03 +0200 Subject: [PATCH 05/44] Squish: Include new Qt Quick templates Change-Id: I92e359d95bc9cd62b5e1b8a059cb8aef3908bcb4 Reviewed-by: Christian Stenger --- tests/system/objects.map | 1 + .../suite_general/tst_create_proj_wizard/test.py | 2 +- .../suite_qtquick/tst_qtquick_creation/test.py | 5 +++-- .../suite_qtquick/tst_qtquick_creation3/test.py | 12 ++++++++++-- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/tests/system/objects.map b/tests/system/objects.map index 3e52c4ff081..6f612b4fd49 100644 --- a/tests/system/objects.map +++ b/tests/system/objects.map @@ -1,3 +1,4 @@ +:*Qt Creator.Add Kit_QPushButton {text='Add Kit' type='QPushButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} :*Qt Creator.Build Project_Core::Internal::FancyToolButton {text='Build Project' type='Core::Internal::FancyToolButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} :*Qt Creator.Cancel Build_QToolButton {text='Cancel Build' type='QToolButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} :*Qt Creator.Cancel_QPushButton {text='Cancel' type='QPushButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} diff --git a/tests/system/suite_general/tst_create_proj_wizard/test.py b/tests/system/suite_general/tst_create_proj_wizard/test.py index f91efb6870c..42a4567c61c 100644 --- a/tests/system/suite_general/tst_create_proj_wizard/test.py +++ b/tests/system/suite_general/tst_create_proj_wizard/test.py @@ -33,7 +33,7 @@ import re def main(): global tmpSettingsDir - quickCombinations = ["1.1", "2.1", "2.2", "Controls 1.0", "Controls 1.1"] + quickCombinations = ["1.1", "2.1", "2.2", "2.3", "Controls 1.0", "Controls 1.1", "Controls 1.2"] startApplication("qtcreator" + SettingsPath) if not startedWithoutPluginError(): return diff --git a/tests/system/suite_qtquick/tst_qtquick_creation/test.py b/tests/system/suite_qtquick/tst_qtquick_creation/test.py index 8b86dc94e51..cca8cfe85e3 100644 --- a/tests/system/suite_qtquick/tst_qtquick_creation/test.py +++ b/tests/system/suite_qtquick/tst_qtquick_creation/test.py @@ -34,8 +34,9 @@ def main(): if not startedWithoutPluginError(): return for targ, qVer in [[Targets.DESKTOP_480_GCC, "1.1"], [Targets.DESKTOP_521_DEFAULT, "2.1"], - [Targets.DESKTOP_521_DEFAULT, "2.2"], [Targets.DESKTOP_521_DEFAULT, "Controls 1.0"], - [Targets.DESKTOP_521_DEFAULT, "Controls 1.1"]]: + [Targets.DESKTOP_521_DEFAULT, "2.2"], [Targets.DESKTOP_531_DEFAULT, "2.3"], + [Targets.DESKTOP_521_DEFAULT, "Controls 1.0"], [Targets.DESKTOP_521_DEFAULT, "Controls 1.1"], + [Targets.DESKTOP_531_DEFAULT, "Controls 1.2"]]: # using a temporary directory won't mess up a potentially existing workingDir = tempDir() checkedTargets, projectName = createNewQtQuickApplication(workingDir, targets=targ, diff --git a/tests/system/suite_qtquick/tst_qtquick_creation3/test.py b/tests/system/suite_qtquick/tst_qtquick_creation3/test.py index 64d6aaaa6bd..b89a2685cd7 100644 --- a/tests/system/suite_qtquick/tst_qtquick_creation3/test.py +++ b/tests/system/suite_qtquick/tst_qtquick_creation3/test.py @@ -33,12 +33,20 @@ def main(): startApplication("qtcreator" + SettingsPath) if not startedWithoutPluginError(): return - for quickVersion in ["1.1", "2.1", "2.2", "Controls 1.0", "Controls 1.1"]: + for quickVersion in ["1.1", "2.1", "2.2", "2.3", "Controls 1.0", "Controls 1.1", "Controls 1.2"]: # using a temporary directory won't mess up a potentially existing workingDir = tempDir() projectName = createNewQtQuickUI(workingDir, quickVersion) + switchViewTo(ViewConstants.PROJECTS) + clickButton(waitForObject(":*Qt Creator.Add Kit_QPushButton")) + menuItem = Targets.getStringForTarget(Targets.DESKTOP_531_DEFAULT) + if platform.system() == 'Darwin': + waitFor("macHackActivateContextMenuItem(menuItem)", 5000) + else: + activateItem(waitForObjectItem("{type='QMenu' unnamed='1' visible='1' " + "window=':Qt Creator_Core::Internal::MainWindow'}", menuItem)) test.log("Running project Qt Quick %s UI" % quickVersion) - qmlViewer = modifyRunSettingsForHookIntoQtQuickUI(1, 0, workingDir, projectName, 11223, quickVersion) + qmlViewer = modifyRunSettingsForHookIntoQtQuickUI(2, 1, workingDir, projectName, 11223, quickVersion) if qmlViewer!=None: qmlViewerPath = os.path.dirname(qmlViewer) qmlViewer = os.path.basename(qmlViewer) From fdfb9338b692ba4be39b2a8747232c54a870cf81 Mon Sep 17 00:00:00 2001 From: Robert Loehning Date: Fri, 5 Sep 2014 12:54:49 +0200 Subject: [PATCH 06/44] Squish: Stabilize tst_CSUP06 Change-Id: I68071a5e8964c89a61a4dfe310fdbd7bb5fd1b8a Reviewed-by: Christian Stenger --- tests/system/suite_CSUP/tst_CSUP06/test.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/system/suite_CSUP/tst_CSUP06/test.py b/tests/system/suite_CSUP/tst_CSUP06/test.py index 92e34febef3..03af0318f48 100644 --- a/tests/system/suite_CSUP/tst_CSUP06/test.py +++ b/tests/system/suite_CSUP/tst_CSUP06/test.py @@ -211,6 +211,7 @@ def main(): clickButton(waitForObject(":Revert to Saved.Proceed_QPushButton")) if current == "builtin": makeClangDefaultCodeModel(clangCodeModelPluginAvailable) + snooze(1) # 'Close "main.cpp"' might still be disabled # editor must be closed to get the second code model applied on re-opening the file invokeMenuItem('File', 'Close "main.cpp"') From 364a663fcc02d3b803fa3cece2684fed3791d059 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Fri, 5 Sep 2014 13:03:10 +0200 Subject: [PATCH 07/44] SdkTool: Fix warnings Change-Id: I2a16bdff7b184e0988d9147f01075c87f8eb1309 Reviewed-by: Orgad Shaneh --- src/tools/sdktool/getoperation.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/tools/sdktool/getoperation.cpp b/src/tools/sdktool/getoperation.cpp index d9ca1cde368..3a8bc66a5d7 100644 --- a/src/tools/sdktool/getoperation.cpp +++ b/src/tools/sdktool/getoperation.cpp @@ -93,8 +93,9 @@ static QString toString(const QVariant &variant, int indentation = 0) res += indent + QString::number(counter++) + QLatin1String(":\n") + toString(item, indentation + 1); return res; } + default: + return indent + variant.toString(); } - return indent + variant.toString(); } int GetOperation::execute() const From 385a65dee4fb40c050e233c13a560aad7814d421 Mon Sep 17 00:00:00 2001 From: Oliver Wolff Date: Tue, 2 Sep 2014 11:31:28 +0200 Subject: [PATCH 08/44] Fixed creation of mapping files for winphone 8.1 Change-Id: I42f97f8f629b6ffbf48a01409605853f60a9c02b Reviewed-by: Andrew Knight --- .../winrt/winrtpackagedeploymentstep.cpp | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/src/plugins/winrt/winrtpackagedeploymentstep.cpp b/src/plugins/winrt/winrtpackagedeploymentstep.cpp index ce9e37035b4..a76f5193327 100644 --- a/src/plugins/winrt/winrtpackagedeploymentstep.cpp +++ b/src/plugins/winrt/winrtpackagedeploymentstep.cpp @@ -88,6 +88,8 @@ bool WinRtPackageDeploymentStep::init() m_targetFilePath.append(QLatin1String(".exe")); m_targetDirPath = appTargetFilePath.parentDir().toString(); + if (!m_targetDirPath.endsWith(QLatin1Char('/'))) + m_targetDirPath += QLatin1Char('/'); const QtSupport::BaseQtVersion *qt = QtSupport::QtKitInformation::qtVersion(target()->kit()); if (!qt) @@ -98,18 +100,19 @@ bool WinRtPackageDeploymentStep::init() m_manifestFileName = QStringLiteral("AppxManifest"); - if (qt->type() == QLatin1String(Constants::WINRT_WINPHONEQT) - && qt->mkspec().toString().contains(QLatin1String("msvc2012"))) { + if (qt->type() == QLatin1String(Constants::WINRT_WINPHONEQT)) { m_createMappingFile = true; - m_manifestFileName = QStringLiteral("WMAppManifest"); + if (qt->mkspec().toString().contains(QLatin1String("msvc2012"))) + m_manifestFileName = QStringLiteral("WMAppManifest"); } if (m_createMappingFile) { args += QLatin1String(" -list mapping"); - m_mappingFileContent = QLatin1String("[Files]\n\"") - + QDir::toNativeSeparators(m_targetDirPath) - + m_manifestFileName + QLatin1String(".xml\" \"") + m_manifestFileName - + QLatin1String(".xml\"\n"); + m_mappingFileContent = QLatin1String("[Files]\n"); + if (qt->mkspec().toString().contains(QLatin1String("msvc2012"))) { + m_mappingFileContent += QLatin1Char('"') + QDir::toNativeSeparators(m_targetDirPath) + m_manifestFileName + + QLatin1String(".xml\" \"") + m_manifestFileName + QLatin1String(".xml\"\n"); + } QDir assetDirectory(m_targetDirPath + QLatin1String("assets")); if (assetDirectory.exists()) { @@ -156,11 +159,12 @@ bool WinRtPackageDeploymentStep::processSucceeded(int exitCode, QProcess::ExitSt installableFilesList.append(QPair(localFilePath, remoteFilePath)); } - // if there are no INSTALLS set we just deploy the files from windeployqt, the manifest + // if there are no INSTALLS set we just deploy the files from windeployqt, the manifest (in case of 2012) // and the icons referenced in there and the actual build target QString baseDir; if (targetInstallationPath.isEmpty()) { - m_targetFilePath += QLatin1String(".exe"); + if (!m_targetFilePath.endsWith(QLatin1String(".exe"))) + m_targetFilePath.append(QLatin1String(".exe")); m_mappingFileContent += QLatin1Char('"') + QDir::toNativeSeparators(m_targetFilePath) + QLatin1String("\" \"") @@ -178,6 +182,12 @@ bool WinRtPackageDeploymentStep::processSucceeded(int exitCode, QProcess::ExitSt relativeRemotePath = pair.second; else relativeRemotePath = QDir(baseDir).relativeFilePath(pair.second); + + if (QDir(relativeRemotePath).isAbsolute() || relativeRemotePath.startsWith(QLatin1String(".."))) { + // for 3.3? + // raiseWarning(tr("File %1 is outside of the executable's directory. These files cannot be installed.").arg(relativeRemotePath)); + continue; + } m_mappingFileContent += QLatin1Char('"') + QDir::toNativeSeparators(pair.first) + QLatin1String("\" \"") + QDir::toNativeSeparators(relativeRemotePath) + QLatin1String("\"\n"); @@ -267,7 +277,8 @@ bool WinRtPackageDeploymentStep::parseIconsAndExecutableFromManifest(QString man icons->append(icon); } - QRegularExpression executablePattern(QStringLiteral("ImagePath=\"([a-zA-Z0-9_-]*\\.exe)\"")); + const QLatin1String executablePrefix(manifestFileName.contains(QLatin1String("AppxManifest")) ? "Executable=" : "ImagePath="); + QRegularExpression executablePattern(executablePrefix + QStringLiteral("\"([a-zA-Z0-9_-]*\\.exe)\"")); QRegularExpressionMatch match = executablePattern.match(contents); if (!match.hasMatch()) return false; From f62e1fb36f7170bd132a5ede2c29fa64d1ea0dc5 Mon Sep 17 00:00:00 2001 From: Oliver Wolff Date: Tue, 2 Sep 2014 11:33:46 +0200 Subject: [PATCH 09/44] Fixed font deployment for winphone 8.0 Change-Id: I8d7a2debfec3bbd06780458a29f11031dd9b862c Reviewed-by: Andrew Knight --- .../winrt/winrtpackagedeploymentstep.cpp | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/plugins/winrt/winrtpackagedeploymentstep.cpp b/src/plugins/winrt/winrtpackagedeploymentstep.cpp index a76f5193327..b73d86274b1 100644 --- a/src/plugins/winrt/winrtpackagedeploymentstep.cpp +++ b/src/plugins/winrt/winrtpackagedeploymentstep.cpp @@ -184,10 +184,26 @@ bool WinRtPackageDeploymentStep::processSucceeded(int exitCode, QProcess::ExitSt relativeRemotePath = QDir(baseDir).relativeFilePath(pair.second); if (QDir(relativeRemotePath).isAbsolute() || relativeRemotePath.startsWith(QLatin1String(".."))) { - // for 3.3? - // raiseWarning(tr("File %1 is outside of the executable's directory. These files cannot be installed.").arg(relativeRemotePath)); - continue; + // special case for winphone 8.0 font deployment + const QtSupport::BaseQtVersion *qt = QtSupport::QtKitInformation::qtVersion(target()->kit()); + if (!qt) + return false; + if (qt->mkspec().toString().contains(QLatin1String("msvc2012"))) { + const QString fileName = relativeRemotePath.mid(relativeRemotePath.lastIndexOf(QLatin1Char('/')) + 1); + if (QFile::exists(m_targetDirPath + QLatin1String("fonts/") + fileName)) { + relativeRemotePath = QLatin1String("fonts/") + fileName; + } else { + // for 3.3? + // raiseWarning(tr("File %1 is outside of the executable's directory. These files cannot be installed.").arg(relativeRemotePath)); + continue; + } + } else { + // for 3.3? + // raiseWarning(tr("File %1 is outside of the executable's directory. These files cannot be installed.").arg(relativeRemotePath)); + continue; + } } + m_mappingFileContent += QLatin1Char('"') + QDir::toNativeSeparators(pair.first) + QLatin1String("\" \"") + QDir::toNativeSeparators(relativeRemotePath) + QLatin1String("\"\n"); From 0a611e7ce13e598114497520af6f45e14fea4b27 Mon Sep 17 00:00:00 2001 From: Fawzi Mohamed Date: Thu, 4 Sep 2014 11:48:17 +0200 Subject: [PATCH 10/44] qmljs: always add environment paths to the qml vContexts Change-Id: Ib2c0650aa4dcf1b5365c8521e5145003faf216ac Reviewed-by: Tim Jenssen --- src/libs/qmljs/qmljsmodelmanagerinterface.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp index a9f7adf64e9..f4238241afa 100644 --- a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp +++ b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp @@ -1342,6 +1342,8 @@ ViewerContext ModelManagerInterface::completeVContext(const ViewerContext &vCtx, foreach (const QString &path, pInfo.importPaths) res.maybeAddPath(path); } + foreach (const QString &path, environmentImportPaths()) + res.maybeAddPath(path); break; } case Language::NoLanguage: @@ -1366,6 +1368,11 @@ ViewerContext ModelManagerInterface::completeVContext(const ViewerContext &vCtx, if (res.language == Language::AnyLanguage || res.language == Language::Qml || res.language == Language::QmlQtQuick1) res.maybeAddPath(info.qtQmlPath); + if (res.language == Language::AnyLanguage || res.language == Language::Qml + || res.language == Language::QmlQtQuick1 || res.language == Language::QmlQtQuick2) { + foreach (const QString &path, environmentImportPaths()) + res.maybeAddPath(path); + } break; } res.flags = ViewerContext::Complete; From 521052be8673b6f986e630f7b8c627682009bd6f Mon Sep 17 00:00:00 2001 From: Fawzi Mohamed Date: Wed, 3 Sep 2014 15:30:39 +0200 Subject: [PATCH 11/44] qmljs: highlight properties with inline qml components Task-number: QTCREATORBUG-10892 Change-Id: Ifbf5675ab53de54f6f38c07726f5ad400f6ee9d6 Reviewed-by: Tim Jenssen --- src/plugins/qmljseditor/qmljssemantichighlighter.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmljseditor/qmljssemantichighlighter.cpp b/src/plugins/qmljseditor/qmljssemantichighlighter.cpp index 4d76c94eae0..5ae278c1341 100644 --- a/src/plugins/qmljseditor/qmljssemantichighlighter.cpp +++ b/src/plugins/qmljseditor/qmljssemantichighlighter.cpp @@ -317,7 +317,12 @@ protected: } if (ast->identifierToken.isValid()) addUse(ast->identifierToken, SemanticHighlighter::BindingNameType); - scopedAccept(ast, ast->statement); + if (ast->statement) + scopedAccept(ast, ast->statement); + if (ast->binding) + // this is not strictly correct for Components, as their context depends from where they + // are instantiated, but normally not too bad as approximation + scopedAccept(ast, ast->binding); return false; } From b66155cf179dcdbf86c6379d6c9eed1446b47fa3 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Thu, 28 Aug 2014 10:59:52 +0200 Subject: [PATCH 12/44] QmlDesigner.PropertyEditor: Change default editor for color This template breaks the layout and is currently unusable. Therefore we replace it by a string editor. Change-Id: I0818d006a4516f34954d5406ee4074664e909891 Reviewed-by: Tim Jenssen --- .../PropertyTemplates/TemplateTypes.qml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/PropertyTemplates/TemplateTypes.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/PropertyTemplates/TemplateTypes.qml index a4a404bedf5..4a0d740df05 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/PropertyTemplates/TemplateTypes.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/PropertyTemplates/TemplateTypes.qml @@ -22,8 +22,9 @@ AutoTypes { typeNames: ["bool", "boolean"] sourceFile: "BooleanEditorTemplate.template" } + Type { typeNames: ["color", "QColor"] - sourceFile: "ColorEditorTemplate.template" + sourceFile: "StringEditorTemplate.template" } } From 8c17e3b3a26fd33ce14c0ae9c0980ce6e3f04c28 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Mon, 8 Sep 2014 12:08:00 +0200 Subject: [PATCH 13/44] QmlDesigner: Fix regression for import paths The imports paths used by the sub component manger and meta info system were not correctly resolved. The main reason was that the textDocument in the text modifiers are just plain text buffers and do not containt any url for the document. This patch removes importPaths() from the TextModifier. The ViewerContext can be stored in the TextToModelMerger and does not have to be recreated when needed. Change-Id: I17281caee23ddd51f6e36d5346bc3bd7c53005e8 Reviewed-by: Fawzi Mohamed --- .../designercore/include/componenttextmodifier.h | 2 -- .../designercore/include/plaintexteditmodifier.h | 2 -- .../designercore/include/rewriterview.h | 2 ++ .../designercore/include/textmodifier.h | 1 - .../designercore/model/componenttextmodifier.cpp | 3 --- .../qmldesigner/designercore/model/model.cpp | 9 +++++---- .../designercore/model/plaintexteditmodifier.cpp | 14 -------------- .../designercore/model/rewriterview.cpp | 5 +++++ .../designercore/model/texttomodelmerger.cpp | 13 ++++++------- .../designercore/model/texttomodelmerger.h | 4 ++++ 10 files changed, 22 insertions(+), 33 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/include/componenttextmodifier.h b/src/plugins/qmldesigner/designercore/include/componenttextmodifier.h index b31d6506a3b..6314568fe43 100644 --- a/src/plugins/qmldesigner/designercore/include/componenttextmodifier.h +++ b/src/plugins/qmldesigner/designercore/include/componenttextmodifier.h @@ -58,8 +58,6 @@ public: virtual void deactivateChangeSignals(); virtual void reactivateChangeSignals(); - virtual QStringList importPaths() const; - virtual bool renameId(const QString & /* oldId */, const QString & /* newId */) { return false; } public slots: diff --git a/src/plugins/qmldesigner/designercore/include/plaintexteditmodifier.h b/src/plugins/qmldesigner/designercore/include/plaintexteditmodifier.h index 730722ea1eb..d5b28558e87 100644 --- a/src/plugins/qmldesigner/designercore/include/plaintexteditmodifier.h +++ b/src/plugins/qmldesigner/designercore/include/plaintexteditmodifier.h @@ -73,8 +73,6 @@ public: virtual void deactivateChangeSignals(); virtual void reactivateChangeSignals(); - virtual QStringList importPaths() const; - virtual bool renameId(const QString & /* oldId */, const QString & /* newId */) { return false; } protected: diff --git a/src/plugins/qmldesigner/designercore/include/rewriterview.h b/src/plugins/qmldesigner/designercore/include/rewriterview.h index 97217929070..770b2424645 100644 --- a/src/plugins/qmldesigner/designercore/include/rewriterview.h +++ b/src/plugins/qmldesigner/designercore/include/rewriterview.h @@ -203,6 +203,8 @@ public: QString pathForImport(const Import &import); + QStringList importDirectories() const; + signals: void errorsChanged(const QList &errors); diff --git a/src/plugins/qmldesigner/designercore/include/textmodifier.h b/src/plugins/qmldesigner/designercore/include/textmodifier.h index d95405e0477..c9187baf982 100644 --- a/src/plugins/qmldesigner/designercore/include/textmodifier.h +++ b/src/plugins/qmldesigner/designercore/include/textmodifier.h @@ -84,7 +84,6 @@ public: virtual void reactivateChangeSignals() = 0; static QmlJS::Snapshot qmljsSnapshot(); - virtual QStringList importPaths() const = 0; virtual bool renameId(const QString &oldId, const QString &newId) = 0; diff --git a/src/plugins/qmldesigner/designercore/model/componenttextmodifier.cpp b/src/plugins/qmldesigner/designercore/model/componenttextmodifier.cpp index d78a03e6f29..1d0b047598a 100644 --- a/src/plugins/qmldesigner/designercore/model/componenttextmodifier.cpp +++ b/src/plugins/qmldesigner/designercore/model/componenttextmodifier.cpp @@ -128,6 +128,3 @@ void ComponentTextModifier::reactivateChangeSignals() void ComponentTextModifier::contentsChange(int /*position*/, int /*charsRemoved*/, int /*charsAdded*/) { } - -QStringList ComponentTextModifier::importPaths() const -{ return m_originalModifier->importPaths(); } diff --git a/src/plugins/qmldesigner/designercore/model/model.cpp b/src/plugins/qmldesigner/designercore/model/model.cpp index 2fe40bd15e7..94b19ee38a1 100644 --- a/src/plugins/qmldesigner/designercore/model/model.cpp +++ b/src/plugins/qmldesigner/designercore/model/model.cpp @@ -61,6 +61,8 @@ #include "invalididexception.h" #include "textmodifier.h" +#include + /*! \defgroup CoreModel */ @@ -1823,6 +1825,9 @@ QString Model::pathForImport(const Import &import) QStringList Model::importPaths() const { + if (rewriterView()) + return rewriterView()->importDirectories(); + QStringList importPathList; QString documentDirectoryPath = QFileInfo(fileUrl().toLocalFile()).absolutePath(); @@ -1830,10 +1835,6 @@ QStringList Model::importPaths() const if (!documentDirectoryPath.isEmpty()) importPathList.append(documentDirectoryPath); - if (textModifier()) { - importPathList.append(textModifier()->importPaths()); - } - return importPathList; } diff --git a/src/plugins/qmldesigner/designercore/model/plaintexteditmodifier.cpp b/src/plugins/qmldesigner/designercore/model/plaintexteditmodifier.cpp index 71c22c9d3d5..62354bfe6ed 100644 --- a/src/plugins/qmldesigner/designercore/model/plaintexteditmodifier.cpp +++ b/src/plugins/qmldesigner/designercore/model/plaintexteditmodifier.cpp @@ -196,17 +196,3 @@ void PlainTextEditModifier::reactivateChangeSignals() emit textChanged(); } } - -QStringList PlainTextEditModifier::importPaths() const -{ - QmlJS::ModelManagerInterface *modelManager = QmlJS::ModelManagerInterface::instance(); - if (modelManager && textDocument()) { - QString documentFilePath = textDocument()->baseUrl().toLocalFile(); - if (!documentFilePath.isEmpty()) { - QmlJS::Document::Ptr qmljsDocument = modelManager->snapshot().document(documentFilePath); - return modelManager->defaultVContext(QmlJS::Language::Qml, qmljsDocument, true).paths; - } - } - - return QStringList(); -} diff --git a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp index 9711723f85b..7498f0fb25f 100644 --- a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp +++ b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp @@ -745,6 +745,11 @@ QString RewriterView::pathForImport(const Import &import) return QString(); } +QStringList RewriterView::importDirectories() const +{ + return m_textToModelMerger->vContext().paths; +} + void RewriterView::qmlTextChanged() { if (inErrorState()) diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp index b13e359c93a..dc646979fc1 100644 --- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp @@ -715,7 +715,7 @@ void TextToModelMerger::setupImports(const Document::Ptr &doc, if (!import->fileName.isEmpty()) { const QString strippedFileName = stripQuotes(import->fileName.toString()); const Import newImport = Import::createFileImport(strippedFileName, - version, as, m_rewriterView->textModifier()->importPaths()); + version, as, m_rewriterView->importDirectories()); if (!existingImports.removeOne(newImport)) differenceHandler.modelMissesImport(newImport); @@ -727,7 +727,7 @@ void TextToModelMerger::setupImports(const Document::Ptr &doc, } const Import newImport = - Import::createLibraryImport(importUri, version, as, m_rewriterView->textModifier()->importPaths()); + Import::createLibraryImport(importUri, version, as, m_rewriterView->importDirectories()); if (!existingImports.removeOne(newImport)) differenceHandler.modelMissesImport(newImport); @@ -833,9 +833,8 @@ bool TextToModelMerger::load(const QString &data, DifferenceHandler &differenceH // qDebug() << "TextToModelMerger::load with data:" << data; const QUrl url = m_rewriterView->model()->fileUrl(); - const QStringList importPaths = m_rewriterView->textModifier()->importPaths(); - setActive(true); + setActive(true); try { Snapshot snapshot = m_rewriterView->textModifier()->qmljsSnapshot(); @@ -853,8 +852,8 @@ bool TextToModelMerger::load(const QString &data, DifferenceHandler &differenceH return false; } snapshot.insert(doc); - QmlJS::ViewerContext vContext = QmlJS::ModelManagerInterface::instance()->defaultVContext(Language::Qml, doc, true); - ReadingContext ctxt(snapshot, doc, vContext); + m_vContext = QmlJS::ModelManagerInterface::instance()->defaultVContext(Language::Qml, doc, true); + ReadingContext ctxt(snapshot, doc, m_vContext); m_scopeChain = QSharedPointer( new ScopeChain(ctxt.scopeChain())); m_document = doc; @@ -867,7 +866,7 @@ bool TextToModelMerger::load(const QString &data, DifferenceHandler &differenceH } setupImports(doc, differenceHandler); - setupPossibleImports(snapshot, vContext); + setupPossibleImports(snapshot, m_vContext); if (m_rewriterView->model()->imports().isEmpty()) { const QmlJS::DiagnosticMessage diagnosticMessage(QmlJS::Severity::Error, AST::SourceLocation(0, 0, 0, 0), QCoreApplication::translate("QmlDesigner::TextToModelMerger", "No import statements found")); diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.h b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.h index 833cdc7cfbc..0e98fade2c4 100644 --- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.h +++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.h @@ -72,6 +72,9 @@ public: const QmlJS::Document *document() const { return m_document.data(); } + const QmlJS::ViewerContext &vContext() const + { return m_vContext; } + protected: void setActive(bool active); @@ -145,6 +148,7 @@ private: QTimer m_setupTimer; QSet m_setupComponentList; QSet m_setupCustomParserList; + QmlJS::ViewerContext m_vContext; }; class DifferenceHandler From bfdbd9c1cbba7eaf96ef276e0671e676fb5c6e39 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Fri, 5 Sep 2014 16:00:37 +0200 Subject: [PATCH 14/44] Templates: Remove wrong version information Change-Id: I7379f79d22335d6faf0db845cdde863c5888300b Reviewed-by: Robert Loehning Reviewed-by: Jarek Kobus Reviewed-by: Eike Ziller --- share/qtcreator/templates/qml/qtquick_2_1/main.qmlproject | 2 +- share/qtcreator/templates/qml/qtquick_2_2/main.qmlproject | 2 +- share/qtcreator/templates/qml/qtquick_2_3/main.qmlproject | 2 +- .../qtcreator/templates/qml/qtquickcontrols_1_1/main.qmlproject | 2 +- .../qtcreator/templates/qml/qtquickcontrols_1_2/main.qmlproject | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/share/qtcreator/templates/qml/qtquick_2_1/main.qmlproject b/share/qtcreator/templates/qml/qtquick_2_1/main.qmlproject index 558f68d0351..63dafff88ed 100644 --- a/share/qtcreator/templates/qml/qtquick_2_1/main.qmlproject +++ b/share/qtcreator/templates/qml/qtquick_2_1/main.qmlproject @@ -1,4 +1,4 @@ -/* File generated by Qt Creator, version 2.7.0 */ +/* File generated by Qt Creator */ import QmlProject 1.1 diff --git a/share/qtcreator/templates/qml/qtquick_2_2/main.qmlproject b/share/qtcreator/templates/qml/qtquick_2_2/main.qmlproject index 558f68d0351..63dafff88ed 100644 --- a/share/qtcreator/templates/qml/qtquick_2_2/main.qmlproject +++ b/share/qtcreator/templates/qml/qtquick_2_2/main.qmlproject @@ -1,4 +1,4 @@ -/* File generated by Qt Creator, version 2.7.0 */ +/* File generated by Qt Creator */ import QmlProject 1.1 diff --git a/share/qtcreator/templates/qml/qtquick_2_3/main.qmlproject b/share/qtcreator/templates/qml/qtquick_2_3/main.qmlproject index 558f68d0351..63dafff88ed 100644 --- a/share/qtcreator/templates/qml/qtquick_2_3/main.qmlproject +++ b/share/qtcreator/templates/qml/qtquick_2_3/main.qmlproject @@ -1,4 +1,4 @@ -/* File generated by Qt Creator, version 2.7.0 */ +/* File generated by Qt Creator */ import QmlProject 1.1 diff --git a/share/qtcreator/templates/qml/qtquickcontrols_1_1/main.qmlproject b/share/qtcreator/templates/qml/qtquickcontrols_1_1/main.qmlproject index 558f68d0351..63dafff88ed 100644 --- a/share/qtcreator/templates/qml/qtquickcontrols_1_1/main.qmlproject +++ b/share/qtcreator/templates/qml/qtquickcontrols_1_1/main.qmlproject @@ -1,4 +1,4 @@ -/* File generated by Qt Creator, version 2.7.0 */ +/* File generated by Qt Creator */ import QmlProject 1.1 diff --git a/share/qtcreator/templates/qml/qtquickcontrols_1_2/main.qmlproject b/share/qtcreator/templates/qml/qtquickcontrols_1_2/main.qmlproject index 558f68d0351..63dafff88ed 100644 --- a/share/qtcreator/templates/qml/qtquickcontrols_1_2/main.qmlproject +++ b/share/qtcreator/templates/qml/qtquickcontrols_1_2/main.qmlproject @@ -1,4 +1,4 @@ -/* File generated by Qt Creator, version 2.7.0 */ +/* File generated by Qt Creator */ import QmlProject 1.1 From 34fb3d6a5ab0f0be488a1f0a7cc17d86d66ba4e0 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Mon, 8 Sep 2014 12:35:52 +0200 Subject: [PATCH 15/44] QmlDesigner.PropertyEditor: Change step size for reals the default step size of 1 does not make much sense for reals. Task-number: QTCREATORBUG-12985 Change-Id: I28be2ca8de37f1032e8fbbe785913ae5a8f6be33 Reviewed-by: Tim Jenssen --- .../PropertyTemplates/RealEditorTemplate.template | 1 + 1 file changed, 1 insertion(+) diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/PropertyTemplates/RealEditorTemplate.template b/share/qtcreator/qmldesigner/propertyEditorQmlSources/PropertyTemplates/RealEditorTemplate.template index 5975c382bcc..4377c8a16e1 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/PropertyTemplates/RealEditorTemplate.template +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/PropertyTemplates/RealEditorTemplate.template @@ -6,6 +6,7 @@ SpinBox { maximumValue: 9999999 minimumValue: -9999999 decimals: 2 + stepSize: 0.1 backendValue: backendValues.%2 Layout.fillWidth: true Layout.maximumWidth: 100 From d31b3dcef3b6e8f705636c2554f4eb54d081a0e9 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Mon, 8 Sep 2014 10:26:19 +0200 Subject: [PATCH 16/44] QmlDesigner.Navigator: Crash fix Objects which are not an Item are not visible in the tree view. In this case model() is 0 and Qt Creator was crashing when detaching the navigator view. Change-Id: I144c940d76157defb27133673ed911d733d8b5ef Reviewed-by: Tim Jenssen --- .../qmldesigner/components/navigator/navigatortreemodel.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp index 2adba6ea7e0..059d4c173ad 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp @@ -548,8 +548,10 @@ static QList takeWholeRow(const ItemRow &itemRow) { if (itemRow.idItem->parent()) return itemRow.idItem->parent()->takeRow(itemRow.idItem->row()); - else + else if (itemRow.idItem->model()) return itemRow.idItem->model()->takeRow(itemRow.idItem->row()); + else + return itemRow.toList(); } void NavigatorTreeModel::removeSubTree(const ModelNode &node) From 99aae36e7a909f27f74f34ab4a208d61a529d4ce Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Mon, 8 Sep 2014 10:37:22 +0200 Subject: [PATCH 17/44] QmlDesigner.Navigator: Fix reordering in case of invisble nodes If the model contains nodes that are invisible in the navigator (e.g. QtObject) updateItemRowOrder() does not work correctly. To avoid complexity we update the subtree in this case. Change-Id: Ia40ce061e9188ef9ad6ca54ce3444432b878ddf6 Reviewed-by: Tim Jenssen --- .../navigator/navigatortreemodel.cpp | 27 ------------------- .../components/navigator/navigatortreemodel.h | 1 - .../components/navigator/navigatorview.cpp | 9 +++++-- 3 files changed, 7 insertions(+), 30 deletions(-) diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp index 059d4c173ad..ae9019e2bf6 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp @@ -360,33 +360,6 @@ static void findTargetItem(const NodeListProperty &listProperty, } } -static void moveItemRow(QStandardItem *targetItem , - int currentRowNumber, - int newRowNumber) -{ - if (targetItem && currentRowNumber != newRowNumber) {//### Items without a parent should not exist - QList items = targetItem->takeRow(currentRowNumber); - targetItem->insertRow(newRowNumber, items); - } -} - -/** - Updates the sibling position of the item, depending on the position in the model. - */ -void NavigatorTreeModel::updateItemRowOrder(const NodeListProperty &listProperty, const ModelNode &modelNode, int /*oldIndex*/) -{ - if (isInTree(modelNode)) { - ItemRow currentItemRow = itemRowForNode(modelNode); - int currentRowNumber = currentItemRow.idItem->row(); - int newRowNumber = listProperty.indexOf(modelNode); - QStandardItem *targetItem = 0; - - findTargetItem(listProperty, currentItemRow, this, &newRowNumber, &targetItem); - moveItemRow(targetItem, currentRowNumber, newRowNumber); - - } -} - static void handleWrongId(QStandardItem *item, const ModelNode &modelNode, const QString &errorTitle, const QString &errorMessage, NavigatorTreeModel *treeModel) { QMessageBox::warning(Core::ICore::dialogParent(), errorTitle, errorMessage); diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.h b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.h index 0c19a803e1d..b324b86e435 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.h +++ b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.h @@ -113,7 +113,6 @@ public: void addSubTree(const ModelNode &node); void removeSubTree(const ModelNode &node); void updateItemRow(const ModelNode &node); - void updateItemRowOrder(const NodeListProperty &listProperty, const ModelNode &movedNode, int oldIndex); void setId(const QModelIndex &index, const QString &id); void setVisible(const QModelIndex &index, bool visible); diff --git a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp index 24809188b51..eb126af2cc5 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp @@ -296,8 +296,13 @@ void NavigatorView::instancesToken(const QString &/*tokenName*/, int /*tokenNumb void NavigatorView::nodeOrderChanged(const NodeListProperty &listProperty, const ModelNode &node, int oldIndex) { - if (m_treeModel->isInTree(node)) - m_treeModel->updateItemRowOrder(listProperty, node, oldIndex); + if (m_treeModel->isInTree(node)) { + m_treeModel->removeSubTree(listProperty.parentModelNode()); + + if (node.isInHierarchy()) + m_treeModel->addSubTree(listProperty.parentModelNode()); + + } } void NavigatorView::changeToComponent(const QModelIndex &index) From 61b699b33640e0ea1145d2914146b93c67d393ff Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Mon, 8 Sep 2014 18:50:36 +0200 Subject: [PATCH 18/44] QmlDesigner.Puppet: Adding size hints to Window mockup Without defining the properties, the properties do not work and do not get notified properly. They are also missing defaults which breaks "resetting". Task-number: QTCREATORBUG-13004 Change-Id: Ib36f39770930be486225b45169d2ebdb53df8df4 Reviewed-by: Tim Jenssen --- share/qtcreator/qml/qmlpuppet/mockfiles/Window.qml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/Window.qml b/share/qtcreator/qml/qmlpuppet/mockfiles/Window.qml index e9788e4bea6..f71fa13e6d2 100644 --- a/share/qtcreator/qml/qmlpuppet/mockfiles/Window.qml +++ b/share/qtcreator/qml/qmlpuppet/mockfiles/Window.qml @@ -13,6 +13,12 @@ Rectangle { onStatusBarChanged: { if (statusBar) { statusBar.parent = statusBarArea } } onToolBarChanged: { if (toolBar) { toolBar.parent = toolBarArea } } + property int maximumWidth: 0 + property int minimumWidth: 0 + + property int maximumHeight: 0 + property int minimumHeight: 0 + Item { id: contentArea anchors.top: toolBarArea.bottom From 4ca49dc909a5e4c579e053735fd7d3eb1b0c5649 Mon Sep 17 00:00:00 2001 From: Tim Jenssen Date: Tue, 9 Sep 2014 13:38:40 +0200 Subject: [PATCH 19/44] QmlDesigner: add more specifics Fix: QTCREATORBUG-12798 Change-Id: I8d36bb4ccae05cdb28833317d74a06e7628540a1 Reviewed-by: Thomas Hartmann --- .../instances/objectnodeinstance.cpp | 50 +++--- .../Controls/OrientationCombobox.qml | 39 +++++ .../Controls/SliderSpecifics.qml | 147 ++++++++++++++++++ .../Controls/SplitViewSpecifics.qml | 60 +++++++ .../componentsplugin/components.metainfo | 2 +- .../componentsplugin/componentsplugin.qrc | 3 + .../designercore/include/propertyparser.h | 1 - .../designercore/model/propertyparser.cpp | 76 ++------- 8 files changed, 287 insertions(+), 91 deletions(-) create mode 100644 src/plugins/qmldesigner/componentsplugin/Controls/OrientationCombobox.qml create mode 100644 src/plugins/qmldesigner/componentsplugin/Controls/SliderSpecifics.qml create mode 100644 src/plugins/qmldesigner/componentsplugin/Controls/SplitViewSpecifics.qml diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp index fb5476883a9..1818db81be1 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp @@ -475,33 +475,21 @@ PropertyNameList ObjectNodeInstance::ignoredProperties() const QVariant ObjectNodeInstance::convertEnumToValue(const QVariant &value, const PropertyName &name) { - int idx = object()->metaObject()->indexOfProperty(name); - QMetaProperty metaProperty = object()->metaObject()->property(idx); + Q_ASSERT(value.canConvert()); + int propertyIndex = object()->metaObject()->indexOfProperty(name); + QMetaProperty metaProperty = object()->metaObject()->property(propertyIndex); - QVariant fixedValue = fixResourcePaths(value); - - if (value.canConvert()) { - Enumeration enumeration = value.value(); - if (metaProperty.isValid() && metaProperty.isEnumType()) { - fixedValue = metaProperty.enumerator().keyToValue(enumeration.name()); - } else if (metaProperty.isValid() - && (QLatin1String(metaProperty.typeName()) == QLatin1String("int"))) { - - //If the target property is an integer handle an enum as binding - QQmlExpression expression(context(), object(), enumeration.toString()); - fixedValue = expression.evaluate(); - if (expression.hasError()) - qDebug() << "Enum can not be evaluated:" << object() << name << enumeration; - } else if (!metaProperty.isValid()) { //In this case this is most likely an attached property - QQmlExpression expression(context(), object(), enumeration.toString()); - fixedValue = expression.evaluate(); - - if (expression.hasError()) - qDebug() << "Enum can not be evaluated:" << object() << name << enumeration; - } + QVariant adjustedValue; + Enumeration enumeration = value.value(); + if (metaProperty.isValid() && metaProperty.isEnumType()) { + adjustedValue = metaProperty.enumerator().keyToValue(enumeration.name()); + } else { + QQmlExpression expression(context(), object(), enumeration.toString()); + adjustedValue = expression.evaluate(); + if (expression.hasError()) + qDebug() << "Enumeration can not be evaluated:" << object() << name << enumeration; } - - return fixedValue; + return adjustedValue; } void ObjectNodeInstance::setPropertyVariant(const PropertyName &name, const QVariant &value) @@ -514,8 +502,12 @@ void ObjectNodeInstance::setPropertyVariant(const PropertyName &name, const QVar if (!property.isValid()) return; - QVariant fixedValue = fixResourcePaths(value); - fixedValue = convertEnumToValue(fixedValue, name); + QVariant adjustedValue; + if (value.canConvert()) + adjustedValue = convertEnumToValue(value, name); + else + adjustedValue = fixResourcePaths(value); + QVariant oldValue = property.read(); if (oldValue.type() == QVariant::Url) { @@ -529,10 +521,10 @@ void ObjectNodeInstance::setPropertyVariant(const PropertyName &name, const QVar QQmlPropertyPrivate::setBinding(property, 0, QQmlPropertyPrivate::BypassInterceptor | QQmlPropertyPrivate::DontRemoveBinding); } - bool isWritten = property.write(convertSpecialCharacter(fixedValue)); + bool isWritten = property.write(convertSpecialCharacter(adjustedValue)); if (!isWritten) - qDebug() << "ObjectNodeInstance.setPropertyVariant: Cannot be written: " << object() << name << fixedValue; + qDebug() << "ObjectNodeInstance.setPropertyVariant: Cannot be written: " << object() << name << adjustedValue; QVariant newValue = property.read(); if (newValue.type() == QVariant::Url) { diff --git a/src/plugins/qmldesigner/componentsplugin/Controls/OrientationCombobox.qml b/src/plugins/qmldesigner/componentsplugin/Controls/OrientationCombobox.qml new file mode 100644 index 00000000000..9428b090bf1 --- /dev/null +++ b/src/plugins/qmldesigner/componentsplugin/Controls/OrientationCombobox.qml @@ -0,0 +1,39 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +import QtQuick 2.1 +import HelperWidgets 2.0 +import QtQuick.Layouts 1.0 + +ComboBox { + backendValue: backendValues.orientation + implicitWidth: 180 + model: [ "Horizontal", "Vertical" ] + scope: "Qt" +} diff --git a/src/plugins/qmldesigner/componentsplugin/Controls/SliderSpecifics.qml b/src/plugins/qmldesigner/componentsplugin/Controls/SliderSpecifics.qml new file mode 100644 index 00000000000..936d0c42e12 --- /dev/null +++ b/src/plugins/qmldesigner/componentsplugin/Controls/SliderSpecifics.qml @@ -0,0 +1,147 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ +import HelperWidgets 2.0 +import QtQuick 2.1 +import QtQuick.Layouts 1.1 +Section { + caption: "Slider" + SectionLayout { + Label { + text: qsTr("Value") + toolTip: qsTr("Current value of the Slider. The default value is 0.0.") + } + SecondColumnLayout { + SpinBox { + maximumValue: backendValues.maximumValue.value + minimumValue: backendValues.minimumValue.value + decimals: 2 + stepSize: backendValues.stepSize.value + backendValue: backendValues.value + implicitWidth: 180 + } + ExpandingSpacer {} + } + Label { + text: qsTr("Maximum Value") + toolTip: qsTr("This property holds the maximum value of the Slider The default value is 1.0.") + } + SecondColumnLayout { + SpinBox { + maximumValue: 9999999 + minimumValue: -9999999 + decimals: 2 + backendValue: backendValues.maximumValue + implicitWidth: 180 + } + ExpandingSpacer { + + } + } + Label { + text: qsTr("Minimum Value") + toolTip: qsTr("This property holds the minimum value of the Slider. The default value is 0.0.") + } + SecondColumnLayout { + SpinBox { + maximumValue: 9999999 + minimumValue: -9999999 + decimals: 2 + backendValue: backendValues.minimumValue + implicitWidth: 180 + } + ExpandingSpacer { + + } + } + Label { + text: qsTr("Orientation") + toolTip: qsTr("This property holds the layout orientation of the Slider.") + } + SecondColumnLayout { + OrientationCombobox { + } + ExpandingSpacer { + + } + } + Label { + text: qsTr("Step Size") + toolTip: qsTr("This property indicates the Slider step size.") + } + SecondColumnLayout { + SpinBox { + maximumValue: 9999999 + minimumValue: -9999999 + decimals: 2 + backendValue: backendValues.stepSize + implicitWidth: 180 + } + ExpandingSpacer {} + } + + Label { + text: qsTr("Active Focus On Press") + toolTip: qsTr("This property indicates whether the Slider should receive active focus when pressed.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.activeFocusOnPress.valueToString + backendValue: backendValues.activeFocusOnPress + implicitWidth: 180 + } + ExpandingSpacer {} + } + Label { + text: qsTr("Tickmarks Enabled") + toolTip: qsTr("TIndicates whether the Slider should display tickmarks at step intervals.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.tickmarksEnabled.valueToString + backendValue: backendValues.tickmarksEnabled + implicitWidth: 180 + } + ExpandingSpacer {} + } + Label { + text: qsTr("Update Value While Dragging") + toolTip: qsTr("Current value should be updated while the user is moving the Slider handle, or only when the button has been released.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.updateValueWhileDragging.valueToString + backendValue: backendValues.updateValueWhileDragging + implicitWidth: 180 + } + } + } +} diff --git a/src/plugins/qmldesigner/componentsplugin/Controls/SplitViewSpecifics.qml b/src/plugins/qmldesigner/componentsplugin/Controls/SplitViewSpecifics.qml new file mode 100644 index 00000000000..a21372b159c --- /dev/null +++ b/src/plugins/qmldesigner/componentsplugin/Controls/SplitViewSpecifics.qml @@ -0,0 +1,60 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +import QtQuick 2.1 +import HelperWidgets 2.0 +import QtQuick.Layouts 1.0 + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Split View") + + SectionLayout { + Label { + text: qsTr("Orientation") + toolTip: qsTr("This property holds the orientation of the SplitView.") + } + + SecondColumnLayout { + OrientationCombobox { + } + + ExpandingSpacer { + + } + } + + } + } +} diff --git a/src/plugins/qmldesigner/componentsplugin/components.metainfo b/src/plugins/qmldesigner/componentsplugin/components.metainfo index 052fe68da3b..701b453c396 100644 --- a/src/plugins/qmldesigner/componentsplugin/components.metainfo +++ b/src/plugins/qmldesigner/componentsplugin/components.metainfo @@ -171,7 +171,7 @@ MetaInfo { libraryIcon: ":/componentsplugin/images/sliderh.png" version: "1.0" requiredImport: "QtQuick.Controls" - Property { name: "orientation"; type: "int"; value: "0"; } + Property { name: "orientation"; type: "Enumeration"; value: "Qt.Vertical"; } } } diff --git a/src/plugins/qmldesigner/componentsplugin/componentsplugin.qrc b/src/plugins/qmldesigner/componentsplugin/componentsplugin.qrc index 37a76389a1b..9183872a84c 100644 --- a/src/plugins/qmldesigner/componentsplugin/componentsplugin.qrc +++ b/src/plugins/qmldesigner/componentsplugin/componentsplugin.qrc @@ -46,5 +46,8 @@ Controls/TabViewSpecifics.qml Controls/TabPositionComboBox.qml Controls/CurrentIndexComboBox.qml + Controls/SplitViewSpecifics.qml + Controls/SliderSpecifics.qml + Controls/OrientationCombobox.qml diff --git a/src/plugins/qmldesigner/designercore/include/propertyparser.h b/src/plugins/qmldesigner/designercore/include/propertyparser.h index 58940ae12e8..d8a1c6b3b15 100644 --- a/src/plugins/qmldesigner/designercore/include/propertyparser.h +++ b/src/plugins/qmldesigner/designercore/include/propertyparser.h @@ -41,7 +41,6 @@ namespace PropertyParser { QVariant read(const QString &typeStr, const QString &str, const MetaInfo &metaInfo); QVariant read(const QString &typeStr, const QString &str); QVariant read(int variantType, const QString &str); -QString write(const QVariant &variant, const MetaInfo &metaInfo); QVariant variantFromString(const QString &s); } // namespace PropertyParser diff --git a/src/plugins/qmldesigner/designercore/model/propertyparser.cpp b/src/plugins/qmldesigner/designercore/model/propertyparser.cpp index 9f1aee37697..e74fe98ecd5 100644 --- a/src/plugins/qmldesigner/designercore/model/propertyparser.cpp +++ b/src/plugins/qmldesigner/designercore/model/propertyparser.cpp @@ -28,6 +28,7 @@ ****************************************************************************/ #include "propertyparser.h" +#include "enumeration.h" #include #include @@ -178,6 +179,15 @@ QVector3D vector3DFromString(const QString &s, bool *ok) return QVector3D(xCoord, yCoord, zCoord); } +QmlDesigner::Enumeration enumerationFromString(const QString &string, bool *ok) +{ + QmlDesigner::Enumeration tEnumeration(string); + if (ok) + *ok = !tEnumeration.scope().isEmpty() && !tEnumeration.name().isEmpty(); + return tEnumeration; +} + + } //namespace namespace QmlDesigner { @@ -238,8 +248,12 @@ QVariant read(int variantType, const QString &str) value = vector3DFromString(str, &conversionOk); break; default: { - value = QVariant(str); - value.convert(static_cast(variantType)); + if (variantType == QMetaType::type("Enumeration")) { + value = QVariant::fromValue(enumerationFromString(str, &conversionOk)); + } else { + value = QVariant(str); + value.convert(static_cast(variantType)); + } break; } } @@ -251,7 +265,6 @@ QVariant read(int variantType, const QString &str) } return value; - return QVariant(); } QVariant variantFromString(const QString &s) @@ -273,63 +286,6 @@ QVariant variantFromString(const QString &s) return QVariant(s); } -QString write(const QVariant &variant) -{ - if (!variant.isValid()) { - qWarning() << "Trying to serialize invalid QVariant"; - return QString(); - } - QString value; - switch (variant.type()) { - case QMetaType::QPoint: - { - QPoint p = variant.toPoint(); - value = QString("%1,%2").arg(QString::number(p.x()), QString::number(p.y())); - break; - } - case QMetaType::QPointF: - { - QPointF p = variant.toPointF(); - value = QString("%1,%2").arg(QString::number(p.x(), 'f'), QString::number(p.y(), 'f')); - break; - } - case QMetaType::QSize: - { - QSize s = variant.toSize(); - value = QString("%1x%2").arg(QString::number(s.width()), QString::number(s.height())); - break; - } - case QMetaType::QSizeF: - { - QSizeF s = variant.toSizeF(); - value = QString("%1x%2").arg(QString::number(s.width(), 'f'), QString::number(s.height(), 'f')); - break; - } - case QMetaType::QRect: - { - QRect r = variant.toRect(); - value = QString("%1,%2,%3x%4").arg(QString::number(r.x()), QString::number(r.y()), - QString::number(r.width()), QString::number(r.height())); - break; - } - case QMetaType::QRectF: - { - QRectF r = variant.toRectF(); - value = QString("%1,%2,%3x%4").arg(QString::number(r.x(), 'f'), QString::number(r.y(), 'f'), - QString::number(r.width(), 'f'), QString::number(r.height(), 'f')); - break; - } - default: - QVariant strVariant = variant; - strVariant.convert(QVariant::String); - if (!strVariant.isValid()) - qWarning() << Q_FUNC_INFO << "cannot serialize type " << QMetaType::typeName(variant.type()); - value = strVariant.toString(); - } - - return value; -} - } // namespace PropertyParser } // namespace Internal } // namespace Designer From 0bb66932e3a5759f128acb6f39db86c07aa03d02 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 9 Sep 2014 14:39:37 +0200 Subject: [PATCH 20/44] QmlDesigner.TextToModelMerger: Fixing comparison of QVariant n the case of custom types, their equalness operators are not called. Instead the values' addresses are compared. This is not want we want. Instead we have to cast and compare our custom types manually. This fixed a couple of QTC_ASSERTS. Change-Id: I3a82b84744f9b8860b7efaeb203475bb9dba5d11 Reviewed-by: Tim Jenssen --- .../qmldesigner/designercore/model/texttomodelmerger.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp index dc646979fc1..45ea4c91f97 100644 --- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp @@ -671,6 +671,8 @@ static inline bool smartVeryFuzzyCompare(QVariant value1, QVariant value2) static inline bool equals(const QVariant &a, const QVariant &b) { + if (a.canConvert() && b.canConvert()) + return a.value().toString() == b.value().toString(); if (a == b) return true; if (smartVeryFuzzyCompare(a, b)) From 79c0a29deae622239cd0d57dfbe8c10d4e5be68b Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 9 Sep 2014 10:04:23 +0200 Subject: [PATCH 21/44] QmlDesigner: Adding a manual test for plugin integration Because we had a couple of regressions in this area, I add this project for manual testing. In this project we have a qmlproject with a plugin that contains a .metainfo file and a custom property sheet. We define two items in the item library: MyComponent and MyComponent2. While MyComponent has a custom property sheet the property sheet for MyComponent2 is auto generated. Change-Id: I8d5ade43f648354175587c0a3e989bad87149298 Reviewed-by: Tim Jenssen --- .../plugins/imports/MyPlugin/MyComponent.qml | 42 +++++++++ .../plugins/imports/MyPlugin/MyComponent2.qml | 47 ++++++++++ .../designer/MyComponentSpecifics.qml | 88 +++++++++++++++++++ .../MyPlugin/designer/MyPlugin.metainfo | 44 ++++++++++ .../plugins/imports/MyPlugin/qmldir | 2 + .../qml/testprojects/plugins/plugins.qml | 44 ++++++++++ .../testprojects/plugins/plugins.qmlproject | 20 +++++ 7 files changed, 287 insertions(+) create mode 100644 tests/manual/qml/testprojects/plugins/imports/MyPlugin/MyComponent.qml create mode 100644 tests/manual/qml/testprojects/plugins/imports/MyPlugin/MyComponent2.qml create mode 100644 tests/manual/qml/testprojects/plugins/imports/MyPlugin/designer/MyComponentSpecifics.qml create mode 100644 tests/manual/qml/testprojects/plugins/imports/MyPlugin/designer/MyPlugin.metainfo create mode 100644 tests/manual/qml/testprojects/plugins/imports/MyPlugin/qmldir create mode 100644 tests/manual/qml/testprojects/plugins/plugins.qml create mode 100644 tests/manual/qml/testprojects/plugins/plugins.qmlproject diff --git a/tests/manual/qml/testprojects/plugins/imports/MyPlugin/MyComponent.qml b/tests/manual/qml/testprojects/plugins/imports/MyPlugin/MyComponent.qml new file mode 100644 index 00000000000..8f5b25fb6f4 --- /dev/null +++ b/tests/manual/qml/testprojects/plugins/imports/MyPlugin/MyComponent.qml @@ -0,0 +1,42 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +import QtQuick 2.0 + +Rectangle { + width: 60 + height: 60 + color: "green" + property alias text: text.text + + Text { + id: text + anchors.centerIn: parent + } +} diff --git a/tests/manual/qml/testprojects/plugins/imports/MyPlugin/MyComponent2.qml b/tests/manual/qml/testprojects/plugins/imports/MyPlugin/MyComponent2.qml new file mode 100644 index 00000000000..7a3bddeadc4 --- /dev/null +++ b/tests/manual/qml/testprojects/plugins/imports/MyPlugin/MyComponent2.qml @@ -0,0 +1,47 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +import QtQuick 2.0 + +Item { + property alias text: text.text + property alias color: rect.color + property alias radius: rect.radius + + Rectangle { + id: rect + anchors.fill: parent + color: "green" + + Text { + id: text + anchors.centerIn: parent + } + } +} diff --git a/tests/manual/qml/testprojects/plugins/imports/MyPlugin/designer/MyComponentSpecifics.qml b/tests/manual/qml/testprojects/plugins/imports/MyPlugin/designer/MyComponentSpecifics.qml new file mode 100644 index 00000000000..d7aadd4d565 --- /dev/null +++ b/tests/manual/qml/testprojects/plugins/imports/MyPlugin/designer/MyComponentSpecifics.qml @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +import QtQuick 2.0 +import HelperWidgets 2.0 +import QtQuick.Layouts 1.0 + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Color") + + ColorEditor { + caption: qsTr("Color") + backendValue: backendValues.color + supportGradient: true + } + + + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: "Rectangle" + + SectionLayout { + rows: 2 + + Label { + text: qsTr("Text") + } + + SecondColumnLayout { + LineEdit { + backendValue: backendValues.text + Layout.fillWidth: true + } + } + + Label { + text: qsTr("Radius") + } + SecondColumnLayout { + SpinBox { + backendValue: backendValues.radius + hasSlider: true + Layout.preferredWidth: 80 + minimumValue: 0 + maximumValue: Math.min(backendValues.height.value, backendValues.width.value) / 2 + } + ExpandingSpacer { + + } + } + } + } +} diff --git a/tests/manual/qml/testprojects/plugins/imports/MyPlugin/designer/MyPlugin.metainfo b/tests/manual/qml/testprojects/plugins/imports/MyPlugin/designer/MyPlugin.metainfo new file mode 100644 index 00000000000..52f783ff557 --- /dev/null +++ b/tests/manual/qml/testprojects/plugins/imports/MyPlugin/designer/MyPlugin.metainfo @@ -0,0 +1,44 @@ +MetaInfo { + Type { + name: "MyPlugin.MyComponent" + icon: ":/qtquickplugin/images/item-icon16.png" + + ItemLibraryEntry { + name: "My Component" + category: "My Test Plugin" + libraryIcon: ":/qtquickplugin/images/item-icon.png" + version: "1.0" + requiredImport: "MyPlugin" + + Property { + name: "text" + type: "binding" + value: "qsTr(\"This is text\")" + } + } + } + + Type { + name: "MyPlugin.MyComponent2" + icon: ":/qtquickplugin/images/item-icon16.png" + + ItemLibraryEntry { + name: "My Component 2" + category: "My Test Plugin" + libraryIcon: ":/qtquickplugin/images/item-icon.png" + version: "1.0" + requiredImport: "MyPlugin" + + Property { + name: "text" + type: "binding" + value: "qsTr(\"This is text\")" + } + + Property { name: "width"; type: "int"; value: 200; } + Property { name: "height"; type: "int"; value: 200; } + Property { name: "color"; type: "QColor"; value: "red"; } + } + } + +} diff --git a/tests/manual/qml/testprojects/plugins/imports/MyPlugin/qmldir b/tests/manual/qml/testprojects/plugins/imports/MyPlugin/qmldir new file mode 100644 index 00000000000..660f6d416b0 --- /dev/null +++ b/tests/manual/qml/testprojects/plugins/imports/MyPlugin/qmldir @@ -0,0 +1,2 @@ +MyComponent 1.0 MyComponent.qml +MyComponent2 1.0 MyComponent2.qml diff --git a/tests/manual/qml/testprojects/plugins/plugins.qml b/tests/manual/qml/testprojects/plugins/plugins.qml new file mode 100644 index 00000000000..dd25598fe12 --- /dev/null +++ b/tests/manual/qml/testprojects/plugins/plugins.qml @@ -0,0 +1,44 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +import QtQuick 2.3 +import QtQuick.Controls 1.2 +import QtQuick.Window 2.2 +import MyPlugin 1.0 + +ApplicationWindow { + title: qsTr("Hello World") + width: 640 + height: 480 + + MyComponent { + text: qsTr("Some Text") + + } +} diff --git a/tests/manual/qml/testprojects/plugins/plugins.qmlproject b/tests/manual/qml/testprojects/plugins/plugins.qmlproject new file mode 100644 index 00000000000..0d3f618138f --- /dev/null +++ b/tests/manual/qml/testprojects/plugins/plugins.qmlproject @@ -0,0 +1,20 @@ +/* File generated by Qt Creator */ + +import QmlProject 1.1 + +Project { + mainFile: "plugins.qml" + + /* Include .qml, .js, and image files from current directory and subdirectories */ + QmlFiles { + directory: "." + } + JavaScriptFiles { + directory: "." + } + ImageFiles { + directory: "." + } + /* List of plugin directories passed to QML runtime */ + importPaths: [ "imports" ] +} From a0127da1fd1a5146044b74daff4bfa4208868681 Mon Sep 17 00:00:00 2001 From: Topi Reinio Date: Tue, 26 Aug 2014 09:57:09 +0200 Subject: [PATCH 22/44] Doc: Clear a number of documentation warnings QDoc gets confused about the contents of doc_src_plugins.qdoc, mistaking some of its code for QDoc commands. To work around this problem, change the file to be a qdoc include file, wrap the code blocks with \badcode, and refer to them using \include. Using \badcode will also turn off code highlighting and autolinking, something that is not desired for these code snippets. Change-Id: I6c3b65ef098ec6f6f06892d78a3abb38e0d28ca3 Reviewed-by: Leena Miettinen --- .../widgets/doc_src_plugins.qdocinc} | 13 +++++++++++++ doc/src/widgets/qtdesigner-plugins.qdoc | 12 ++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) rename doc/{examples/doc_src_plugins.qdoc => src/widgets/doc_src_plugins.qdocinc} (97%) diff --git a/doc/examples/doc_src_plugins.qdoc b/doc/src/widgets/doc_src_plugins.qdocinc similarity index 97% rename from doc/examples/doc_src_plugins.qdoc rename to doc/src/widgets/doc_src_plugins.qdocinc index 7993582f460..df8f6844128 100644 --- a/doc/examples/doc_src_plugins.qdoc +++ b/doc/src/widgets/doc_src_plugins.qdocinc @@ -17,11 +17,14 @@ ****************************************************************************/ //! [0] +\badcode otool -L /Developer/Applications/Qt/plugins/designer/libqwt_designer_plugin.dylib +\endcode //! [0] //! [1] +\badcode /Developer/Applications/Qt/plugins/designer/libqwt_designer_plugin.dylib: libqwt_designer_plugin.dylib (compatibility version 0.0.0, current version 0.0.0) libqwt.5.dylib (compatibility version 5.2.0, current version 5.2.1) @@ -33,14 +36,18 @@ otool -L /Developer/Applications/Qt/plugins/designer/libqwt_designer_plugin.dyli /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 438.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.0.1) +\endcode //! [1] //! [2] +\badcode otool -L /usr/local/qwt-5.2.1/lib/libqwt.5.dylib +\endcode //! [2] //! [3] +\badcode /usr/local/qwt-5.2.1/lib/libqwt.5.dylib: libqwt.5.dylib (compatibility version 5.2.0, current version 5.2.1) QtGui.framework/Versions/4/QtGui (compatibility version 4.6.0, current version 4.6.2) @@ -48,18 +55,22 @@ otool -L /usr/local/qwt-5.2.1/lib/libqwt.5.dylib /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 438.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.0.1) +\endcode //! [3] //! [4] +\badcode sudo cp /Developer/Applications/Qt/plugins/designer/libqwt_designer_plugin.dylib \ /Developer/Applications/Qt/Qt\ Creator.app/Contents/MacOS/designer sudo cp -R /usr/local/qwt-5.2.1/lib/* \ /Developer/Applications/Qt/Qt\ Creator.app/Contents/Frameworks/ +\endcode //! [4] //! [5] +\badcode cd /Developer/Applications/Qt/Qt\ Creator.app/Contents/MacOS/designer sudo install_name_tool -change QtCore.framework/Versions/4/QtCore \ @@ -90,4 +101,6 @@ sudo install_name_tool -change \ QtGui.framework/Versions/4/QtGui \ @executable_path/../Frameworks/libQtGui.4.dylib \ libqwt.5.2.1.dylib +\endcode //! [5] + diff --git a/doc/src/widgets/qtdesigner-plugins.qdoc b/doc/src/widgets/qtdesigner-plugins.qdoc index accf991c195..2d4a786d701 100644 --- a/doc/src/widgets/qtdesigner-plugins.qdoc +++ b/doc/src/widgets/qtdesigner-plugins.qdoc @@ -85,13 +85,13 @@ \li To check the paths used in the Qwt library, enter the following \c otool command: - \snippet doc_src_plugins.qdoc 0 + \include doc_src_plugins.qdocinc 0 The output for Qwt 5.2.1 indicates that the plugin uses Qt core libraries (QtDesigner, QtScript, QtXml, QtGui and QtCore) and libqwt.5.dylib: - \snippet doc_src_plugins.qdoc 1 + \include doc_src_plugins.qdocinc 1 \li You must copy the \QD plugin and the Qwt library files to the @@ -108,21 +108,21 @@ Enter the following commands: - \snippet doc_src_plugins.qdoc 4 + \include doc_src_plugins.qdocinc 4 \li Enter the following \c otool command to check the libraries that are used by the Qwt library: - \snippet doc_src_plugins.qdoc 2 + \include doc_src_plugins.qdocinc 2 The command returns the following output: - \snippet doc_src_plugins.qdoc 3 + \include doc_src_plugins.qdocinc 3 \li Enter the following \c install_name_tool command to fix the references of the libraries: - \snippet doc_src_plugins.qdoc 5 + \include doc_src_plugins.qdocinc 5 \endlist From 5f0da502a42903cfb581caa133beb9597d20c320 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 9 Sep 2014 10:37:48 +0200 Subject: [PATCH 23/44] QmlDesigner: Adding UI option for fallback puppet. This patch adds an option to configure the usage of qml(2)puppet. By default the qml(2)puppet that comes together with Qt Creator is used. Change-Id: Idada8457e81fa17d3290dc97ded303aab475a9f3 Reviewed-by: Leena Miettinen Reviewed-by: Tim Jenssen --- src/plugins/qmldesigner/designersettings.cpp | 4 +- src/plugins/qmldesigner/settingspage.cpp | 2 + src/plugins/qmldesigner/settingspage.ui | 69 +++++++++++++------- 3 files changed, 48 insertions(+), 27 deletions(-) diff --git a/src/plugins/qmldesigner/designersettings.cpp b/src/plugins/qmldesigner/designersettings.cpp index e318ae0bf72..2b738708e6d 100644 --- a/src/plugins/qmldesigner/designersettings.cpp +++ b/src/plugins/qmldesigner/designersettings.cpp @@ -44,7 +44,7 @@ DesignerSettings::DesignerSettings() showDebugView(false), enableDebugView(false), alwaysSaveInCrumbleBar(false), - useOnlyFallbackPuppet(false) + useOnlyFallbackPuppet(true) {} void DesignerSettings::fromSettings(QSettings *settings) @@ -68,7 +68,7 @@ void DesignerSettings::fromSettings(QSettings *settings) alwaysSaveInCrumbleBar = settings->value( QLatin1String(QmlDesigner::Constants::QML_ALWAYS_SAFE_IN_CRUMBLEBAR), QVariant(false)).toBool(); useOnlyFallbackPuppet = settings->value( - QLatin1String(QmlDesigner::Constants::QML_USE_ONLY_FALLBACK_PUPPET), QVariant(false)).toBool(); + QLatin1String(QmlDesigner::Constants::QML_USE_ONLY_FALLBACK_PUPPET), QVariant(true)).toBool(); settings->endGroup(); settings->endGroup(); diff --git a/src/plugins/qmldesigner/settingspage.cpp b/src/plugins/qmldesigner/settingspage.cpp index 262abbd4fb6..63c44c93433 100644 --- a/src/plugins/qmldesigner/settingspage.cpp +++ b/src/plugins/qmldesigner/settingspage.cpp @@ -58,6 +58,7 @@ DesignerSettings SettingsPageWidget::settings() const designerSettings.designerWarningsInEditor = m_ui.designerWarningsInEditorCheckBox->isChecked(); designerSettings.showDebugView = m_ui.designerShowDebuggerCheckBox->isChecked(); designerSettings.enableDebugView = m_ui.designerEnableDebuggerCheckBox->isChecked(); + designerSettings.useOnlyFallbackPuppet = m_ui.designerDefaultPuppetCheckBox->isChecked(); return designerSettings; } @@ -72,6 +73,7 @@ void SettingsPageWidget::setSettings(const DesignerSettings &designerSettings) m_ui.designerWarningsInEditorCheckBox->setChecked(designerSettings.designerWarningsInEditor); m_ui.designerShowDebuggerCheckBox->setChecked(designerSettings.showDebugView); m_ui.designerEnableDebuggerCheckBox->setChecked(designerSettings.enableDebugView); + m_ui.designerDefaultPuppetCheckBox->setChecked(designerSettings.useOnlyFallbackPuppet); } void SettingsPageWidget::debugViewEnabledToggled(bool b) diff --git a/src/plugins/qmldesigner/settingspage.ui b/src/plugins/qmldesigner/settingspage.ui index 23b3b8df72f..d73a72f034d 100644 --- a/src/plugins/qmldesigner/settingspage.ui +++ b/src/plugins/qmldesigner/settingspage.ui @@ -14,6 +14,19 @@ Form + + + + Qt::Vertical + + + + 20 + 40 + + + + @@ -132,7 +145,7 @@ - + Debugging @@ -160,6 +173,28 @@ + + + + 0 + 0 + + + + Subcomponents + + + + + + Always save when leaving subcomponent in bread crumb + + + + + + + @@ -198,35 +233,19 @@ - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - 0 - 0 - - + - Subcomponents + QML Emulation Layer - + - + + + If you do not select this checkbox, Qt Quick Designer uses the QML emulation layer (QML Puppet) built with the Qt configured in the build and run kit for the project. + - Always save when leaving subcomponent in bread crumb + Always use the QML emulation layer provided by Qt Creator From 95182687f847e1c758dde12532deba506d03c9ab Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 10 Sep 2014 09:49:51 +0200 Subject: [PATCH 24/44] QmlJS: Add error message for invalid root item in the designer Documents with those types do crash the qmlpuppet and confuse the users. With this patch we give a clear error message and such files are not supported anymore. Change-Id: Iba19def2751d4dc81d90684c0c63c0274fdf49cf Reviewed-by: Fawzi Mohamed --- src/libs/qmljs/qmljscheck.cpp | 22 +++++++++++++++++++ src/libs/qmljs/qmljsstaticanalysismessage.cpp | 2 ++ src/libs/qmljs/qmljsstaticanalysismessage.h | 1 + .../designercore/model/texttomodelmerger.cpp | 1 + 4 files changed, 26 insertions(+) diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp index 3584c9a851b..403355426fd 100644 --- a/src/libs/qmljs/qmljscheck.cpp +++ b/src/libs/qmljs/qmljscheck.cpp @@ -525,10 +525,24 @@ public: } }; + +class UnsupportedRootObjectTypesByVisualDesigner : public QStringList +{ +public: + UnsupportedRootObjectTypesByVisualDesigner() + { + (*this) << QLatin1String("QtObject") << QLatin1String("ListModel") + << QLatin1String("Component") << QLatin1String("Timer") + << QLatin1String("Package"); + } + +}; + } // end of anonymous namespace Q_GLOBAL_STATIC(VisualAspectsPropertyBlackList, visualAspectsPropertyBlackList) Q_GLOBAL_STATIC(UnsupportedTypesByVisualDesigner, unsupportedTypesByVisualDesigner) +Q_GLOBAL_STATIC(UnsupportedRootObjectTypesByVisualDesigner, unsupportedRootObjectTypesByVisualDesigner) Check::Check(Document::Ptr doc, const ContextPtr &context) : _doc(doc) @@ -559,6 +573,7 @@ Check::Check(Document::Ptr doc, const ContextPtr &context) disableMessage(WarnReferenceToParentItemNotSupportedByVisualDesigner); disableMessage(WarnUndefinedValueForVisualDesigner); disableMessage(WarnStatesOnlyInRootItemForVisualDesigner); + disableMessage(ErrUnsupportedRootTypeInVisualDesigner); } Check::~Check() @@ -729,6 +744,13 @@ void Check::visitQmlObject(Node *ast, UiQualifiedId *typeId, if (m_typeStack.count() > 1 && getRightMostIdentifier(typeId)->name.toString() == QLatin1String("State")) addMessage(WarnStatesOnlyInRootItemForVisualDesigner, typeErrorLocation); + const QString typeName = getRightMostIdentifier(typeId)->name.toString(); + + if (m_typeStack.isEmpty() + && unsupportedRootObjectTypesByVisualDesigner()->contains(typeName)) + addMessage(ErrUnsupportedRootTypeInVisualDesigner, + locationFromRange(ast->firstSourceLocation(), ast->lastSourceLocation()), typeName); + bool typeError = false; if (_importsOk) { const ObjectValue *prototype = _context->lookupType(_doc.data(), typeId); diff --git a/src/libs/qmljs/qmljsstaticanalysismessage.cpp b/src/libs/qmljs/qmljsstaticanalysismessage.cpp index 5a620a738f9..324e94f22d5 100644 --- a/src/libs/qmljs/qmljsstaticanalysismessage.cpp +++ b/src/libs/qmljs/qmljsstaticanalysismessage.cpp @@ -221,6 +221,8 @@ StaticAnalysisMessages::StaticAnalysisMessages() tr("Qt Quick Designer only supports states in the root item.")); newMsg(WarnAboutQtQuick1InsteadQtQuick2, Warning, tr("Using Qt Quick 1 code model instead of Qt Quick 2.")); + newMsg(ErrUnsupportedRootTypeInVisualDesigner, Error, + tr("This type is not supported as a root element by Qt Quick Designer %1."), 1); } } // anonymous namespace diff --git a/src/libs/qmljs/qmljsstaticanalysismessage.h b/src/libs/qmljs/qmljsstaticanalysismessage.h index 5d8eb503be2..1943712e4b4 100644 --- a/src/libs/qmljs/qmljsstaticanalysismessage.h +++ b/src/libs/qmljs/qmljsstaticanalysismessage.h @@ -97,6 +97,7 @@ enum Type WarnReferenceToParentItemNotSupportedByVisualDesigner = 205, WarnUndefinedValueForVisualDesigner = 206, WarnStatesOnlyInRootItemForVisualDesigner = 207, + ErrUnsupportedRootTypeInVisualDesigner = 208, ErrUnknownComponent = 300, ErrCouldNotResolvePrototypeOf = 301, ErrCouldNotResolvePrototype = 302, diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp index 45ea4c91f97..2ac9486d3a5 100644 --- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp @@ -902,6 +902,7 @@ bool TextToModelMerger::load(const QString &data, DifferenceHandler &differenceH check.enableMessage(StaticAnalysis::WarnReferenceToParentItemNotSupportedByVisualDesigner); check.enableMessage(StaticAnalysis::WarnReferenceToParentItemNotSupportedByVisualDesigner); check.enableMessage(StaticAnalysis::WarnAboutQtQuick1InsteadQtQuick2); + check.enableMessage(StaticAnalysis::ErrUnsupportedRootTypeInVisualDesigner); //## triggers too often ## check.enableMessage(StaticAnalysis::WarnUndefinedValueForVisualDesigner); foreach (const StaticAnalysis::Message &message, check()) { From b6eac08c2b1c3999df45421d5c7e2350056397dc Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 9 Sep 2014 15:11:20 +0200 Subject: [PATCH 25/44] Only insert SideBarWidget for existing id Task-number: QTCREATORBUG-12974 Change-Id: I69cacab32de0454a78c5a67edcc7dcbbdcb12784 Reviewed-by: Christian Stenger Reviewed-by: Eike Ziller --- src/plugins/coreplugin/sidebar.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/coreplugin/sidebar.cpp b/src/plugins/coreplugin/sidebar.cpp index cc758e006b7..5fd6d4cd11a 100644 --- a/src/plugins/coreplugin/sidebar.cpp +++ b/src/plugins/coreplugin/sidebar.cpp @@ -287,7 +287,8 @@ void SideBar::readSettings(QSettings *settings, const QString &name) QStringList views = settings->value(viewsKey).toStringList(); if (views.count()) { foreach (const QString &id, views) - insertSideBarWidget(d->m_widgets.count(), id); + if (availableItemIds().contains(id)) + insertSideBarWidget(d->m_widgets.count(), id); } else { insertSideBarWidget(0); From 610c999e0c861960fe8989d95e1a2f1f9d06ae04 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Mon, 8 Sep 2014 11:07:09 +0300 Subject: [PATCH 26/44] ClearCase: Initialize checkout dialog after sync has finished If it is initialized too early, activities combo is empty. Change-Id: I6ca34e7bcae5d9960b1f84cd3f95ce13ae45ccca Reviewed-by: Knut Petter Svendsen Reviewed-by: Tobias Hunger --- src/plugins/clearcase/clearcaseplugin.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/plugins/clearcase/clearcaseplugin.cpp b/src/plugins/clearcase/clearcaseplugin.cpp index 1ea29ff15a5..d98016a465f 100644 --- a/src/plugins/clearcase/clearcaseplugin.cpp +++ b/src/plugins/clearcase/clearcaseplugin.cpp @@ -1569,11 +1569,6 @@ bool ClearCasePlugin::vcsOpen(const QString &workingDir, const QString &fileName QFileInfo fi(workingDir, fileName); QString topLevel = currentState().topLevel(); QString absPath = fi.absoluteFilePath(); - const QString relFile = QDir(topLevel).relativeFilePath(absPath); - - const QString file = QDir::toNativeSeparators(relFile); - const QString title = QString::fromLatin1("Checkout %1").arg(file); - CheckOutDialog coDialog(title, m_viewData.isUcm); if (!m_settings.disableIndexer && (fi.isWritable() || vcsStatus(absPath).status == FileStatus::Unknown)) @@ -1582,6 +1577,12 @@ bool ClearCasePlugin::vcsOpen(const QString &workingDir, const QString &fileName QMessageBox::information(0, tr("ClearCase Checkout"), tr("File is already checked out.")); return true; } + + const QString relFile = QDir(topLevel).relativeFilePath(absPath); + const QString file = QDir::toNativeSeparators(relFile); + const QString title = QString::fromLatin1("Checkout %1").arg(file); + CheckOutDialog coDialog(title, m_viewData.isUcm); + // Only snapshot views can have hijacked files bool isHijacked = (!m_viewData.isDynamic && (vcsStatus(absPath).status & FileStatus::Hijacked)); if (!isHijacked) From ec26e687f442ecb24d5e356d5563c1ae3b469e52 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 9 Sep 2014 17:13:44 +0200 Subject: [PATCH 27/44] QmlDesigner.PropertyEditor: Allow centering and anchoring at the same time With this patch center anchor and right/left/top/right anchors can be used at the same time. Task-number: QTCREATORBUG-11455 Change-Id: I3114eb76bdfc4226e78fd711e04849d7d7d7cd38 Reviewed-by: Tim Jenssen --- .../HelperWidgets/AnchorButtons.qml | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/HelperWidgets/AnchorButtons.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/HelperWidgets/AnchorButtons.qml index ebc1cdae880..e42829f899f 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/HelperWidgets/AnchorButtons.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/HelperWidgets/AnchorButtons.qml @@ -57,7 +57,8 @@ ButtonRow { onClicked: { if (checked) { - anchorBackend.verticalCentered = false; + if (anchorBackend.bottomAnchored) + anchorBackend.verticalCentered = false; anchorBackend.topAnchored = true; } else { anchorBackend.topAnchored = false; @@ -75,7 +76,8 @@ ButtonRow { onClicked: { if (checked) { - anchorBackend.verticalCentered = false; + if (anchorBackend.topAnchored) + anchorBackend.verticalCentered = false; anchorBackend.bottomAnchored = true; } else { anchorBackend.bottomAnchored = false; @@ -94,7 +96,8 @@ ButtonRow { onClicked: { if (checked) { - anchorBackend.horizontalCentered = false; + if (anchorBackend.rightAnchored) + anchorBackend.horizontalCentered = false; anchorBackend.leftAnchored = true; } else { anchorBackend.leftAnchored = false; @@ -112,7 +115,8 @@ ButtonRow { onClicked: { if (checked) { - anchorBackend.horizontalCentered = false; + if (anchorBackend.leftAnchored) + anchorBackend.horizontalCentered = false; anchorBackend.rightAnchored = true; } else { anchorBackend.rightAnchored = false; @@ -156,8 +160,10 @@ ButtonRow { onClicked: { if (checked) { - anchorBackend.topAnchored = false; - anchorBackend.bottomAnchored = false; + if (anchorBackend.topAnchored && anchorBackend.bottomAnchored) { + anchorBackend.topAnchored = false; + anchorBackend.bottomAnchored = false; + } anchorBackend.verticalCentered = true; } else { anchorBackend.verticalCentered = false; @@ -175,8 +181,10 @@ ButtonRow { onClicked: { if (checked) { - anchorBackend.leftAnchored = false; - anchorBackend.rightAnchored = false; + if (anchorBackend.leftAnchored && anchorBackend.rightAnchored) { + anchorBackend.leftAnchored = false; + anchorBackend.rightAnchored = false; + } anchorBackend.horizontalCentered = true; } else { anchorBackend.horizontalCentered = false; From 997e1fe7934b9568a3f1a96b26bc8c07084e2999 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Wed, 10 Sep 2014 17:23:46 +0200 Subject: [PATCH 28/44] Doc: fix labels and tooltips Fix capitalization, punctuation and typos, and remove unnecessary text. Change-Id: Iee39e465125d5d9eec099323fb7d75756c8d81df Reviewed-by: Thomas Hartmann --- .../Controls/SliderSpecifics.qml | 26 +++++++++---------- .../Controls/SplitViewSpecifics.qml | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/plugins/qmldesigner/componentsplugin/Controls/SliderSpecifics.qml b/src/plugins/qmldesigner/componentsplugin/Controls/SliderSpecifics.qml index 936d0c42e12..5ffb4d25a6f 100644 --- a/src/plugins/qmldesigner/componentsplugin/Controls/SliderSpecifics.qml +++ b/src/plugins/qmldesigner/componentsplugin/Controls/SliderSpecifics.qml @@ -48,8 +48,8 @@ Section { ExpandingSpacer {} } Label { - text: qsTr("Maximum Value") - toolTip: qsTr("This property holds the maximum value of the Slider The default value is 1.0.") + text: qsTr("Maximum value") + toolTip: qsTr(Maximum value of the slider. The default value is 1.0.") } SecondColumnLayout { SpinBox { @@ -64,8 +64,8 @@ Section { } } Label { - text: qsTr("Minimum Value") - toolTip: qsTr("This property holds the minimum value of the Slider. The default value is 0.0.") + text: qsTr("Minimum value") + toolTip: qsTr("Minimum value of the slider. The default value is 0.0.") } SecondColumnLayout { SpinBox { @@ -81,7 +81,7 @@ Section { } Label { text: qsTr("Orientation") - toolTip: qsTr("This property holds the layout orientation of the Slider.") + toolTip: qsTr("Layout orientation of the slider.") } SecondColumnLayout { OrientationCombobox { @@ -91,8 +91,8 @@ Section { } } Label { - text: qsTr("Step Size") - toolTip: qsTr("This property indicates the Slider step size.") + text: qsTr("Step size") + toolTip: qsTr("Indicates the slider step size.") } SecondColumnLayout { SpinBox { @@ -106,8 +106,8 @@ Section { } Label { - text: qsTr("Active Focus On Press") - toolTip: qsTr("This property indicates whether the Slider should receive active focus when pressed.") + text: qsTr("Active focus on press") + toolTip: qsTr("Indicates whether the slider should receive active focus when pressed.") } SecondColumnLayout { @@ -119,8 +119,8 @@ Section { ExpandingSpacer {} } Label { - text: qsTr("Tickmarks Enabled") - toolTip: qsTr("TIndicates whether the Slider should display tickmarks at step intervals.") + text: qsTr("Tick marks enabled") + toolTip: qsTr("Indicates whether the slider should display tick marks at step intervals.") } SecondColumnLayout { @@ -132,8 +132,8 @@ Section { ExpandingSpacer {} } Label { - text: qsTr("Update Value While Dragging") - toolTip: qsTr("Current value should be updated while the user is moving the Slider handle, or only when the button has been released.") + text: qsTr("Update value while dragging") + toolTip: qsTr("Determines whether the current value should be updated while the user is moving the slider handle, or only when the button has been released.") } SecondColumnLayout { diff --git a/src/plugins/qmldesigner/componentsplugin/Controls/SplitViewSpecifics.qml b/src/plugins/qmldesigner/componentsplugin/Controls/SplitViewSpecifics.qml index a21372b159c..672e9f020bb 100644 --- a/src/plugins/qmldesigner/componentsplugin/Controls/SplitViewSpecifics.qml +++ b/src/plugins/qmldesigner/componentsplugin/Controls/SplitViewSpecifics.qml @@ -43,7 +43,7 @@ Column { SectionLayout { Label { text: qsTr("Orientation") - toolTip: qsTr("This property holds the orientation of the SplitView.") + toolTip: qsTr("Orientation of the split view.") } SecondColumnLayout { From 8d6231397efd0ba1a8bd144d79560050740a6d92 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Wed, 10 Sep 2014 16:22:58 +0200 Subject: [PATCH 29/44] Doc: update Qt Quick version numbers Make references more generic, because the templates are frequently updated to import latest Qt Quick and Qt Quick Controls versions. Change-Id: Ic3e6744c960fe8f953abf2aaddd2c7498bdb1f38 Reviewed-by: Jarek Kobus --- doc/src/qtquick/qtquick-creating.qdoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/qtquick/qtquick-creating.qdoc b/doc/src/qtquick/qtquick-creating.qdoc index 8870e7c1adb..0f4ce96f2be 100644 --- a/doc/src/qtquick/qtquick-creating.qdoc +++ b/doc/src/qtquick/qtquick-creating.qdoc @@ -75,8 +75,8 @@ \list - \li Select \gui {Qt Quick Controls 1.1} or \gui {Qt Quick 2.2} to - develop for platforms that run Qt 5. + \li Select \gui {Qt Quick Controls} or \gui {Qt Quick 2.1}, or + later, to develop for platforms that run Qt 5. \li Select \gui {Qt Quick 1.1} to develop for platforms that run Qt 4.7.4. To develop for platforms that run Qt 4.7.1, 4.7.2, or From 17c313756b25df0648ff2b6b925f807c845a566d Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Thu, 11 Sep 2014 11:11:31 +0200 Subject: [PATCH 30/44] QmlDesigner.Instances: Do not use Qt kit for fallback puppet Change-Id: I825c7f2380a376b30cc647942aa7d252aa9d36df Reviewed-by: Tim Jenssen --- .../qmldesigner/designercore/instances/puppetcreator.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp b/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp index ff66653875c..09cdaa7e62d 100644 --- a/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp +++ b/src/plugins/qmldesigner/designercore/instances/puppetcreator.cpp @@ -331,7 +331,8 @@ QString PuppetCreator::qmlPuppetPath(PuppetType puppetType) const QProcessEnvironment PuppetCreator::processEnvironment() const { Utils::Environment environment = Utils::Environment::systemEnvironment(); - m_kit->addToEnvironment(environment); + if (!useOnlyFallbackPuppet()) + m_kit->addToEnvironment(environment); environment.set("QML_BAD_GUI_RENDER_LOOP", "true"); environment.set("QML_USE_MOCKUPS", "true"); environment.set("QML_PUPPET_MODE", "true"); From a9f6f2519bcd1651e7e6f5dc3cdd64fa5f3c7aab Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Thu, 11 Sep 2014 10:22:11 +0200 Subject: [PATCH 31/44] QmlDesigner: Allow negative spacings for positioners Change-Id: I610127421b071a4bf4ed0d21aeab2b2f0c089d28 Reviewed-by: Tim Jenssen --- .../propertyEditorQmlSources/QtQuick/ColumnSpecifics.qml | 4 ++-- .../propertyEditorQmlSources/QtQuick/FlowSpecifics.qml | 4 ++-- .../propertyEditorQmlSources/QtQuick/GridSpecifics.qml | 4 ++-- .../propertyEditorQmlSources/QtQuick/RowSpecifics.qml | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ColumnSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ColumnSpecifics.qml index e3f5a33db3c..c79cea1c562 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ColumnSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ColumnSpecifics.qml @@ -47,8 +47,8 @@ Column { SecondColumnLayout { SpinBox { backendValue: backendValues.spacing - minimumValue: 0 - maximumValue: 2000 + minimumValue: -4000 + maximumValue: 4000 decimals: 0 } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/FlowSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/FlowSpecifics.qml index 08fb6e40aa2..8e4d6d2078a 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/FlowSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/FlowSpecifics.qml @@ -78,8 +78,8 @@ Column { SecondColumnLayout { SpinBox { backendValue: backendValues.spacing - minimumValue: 0 - maximumValue: 2000 + minimumValue: -4000 + maximumValue: 4000 decimals: 0 } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/GridSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/GridSpecifics.qml index 793bee9010b..17c6e5cff0d 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/GridSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/GridSpecifics.qml @@ -109,8 +109,8 @@ Column { SecondColumnLayout { SpinBox { backendValue: backendValues.spacing - minimumValue: 0 - maximumValue: 2000 + minimumValue: -4000 + maximumValue: 4000 decimals: 0 } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/RowSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/RowSpecifics.qml index 81b4a93202a..1676d200f48 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/RowSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/RowSpecifics.qml @@ -61,8 +61,8 @@ Column { SecondColumnLayout { SpinBox { backendValue: backendValues.spacing - minimumValue: 0 - maximumValue: 2000 + minimumValue: -4000 + maximumValue: 4000 decimals: 0 } From 060c5db5d31f96b5062cba0d324faacc2a87c84b Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Thu, 11 Sep 2014 11:42:10 +0200 Subject: [PATCH 32/44] QmlDesigner.PropertyEditor: Fix regression in SliderSpecifics Change-Id: Id71d3ec192a030ead81bb7746681b18cb9d79e27 Reviewed-by: Thomas Hartmann --- .../qmldesigner/componentsplugin/Controls/SliderSpecifics.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/componentsplugin/Controls/SliderSpecifics.qml b/src/plugins/qmldesigner/componentsplugin/Controls/SliderSpecifics.qml index 5ffb4d25a6f..20cec8e0fef 100644 --- a/src/plugins/qmldesigner/componentsplugin/Controls/SliderSpecifics.qml +++ b/src/plugins/qmldesigner/componentsplugin/Controls/SliderSpecifics.qml @@ -49,7 +49,7 @@ Section { } Label { text: qsTr("Maximum value") - toolTip: qsTr(Maximum value of the slider. The default value is 1.0.") + toolTip: qsTr("Maximum value of the slider. The default value is 1.0.") } SecondColumnLayout { SpinBox { From 38ffff88da1f0e1b2aa6e6439d6324f717f83191 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 11 Sep 2014 12:33:45 +0200 Subject: [PATCH 33/44] SSH: Fix maximum packet size check. The statement in the RFC was misunderstood. Task-number: QTCREATORBUG-12884 Change-Id: Icd533362ebf95d963cacc8d11da03360e742f070 Reviewed-by: Christian Kandeler --- src/libs/ssh/sshchannel.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/libs/ssh/sshchannel.cpp b/src/libs/ssh/sshchannel.cpp index a2595aa88d8..41db221624c 100644 --- a/src/libs/ssh/sshchannel.cpp +++ b/src/libs/ssh/sshchannel.cpp @@ -39,7 +39,10 @@ namespace QSsh { namespace Internal { -const quint32 MinMaxPacketSize = 32768; +// "Payload length" (RFC 4253, 6.1), i.e. minus packet type, channel number +// and length field for string. +const quint32 MinMaxPacketSize = 32768 - sizeof(quint32) - sizeof(quint32) - 1; + const quint32 NoChannel = 0xffffffffu; AbstractSshChannel::AbstractSshChannel(quint32 channelId, @@ -151,8 +154,7 @@ void AbstractSshChannel::handleOpenSuccess(quint32 remoteChannelId, #endif m_remoteChannel = remoteChannelId; m_remoteWindowSize = remoteWindowSize; - m_remoteMaxPacketSize = remoteMaxPacketSize - sizeof(quint32) - sizeof m_remoteChannel - 1; - // Original value includes packet type, channel number and length field for string. + m_remoteMaxPacketSize = remoteMaxPacketSize; setChannelState(SessionEstablished); handleOpenSuccessInternal(); } From 57527c2708131da120660027b5f98df2b6d93c19 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 11 Sep 2014 12:49:27 +0200 Subject: [PATCH 34/44] SSH: Do not always emit an error if an SFTP channel exits. Channel exit is completely normal if we closed the channel, so this must not cause an error message. Change-Id: I57f5165b339a52a25118ad5e357f41334dadebc4 Reviewed-by: Christian Kandeler --- src/libs/ssh/sftpchannel.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/libs/ssh/sftpchannel.cpp b/src/libs/ssh/sftpchannel.cpp index a1c88bb650f..c69ca173f20 100644 --- a/src/libs/ssh/sftpchannel.cpp +++ b/src/libs/ssh/sftpchannel.cpp @@ -302,6 +302,9 @@ void SftpChannelPrivate::handleExitStatus(const SshChannelExitStatus &exitStatus qDebug("Remote SFTP service exited with exit code %d", exitStatus.exitStatus); #endif + if (channelState() == CloseRequested || channelState() == Closed) + return; + emit channelError(tr("The SFTP server finished unexpectedly with exit code %1.") .arg(exitStatus.exitStatus)); From 67d18670a36a58ec884460a6168fb2917ad98541 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 11 Sep 2014 12:49:59 +0200 Subject: [PATCH 35/44] SSH: Adapt test to signal renaming. This was overlooked in the original patch. Change-Id: I1709e28552ed9dd83bd3e810ba51ef5ec95d8580 Reviewed-by: Christian Kandeler --- tests/manual/ssh/sftp/sftptest.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/manual/ssh/sftp/sftptest.cpp b/tests/manual/ssh/sftp/sftptest.cpp index 8f72a7d7686..edc91c4c4d2 100644 --- a/tests/manual/ssh/sftp/sftptest.cpp +++ b/tests/manual/ssh/sftp/sftptest.cpp @@ -80,7 +80,7 @@ void SftpTest::handleConnected() m_channel = m_connection->createSftpChannel(); connect(m_channel.data(), SIGNAL(initialized()), this, SLOT(handleChannelInitialized())); - connect(m_channel.data(), SIGNAL(initializationFailed(QString)), this, + connect(m_channel.data(), SIGNAL(channelError(QString)), this, SLOT(handleChannelInitializationFailure(QString))); connect(m_channel.data(), SIGNAL(finished(QSsh::SftpJobId,QString)), this, SLOT(handleJobFinished(QSsh::SftpJobId,QString))); From f511344ed05df5a44aa7bbcb31b99aa20a4c2067 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 11 Sep 2014 13:18:39 +0200 Subject: [PATCH 36/44] SSH: Fix tunnel test. Since we're opening the port for IPv4, we must also use an IPv4 host address. Change-Id: I73e009ebd6deb0bd6804cddc8c83299dbfc1b312 Reviewed-by: Christian Kandeler --- tests/manual/ssh/tunnel/main.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/manual/ssh/tunnel/main.cpp b/tests/manual/ssh/tunnel/main.cpp index 0d095616b40..11029ba24ab 100644 --- a/tests/manual/ssh/tunnel/main.cpp +++ b/tests/manual/ssh/tunnel/main.cpp @@ -42,8 +42,9 @@ int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); bool parseSuccess; - const QSsh::SshConnectionParameters ¶meters + QSsh::SshConnectionParameters parameters = ArgumentsCollector(app.arguments()).collect(parseSuccess); + parameters.host = QLatin1String("127.0.0.1"); if (!parseSuccess) return EXIT_FAILURE; Tunnel tunnel(parameters); From cd3bd67d77d888cef5240d445497a92838e81c20 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 5 Sep 2014 11:53:32 +0200 Subject: [PATCH 37/44] Update qbs submodule. To HEAD of 1.3 branch. Change-Id: I474a2cdfbc99a82cd075ee785d2530a8a5f012e4 Reviewed-by: Christian Kandeler --- src/shared/qbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/qbs b/src/shared/qbs index 1358bf739a6..ffa686782af 160000 --- a/src/shared/qbs +++ b/src/shared/qbs @@ -1 +1 @@ -Subproject commit 1358bf739a6580ccc1f4c113d5b1ba72784793a0 +Subproject commit ffa686782af8c494a3c96967e22c0307c10b1b80 From 602746950b8f6269ae03a7886320425d3dfbfc86 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Fri, 12 Sep 2014 14:14:18 +0200 Subject: [PATCH 38/44] Scripts: Fix deployment of qmlpuppets on OSX Change-Id: Ic312423ff7d79b652379d7512a75be043a33740b Reviewed-by: Eike Ziller --- scripts/deployqtHelper_mac.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/deployqtHelper_mac.sh b/scripts/deployqtHelper_mac.sh index d8e729c7877..f6168fac8e0 100755 --- a/scripts/deployqtHelper_mac.sh +++ b/scripts/deployqtHelper_mac.sh @@ -24,12 +24,12 @@ if [ -d "$5" ]; then fi qmlpuppetapp="$1/Contents/MacOS/qmlpuppet" -if [ -d "$qmlpuppetapp" ]; then +if [ -f "$qmlpuppetapp" ]; then qmlpuppetArgument="-executable=$qmlpuppetapp" fi qml2puppetapp="$1/Contents/MacOS/qml2puppet" -if [ -d "$qml2puppetapp" ]; then +if [ -f "$qml2puppetapp" ]; then qml2puppetArgument="-executable=$qml2puppetapp" fi From 165f759e184b28be8bb071e6ed3308436e404238 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Thu, 11 Sep 2014 15:41:05 +0200 Subject: [PATCH 39/44] Editors: sync the layout with the contents before setting text cursor Not doing this makes the QPlainTextEdit interact with an invalid layout, potentially causing crashes. Now the cursor setting itself is not part of the undo stack anymore, but as undoing sets the cursor itself, that shouldn't be a problem. Change-Id: Ic6f8ee9781faed655ac20f058b562c098ced20ae Task-number: QTCREATORBUG-12987 Reviewed-by: hjk --- src/libs/utils/uncommentselection.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libs/utils/uncommentselection.cpp b/src/libs/utils/uncommentselection.cpp index 21a4756c504..319ebea1c24 100644 --- a/src/libs/utils/uncommentselection.cpp +++ b/src/libs/utils/uncommentselection.cpp @@ -223,6 +223,8 @@ void Utils::unCommentSelection(QPlainTextEdit *edit, const CommentDefinition &de } } + cursor.endEditBlock(); + // adjust selection when commenting out if (hasSelection && !doMultiLineStyleUncomment && !doSingleLineStyleUncomment) { cursor = edit->textCursor(); @@ -238,6 +240,4 @@ void Utils::unCommentSelection(QPlainTextEdit *edit, const CommentDefinition &de } edit->setTextCursor(cursor); } - - cursor.endEditBlock(); } From 4cfaeb8b519334370ed769d0a578cc4e5ef4d340 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 12 Sep 2014 17:38:12 +0200 Subject: [PATCH 40/44] QbsProjectManager: Fix crash when calling QbsProject::files(). We can't do that during parsing, as qbs::Project::buildSystemFiles() might run into a race condition. Change-Id: Iae3fd3000fdc71fec50c82d50fb3b4e3888351bc Reviewed-by: Joerg Bornemann --- src/plugins/qbsprojectmanager/qbsproject.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index e1156498688..a973cf585b5 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -190,11 +190,11 @@ static void collectFilesForProject(const qbs::ProjectData &project, QSetqbsProjectData().isValid()) + if (!m_qbsProject.isValid() || isParsing()) return QStringList(); QSet result; - collectFilesForProject(m_rootProjectNode->qbsProjectData(), result); - result.unite(qbsProject().buildSystemFiles()); + collectFilesForProject(m_projectData, result); + result.unite(m_qbsProject.buildSystemFiles()); return result.toList(); } From 5e4f3a4f4eb34863894264aec1a1b8788363c8ca Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 12 Sep 2014 17:41:35 +0200 Subject: [PATCH 41/44] QbsProjectManager: Turn the timestamp check off by default. One line was overlooked in a recent patch that intended to do this. Change-Id: I1c344c4e25d47b2c4cc89071c2a4e059b451c9fd Reviewed-by: Joerg Bornemann --- src/plugins/qbsprojectmanager/qbsbuildstep.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp index 1ee5ca17ec5..895b5f5dfef 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp +++ b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp @@ -71,7 +71,6 @@ QbsBuildStep::QbsBuildStep(ProjectExplorer::BuildStepList *bsl) : { setDisplayName(tr("Qbs Build")); setQbsConfiguration(QVariantMap()); - m_qbsBuildOptions.setForceTimestampCheck(true); } QbsBuildStep::QbsBuildStep(ProjectExplorer::BuildStepList *bsl, const QbsBuildStep *other) : From 5078b70ddbecca33820c59aabb1597650915c34b Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Mon, 15 Sep 2014 12:57:25 +0300 Subject: [PATCH 42/44] ClearCase: Fix unreserved checkout Task-number: QTCREATORBUG-12847 Change-Id: I8b42631adf62cd9b6afea619a17bf01a725a2968 Reviewed-by: Tobias Hunger --- src/plugins/clearcase/clearcaseplugin.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/plugins/clearcase/clearcaseplugin.cpp b/src/plugins/clearcase/clearcaseplugin.cpp index d98016a465f..9dac4247284 100644 --- a/src/plugins/clearcase/clearcaseplugin.cpp +++ b/src/plugins/clearcase/clearcaseplugin.cpp @@ -1599,9 +1599,11 @@ bool ClearCasePlugin::vcsOpen(const QString &workingDir, const QString &fileName else args << QLatin1String("-c") << comment; args << QLatin1String("-query"); - if (coDialog.isReserved()) + const bool reserved = coDialog.isReserved(); + const bool unreserved = !reserved || coDialog.isUnreserved(); + if (reserved) args << QLatin1String("-reserved"); - if (coDialog.isUnreserved()) + if (unreserved) args << QLatin1String("-unreserved"); if (coDialog.isPreserveTime()) args << QLatin1String("-ptime"); From f6c2a27218e6f84da19e055aa1d5d7a9a3db0ea6 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 12 Sep 2014 16:13:58 +0200 Subject: [PATCH 43/44] Add changes file for 3.2.1 Change-Id: I43a7d8d5bfcef33ef7e2370cafec3c409fd9ce25 Reviewed-by: Leena Miettinen --- dist/changes-3.2.1 | 48 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 dist/changes-3.2.1 diff --git a/dist/changes-3.2.1 b/dist/changes-3.2.1 new file mode 100644 index 00000000000..70e82f26110 --- /dev/null +++ b/dist/changes-3.2.1 @@ -0,0 +1,48 @@ +Qt Creator version 3.2.1 is a bugfix release. + +The most important changes are listed in this document. For a complete +list of changes, see the Git log for the Qt Creator sources that +you can check out from the public Git repository. For example: + +git clone git://gitorious.org/qt-creator/qt-creator.git +git log --cherry-pick --pretty=oneline v3.2.0..v3.2.1 + +General + * Fixed freeze when using shortcut for all projects or current project + locator filters (QTCREATORBUG-12875) + * Fixed crash when activating timers by removing the unsupported UpdateInfo + plugin that triggered it (QTCREATORBUG-11262) + +Qbs Projects + * Fixed adding and removing files when project file is write protected by VCS + * Fixed crash when removing empty install step + +C++ Support + * Fixed crash when opening context menu on macro parameter (QTCREATORBUG-12853) + +QML Support + * Added missing members to date objects + * Added templates for Qt Quick 2.3 and Qt Quick Controls 1.2 applications + * Fixed keyboard shortcuts in QML/JS console (QTCREATORBUG-12956) + +Qt Quick Designer + * Added option to use fallback QML puppet and set it to be the default + * Fixed updating of color properties (QTCREATORBUG-12841) + * Fixed duplication of ApplicationWindow properties (QTCREATORBUG-12910) + +Platform Specific + +OS X + * Fixed deployment of Clang library in binary packages + * Fixed deployment of fallback QML puppets in binary packages + * Removed wrong File > Exit menu item + +iOS + * Fixed determination of newest SDK version when no version is explicitly stated + +Remote Linux + * Fixed mixed QML and C++ debugging (QTCREATORBUG-12928) + * Fixed check for maximum packet size for SSH connections (QTCREATORBUG-12884) + +Windows Phone + * Fixed font deployment for Windows Phone 8.0 From a4db6db358aefb60bac34cacbab23aa6f38279f7 Mon Sep 17 00:00:00 2001 From: Sergey Belyashov Date: Thu, 26 Jun 2014 17:04:45 +0400 Subject: [PATCH 44/44] Update Russian translation Change-Id: I22a16eaae505d43c31516db98290df3ec667b5e0 Reviewed-by: Denis Shienkov Reviewed-by: Oswald Buddenhagen --- share/qtcreator/translations/qtcreator_ru.ts | 4851 ++++++++++-------- 1 file changed, 2770 insertions(+), 2081 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_ru.ts b/share/qtcreator/translations/qtcreator_ru.ts index ba9441029e4..dfbfa6174bb 100644 --- a/share/qtcreator/translations/qtcreator_ru.ts +++ b/share/qtcreator/translations/qtcreator_ru.ts @@ -674,7 +674,7 @@ Android::Internal::AndroidManager - Error creating Android directory '%1'. + Error creating Android directory "%1". Ошибка создания каталога «%1» для Android. @@ -692,19 +692,19 @@ Please install at least one SDK. Файлы Android были автоматически обновлены. - Unknown Android version. - Версия Android неизвестна. + Unknown Android version. API Level: %1 + Версия Android неизвестна. API Level: %1 Error creating Android templates. Не удалось создать шаблоны для Android. - Cannot parse '%1'. + Cannot parse "%1". Не удалось обработать «%1». - Cannot open '%1'. + Cannot open "%1". Не удалось открыть «%1». @@ -792,14 +792,6 @@ Please install at least one SDK. The structure of the Android manifest file is corrupted. Expected an 'application' and 'activity' sub node. Структура файла манифеста Android повреждена. Требуются дочерние элементы «application» и «activity». - - Could not parse file: '%1'. - Не удалось разобрать файл: «%1». - - - %2: Could not parse file: '%1'. - %2: Не удалось разобрать файл: «%1». - Target SDK: Целевой SDK: @@ -840,6 +832,14 @@ Please install at least one SDK. API %1: %2 API %1: %2 + + Could not parse file: "%1". + Не удалось разобрать файл: «%1». + + + %2: Could not parse file: "%1". + %2: Не удалось разобрать файл: «%1». + Goto error Перейти к ошибке @@ -890,12 +890,6 @@ Please install at least one SDK. Cannot find ELF information Не удалось найти информацию ELF - - Cannot find '%1'. -Please make sure your application is built successfully and is selected in Application tab ('Run option'). - Не удалось найти «%1». -Убедитесь, что приложение успешно собралось и выбрано во вкладке Приложение («Параметры запуска»). - Error Ошибка @@ -913,7 +907,13 @@ Please make sure your application is built successfully and is selected in Appli Копирование приложения и библиотек Qt в пакет Android... - Can't copy gdbserver from '%1' to '%2' + Cannot find "%1". +Please make sure your application is built successfully and is selected in Application tab ('Run option'). + Не удалось найти «%1». +Убедитесь, что приложение успешно собрано и выбрано во вкладке Приложение («Параметры запуска»). + + + Can't copy gdbserver from "%1" to "%2" Не удалось скопировать gdbserver из «%1» в «%2» @@ -1050,7 +1050,7 @@ Please make sure your application is built successfully and is selected in Appli Android::Internal::AndroidRunConfiguration - The .pro file '%1' is currently being parsed. + The .pro file "%1" is currently being parsed. Идёт обработка файла .pro: «%1». @@ -1099,10 +1099,6 @@ Please make sure your application is built successfully and is selected in Appli Failed to start the activity. Reason: %1. Не удалось запустить activity: %1. - - Unable to start '%1'. - Не удалось запустить «%1». - "%1" terminated. «%1» завершён. @@ -1139,6 +1135,10 @@ To add the Qt version, select Options > Build & Run > Qt Versions.Отсутствует профиль Qt для архитектуры %1. Для его добавления зайдите в Параметры - Сборка и запуск - Профили Qt. + + Select JDK Path + Выбор размещения JDK + The Android NDK cannot be installed into a path with spaces. Нельзя устанавливать Android NDK в каталог, путь к которому содержит пробелы. @@ -1157,6 +1157,22 @@ To add the Qt versions, select Options > Build & Run > Qt Versions."%1" does not seem to be a JDK folder. Путь «%1» не похож на каталог JDK. + + Remove Android Virtual Device + Удаление виртуального устройства Android + + + Remove device "%1"? This cannot be undone. + Удалить устройство «%1»? Отменить операцию будет нельзя. + + + Unsupported GDB + Неподдерживаемый GDB + + + The GDB inside this NDK seems to not support Python. The Qt Project offers fixed GDB builds at: <a href="http://download.qt-project.org/official_releases/gdb/">http://download.qt-project.org/official_releases/gdb/</a> + Похоже, GDB из NDK не поддерживает Python. Проект Qt предлагает исправленную сборку GDB: <a href="http://download.qt-project.org/official_releases/gdb/">http://download.qt-project.org/official_releases/gdb/</a> + Select Android SDK folder Выбор каталога Android SDK @@ -1169,10 +1185,6 @@ To add the Qt versions, select Options > Build & Run > Qt Versions.Select ant Script Выбор сценария ant - - Select OpenJDK Path - Выбор размещения OpenJDK - Android::Internal::AndroidToolChainConfigWidget @@ -1188,6 +1200,19 @@ To add the Qt versions, select Options > Build & Run > Qt Versions.Android GCC + + Android::Internal::AvdDialog + + Cannot create a new AVD. No sufficiently recent Android SDK available. +Install an SDK of at least API version %1. + Не удалось создать AVD, так как отсутствует подходящий Android SDK. +Установите хотя бы один SDK с версией API не ниже %1. + + + Cannot create a AVD for ABI %1. Install an image for it. + Не удалось создать AVD для ABI %1. Установите для него образ. + + Android::Internal::AvdModel @@ -1207,7 +1232,7 @@ To add the Qt versions, select Options > Build & Run > Qt Versions. Android::Internal::ChooseDirectoryPage - The Android package source directory can not be the same as the project directory. + The Android package source directory cannot be the same as the project directory. Исходный каталог пакета Android не может совпадать с каталогом проекта. @@ -1317,10 +1342,8 @@ The files in the Android package source directory are copied to the build direct Ошибка создания AVD - Cannot create a new AVD. No sufficiently recent Android SDK available. -Please install an SDK of at least API version %1. - Не удалось создать AVD - отсутствует подходящий Android SDK. -Установите хотя бы один SDK с версией API не ниже %1. + Could not start process "%1 %2" + Невозможно запустить процесс «%1 %2» @@ -1519,16 +1542,16 @@ Please install an SDK of at least API version %1. Add... Добавить... - - Uses the external Ministro application to download and maintain Qt libraries. - Использовать внешнее приложение Ministro для загрузки и обслуживания библиотек Qt. - Pushes local Qt libraries to device. You must have Qt libraries compiled for that platform. The APK will not be usable on any other device. Копировать локальные библиотеки Qt на устройство. Необходимо иметь библиотеки, собранные под эту платформу. Файл APK не будет работать на других устройствах. + + Uses the external Ministro application to download and maintain Qt libraries.<br/><br/>Ministro is a third-party tool which provides the open source Qt libraries on demand. These libraries are compatible with the default open source binary package and will not always be up-to-date. + Использовать внешнее приложение Ministro для загрузки и обслуживания библиотек Qt.<br/><br/>Ministro - это стороннее приложение, которое по требованию устанавливает библиотеки Qt с открытым исходным кодом. Они совместимы с библиотеками по умолчанию, но могут быть не последней версии. + AndroidDeployStepWidget @@ -1662,10 +1685,6 @@ The APK will not be usable on any other device. Android SDK location: Размещение SDK для Android: - - Browse - Обзор - Android NDK location: Размещение NDK для Android: @@ -1726,6 +1745,10 @@ The APK will not be usable on any other device. Add... Добавить... + + <a href="xx">The GDB in the NDK appears to have broken python support.</a> + <a href="xx">GDB из NDK не имеет поддержки Python.</a> + Application @@ -1834,7 +1857,7 @@ The APK will not be usable on any other device. AutotoolsProjectManager::Internal::AutotoolsManager - Failed opening project '%1': Project is not a file + Failed opening project "%1": Project is not a file Не удалось открыть проект «%1»: проект не является файлом @@ -1897,14 +1920,6 @@ The APK will not be usable on any other device. Make Сборка - - Qt Creator needs a compiler set up to build. Configure a compiler in the kit options. - Необходимо задать компилятор для сборки. Сделать это можно в настройках комплекта. - - - Configuration is faulty. Check the Issues view for details. - Конфигурация неисправна. Окно «Проблемы» содержит подробную информацию. - AutotoolsProjectManager::Internal::MakeStepConfigWidget @@ -2017,7 +2032,7 @@ The APK will not be usable on any other device. Copy Selection as Hex Values - Скопировать как шестнадцатиричные значения + Скопировать как шестнадцатеричные значения Set Data Breakpoint on Selection @@ -2070,27 +2085,45 @@ The APK will not be usable on any other device. Не удалось найти определение ресурса изображения: <%1> - Error parsing XML file '%1': %2 + Error parsing XML file "%1": %2 Ошибка разбора файла XML «%1»: %2 - BareMetal::BareMetalDeviceConfigurationFactory + BareMetal + + Example: + Пример: + + + Enter your hostname like "localhost" or "192.0.2.1" or a command which must support GDB pipelining starting with a pipe symbol. + Введите имя вашего компьютера, например «localhost», «192.0.2.1» или команду с символом перенаправления потоков, которая должна поддерживать запуск GDB с перенаправлением потоков. + + + Enter the hardware reset command here.<br>The CPU should be halted after this command. + Введите здесь команду сброса аппаратуры.<br>После этой команды процессор должен быть остановлен. + + + Enter commands to reset the board, and write the nonvolatile memory. + Введите команды для сброса платы и записи в энергонезависимую память. + + + + BareMetal::Internal::BareMetalDevice + + Bare Metal + Голое железо + + + + BareMetal::Internal::BareMetalDeviceConfigurationFactory Bare Metal Device Голое устройство - BareMetal::BareMetalDeviceConfigurationWidget - - Form - - - - GDB commands: - Команды GDB: - + BareMetal::Internal::BareMetalDeviceConfigurationWidget GDB host: Хост GDB: @@ -2099,34 +2132,69 @@ The APK will not be usable on any other device. GDB port: Порт GDB: + + Init commands: + Команды инициализации: + + + Reset commands: + Команды сброса: + - BareMetal::BareMetalDeviceConfigurationWizard + BareMetal::Internal::BareMetalDeviceConfigurationWizard New Bare Metal Device Configuration Setup Настройка новой конфигурации голого устройства - BareMetal::BareMetalDeviceConfigurationWizardSetupPage + BareMetal::Internal::BareMetalDeviceConfigurationWizardSetupPage Set up GDB Server or Hardware Debugger Настройка сервера GDB или аппаратного отладчика + + Name: + Название: + + + Init commands: + Команды инициализации: + + + Reset commands: + Команды сброса: + Bare Metal Device Голое устройство + + GDB port: + Порт GDB: + + + GDB host: + Хост GDB: + - BareMetal::BareMetalGdbCommandsDeployStep + BareMetal::Internal::BareMetalGdbCommandsDeployStep GDB commands Команды GDB - BareMetal::BareMetalRunConfiguration + BareMetal::Internal::BareMetalGdbCommandsDeployStepWidget + + GDB commands: + Команды GDB: + + + + BareMetal::Internal::BareMetalRunConfiguration %1 (via GDB server or hardware debugger) %1 is the name of the project run via hardware debugger @@ -2139,7 +2207,14 @@ The APK will not be usable on any other device. - BareMetal::BareMetalRunConfigurationWidget + BareMetal::Internal::BareMetalRunConfigurationFactory + + %1 (on GDB server or hardware debugger) + %1 (через сервер GDB или аппаратный отладчик) + + + + BareMetal::Internal::BareMetalRunConfigurationWidget Executable: Программа: @@ -2158,61 +2233,7 @@ The APK will not be usable on any other device. Unknown - Неизвестно - - - - BareMetal::Internal::BareMetalDevice - - Bare Metal - Голое железо - - - - BareMetal::Internal::BareMetalDeviceConfigurationWizardSetupPage - - Form - - - - Name: - Название: - - - localhost - localhost - - - GDB port: - Порт GDB: - - - GDB host: - Хост GDB: - - - GDB commands: - Команды GDB: - - - load -monitor reset - load -monitor reset - - - - BareMetal::Internal::BareMetalGdbCommandsDeployStepWidget - - GDB commands: - Команды GDB: - - - - BareMetal::Internal::BareMetalRunConfigurationFactory - - %1 (on GDB server or hardware debugger) - %1 (через сервер GDB или аппаратный отладчик) + Неизвестное @@ -2232,11 +2253,11 @@ monitor reset BaseQtVersion - The compiler '%1' (%2) cannot produce code for the Qt version '%3' (%4). + The compiler "%1" (%2) cannot produce code for the Qt version "%3" (%4). Компилятор «%1» (%2) не может создавать код для профиля Qt «%3» (%4). - The compiler '%1' (%2) may not produce code compatible with the Qt version '%3' (%4). + The compiler "%1" (%2) may not produce code compatible with the Qt version "%3" (%4). Компилятор «%1» (%2) может не создавать код совместимый с профилем Qt «%3» (%4). @@ -2284,8 +2305,8 @@ monitor reset Требуется Qt версии не ниже 4.8.0. - Building helpers - Сборка помощников + Building Debugging Helpers + Сборка помощников отладчика @@ -2657,6 +2678,9 @@ The new branch will depend on the availability of the source branch for all oper Cloning started... Клонирование запущено... + + + Bazaar::Internal::CloneWizardFactory Clones a Bazaar branch and tries to load the contained project. Клонирование ветки Bazaar с последующей попыткой загрузки содержащегося там проекта. @@ -2926,15 +2950,15 @@ For example, "Revision: 15" will leave the branch at revision 15.Artistic Style Artistic Style - - Use self-defined style: - Использовать самоопределённый стиль: - Use file .astylerc or astylerc in HOME HOME is replaced by the user's home directory Использовать файлы .astylerc или astylerc из HOME + + Use customized style: + Использовать особый стиль: + Beautifier::Internal::BeautifierPlugin @@ -2950,6 +2974,18 @@ For example, "Revision: 15" will leave the branch at revision 15.Cannot read file "%1": %2. Невозможно прочитать файл «%1»: %2. + + File was modified. + Файл изменился. + + + Time out reached while formatting file %1. + Время форматирования файла %1 истекло. + + + File %1 was closed. + Файл %1 был закрыт. + Error in Beautifier: %1 Ошибка стилизатора: %1 @@ -2988,14 +3024,6 @@ For example, "Revision: 15" will leave the branch at revision 15.Options Параметры - - Use Predefined Style: - Стандартный стиль: - - - Use Customized Style: - Особый стиль: - Clang Format command: Команда Clang Format: @@ -3008,6 +3036,14 @@ For example, "Revision: 15" will leave the branch at revision 15.Clang Format Clang Format + + Use predefined style: + Использовать стандартный стиль: + + + Use customized style: + Использовать особый стиль: + Beautifier::Internal::ConfigurationDialog @@ -3024,7 +3060,7 @@ For example, "Revision: 15" will leave the branch at revision 15.Описание - Documentation for '%1' + Documentation for "%1" Описание «%1» @@ -3081,15 +3117,15 @@ For example, "Revision: 15" will leave the branch at revision 15.Uncrustify Uncrustify - - Use self-defined style: - Использовать самоопределённый стиль: - Use file uncrustify.cfg in HOME HOME is replaced by the user's home directory Использовать uncrustify.cfg из HOME + + Use customized style: + Использовать особый стиль: + BinEditorDocument @@ -3287,13 +3323,17 @@ This wizard will guide you through the essential steps to deploy a ready-to-go d Bookmarks::Internal::BookmarkManager - Edit Note - Изменение заметки + Edit Bookmark + Изменение закладки Note text: Текст заметки: + + Line number: + Номер строки: + Bookmarks::Internal::BookmarkView @@ -3309,6 +3349,10 @@ This wizard will guide you through the essential steps to deploy a ready-to-go d Move Down Опустить + + &Edit + &Изменить + &Remove &Удалить @@ -3325,10 +3369,6 @@ This wizard will guide you through the essential steps to deploy a ready-to-go d Are you sure you want to remove all bookmarks from all files in the current session? Желаете удалить все закладки из всех файлов текущей сессии? - - Edit Note - Изменить заметку - Bookmarks::Internal::BookmarkViewFactory @@ -3392,8 +3432,8 @@ This wizard will guide you through the essential steps to deploy a ready-to-go d Следующая закладка в документе - Edit Bookmark Note - Изменить заметку к закладке + Edit Bookmark + Изменить закладку @@ -3516,6 +3556,29 @@ This wizard will guide you through the essential steps to deploy a ready-to-go d URL ресурса значка. + + ButtonsBar + + Jump to previous event. + Перейти к предыдущему событию. + + + Jump to next event. + Перейти к следующему событию. + + + Show zoom slider. + Показать ползунок масштабирования. + + + Select range. + Выбрать диапазон. + + + View event information on mouseover. + Показывать информацию о событии при наведении курсора. + + CMakeProjectManager::Internal::CMakeBuildConfigurationFactory @@ -3531,8 +3594,8 @@ This wizard will guide you through the essential steps to deploy a ready-to-go d CMakeProjectManager::Internal::CMakeBuildSettingsWidget - Run cmake - Запустить cmake + Run CMake... + Запустить CMake... Reconfigure project: @@ -3576,7 +3639,7 @@ This wizard will guide you through the essential steps to deploy a ready-to-go d Запустить CMake - Failed opening project '%1': Project is not a file + Failed opening project "%1": Project is not a file Не удалось открыть проект «%1»: проект не является файлом @@ -3655,6 +3718,10 @@ This wizard will guide you through the essential steps to deploy a ready-to-go d Refreshing cbp file in %1. Обновление файла cbp в %1. + + The cached generator %1 is incompatible with the configured kits. + Закэшированный генератор %1 несовместим с настроенными комплектами. + No generator selected. Генератор не выбран. @@ -3767,14 +3834,6 @@ This wizard will guide you through the essential steps to deploy a ready-to-go d Default display name for the cmake make step. Сборка - - Qt Creator needs a compiler set up to build. Configure a compiler in the kit options. - Необходимо задать компилятор для сборки. Сделать это можно в настройках комплекта. - - - Configuration is faulty. Check the Issues view for details. - Конфигурация неисправна. Окно «Проблемы» содержит подробную информацию. - CMakeProjectManager::Internal::MakeStepConfigWidget @@ -3871,6 +3930,13 @@ This wizard will guide you through the essential steps to deploy a ready-to-go d Только виртуальные функции могут иметь атрибут «override» + + CategoryLabel + + <bytecode> + <байтовый код> + + CheckBoxSpecifics @@ -4017,8 +4083,8 @@ This wizard will guide you through the essential steps to deploy a ready-to-go d Не удалось создать PCH-файл «%1». - Precompiling... - Прекомпиляция... + Precompiling + Прекомпиляция @@ -4030,10 +4096,6 @@ This wizard will guide you through the essential steps to deploy a ready-to-go d ClassView::Internal::NavigationWidget - - Form - Форма - Show Subprojects Показать подроекты @@ -4310,17 +4372,13 @@ This wizard will guide you through the essential steps to deploy a ready-to-go d Ошибка при проверке комментария. Зафиксировать файлы? - Do you want to undo the check out of '%1'? - Желаете отменить извлечение «%1»? + Updating ClearCase Index + Обновление индекса ClearCase Undo Hijack File Отменить исправление файла - - Do you want to undo hijack of '%1'? - Желаете отменить исправление «%1»? - External diff is required to compare multiple files. Необходима внешняя программа сравнения для работы с несколькими файлами. @@ -4389,6 +4447,14 @@ This wizard will guide you through the essential steps to deploy a ready-to-go d Editing Derived Object: %1 Изменение производного объекта: %1 + + Do you want to undo the check out of "%1"? + Желаете отменить извлечение «%1»? + + + Do you want to undo hijack of "%1"? + Желаете отменить исправление «%1»? + Activity Headline Заголовок активности @@ -4397,10 +4463,6 @@ This wizard will guide you through the essential steps to deploy a ready-to-go d Enter activity headline Введите заголовок активности - - CC Indexing - ClearCase: индексация - ClearCase::Internal::ClearCaseSubmitEditor @@ -4728,7 +4790,7 @@ This wizard will guide you through the essential steps to deploy a ready-to-go d &Истекает через: - Days + Days дней @@ -4780,14 +4842,14 @@ p, li { white-space: pre-wrap; } Patch 2 - - Days - дней - &Expires after: &Истекает через: + + Days + дней + CodePaster::NetworkProtocol @@ -4854,6 +4916,21 @@ p, li { white-space: pre-wrap; } Стиль кода + + ColorEditor + + Solid Color + Сплошной цвет + + + Gradient + Градиент + + + Transparent + Прозрачность + + ColumnSpecifics @@ -4871,14 +4948,6 @@ p, li { white-space: pre-wrap; } Combo Box Поле с выпадающим списком - - Tool tip - Подсказка - - - The tool tip shown for the combobox. - Подсказка, отображаемая для поля с выпадающим списком. - Focus on press Фокус при нажатии @@ -4892,7 +4961,7 @@ p, li { white-space: pre-wrap; } Open Link as New Page - Открыть ссылку на новой странице + Открыть ссылку в новой странице @@ -5022,9 +5091,19 @@ p, li { white-space: pre-wrap; } msgShowOptionsDialog Настроить... + + Open Preferences dialog. + msgShowOptionsDialogToolTip (mac version) + Открыть диалог настроек. + + + Open Options dialog. + msgShowOptionsDialogToolTip (non-mac version) + Открыть диалог настроек. + - Core::BaseFileWizard + Core::BaseFileWizardFactory File Generation Failure Не удалось сгенерировать файл @@ -5034,7 +5113,7 @@ p, li { white-space: pre-wrap; } Существующие файлы - Failed to open an editor for '%1'. + Failed to open an editor for "%1". Не удалось открыть редактор для «%1». @@ -5134,7 +5213,7 @@ p, li { white-space: pre-wrap; } Перезаписать? - An item named '%1' already exists at this location. Do you want to overwrite it? + An item named "%1" already exists at this location. Do you want to overwrite it? Элемент с названием «%1» уже существует в указанном месте. Желаете его перезаписать? @@ -5151,7 +5230,7 @@ p, li { white-space: pre-wrap; } - Core::DocumentModel + Core::DocumentModelPrivate <no document> <нет документа> @@ -5215,6 +5294,10 @@ p, li { white-space: pre-wrap; } Ctrl+W Ctrl+W + + Alternative Close + Закрыть по-другому + Ctrl+Shift+W Ctrl+Shift+W @@ -5387,6 +5470,10 @@ p, li { white-space: pre-wrap; } Current document Текущий документ + + Open With + Открыть с помощью + Opening File Открытие файла @@ -5474,7 +5561,7 @@ p, li { white-space: pre-wrap; } Core::FindPlugin &Find/Replace - &Поиск/Замена + Поиск/&замена Advanced Find @@ -5605,7 +5692,7 @@ p, li { white-space: pre-wrap; } - '%1' returned the following error: + "%1" returned the following error: %2 «%1» вернул следующую ошибку: @@ -5765,31 +5852,31 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Запустить особую команду - Previous command is still running ('%1'). + Previous command is still running ("%1"). Do you want to kill it? Предыдущая команда («%1») ещё выполняется. Завершить её? - Kill Previous Process? - Завершить предыдущий процесс? - - - Command '%1' finished. + Command "%1" finished. Команда «%1» завершилась. - Command '%1' failed. + Command "%1" failed. Команда «%1» завершилась с ошибкой. - Could not find executable for '%1'. + Could not find executable for "%1". Не удалось найти программу для «%1». - Starting command '%1'. + Starting command "%1". Запуск команды «%1». + + Kill Previous Process? + Завершить предыдущий процесс? + Could not start process: %1. Не удалось запустить процесс: %1. @@ -6012,15 +6099,15 @@ Do you want to kill it? Core::Internal::ExternalToolRunner - Could not find executable for '%1' (expanded '%2') + Could not find executable for "%1" (expanded "%2") Не удалось найти программу для «%1» (полностью «%2») - Starting external tool '%1' %2 - Запускается внешняя утилита '%1' %2 + Starting external tool "%1" %2 + Запускается внешняя утилита «%1» %2 - '%1' finished + "%1" finished «%1» завершилась @@ -6030,6 +6117,10 @@ Do you want to kill it? Files in File System Файлы в системе + + Create and Open "%1" + Создать и открыть «%1» + Core::Internal::FileSystemFilterOptions @@ -6097,7 +6188,7 @@ Do you want to kill it? Find/Replace - Поиск/Замена + Поиск/замена Enter Find String @@ -6167,6 +6258,14 @@ Do you want to kill it? Preserve Case when Replacing Сохранять регистр при замене + + Search for... + Найти... + + + Replace with... + Заменить на... + Core::Internal::FindWidget @@ -6221,6 +6320,10 @@ Do you want to kill it? <System Language> <Системный> + + Command used for reverting diff chunks. + Команда, используемая для отката фрагментов diff. + Restart required Требуется перезапуск @@ -6314,6 +6417,10 @@ Do you want to kill it? Re-enable warnings that were suppressed by selecting "Do Not Show Again" (for example, missing highlighter). Вернуть предупреждения, отключённые кнопкой «Больше не показывать» (например, об отсутствии подсветки). + + Patch command: + Команда patch: + Core::Internal::Locator @@ -6330,8 +6437,8 @@ Do you want to kill it? Быстрый поиск (%1) - Indexing - Индексация + Updating Locator Caches + Обновление кэшей поиска @@ -6397,14 +6504,6 @@ Do you want to kill it? Qt Creator - - Exit Full Screen - Выйти из полноэкранного режима - - - Enter Full Screen - Полноэкранный режим - &File &Файл @@ -6425,6 +6524,10 @@ Do you want to kill it? &Help Справ&ка + + Return to Editor + Вернуться в редактор + &New File or Project... &Новый файл или проект... @@ -6495,7 +6598,7 @@ Do you want to kill it? Cu&t - Выре&зать + &Вырезать &Copy @@ -6503,11 +6606,11 @@ Do you want to kill it? &Paste - В&ставить + Вст&авить Select &All - Вы&делить всё + В&ыделить всё &Go to Line... @@ -6537,6 +6640,18 @@ Do you want to kill it? Zoom Развернуть + + Full Screen + Полноэкранный режим + + + Close Window + Закрыть окно + + + Ctrl+Meta+W + Ctrl+Meta+W + Show Sidebar Показать боковую панель @@ -6553,10 +6668,6 @@ Do you want to kill it? Show Mode Selector Показать выбор режимов - - Full Screen - Полный экран - Ctrl+Shift+F11 Ctrl+Shift+F11 @@ -6717,10 +6828,6 @@ Do you want to kill it? Patterns: Шаблоны: - - Magic Header - Заголовок-признак - Type Тип @@ -6857,10 +6964,6 @@ Do you want to kill it? Core::Internal::OpenWithDialog - - Open file '%1' with: - Открыть файл «%1» с помощью: - Open File With... Открыть файл с помощью... @@ -6870,6 +6973,10 @@ Do you want to kill it? Файлы с таким расширением открывать с помощью: + + Open file "%1" with: + Открыть файл «%1» с помощью: + Core::Internal::OutputPaneManager @@ -7254,15 +7361,19 @@ Do you want to check them out now? - Core::Internal::VariableChooser - - Variables - Переменные - + Core::Internal::VariableChooserPrivate Select a variable to insert. Выберите переменную для вставки. + + Insert variable + Вставить переменную + + + Current Value: %1 + Текущее значение: %1 + Core::Internal::VersionDialog @@ -7272,7 +7383,7 @@ Do you want to check them out now? <h3>%1</h3>%2<br/><br/>Built on %3 at %4<br /><br/>%5<br/>Copyright 2008-%6 %7. All rights reserved.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/> - <h3>%1</h3>%2<br/><br/>Собран %4 на %3<br/><br/>%5<br/>© 2008-%6 %7. Все права защищены.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/> + <h3>%1</h3>%2<br/><br/>Собран %3 в %4<br/><br/>%5<br/>© 2008-%6 %7. Все права защищены.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/> From revision %1<br/> @@ -7280,6 +7391,17 @@ Do you want to check them out now? Ревизия %1<br/> + + Core::Internal::WindowSupport + + Exit Full Screen + Выйти из полноэкранного режима + + + Enter Full Screen + Полноэкранный режим + + Core::ModeManager @@ -7309,6 +7431,33 @@ Do you want to check them out now? Дополнительный вывод опущен + + Core::PatchTool + + There is no patch-command configured in the general "Environment" settings. + Команда patch не настроена в общих настройках «Среды». + + + Executing in %1: %2 %3 + Выполняется в %1: %2 %3 + + + Unable to launch "%1": %2 + Не удалось запустить «%1»: %2 + + + A timeout occurred running "%1" + Истекло время работы «%1» + + + "%1" crashed. + «%1» завершился аварийно. + + + "%1" failed (exit code %2). + Ошибка команды «%1» (код завершения %2). + + Core::RemoveFileDialog @@ -7330,6 +7479,10 @@ Do you want to check them out now? Core::SearchResultWindow + + History: + История: + New Search Новый поиск @@ -7352,17 +7505,17 @@ Do you want to check them out now? - Core::StandardFileWizard + Core::StandardFileWizardFactory New %1 - Новый %1 + Создание %1 Core::VariableChooser - Insert variable - Вставить переменную + Variables + Переменные @@ -7481,10 +7634,6 @@ to version control (%2) CppEditor::Internal::CPPEditorWidget - - Sort Alphabetically - Сортировать по алфавиту - &Refactor &Рефакторинг @@ -7500,6 +7649,10 @@ to version control (%2) The header and source file names will be derived from the class name Названия файла исходных текстов и заголовочного файла будут получены из имени класса + + Details + Подробнее + CppEditor::Internal::CppClassWizard @@ -7514,9 +7667,12 @@ to version control (%2) C++ Class Wizard Мастер классов C++ + + + CppEditor::Internal::CppEditorOutline - Details - Подробнее + Sort Alphabetically + Сортировать по алфавиту @@ -7792,7 +7948,14 @@ to version control (%2) - CppPreprocessor + CppQmlTypesLoader + + %1 seems not to be encoded in UTF8 or has a BOM. + Похоже, %1 не в кодировке UTF8 или содержит BOM. + + + + CppSourceProcessor %1: No such file or directory %1: Нет такого файла или каталога @@ -7802,13 +7965,6 @@ to version control (%2) %1: не удалось получить содержимое файла - - CppQmlTypesLoader - - %1 seems not to be encoded in UTF8 or has a BOM. - Похоже, %1 не в кодировке UTF8 или содержит BOM. - - CppTools @@ -7858,8 +8014,8 @@ to version control (%2) CppTools::Internal::BuiltinIndexingSupport - Parsing - Разбор + Parsing C/C++ Files + Разбор С/С++ файлов @@ -7957,8 +8113,8 @@ to version control (%2) Автоматически создавать комментарий Doxygen при нажатии Enter после комбинаций «/**», «/*!», «//!» или «///». - Adds leading asterisks when continuing Qt '/*!' and Java '/**' style comments on new lines. - Вставлять звёздочку в начало при переходе комментария в стиле Qt «/*!» или Java «/**» на новую строку. + Adds leading asterisks when continuing C/C++ "/*", Qt "/*!" and Java "/**" style comments on new lines. + Вставлять звёздочку в начало при переходе комментария в стиле С/С++ «/*», Qt «/*!» или Java «/**» на новую строку. @@ -8359,8 +8515,8 @@ These prefixes are used in addition to current file name on Switch Header/Source Использование C++: - Searching - Идёт поиск + Searching for Usages + Поиск использований C++ Macro Usages: @@ -8411,8 +8567,8 @@ These prefixes are used in addition to current file name on Switch Header/Source Символы C++ - Searching - Идёт поиск + Searching for Symbol + Поиск символа C++ Symbols: @@ -8590,11 +8746,11 @@ Flags: %3 Convert to Hexadecimal - Преобразовать в шестнадцатиричное + Преобразовать в шестнадцатеричное Convert to Octal - Преобразовать в восьмиричное + Преобразовать в восьмеричное Convert to Decimal @@ -8636,7 +8792,7 @@ Flags: %3 - Cvs::Internal::CheckoutWizard + Cvs::Internal::CheckoutWizardFactory Checks out a CVS repository and tries to load the contained project. Извлечение хранилища CVS с последующей попыткой загрузки содержащегося там проекта. @@ -8716,6 +8872,10 @@ Flags: %3 Diff Current File Сравнить текущий файл + + Cannot find repository for "%1" + Не удалось найти хранилище для «%1» + Diff "%1" Сравнить «%1» @@ -8744,10 +8904,6 @@ Flags: %3 Filelog Current File История текущего файла - - Cannot find repository for '%1' - Не удалось найти хранилище для «%1» - Meta+C,Meta+D Meta+C,Meta+D @@ -8917,13 +9073,17 @@ Flags: %3 Нет изменённых файлов. - Would you like to discard your changes to the repository '%1'? + Would you like to discard your changes to the repository "%1"? Желаете откатить изменения хранилища «%1»? - Would you like to discard your changes to the file '%1'? + Would you like to discard your changes to the file "%1"? Желаете откатить изменения файла «%1»? + + Could not find commits of id "%1" on %2. + Не удалось найти фиксации с идентификатором «%1» на %2. + Project status Состояние проекта @@ -8936,10 +9096,6 @@ Flags: %3 The initial revision %1 cannot be described. Невозможно описать начальную ревизию %1. - - Could not find commits of id '%1' on %2. - Не удалось найти фиксацию с идентификатором «%1» на %2. - No cvs executable specified! Не указана программа cvs! @@ -9067,10 +9223,6 @@ Flags: %3 Debugger::DebuggerEngine - - Launching - Запуск - Setup failed. Не удалось настроить. @@ -9171,6 +9323,10 @@ Setting breakpoints by file name and line number may fail. Stopped. Остановлено. + + Launching Debugger + Запуск отладчика + Stopped: "%1" Остановлено: «%1» @@ -9226,6 +9382,10 @@ Setting breakpoints by file name and line number may fail. Debugger::DebuggerEnginePrivate + + Debugged executable + Отлаживаемая программа + Attempting to interrupt. Попытка прервать. @@ -9244,7 +9404,7 @@ Setting breakpoints by file name and line number may fail. Extracted from Kit %1 - Извлечён из набора %1 + Извлечён из комплекта %1 @@ -9254,11 +9414,11 @@ Setting breakpoints by file name and line number may fail. Отладчик не задан. - Debugger '%1' not found. + Debugger "%1" not found. Отладчик «%1» не найден. - Debugger '%1' not executable. + Debugger "%1" not executable. Отладчик «%1» не запускается. @@ -9297,17 +9457,17 @@ Setting breakpoints by file name and line number may fail. Отладка - Option '%1' is missing the parameter. + Option "%1" is missing the parameter. У настройки «%1» пропущен параметр. + + The parameter "%1" of option "%2" does not match the pattern <handle>:<pid>. + Параметр «%1» настройки «%2» не соответствует шаблону <handle>:<pid>. + Only one executable allowed! Допустима только одна программа! - - The parameter '%1' of option '%2' does not match the pattern <handle>:<pid>. - Параметр «%1» настройки «%2» не соответствует шаблону <handle>:<pid>. - Invalid debugger option: %1 Некорректный параметр отладчика: %1 @@ -9696,10 +9856,6 @@ Affected are breakpoints %1 Delete Breakpoints of File Убрать точки останова в файле - - Adjust Column Widths to Contents - Выравнить ширину столбцов по содержимому - Edit Breakpoint... Изменить точку останова... @@ -9749,13 +9905,6 @@ Affected are breakpoints %1 Установить точку останова - - Debugger::Internal::BreakWindow - - Breakpoints - Точки останова - - Debugger::Internal::BreakpointDialog @@ -9937,17 +10086,17 @@ This feature is only available for GDB. Уже существует - A file named '%1' already exists. + A file named "%1" already exists. Файл с именем «%1» уже существует. + + The folder "%1" could not be created. + Невозможно создать каталог «%1». + Cannot Create Невозможно создать - - The folder '%1' could not be created. - Невозможно создать каталог «%1». - Debugger::Internal::CdbBreakEventWidget @@ -9979,8 +10128,8 @@ This feature is only available for GDB. Debugger::Internal::CdbEngine - The console process '%1' could not be started. - Не удалось запустить процесс «%1». + The console process "%1" could not be started. + Не удалось запустить консольный процесс «%1». Debugger Error @@ -10027,9 +10176,13 @@ This feature is only available for GDB. Сработала точка трассировки %1 (%2) в потоке %3. - Conditional breakpoint %1 (%2) in thread %3 triggered, examining expression '%4'. + Conditional breakpoint %1 (%2) in thread %3 triggered, examining expression "%4". Сработала условная точка останова %1 (%2) в потоке %3, изучается выражение «%4». + + "Select Widget to Watch": Not supported in state "%1". + «Выбрать виджет для слежения»: Не поддерживается в состоянии «%1». + Malformed stop response received. Получен неверный ответ на требование остановки. @@ -10050,10 +10203,6 @@ This feature is only available for GDB. "Select Widget to Watch": Please stop the application first. «Выбрать виджет для слежения»: Сначала остановить приложение. - - "Select Widget to Watch": Not supported in state '%1'. - «Выбрать виджет для слежения»: Не поддерживается в состоянии «%1». - Debugger::Internal::CdbOptionsPage @@ -10232,6 +10381,14 @@ This feature is only available for GDB. Warn when debugging "Release" builds Предупреждать при отладке «выпускаемых» сборок + + Keep editor stationary when stepping + Сохранять позицию редактора при пошаговой отладке + + + Scrolls the editor only when it is necessary to keep the current line in view, instead of keeping the next statement centered at all times. + Сдвигать текст в редакторе только тогда, когда это необходимо для отображения текущей строки, иначе всегда держать текущую строку в центре. + Maximum stack depth: Максимальная глубина стека: @@ -10240,10 +10397,6 @@ This feature is only available for GDB. <unlimited> <бесконечна> - - Maximum string length: - Максимальная длина строки: - Debugger::Internal::DebuggerItemConfigWidget @@ -10622,10 +10775,6 @@ Qt Creator не может подключиться к нему. Set Message Tracepoint at 0x%1... Установить информационную точку наблюдения на 0x%1... - - Start '%1' and break at function 'main()' - Запустить «%1» и встать на функции «main()» - Save Debugger Log Сохранить журнал отладчика @@ -10646,10 +10795,6 @@ Qt Creator не может подключиться к нему. Add Expression Evaluator Добавить вычисляемое выражение - - Apply Changes on Save - Применять изменения при сохранении - Select Выбрать @@ -10682,6 +10827,50 @@ Qt Creator не может подключиться к нему. Not a Desktop Device Type Устройство не типа Desktop + + Start "%1" and break at function "main()" + Запустить «%1» и встать на функции «main()» + + + Breakpoints + Точки останова + + + Modules + Модули + + + Registers + Регистры + + + Stack + Стек + + + Source Files + Файлы исходных текстов + + + Threads + Потоки + + + Locals and Expressions + Переменные и выражения + + + Snapshots + Снимки + + + Restart Debugging + Перезапустить отладку + + + Restart the debugging session. + Перезапустить сессию отладки. + Attach to Remote Debug Server... Подключиться к внешнему серверу отладки... @@ -10826,14 +11015,14 @@ Qt Creator не может подключиться к нему. В этом режиме шаги происходят в пределах одной инструкции, а в окне исходных текстов так же отображается дизассемблированный код. - - Always Adjust Column Widths to Contents - Всегда выравнивать ширину столбцов по содержимому - Use Alternating Row Colors Использовать чередующиеся цвета строк + + Keep Editor Stationary When Stepping + Сохранять позицию редактора при пошаговой отладке + Debugger Font Size Follows Main Editor Размер шрифта отладчика соответствует редактору @@ -10943,6 +11132,14 @@ Qt Creator не может подключиться к нему. Register For Post-Mortem Debugging Зарегистрировать системным отладчиком + + The maximum length of string entries in the Locals and Expressions pane. Longer than that are cut off and displayed with an ellipsis attached. + Максимальная длина строковых значений в обзоре переменных и выражений. Более длинные строки обрезаются и завершаются многоточием. + + + The maximum length for strings in separated windows. Longer strings are cut off and displayed with an ellipsis attached. + Максимальная длина строки в отдельных окнах. Более длинные строки обрезаются и завершаются многоточием. + Reload Full Stack Перезагрузить весь стек @@ -10959,6 +11156,10 @@ Qt Creator не может подключиться к нему. Configure Debugger... Настроить отладчик... + + Always Adjust View Column Widths to Contents + Всегда выравнивать видимую ширину столбцов по содержимому + This switches the Locals&&Watchers view to automatically dereference pointers. This saves a level in the tree view, but also loses data for the now-missing intermediate level. Переключает обзор переменных в режим автоматического @@ -11068,6 +11269,13 @@ Qt Creator не может подключиться к нему. Исходники Qt + + Debugger::Internal::DebuggerToolTipManager + + Restored + Восстановлено + + Debugger::Internal::DebuggerToolTipWidget @@ -11075,52 +11283,6 @@ Qt Creator не может подключиться к нему. Назад - - Debugger::Internal::DebuggingHelperOptionPage - - <html><head/><body> -<p>The debugging helper is only used to produce a nice display of objects of certain types like QString or std::map in the &quot;Locals and Expressions&quot; view. It is not strictly necessary for debugging with Qt Creator. </p></body></html> - <html><head/><body> -<p>Помощник отладчика используется только для корректного отображения объектов некоторых типов, вроде QString и std::map в обзоре «Переменные» режима отладки. Он не является необходимым для отладки с помощью Qt Creator.</p></body></html> - - - Use Debugging Helper - Использовать помощник отладчика - - - Makes use of Qt Creator's code model to find out if a variable has already been assigned a value at the point the debugger interrupts. - Включить использование модели кода Qt Creator для определения -было ли переменной присвоено значение в точке прерывания отладчиком. - - - Use code model - Использовать модель кода - - - Displays names of QThread based threads. - Отображать названия потоков основанных на QThread. - - - Display thread names - Отображать названия потоков - - - Show "std::" namespace for types - Указывать пространство имён «std::» для типов - - - Show Qt's namespace for types - Указывать пространство имён Qt для типов - - - Shows 'std::' prefix for types from the standard library. - Отображать приставку «std::» для типов стандартной библиотеки. - - - Shows Qt namespace prefix for Qt types. This is only relevant if Qt was configured with '-qtnamespace'. - Отображать приставку пространства имён Qt для типов Qt. Имеет смысл, когда Qt была настроена с параметром «-qtnamespace». - - Debugger::Internal::GdbAttachEngine @@ -11271,10 +11433,18 @@ Try: %2 Cannot continue debugged process: Невозможно продолжить отлаживаемый процесс: + + There is no GDB binary available for binaries in format "%1" + Отсутствует GDB для программ в формате «%1» + Cannot create snapshot: Не удалось создать снимок: + + The debugger settings point to a script file at "%1" which is not accessible. If a script file is not needed, consider clearing that entry to avoid this warning. + В настройках указан файл скрипта «%1», который сейчас недоступен. Если файл скрипта не обязателен, просто очистите поле, чтобы не было этого предупреждения. + Failed to start application: Не удалось запустить приложение: @@ -11377,10 +11547,6 @@ Try: %2 Cannot find debugger initialization script Не удалось найти скрипт инициализации отладчика - - The debugger settings point to a script file at '%1' which is not accessible. If a script file is not needed, consider clearing that entry to avoid this warning. - В настройках указан файл скрипта «%1», который сейчас недоступен. Если файл скрипта не обязателен, просто очистите поле, чтобы не было этого предупреждения. - Retrieving data for stack view... Получение данных о стеке... @@ -11451,10 +11617,6 @@ You can choose between waiting longer or aborting debugging. Failed to shut down application Не удалось закрыть приложение - - There is no GDB binary available for binaries in format '%1' - Отсутствует GDB для программ в формате «%1» - Running requested... Потребован запуск... @@ -11604,6 +11766,14 @@ markers in the source code editor. <html><head/><body><p>GDB commands entered here will be executed after Qt Creator's debugging helpers have been loaded and fully initialized. You can load additional debugging helpers or modify existing ones here.</p>%1</body></html> <html><head/><body><p>Введённые здесь команды будут выполняться при запуске GDB после загрузки и полной инициализации помощников отладчика. Здесь вы можете указать загрузку дополнительных помощников или изменить существующие.</p>%1</body></html> + + Extra Debugging Helpers + Дополнительные помощники отладчика + + + Path to a Python file containing additional data dumpers. + Путь к файлу на языке Python, содержащему дополнительные фильтры данных. + The options below should be used with care. Следующие опции должны использоваться с осторожностью. @@ -11899,6 +12069,62 @@ receives a signal like SIGSEGV during debugging. Не удалось запустить адаптер + + Debugger::Internal::LocalsAndExpressionsOptionsPage + + Use Debugging Helper + Использовать помощник отладчика + + + The debugging helpers are used to produce a nice display of objects of certain types like QString or std::map in the &quot;Locals and Expressions&quot; view. + Помощники отладчика используются для корректного отображения объектов некоторых типов, вроде QString и std::map в обзоре «Переменные» режима отладки. + + + Use code model + Использовать модель кода + + + Makes use of Qt Creator's code model to find out if a variable has already been assigned a value at the point the debugger interrupts. + Включить использование модели кода Qt Creator для определения +было ли переменной присвоено значение в точке прерывания отладчиком. + + + Displays names of QThread based threads. + Отображать названия потоков основанных на QThread. + + + Display thread names + Отображать названия потоков + + + Shows "std::" prefix for types from the standard library. + Отображать приставку «std::» для типов стандартной библиотеки. + + + <unlimited> + <бесконечна> + + + Maximum string length: + Максимальная длина строк: + + + Display string length: + Длина отображаемых строк: + + + Show "std::" namespace for types + Указывать пространство имён «std::» для типов + + + Shows Qt namespace prefix for Qt types. This is only relevant if Qt was configured with '-qtnamespace'. + Отображать приставку пространства имён Qt для типов Qt. Имеет смысл, когда Qt была настроена с параметром «-qtnamespace». + + + Qt's namespace for types + Пространство имён Qt для типов + + Debugger::Internal::LogWindow @@ -12084,13 +12310,6 @@ Stepping into the module or setting breakpoints by file and line is expected to Показать зависимости «%1» - - Debugger::Internal::ModulesWindow - - Modules - Модули - - Debugger::Internal::MultiBreakPointsDialog @@ -12131,10 +12350,6 @@ Stepping into the module or setting breakpoints by file and line is expected to Running requested... Потребовано выполнение... - - Unable to start pdb '%1': %2 - Не удалось запустить pdb «%1»: %2 - Adapter start failed Не удалось запустить адаптер @@ -12143,24 +12358,28 @@ Stepping into the module or setting breakpoints by file and line is expected to Python Error Ошибка Python - - '%1' contains no identifier - «%1» не содержит идентификаторов - String literal %1 Строковый литерал %1 - - Cowardly refusing to evaluate expression '%1' with potential side effects - Робкий отказ вычислить выражение «%1» с возможными побочными эффектами - Pdb I/O Error Ошибка вводы/вывода pdb - The Pdb process failed to start. Either the invoked program '%1' is missing, or you may have insufficient permissions to invoke the program. + Unable to start pdb "%1": %2 + Не удалось запустить pdb «%1»: %2 + + + "%1" contains no identifier + «%1» не содержит идентификаторов + + + Cowardly refusing to evaluate expression "%1" with potential side effects + Робкий отказ вычислить выражение «%1» с возможными побочными эффектами + + + The Pdb process failed to start. Either the invoked program "%1" is missing, or you may have insufficient permissions to invoke the program. Процесс Pdb не смог запуститься. Или вызываемая программа «%1» отсутствует, или у вас нет прав на её вызов. @@ -12191,7 +12410,7 @@ Stepping into the module or setting breakpoints by file and line is expected to <p>Возникло не пойманное исключение:</p><p>%1</p> - <p>An uncaught exception occurred in '%1':</p><p>%2</p> + <p>An uncaught exception occurred in "%1":</p><p>%2</p> <p>Возникло непойманное исключение в «%1»:</p><p>%2</p> @@ -12203,38 +12422,6 @@ Stepping into the module or setting breakpoints by file and line is expected to Локальных переменных нет - - Debugger::Internal::QmlAdapter - - Connecting to debug server %1:%2 - Подключение к серверу отладки %1:%2 - - - Error: (%1) %2 - %1=error code, %2=error message - Ошибка: (%1) %2 - - - Disconnected. - Отключено. - - - Connected. - Подключено. - - - Resolving host. - Определение узла. - - - Connecting to debug server. - Подключение к серверу отладки. - - - Closing. - Закрытие. - - Debugger::Internal::QmlCppEngine @@ -12277,7 +12464,7 @@ Do you want to retry? Отладчик QML: соединение было закрыто удалённой стороной. - QML Debugger: Could not connect to service '%1'. + QML Debugger: Could not connect to service "%1". Отладчик QML: не удалось подключиться к сервису «%1». @@ -12372,11 +12559,11 @@ Do you want to retry? Debugger::Internal::RegisterMemoryView - Memory at Register '%1' (0x%2) + Memory at Register "%1" (0x%2) Память по адресу из регистра «%1» (0x%2) - Register '%1' + Register "%1" Регистр «%1» @@ -12416,7 +12603,7 @@ Do you want to retry? Hexadecimal - Шестнадцатиричный + Шестнадцатеричный Decimal @@ -12424,20 +12611,13 @@ Do you want to retry? Octal - Восьмиричный + Восьмеричный Binary Двоичный - - Debugger::Internal::RegisterWindow - - Registers - Регистры - - Debugger::Internal::SelectRemoteFileDialog @@ -12471,13 +12651,6 @@ Do you want to retry? Удалить снимок - - Debugger::Internal::SnapshotWindow - - Snapshots - Снимки - - Debugger::Internal::SourceFilesHandler @@ -12504,13 +12677,6 @@ Do you want to retry? Открыть файл «%1» - - Debugger::Internal::SourceFilesWindow - - Source Files - Файлы исходных текстов - - Debugger::Internal::StackHandler @@ -12661,13 +12827,6 @@ Do you want to retry? Кадр #%1 (%2) - - Debugger::Internal::StackWindow - - Stack - Стек - - Debugger::Internal::StartApplicationDialog @@ -12879,13 +13038,6 @@ Do you want to retry? Имя - - Debugger::Internal::ThreadsWindow - - Threads - Потоки - - Debugger::Internal::TypeFormatsDialog @@ -13027,10 +13179,6 @@ Do you want to retry? Debugger - Qt Creator Отладчик - Qt Creator - - <Edit> - <Измените> - <empty> <пустое> @@ -13102,10 +13250,6 @@ Do you want to retry? Tooltip Подсказка - - <Edit> - <Измените> - returned value возвращённое значение @@ -13131,44 +13275,60 @@ Do you want to retry? - Raw pointer - Простой указатель + Raw Data + Сырые данные - Latin1 string - Строка в кодировке Latin1 + Latin1 String + Строка Latin1 - UTF8 string - Строка в кодировке UTF8 + UTF-8 String + Строка UTF-8 - Local 8bit string + Local 8-Bit String Строка в локальной 8-ми битной кодировке - UTF16 string - Строка в кодировке UTF16 + UTF-16 String + Строка UTF-16 - UCS4 string - Строка в кодировке UCS4 + UCS-4 String + Строка UCS-4 - Decimal - Десятичный + Latin1 String in Separate Window + Строка Latin1 в отдельном окне - Hexadecimal - Шестнадцатиричный + UTF-8 String in Separate Window + Строка UTF-8 в отдельном окне - Binary - Двоичный + Decimal Integer + Десятичное целое - Octal - Восьмиричный + Hexadecimal Integer + Шестнадцатеричное целое + + + Binary Integer + Двоичное целое + + + Octal Integer + Восьмеричное целое + + + Compact Float + Сжатое действительное + + + Scientific Float + Научное действительное @@ -13227,10 +13387,34 @@ Do you want to retry? Remove Expression Evaluator for "%1" Удалить вычисляемое выражение «%1» + + Add New Expression Evaluator... + Добавить вычисляемое выражение... + Change Local Display Format... Сменить локальный формат отображения... + + Copy View Contents to Clipboard + Скопировать видимое содержимое в буфер обмена + + + Open View Contents in Editor + Открыть видимое содержимое в редакторе + + + New Evaluated Expression + Новое вычисляемое выражение + + + Enter an expression to evaluate. + Введите выражение для вычисления. + + + Note: Evaluators will be re-evaluated after each step. For details check the <a href="qthelp://org.qt-project.qtcreator/doc/creator-debug-mode.html#locals-and-expressions">documentation</a>. + Замечание: выражения вычисляются после каждого шага. Подробнее читайте в <a href="qthelp://org.qt-project.qtcreator/doc/creator-debug-mode.html#locals-and-expressions">документации</a>. + Treat All Characters as Printable Считать все символы печатными @@ -13263,10 +13447,6 @@ Do you want to retry? Automatic Автоматический - - Change Display for Type or Item... - Сменить отображение для типа или элемента... - Add Data Breakpoint... Добавить контрольную точку... @@ -13303,6 +13483,10 @@ Do you want to retry? Use Display Format Based on Type Формат вывода основанный на типе + + Add Data Breakpoint at Pointer's Address + Добавить контрольную точку по адресу указателя + Setting a data breakpoint on an address will cause the program to stop when the data at the address is modified. Установка контрольной точки на адрес приведёт к остановке программы при изменении данных по этому адресу. @@ -13319,18 +13503,10 @@ Do you want to retry? Setting a data breakpoint on an expression will cause the program to stop when the data at the address given by the expression is modified. Установка контрольной точки на адрес приведёт к остановке программы при изменении данных по этому адресу. - - Insert New Expression Evaluator - Добавить вычисляемое выражение - Select Widget to Add into Expression Evaluator Выбрать виджет для добавления в вычисляемые значения - - Remove All Expression Evaluators - Удалить все вычисляемые выражения - Open Memory Editor... Открыть редактор памяти... @@ -13355,42 +13531,19 @@ Do you want to retry? Open Memory Editor Showing Stack Layout Открыть редактор памяти для кадра стека - - Copy Contents to Clipboard - Скопировать содержимое в буфер обмена - Copy Value to Clipboard Скопировать значение в буфер обмена - - Show View Contents in Editor - Открыть содержимое окна - Close Editor Tooltips Закрыть подсказки редактора - - Enter Expression for Evaluator - Ввод выражения для вычисления - - - Expression: - Выражение: - Locals & Expressions Переменные и выражения - - Debugger::Internal::WatchWindow - - Locals and Expressions - Переменные и выражения - - DebuggerEngine @@ -13400,10 +13553,6 @@ Do you want to retry? DebuggerPlugin - - Unable to create a debugger engine of the type '%1' - Не удалось создать отладчик типа «%1» - Install &Debug Information Установить &отладочную информацию @@ -13412,6 +13561,10 @@ Do you want to retry? Tries to install missing debug information. Попытка установить отсутствующую отладочную информацию. + + Unable to create a debugger engine of the type "%1" + Не удалось создать отладчик типа «%1» + Delegate @@ -13468,13 +13621,13 @@ Do you want to retry? Редактор форм - The generated header of the form '%1' could not be found. + The generated header of the form "%1" could not be found. Rebuilding the project might help. Не удалось найти сгенерированный заголовочный файл для формы «%1». Пересборка проекта может помочь. - The generated header '%1' could not be found in the code model. + The generated header "%1" could not be found in the code model. Rebuilding the project might help. Не удалось найти сгенерированный заголовочный файл «%1» в модели кода. Пересборка проекта может помочь. @@ -13525,17 +13678,13 @@ Rebuilding the project might help. Qt Designer Form Class Класс формы Qt Designer - - Form Template - Шаблон формы - + + + Designer::Internal::FormClassWizardPage Class Details Характеристики класса - - - Designer::Internal::FormClassWizardPage %1 - Error %1 - Ошибка @@ -13694,19 +13843,16 @@ Rebuilding the project might help. Картинка не может быть создана: %1 - - Designer::Internal::FormFileWizardDialog - - Location - Размещение - - Designer::Internal::FormTemplateWizardPage Choose a Form Template Выбор шаблона формы + + Form Template + Шаблон формы + %1 - Error %1 - Ошибка @@ -13718,15 +13864,11 @@ Rebuilding the project might help. Qt Designer Form Форма Qt Designer - - Form Template - Шаблон формы - Designer::Internal::QtCreatorIntegration - The class containing '%1' could not be found in %2. + The class containing "%1" could not be found in %2. Please verify the #include-directives. Не удалось найти в %2 класс содержащий «%1». Проверьте директивы #include. @@ -13736,7 +13878,7 @@ Please verify the #include-directives. Ошибка поиска/добавления слота. - No documents matching '%1' could be found. + No documents matching "%1" could be found. Rebuilding the project might help. Не удалось найти документы соответствующие «%1». Возможно, пересборка проекта поможет. @@ -13770,6 +13912,10 @@ Rebuilding the project might help. DiffEditor::DiffEditor + + Could not parse patch file "%1". The contents is not of unified diff format. + Не удалось обработать файл изменений «%1». Содержимое не является унифицированным форматом. + Ignore Whitespace Игнорировать пробелы @@ -13782,6 +13928,10 @@ Rebuilding the project might help. Synchronize Horizontal Scroll Bars Согласовать горизонтальные полосы прокрутки + + Reload Editor + Перезагрузить редактор + [%1] vs. [%2] %3 [%1] против [%2] %3 @@ -13802,6 +13952,14 @@ Rebuilding the project might help. Show Change Description Показать описание изменения + + Switch to Side By Side Diff Editor + Переключиться в двусторонний редактор отличий + + + Switch to Unified Diff Editor + Переключиться в унифицированный редактор отличий + DiffEditor::DiffEditorController @@ -13809,6 +13967,15 @@ Rebuilding the project might help. No difference Различий нет + + and %n more + Displayed after the untranslated message "Branches: branch1, branch2 'and %n more'" + + и ещё %n + и ещё %n + и ещё %n + + DiffEditor::DiffEditorManager @@ -13833,23 +14000,11 @@ Rebuilding the project might help. Diff "%1", "%2" - Editor title Сравнение «%1» с «%2» DiffEditor::SideBySideDiffEditorWidget - - No controller - Не контролируется - - - No difference - Различий нет - - - - DiffEditor::SideDiffEditorWidget Skipped %n lines... @@ -13858,11 +14013,113 @@ Rebuilding the project might help. Пропущено %n строк... + + Binary files differ + Двоичные файлы отличаются + + + Skipped unknown number of lines... + Пропущено неизвестное количество строк... + + + No controller + Не контролируется + + + No difference + Различий нет + + + Send Chunk to CodePaster... + Отправить фрагмент в CodePaster... + + + Apply Chunk... + Применить фрагмент... + + + Revert Chunk... + Откатить фрагмент... + + + Unable to Paste + Не удалось вставить + + + Code pasting services are not available. + Сервисы вставки кода не доступны. + + + Revert Chunk + Откат фрагмента + + + Apply Chunk + Применить фрагмент + + + Would you like to revert the chunk? + Желаете откатить фрагмент? + + + Would you like to apply the chunk? + Применить фрагмент? + + + + DiffEditor::SideDiffEditorWidget [%1] %2 [%1] %2 + + DiffEditor::UnifiedDiffEditorWidget + + No controller + Не контролируется + + + Send Chunk to CodePaster... + Отправить фрагмент в CodePaster... + + + Apply Chunk... + Применить фрагмент... + + + Revert Chunk... + Откатить фрагмент... + + + Unable to Paste + Не удалось вставить + + + Code pasting services are not available. + Сервисы вставки кода не доступны. + + + Revert Chunk + Откат фрагмента + + + Apply Chunk + Применить фрагмент + + + Would you like to revert the chunk? + Желаете откатить фрагмент? + + + Would you like to apply the chunk? + Применить фрагмент? + + + No difference + Различий нет + + EasingContextPane @@ -13971,6 +14228,93 @@ Rebuilding the project might help. Редактор + + EmacsKeys::Internal::EmacsKeysPlugin + + Delete Character + Удалить символ + + + Kill Word + Удалить слово + + + Kill Line + Удалить строку + + + Insert New Line and Indent + Вставить строку и отступить + + + Go to File Start + Перейти в начало файла + + + Go to File End + Перейти к концу файла + + + Go to Line Start + Перейти в начало строки + + + Go to Line End + Перейти в конец строки + + + Go to Next Line + Перейти на следующую строку + + + Go to Previous Line + Перейти на предыдущую строку + + + Go to Next Character + Перейти на следующий символ + + + Go to Previous Character + Перейти на предыдущий символ + + + Go to Next Word + Перейти на следующее слово + + + Go to Previous Word + Перейти на предыдущее слово + + + Mark + Отметить + + + Exchange Cursor and Mark + Обменять курсор и отметку + + + Copy + Копировать + + + Cut + Вырезать + + + Yank + Дёрнуть + + + Scroll Half Screen Down + Переместить пол экрана вниз + + + Scroll Half Screen Up + Переместить пол экрана вверх + + ExtensionSystem::Internal::PluginDetailsView @@ -14070,6 +14414,10 @@ Rebuilding the project might help. All Все + + %1 (current: "%2") + %1 (текущая: «%2») + ExtensionSystem::PluginErrorOverview @@ -14192,6 +14540,18 @@ Reason: %3 Utilities Утилиты + + Plugin is not available on this platform. + Модуль недоступен на этой платформе. + + + Plugin is required. + Модуль необходим. + + + Load on startup + Загружать при запуске + FakeVim::Internal @@ -14253,10 +14613,6 @@ Reason: %3 Pattern not found: %1 Шаблон не найден: %1 - - Mark '%1' not set. - Отметить «%1» не установленным. - Not implemented in FakeVim. Не реализовано в FakeVim. @@ -14357,6 +14713,10 @@ Reason: %3 Cannot open file %1 Невозможно открыть файл %1 + + Mark "%1" not set. + Отметка «%1» не установлена. + Unknown option: Неизвестный параметр: @@ -14781,6 +15141,10 @@ Reason: %3 GenericProjectManager::Internal::FilesSelectionWizardPage + + Files + Файлы + Hide files matching: Скрыть файлы соответствующие: @@ -14831,14 +15195,6 @@ Reason: %3 Make Сборка - - Qt Creator needs a compiler set up to build. Configure a compiler in the kit options. - Необходимо задать компилятор для сборки. Сделать это можно в настройках комплекта. - - - Configuration is faulty. Check the Issues view for details. - Конфигурация неисправна. Окно «Проблемы» содержит подробную информацию. - Override %1: Заменить %1: @@ -14904,20 +15260,12 @@ Reason: %3 File Selection Выбор файла - - Location - Размещение - - - Files - Файлы - GenericProjectManager::Internal::Manager - Failed opening project '%1': Project is not a file - Не удалось открыть проект «%1»: проект не является файлом + Failed opening project "%1": Project is not a file. + Не удалось открыть проект «%1»: проект не является файлом. @@ -14938,8 +15286,8 @@ Reason: %3 Gerrit::Internal::FetchContext - Gerrit Fetch - Загрузить с Gerrit + Fetching from Gerrit + Загрузка из Gerrit %1 crashed. @@ -14984,18 +15332,6 @@ Reason: %3 &Refresh &Обновить - - &Show... - &Показать... - - - Cherry &Pick... - Перенести &изменения... - - - &Checkout... - &Перейти... - &Show &Показать @@ -15015,10 +15351,6 @@ Reason: %3 Gerrit::Internal::GerritModel - - <html><head/><body><table><tr><td>Subject</td><td>%1</td></tr><tr><td>Number</td><td><a href="%11">%2</a></td></tr><tr><td>Owner</td><td>%3 <a href="mailto:%4">%4</a></td></tr><tr><td>Project</td><td>%5 (%6)</td></tr><tr><td>Status</td><td>%7, %8</td></tr><tr><td>Patch set</td><td>%9</td></tr>%10<tr><td>URL</td><td><a href="%11">%11</a></td></tr></table></body></html> - <table><tr><td>Описание</td><td>%1</td></tr><tr><td>Номер</td><td><a href="%11">%2</a></td></tr><tr><td>Владелец</td><td>%3 <a href="mailto:%4">%4</a></td></tr><tr><td>Проект</td><td>%5 (%6)</td></tr><tr><td>Состояние</td><td>%7, %8</td></tr><tr><td>Изменение</td><td>%9</td></tr>%10<tr><td>URL</td><td><a href="%11">%11</a></td></tr></table> - Owner Владелец @@ -15044,15 +15376,35 @@ Reason: %3 Состояние - Parse error: '%1' -> %2 + Number + Номер + + + Patch set + Набор изменений + + + URL + URL + + + Depends on + Зависит от + + + Needed by + Требуется + + + Parse error: "%1" -> %2 Ошибка разбора: «%1» -> %2 - Parse error: '%1' + Parse error: "%1" Ошибка разбора: «%1» - Parse error in line '%1' + Parse error in line "%1" Ошибка разбора в строке «%1» @@ -15069,10 +15421,6 @@ Reason: %3 HTTPS HTTPS - - Always prompt for repository folder - Всегда спрашивать каталог хранилища - &Host: &Сервер: @@ -15085,24 +15433,6 @@ Reason: %3 &ssh: &ssh: - - &Repository: - &Хранилище: - - - Default repository where patches will be applied. - По умолчанию заплатки будут применяться к этому хранилищу. - - - Pr&ompt: - С&прашивать путь: - - - If checked, user will always be -asked to confirm the repository path. - Если включено, то пользователь должен будет -всегда подтверждать каталог хранилища. - &Port: &Порт: @@ -15165,7 +15495,7 @@ were not verified among remotes in %3. Select different folder? не прошли проверку подлинности для хранилищ в %3. Выбрать другой каталог? - Enter Local Repository for '%1' (%2) + Enter Local Repository for "%1" (%2) Ввод локального хранилища для «%1» (%2) @@ -15243,8 +15573,8 @@ Partial names can be used if they are unambiguous. Gerrit::Internal::QueryContext - Gerrit - Gerrit + Querying Gerrit + Запрос к Gerrit Error running %1: %2 @@ -15394,11 +15724,15 @@ Would you like to terminate it? Сменить ветку? - Would you like to delete the tag '%1'? + Would you like to delete the tag "%1"? Удалить тег «%1»? - Would you like to delete the <b>unmerged</b> branch '%1'? + Would you like to delete the branch "%1"? + Удалить ветку «%1»? + + + Would you like to delete the <b>unmerged</b> branch "%1"? Удалить <b>неуправляемую</b> ветку «%1»? @@ -15418,8 +15752,8 @@ Would you like to terminate it? Git: Сброс изменений - Hard reset branch '%1' to '%2'? - Сбросить ветку «%1» полностью до состояния «%2»? + Hard reset branch "%1" to "%2"? + Сбросить полностью ветку «%1» до состояния «%2»? Fast-Forward @@ -15429,10 +15763,6 @@ Would you like to terminate it? No Fast-Forward Не быстрая промотка - - Would you like to delete the branch '%1'? - Удалить ветку «%1»? - Branches Ветки @@ -15590,6 +15920,9 @@ Would you like to terminate it? Cloning started... Клонирование запущено... + + + Git::Internal::CloneWizardFactory Clones a Git repository and tries to load the contained project. Клонирование хранилища Git с последующей попыткой загрузки содержащегося там проекта. @@ -15667,10 +16000,6 @@ Would you like to terminate it? Waiting for data... Ожидание данных... - - Git Diff - Git - Сравнение - Invalid revision Некорректная ревизия @@ -15733,6 +16062,34 @@ Commit now? Cannot run "%1 %2" in "%2": %3 Не удалось выполнить «%1 %2» в «%2»: %3 + + Stage Chunk + Применить фрагмент + + + Unstage Chunk + Отменить фрагмент + + + Chunk successfully unstaged + Фрагмент успешно отменён + + + Chunk successfully staged + Фрагмент успешно применён + + + Git Diff Projects + Git - Сравнение проектов + + + Git Diff Repository + Git - Сравнение хранилища + + + Git Diff Files + Git - Сравнение файлов + Git Diff "%1" Git - сравнение «%1» @@ -16043,25 +16400,6 @@ Commit now? Waiting for data... Ожидание данных... - - Index - Готовое к фиксации - - - Working tree - Рабочая копия - - - - Git::Internal::GitDiffSwitcher - - Switch to Text Diff Editor - Переключить в текстовый редактор отличий - - - Switch to Side By Side Diff Editor - Переключить в двусторонний редактор отличий - Git::Internal::GitEditor @@ -16591,39 +16929,15 @@ Commit now? Git::Internal::GitSettings - The binary '%1' could not be located in the path '%2' + The binary "%1" could not be located in the path "%2" Программа «%1» отсутствует в «%2» - Git::Internal::GitShowArgumentsWidget + Git::Internal::GitSubmitEditor - oneline - однострочный - - - short - краткий - - - medium - средний - - - full - полный - - - fuller - полнейший - - - email - - - - raw - исходный + Refreshing Commit Data + Обновление данных фиксации @@ -16785,7 +17099,7 @@ Commit now? Конфликт объединения - %1 merge conflict for '%2' + %1 merge conflict for "%2" Local: %3 Remote: %4 Конфликт объединения (%1) для «%2» @@ -16879,6 +17193,17 @@ Remote: %4 О&тправить + + Git::Internal::RemoteModel + + Name + Имя + + + URL + URL + + Git::Internal::SettingsPage @@ -16958,7 +17283,7 @@ Perl через переменные среды окружения. Git::Internal::SettingsPageWidget - Set the environment variable HOME to '%1' + Set the environment variable HOME to "%1" (%2). This causes msysgit to look for the SSH-keys in that location instead of its installation directory when run outside git bash. @@ -16972,8 +17297,8 @@ instead of its installation directory when run outside git bash. сейчас не задано - currently set to '%1' - сейчас «%1» + currently set to "%1" + сейчас задано «%1» Git Repository Browser Command @@ -17089,11 +17414,11 @@ You can choose between stashing the changes or discarding them. Gitorious::Internal::Gitorious - Error parsing reply from '%1': %2 + Error parsing reply from "%1": %2 Ошибка разбора ответа от «%1»: %2 - Request failed for '%1': %2 + Request failed for "%1": %2 Запрос для «%1» не удался: %2 @@ -17103,6 +17428,17 @@ You can choose between stashing the changes or discarding them. Gitorious::Internal::GitoriousCloneWizard + + Cloning + Клонирование + + + Cloning started... + Клонирование запущено... + + + + Gitorious::Internal::GitoriousCloneWizardFactory Clones a Gitorious repository and tries to load the contained project. Клонирование хранилища Gitorious с последующей попыткой загрузки содержащегося там проекта. @@ -17176,7 +17512,7 @@ You can choose between stashing the changes or discarding them. Проект - Choose a project from '%1' + Choose a project from "%1" Выберите проект из «%1» @@ -17203,7 +17539,7 @@ You can choose between stashing the changes or discarding them. Хранилище - Choose a repository of the project '%1'. + Choose a repository of the project "%1". Выберите хранилище проекта «%1». @@ -17355,6 +17691,22 @@ You can choose between stashing the changes or discarding them. Help Справка + + Error loading page + Ошибка загрузки страницы + + + <p>Check that you have the corresponding documentation set installed.</p> + <p>Проверьте, установлена ли у вас соответствующая документация.</p> + + + Error loading: %1 + Ошибка загрузки: %1 + + + The page could not be found + Не удалось найти страницу + Help::Internal::CentralWidget @@ -17410,17 +17762,6 @@ You can choose between stashing the changes or discarding them. Удалить - - Help::Internal::ExternalHelpWindow - - Show Sidebar - Показать боковую панель - - - Qt Creator Offline Help - Автономная справка Qt Creator - - Help::Internal::FilterSettingsPage @@ -17532,14 +17873,6 @@ Add, modify, and remove document filters, which determine the documentation set Always Show Side-by-Side Всегда показывать сбоку - - Always Start Full Help - Всегда запускать полную справку - - - Always Show Help in External Window - Всегда показывать справку во внешнем окне - On help start: При запуске справки: @@ -17600,6 +17933,14 @@ Add, modify, and remove document filters, which determine the documentation set Switches to editor context after last help page is closed. Переключаться в режим редактирования при закрытии последней страницы справки. + + Always Show in Help Mode + Всегда отображать в режиме справки + + + Always Show in External Window + Всегда отображать в отдельном окне + Help::Internal::HelpIndexFilter @@ -17637,14 +17978,6 @@ Add, modify, and remove document filters, which determine the documentation set Home Домой - - Previous - Назад - - - Next - Вперёд - Add Bookmark Добавить закладку @@ -17757,10 +18090,6 @@ Add, modify, and remove document filters, which determine the documentation set Show Sidebar Показать боковую панель - - Go to Help Mode - Перейти в режим справки - Close current page Закрыть текущую страницу @@ -17785,42 +18114,45 @@ Add, modify, and remove document filters, which determine the documentation set Help::Internal::HelpViewer - <title>about:blank</title> - <title>about:blank</title> - - - <html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Error 404...</title></head><body><div align="center"><br/><br/><h1>The page could not be found</h1><br/><h3>'%1'</h3></div></body></html> - <html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Ошибка 404...</title></head><body><div align="center"><br/><br/><h1>Не удалось найти страницу</h1><br/><h3>«%1»</h3></div></body></html> - - - Open Link - Открыть ссылку - - - Open Link as New Page - Открыть ссылку на новой странице - - - Copy Link - Скопировать ссылку - - - Copy - Копировать - - - Reload - Перезагрузить - - - Error loading: %1 - Ошибка загрузки: %1 - - - Unknown or unsupported Content! + Unknown or unsupported content! Неизвестные или неподдерживаемые данные! + + Help::Internal::HelpWidget + + Go to Help Mode + Перейти в режим справки + + + Back + Назад + + + Forward + Далее + + + Increase Font Size + Увеличить шрифт + + + Decrease Font Size + Уменьшить шрифт + + + Reset Font Size + Восстановить размер шрифта + + + Help + Справка + + + Help - %1 + Справка - %1 + + Help::Internal::OpenPagesManager @@ -17846,6 +18178,13 @@ Add, modify, and remove document filters, which determine the documentation set Закрыть все, кроме %1 + + Help::Internal::QtWebKitHelpWidget + + Open Link as New Page + Открыть ссылку в новой странице + + Help::Internal::RemoteFilterOptions @@ -17880,15 +18219,25 @@ Add, modify, and remove document filters, which determine the documentation set Поиск в сети + + Help::Internal::SearchSideBarItem + + Regenerate Index + Обновление указателя + + + + Help::Internal::SearchTaskHandler + + Get Help Online + Получить онлайн справку + + Help::Internal::SearchWidget - Indexing - Индексация - - - Indexing Documentation... - Идексация документации... + Indexing Documentation + Идексация документации Open Link @@ -17896,7 +18245,30 @@ Add, modify, and remove document filters, which determine the documentation set Open Link as New Page - Открыть ссылку на новой странице + Открыть ссылку в новой странице + + + Copy Link + Скопировать ссылку + + + Copy + Копировать + + + Reload + Перезагрузить + + + + Help::Internal::TextBrowserHelpWidget + + Open Link + Открыть ссылку + + + Open Link as New Page + Открыть ссылку в новой странице Copy Link @@ -17922,33 +18294,6 @@ Add, modify, and remove document filters, which determine the documentation set Неизвестный заголовок - - HelpViewer - - Error 404... - Ошибка 404... - - - The page could not be found! - Не удалось найти страницу! - - - <li>Check that you have one or more documentation sets installed.</li> - <li>Проверьте, установлен ли хотя бы один набор документации.</li> - - - <li>Check that you have installed the appropriate browser plug-in to support the file your loading.</li> - <li>Проверьте, установлен ли подходящий для загружаемого файла модуль обозревателя.</li> - - - <li>If you try to access a public URL, make sure to have a network connection.</li> - <li>Если ошибка возникла при открытии внешнего ресурса, то убедитесь, что имеется подключение к сети.</li> - - - <li>If your computer or network is protected by a firewall or proxy, make sure the application is permitted to access the network.</li> - <li>Если компьютер или сеть защищены файрволом или прокси, то убедитесь, что приложению разрешён доступ к сети.</li> - - ImageSpecifics @@ -18122,7 +18467,7 @@ Add, modify, and remove document filters, which determine the documentation set Open Link as New Page - Открыть ссылку на новой странице + Открыть ссылку в новой странице @@ -18153,6 +18498,10 @@ Ids must begin with a lowercase letter. Ios::Internal::IosAnalyzeSupport + + Run ended with error. + Выполнение завершилось с ошибкой. + Run ended. Выполнение завершено. @@ -18172,14 +18521,6 @@ Ids must begin with a lowercase letter. xcodebuild xcodebuild - - Qt Creator needs a compiler set up to build. Configure a compiler in the kit preferences. - Необходимо задать компилятор для сборки. Сделать это можно в настройках комплекта. - - - Configuration is faulty. Check the Issues output pane for details. - Конфигурация неисправна. Окно «Проблемы» содержит подробную информацию. - Reset Defaults По умолчанию @@ -18223,8 +18564,12 @@ Ids must begin with a lowercase letter. Получен неверный идентификатор процесса. - Run failed unexpectedly. - Запуск неожиданно не удался. + Run ended with error. + Выполнение завершилось с ошибкой. + + + Run ended. + Выполнение завершено. @@ -18267,6 +18612,10 @@ Ids must begin with a lowercase letter. The Info.plist might be incorrect. Файл Info.plist может быть неверным. + + The provisioning profile "%1" (%2) used to sign the application does not cover the device %3 (%4). Deployment to it will fail. + Профиль разработчика «%1» (%2), используемый для подписывания приложения, не поддерживает устройство %3 (%4). Установка на него невозможна. + Ios::Internal::IosDeployStepFactory @@ -18275,13 +18624,6 @@ Ids must begin with a lowercase letter. Установка на устройство или эмулятор iOS - - Ios::Internal::IosDeployStepWidget - - <b>Deploy to %1</b> - <b>Установка на %1</b> - - Ios::Internal::IosDevice @@ -18371,7 +18713,7 @@ Ids must begin with a lowercase letter. Запуск %1 на %2 - The .pro file '%1' is currently being parsed. + The .pro file "%1" is currently being parsed. Идёт обработка файла .pro: «%1». @@ -18421,8 +18763,12 @@ Ids must begin with a lowercase letter. Запуск внешнего процесса. - Run ended unexpectedly. - Запуск неожиданно завершился. + Run ended with error. + Выполнение завершилось с ошибкой. + + + Run ended. + Выполнение завершено. @@ -18489,24 +18835,24 @@ Ids must begin with a lowercase letter. Arguments: Параметры: - - iPhone 3.5-inch Retina display - iPhone с экраном Ретина 3.5" - - - iPhone 4-inch Retina display - iPhone с экраном Ретина 4" - iPad iPad - iPad Retina display + iPhone 3.5-inch Retina Display + iPhone с экраном Ретина 3.5" + + + iPhone 4-inch Retina Display + iPhone с экраном Ретина 4" + + + iPad Retina Display iPad с экраном Ретина - Device Type: + Device type: Тип устройства: @@ -18879,14 +19225,14 @@ QML. Dialog - - User name: - Имя пользователя: - Password: Пароль: + + Username: + Имя пользователя: + Mercurial::Internal::CloneWizard @@ -18898,6 +19244,9 @@ QML. Cloning started... Клонирование запущено... + + + Mercurial::Internal::CloneWizardFactory Clones a Mercurial repository and tries to load the contained project. Извлечение проекта из хранилища Mercurial с последующей попыткой его загрузки. @@ -19398,6 +19747,18 @@ QML. Python Source File Файл исходных текстов Python + + Qt Project configuration file + Файл настроек проекта Qt + + + Qt Project cache file + Файл кэша проекта Qt + + + Qt Project stash file + Файл тайника проекта Qt + QML file Файл QML @@ -19592,6 +19953,28 @@ QML. Н/Д + + NavigatorTreeModel + + Warning + Предупреждение + + + Reparenting the component %1 here will cause the component %2 to be deleted. Do you want to proceed? + Смена в этом месте владельца компоненты %1 приведёт к удалению компоненты %2. Продолжить? + + + + NodeInstanceServerProxy + + Cannot Connect to QML Emulation Layer (QML Puppet) + Невозможно подключиться к слою эмуляции QML (QML Puppet) + + + The executable of the QML emulation layer (QML Puppet) may not be responding. Switching to another kit might help. + Возможно, процесс эмуляции QML (QML Puppet) не отвечает. Попробуйте переключиться на другой комплект. + + OpenWith::Editors @@ -19706,25 +20089,17 @@ QML. Предпочтительное начало - Preferred highlight begin - must be smaller than Preferred end. - Предпочтительное начало должно быть меньше предпочтительного окончания. + Preferred highlight begin - must be smaller than Preferred end. Note that the user has to add a highlight component. + Предпочтительное начало должно быть меньше предпочтительного окончания. Имейте в виду, пользователь должен добавить выделенный компонент. + + + Preferred highlight end - must be larger than Preferred begin. Note that the user has to add a highlight component. + Предпочтительное окончание должно быть больше предпочтительного начала. Имейте в виду, пользователь должен добавить выделенный компонент. Preferred end Предпочтительное окончание - - Preferred highlight end - must be larger than Preferred begin. - Предпочтительное окончание должно быть больше предпочтительного начала. - - - Follows current - Управляется видом - - - Determines whether the highlight is managed by the view. - Определяет, следует ли виду управлять подсветкой или нет. - Perforce::Internal::ChangeNumberDialog @@ -20068,6 +20443,10 @@ QML. p4 filelog %1 p4 filelog %1 + + Could not start perforce "%1". Please check your settings in the preferences. + Не удалось запустить Perforce «%1». Пожалуйста, проверьте настройки. + The process terminated with exit code %1. Процесс завершился с кодом %1. @@ -20106,10 +20485,6 @@ QML. Diff &Selected Files &Сравнить выбранные файлы - - Could not start perforce '%1'. Please check your settings in the preferences. - Не удалось запустить Perforce «%1». Пожалуйста, проверьте настройки. - Perforce did not respond within timeout limit (%1 ms). Perforce не ответил за отведённое время (%1 ms). @@ -20295,11 +20670,11 @@ QML. PluginManager - The plugin '%1' is specified twice for testing. + The plugin "%1" is specified twice for testing. Модуль «%1» указан для тестирования дважды. - The plugin '%1' does not exist. + The plugin "%1" does not exist. Модуль «%1» не существует. @@ -20317,28 +20692,28 @@ QML. PluginSpec - - '%1' misses attribute '%2' - В «%1» пропущен атрибут «%2» - - - '%1' has invalid format - «%1» имеет некорректный формат - - - Invalid element '%1' - Некорректный элемент «%1» - - - Unexpected closing element '%1' - Неожиданный закрывающий элемент «%1» - Unexpected token Неожиданный символ - Expected element '%1' as top level element + "%1" misses attribute "%2" + В «%1» пропущен атрибут «%2» + + + "%1" has invalid format + «%1» имеет некорректный формат + + + Invalid element "%1" + Некорректный элемент «%1» + + + Unexpected closing element "%1" + Неожиданный закрывающий элемент «%1» + + + Expected element "%1" as top level element Ожидается элемент «%1» в качестве корневого элемента @@ -20429,6 +20804,10 @@ QML. ProjectExplorer::AbstractProcessStep + + Configuration is faulty. Check the Issues view for details. + Конфигурация неисправна. Окно «Проблемы» содержит подробную информацию. + Starting: "%1" %2 Запускается: «%1» %2 @@ -20471,10 +20850,6 @@ QML. ProjectExplorer::BaseProjectWizardDialog - - Location - Размещение - untitled File path suggestion for a new project. If you choose to translate it, make sure it is a valid path name without blanks and using only ascii chars. @@ -20537,6 +20912,10 @@ QML. Build/Deployment canceled Сборка/установка отменена + + When executing step "%1" + Во время выполнения этапа «%1» + Elapsed time: %1. Прошло времени: %1. @@ -20554,10 +20933,6 @@ QML. Error while building/deploying project %1 (kit: %2) Ошибка при сборке/установке проекта %1 (комплект: %2) - - When executing step '%1' - Во время выполнения этапа «%1» - Running steps for project %1... Выполняются этапы для проекта %1... @@ -20588,11 +20963,11 @@ QML. %2 - Error running '%1' in %2: %3 + Error running "%1" in %2: %3 Ошибка работы «%1» в %2: %3 - Building helper '%1' in %2 + Building helper "%1" in %2 Сборка помощника «%1» в %2 @@ -20618,11 +20993,6 @@ QML. ProjectExplorer::CustomWizard - - Details - Default short title for custom wizard page to be shown in the progress pane of the wizard. - Подробнее - Creates a C++ plugin to load extensions dynamically into applications using the QDeclarativeEngine class. Requires Qt 4.7.0 or newer. Создание C++ модуля для динамической загрузки расширений в приложение, использующее класс QDeclarativeEngine. Требуется Qt версии 4.7.0 или выше. @@ -20878,6 +21248,28 @@ QML. Конфигурация установки + + ProjectExplorer::DeploymentDataModel + + Local File Path + Путь к локальному файлу + + + Remote Directory + Внешний каталог + + + + ProjectExplorer::DeploymentDataView + + Form + + + + Files to deploy: + Установка файлов: + + ProjectExplorer::DesktopDevice @@ -21134,6 +21526,17 @@ QML. Базовая среда данной конфигурации выполнения: + + ProjectExplorer::EnvironmentIdAccessor + + <p>No .user settings file created by this instance of Qt Creator was found.</p><p>Did you work with this project on another machine or using a different settings path before?</p><p>Do you still want to load the settings file "%1"?</p> + <p>Не удалось найти файл настроек от этого Qt Creator.</p><p>Не работали ли вы ранее с этим проектом на другой машине или не использовали ли вы другой путь к настройкам?</p><p>Продолжить загрузку файла настроек «%1»?</p> + + + Settings File for "%1" from a different Environment? + Настройки проекта «%1» с другого компьютера? + + ProjectExplorer::EnvironmentItemsDialog @@ -21442,7 +21845,7 @@ QML. Текущий проект - Project '%1': + Project "%1": Проект «%1»: @@ -21777,10 +22180,6 @@ QML. Open "%1" Открыть «%1» - - Open with - Открыть с помощью - Open Parent Folder Открыть родительскую папку @@ -21793,6 +22192,14 @@ QML. Synchronize with Editor Согласовывать с редактором + + Open Project in "%1" + Открыть проект в «%1» + + + Open With + Открыть с помощью + Choose Folder... Выбрать папку... @@ -21868,6 +22275,14 @@ QML. Kit name and icon. Название и значок комплекта. + + <html><head/><body><p>The name of the kit suitable for generating directory names. This value is used for the variable <i>%1</i>, which for example determines the name of the shadow build directory.</p></body></html> + <html><head/><body><p>Название комплекта влияет на имена создаваемых каталогов. Эти значения используются для переменной <i>%1</i>, которая, например, определяет имя каталога теневой сборки.</p></body></html> + + + File system name: + Имя в файловой системе: + Mark as Mutable Сделать изменяемым @@ -22143,10 +22558,6 @@ QML. Merge stderr and stdout Объединить stderr и stdout - - <i>jom</i> is a drop-in replacement for <i>nmake</i> which distributes the compilation process to multiple CPU cores. The latest binary is available at <a href="http://releases.qt-project.org/jom/">http://releases.qt-project.org/jom/</a>. Disable it if you experience problems with your builds. - <i>jom</i> - это замена <i>nmake</i>, распределяющая процесс компиляции на несколько ядер процессора. Свежайшая сборка доступна на <a href="http://releases.qt-project.org/jom/">http://releases.qt-project.org/jom/</a>. Отключите использование jom вместо nmake в случае проблем со сборкой. - Reset Сбросить @@ -22171,6 +22582,10 @@ QML. Asks before terminating the running application in response to clicking the stop button in Application Output. Спрашивать перед остановкой запущенного приложения при нажатии на кнопку остановки консоли вывода приложения. + + <i>jom</i> is a drop-in replacement for <i>nmake</i> which distributes the compilation process to multiple CPU cores. The latest binary is available at <a href="http://download.qt-project.org/official_releases/jom/">http://download.qt-project.org/official_releases/jom/</a>. Disable it if you experience problems with your builds. + <i>jom</i> - это замена <i>nmake</i>, распределяющая процесс компиляции на несколько ядер процессора. Свежайшая сборка доступна по адресу <a href="http://download.qt-project.org/official_releases/jom/">http://download.qt-project.org/official_releases/jom/</a>. В случае проблем со сборкой отключите использование jom. + ProjectExplorer::Internal::ProjectFileFactory @@ -22190,17 +22605,8 @@ QML. ProjectExplorer::Internal::ProjectFileWizardExtension - - <Implicitly Add> - <Добавлено неявно> - - - The files are implicitly added to the projects: - Файлы неявно добавленные в проекты: - <None> - No project selected <Нет> @@ -22212,23 +22618,23 @@ QML. Ошибка контроля версий - Failed to add subproject '%1' -to project '%2'. + Failed to add subproject "%1" +to project "%2". Не удалось добавить подпроект «%1» в проект «%2». Failed to add one or more files to project -'%1' (%2). +"%1" (%2). Не удалось добавить один или более файлов в проект «%1» (%2). - A version control system repository could not be created in '%1'. + A version control system repository could not be created in "%1". Не удалось создать хранилище системы контроля версий в «%1». - Failed to add '%1' to the version control system. + Failed to add "%1" to the version control system. Не удалось добавить «%1» в контроль версий. @@ -22365,6 +22771,15 @@ to project '%2'. &Clone Selected Копировать выделенн&ую + + Clone Configuration + Title of a the cloned RunConfiguration window, text of the window + Дублирование конфигурации + + + New configuration name: + Название новой конфигурации: + New name for run configuration <b>%1</b>: Новое название конфигурации выполнения <b>%1</b>: @@ -22428,14 +22843,6 @@ to project '%2'. &Switch to &Активировать - - New session name - Имя создаваемой сессии - - - Rename session - Переименование сессии - <a href="qthelp://org.qt-project.qtcreator/doc/creator-project-managing-sessions.html">What is a Session?</a> <a href="qthelp://org.qt-project.qtcreator/doc/creator-project-managing-sessions.html">Что такое сессия?</a> @@ -22448,6 +22855,14 @@ to project '%2'. Automatically restores the last session when Qt Creator is started. Автоматически восстанавливать последнюю сессию при запуске Qt Creator. + + New Session Name + Имя создаваемой сессии + + + Rename Session + Переименование сессии + ProjectExplorer::Internal::SessionModel @@ -22463,7 +22878,7 @@ to project '%2'. Введите название сессии: - Switch to + Switch To Переключиться в @@ -23105,10 +23520,30 @@ Please close all running instances of your application before starting a build.< Do you want to cancel the build process and unload the project anyway? Остановить процесс сборки и выгрузить проект? + + Failed opening project "%1": Project already open. + Не удалось открыть проект «%1»: проект уже открыт. + + + Failed opening project "%1": Settings could not be restored. + Не удалось открыть проект «%1»: невозможно восстановить настройки. + + + Failed opening project "%1": No plugin can open project type "%2". + Не удалось открыть проект «%1»: нет модуля для открытия проектов типа «%2». + + + Failed opening project "%1": Unknown project type. + Не удалось открыть проект «%1»: тип проекта неизвестен. + The project %1 is not configured, skipping it. Проект %1 не настроен, пропущен. + + Building "%1" is disabled: %2<br> + Сборка «%1» отключена: %2<br> + No project loaded Проект не загружен @@ -23117,18 +23552,6 @@ Please close all running instances of your application before starting a build.< Project has no build settings У проекта отсутствуют настройки сборки - - Building '%1' is disabled: %2<br> - Сборка «%1» отключена: %2<br> - - - Failed opening project '%1': Project already open. - Не удалось открыть проект «%1»: проект уже открыт. - - - Failed opening project '%1': Settings could not be restored. - Не удалось открыть проект «%1»: невозможно восстановить настройки. - Ignore All Errors? Игнорировать все ошибки? @@ -23145,18 +23568,14 @@ Please close all running instances of your application before starting a build.< A build is in progress Выполняется сборка + + Building "%1" is disabled: %2 + Сборка «%1» отключена: %2 + Do Not Close Не закрывать - - The project '%1' has no active kit. - У проекта «%1» нет активного комплекта. - - - The kit '%1' for the project '%2' has no active run configuration. - Для комплекта «%1» проекта «%2» нет активной конфигурации запуска. - A build is still in progress. Сборка ещё выполняется. @@ -23285,10 +23704,6 @@ Do you want to ignore them? The SSH port of the device in the currently active kit. Порт SSH устройства текущего комплекта. - - The user name with which to log into the device in the currently active kit. - Имя пользователя для входа на устройство текущего комплекта. - The private key file with which to authenticate when logging into the device in the currently active kit. Файл закрытого ключа для авторизации при входе на устройство текущего комплекта. @@ -23317,6 +23732,10 @@ Do you want to ignore them? debug отладка + + The username with which to log into the device in the currently active kit. + Имя пользователя для входа на устройство текущего комплекта. + release выпуск @@ -23326,16 +23745,21 @@ Do you want to ignore them? неизвестно - Failed to Open Project + Project File Factory + ProjectExplorer::ProjectFileFactory display name. + Фабрика проектных файлов + + + Failed to open project Не удалось открыть проект - Failed opening project '%1': No plugin can open project type '%2'. - Не удалось открыть проект «%1»: нет модуля для открытия проектов типа «%2». + All Projects + Все проекты - Failed opening project '%1': Unknown project type. - Не удалось открыть проект «%1»: тип проекта неизвестен. + Failed to Open Project + Не удалось открыть проект Unknown error @@ -23370,10 +23794,6 @@ Do you want to ignore them? Project has no build settings. Проект не имеет настроек сборки. - - Building '%1' is disabled: %2 - Сборка «%1» отключена: %2 - Cancel Build && Close Отменить сборку и закрыть @@ -23394,10 +23814,6 @@ Do you want to ignore them? No active project. Нет активного проекта. - - Cannot run '%1'. - Не удалось запустить «%1». - Run %1 Запустить %1 @@ -23423,6 +23839,18 @@ Do you want to ignore them? Could not remove file %1 from project %2. Не удалось удалить файл «%1» из проекта «%2». + + The project "%1" has no active kit. + У проекта «%1» нет активного комплекта. + + + The kit "%1" for the project "%2" has no active run configuration. + Для комплекта «%1» проекта «%2» нет активной конфигурации запуска. + + + Cannot run "%1". + Не удалось запустить «%1». + Could not delete file %1. Не удалось удалить файл «%1». @@ -23591,8 +24019,8 @@ These files are preserved. Не удалось открыть проект - Session - Сессия + Loading Session + Загрузка сессии Error while saving session @@ -23609,34 +24037,10 @@ These files are preserved. ProjectExplorer::SettingsAccessor - - No valid .user file found for '%1' - Не найден корректный файл .user для «%1» - - - <p>No valid settings file could be found for this installation of Qt Creator.</p><p>All settings files were either too new or too old to be read.</p> - <p>Не удалось найти подходящий для этой версии Qt Creator файл настроек.</p><p>Все файлы настроек или слишком старые, или слишком новые.</p> - - - <p>No .user settings file created by this instance of Qt Creator was found.</p><p>Did you work with this project on another machine or using a different settings path before?</p><p>Do you still want to load the settings file '%1'?</p> - <p>Не удалось найти файл настроек от этого Qt Creator.</p><p>Не работали ли вы ранее с этим проектом на другой машине или не использовали ли вы другой путь к настройкам?</p><p>Продолжить загрузку файла настроек «%1»?</p> - - - Using Old Settings File for '%1' - Используется старый файл настроек для проекта «%1» - - - <p>The versioned backup '%1' of the .user settings file is used, because the non-versioned file was created by an incompatible version of Qt Creator.</p><p>Project settings changes made since the last time this version of Qt Creator was used with this project are ignored, and changes made now will <b>not</b> be propagated to the newer version.</p> - <p>Будет использоваться резервная копия файла настроек .user более старой версии («%1»), так как текущий файл создан несовместимой версией Qt Creator.</p><p>Изменения настроек проекта, сделанные с момента последнего запуска этой версии Qt Creator, не будут учтены, а изменения, вносимые сейчас, <b>не будут</b> сохранены в новую версию файла проекта.</p> - The version of your .shared file is not supported by Qt Creator. Do you want to try loading it anyway? Версия вашего файла .shared не поддерживается этой версией Qt Creator. Попробовать загрузить файл? - - Settings File for '%1' from a different Environment? - Настройки проекта «%1» с другого компьютера? - Unsupported Shared Settings File Неподдерживаемый файл общих настроек @@ -23713,12 +24117,27 @@ These files are preserved. Kit Selection Выбор комплекта + + Kits + Комплекты + Qt Creator can use the following kits for project <b>%1</b>: %1: Project name Qt Creator может использовать для проекта <b>%1</b> следующие комплекты: + + ProjectExplorer::Task + + Qt Creator needs a compiler set up to build. Configure a compiler in the kit options. + Необходимо в настройках комплекта задать компилятор для сборки. + + + Qt Creator needs a build configuration set up to build. Configure a build configuration in the project settings. + Для сборки проекта необходимо в настройках проекта задать конфигурацию сборки. + + ProjectExplorer::ToolChain @@ -23759,13 +24178,77 @@ These files are preserved. Установить на устройство Maemo + + ProjectExplorer::XcodebuildParser + + Xcodebuild failed. + Xcodebuild завершился с ошибкой. + + ProjectFileConverter - File '%1' not listed in '%2' file, should it be? + File "%1" not listed in "%2" file, should it be? Файл «%1» не перечислен в файле «%2», а должен? + + ProjectWizard + + The files are implicitly added to the projects: + Файлы, неявно добавленные в проекты: + + + <Implicitly Add> + <Добавлено неявно> + + + <None> + <Нет> + + + + PuppetBuildProgressDialog + + Build Progress + Состояние сборки + + + Build Adapter for the current Qt. Happens only once for every Qt installation. + Собирается адаптер для текущего Qt. Требуется только один раз для каждого Qt. + + + Use Fallback QML Emulation Layer + Использовать резервный эмулятор QML + + + + PuppetCreator + + QML Emulation Layer (QML Puppet) Building was Unsuccessful + Не удалось собрать слой эмуляции QML (QML Puppet) + + + The QML emulation layer (QML Puppet) cannot be built. The fallback emulation layer, which does not support all features, will be used. + Не удалось собрать слой эмуляции QML (QML Puppet). Поэтому будет использоваться резервный эмулятор, не поддерживающий всех возможностей. + + + The QML emulation layer (QML Puppet) cannot be built because the Qt version is too old or it cannot run natively on your computer. The fallback emulation layer, which does not support all features, will be used. + Невозможно собрать слой эмуляции QML (QML Puppet), так как версия Qt слишком старая или не может работать на вашем компьютере. Поэтому будет использоваться резервный эмулятор, не поддерживающий всех возможностей. + + + Kit is invalid + Неверный комплект + + + The QML emulation layer (QML Puppet) cannot be built because the kit is not configured correctly. For example the compiler can be misconfigured. Fix the kit configuration and restart Qt Creator. Otherwise, the fallback emulation layer, which does not support all features, will be used. + Невозможно собрать слой эмуляции QML (QML Puppet), так как комплект не настроен корректно. Например, не настроен компилятор. Исправьте настройку комплекта и перезапустите Qt Creator. Иначе будет использоваться резервный эмулятор, не поддерживающий всех возможностей. + + + Qt Version is not supported + Версия Qt не поддерживается + + PuppetDialog @@ -23817,6 +24300,10 @@ These files are preserved. The source file name will be derived from the class name Имя исходного файла будет получено из имени класса + + Details + Подробнее + PythonEditor::Internal::ClassWizardDialog @@ -23824,9 +24311,31 @@ These files are preserved. Python Class Wizard Создание класса Python + + + QDockWidget - Details - Подробнее + Float + Отцепить + + + Undocks and re-attaches the dock widget + Отцепляет и переподключает прицепляемый виджет + + + Close + Закрыть + + + Closes the dock widget + Закрывает прицепляемый виджет + + + + QNX + + QNX + QNX @@ -23856,19 +24365,19 @@ These files are preserved. Неизвестная ошибка. - Created remote directory '%1'. + Created remote directory "%1". Создан внешний каталог «%1». - Remote directory '%1' already exists. + Remote directory "%1" already exists. Внешний каталог «%1» уже существует. - Error creating directory '%1': %2 + Error creating directory "%1": %2 Ошибка создания каталога «%1»: %2 - Could not open local file '%1': %2 + Could not open local file "%1": %2 Не удалось открыть локальный файл «%1»: %2 @@ -23954,11 +24463,11 @@ These files are preserved. Строка идентификации сервера содержит недопустимый нулевой символ. - Server Identification string '%1' is invalid. + Server Identification string "%1" is invalid. Строка идентификации сервера «%1» неверна. - Server protocol version is '%1', but needs to be 2.0 or 1.99. + Server protocol version is "%1", but needs to be 2.0 or 1.99. Сервер использует протокол версии «%1», но требуется 2.0 или 1.99. @@ -24017,7 +24526,7 @@ These files are preserved. Процесс завершён сигналом - Server sent invalid signal '%1' + Server sent invalid signal "%1" Сервер отправил неверный сигнал «%1» @@ -24032,11 +24541,11 @@ These files are preserved. Имя файла - Error getting 'stat' info about '%1': %2 + Error getting "stat" info about "%1": %2 Ошибка получения информации «stat» о «%1»: %2 - Error listing contents of directory '%1': %2 + Error listing contents of directory "%1": %2 Ошибка чтения содержимого каталога «%1»: %2 @@ -24109,6 +24618,10 @@ These files are preserved. Cannot Save Key File Не удалось сохранить файл ключа + + Failed to create directory: "%1". + Не удалось создать каталог: «%1». + Cannot Save Private Key File Не удалось сохранить секретный ключ @@ -24125,10 +24638,6 @@ These files are preserved. There already is a file of that name. Do you want to overwrite it? Уже существует файл с таким именем. Перезаписать его? - - Failed to create directory: '%1'. - Не удалось создать каталог: «%1». - Choose... Выбрать... @@ -24373,8 +24882,17 @@ These files are preserved. QbsProjectManager::Internal::QbsProject - Evaluating - Вычисление + Failed! + Очень плохое сообщение, скорее всего не дописали + Ошибка + + + Could not write project file %1. + Не удалось записать в файл проекта %1. + + + Reading Project "%1" + Чтение проекта «%1» @@ -24435,6 +24953,13 @@ These files are preserved. Не найдено двоеточие в определении свойства. + + QbsProjectManager::Internal::QbsRootProjectNode + + Qbs files + Файлы Qbs + + QbsProjectManager::Internal::QbsRunConfiguration @@ -24484,7 +25009,7 @@ These files are preserved. QbsProjectManager::QbsManager - Failed opening project '%1': Project is not a file. + Failed opening project "%1": Project is not a file. Не удалось открыть проект «%1»: проект не является файлом. @@ -24492,49 +25017,12 @@ These files are preserved. Не удалось создать комплект для Qbs: %1 - - QmakeProjectManager::AbstractMobileApp - - Could not open template file '%1'. - Не удалось открыть файл шаблона «%1». - - - - QmakeProjectManager::AbstractMobileAppWizardDialog - - Kits - Комплекты - - QmakeProjectManager::Internal::AddLibraryWizard Add Library Добавить библиотеку - - Type - Тип - - - Details - Подробнее - - - Summary - Итог - - - - QmakeProjectManager::Internal::BaseQmakeProjectWizardDialog - - Modules - Модули - - - Kits - Комплекты - QmakeProjectManager::Internal::ClassDefinition @@ -24718,6 +25206,10 @@ Preselects a desktop Qt for building the application if available. icons.qrc icons.qrc + + Plugin Details + Подробнее о модуле + QmakeProjectManager::Internal::CustomWidgetWidgetsWizardPage @@ -24741,6 +25233,10 @@ Preselects a desktop Qt for building the application if available. ... ... + + Custom Widgets + Особые виджеты + QmakeProjectManager::Internal::CustomWidgetWizard @@ -24759,14 +25255,6 @@ Preselects a desktop Qt for building the application if available. This wizard generates a Qt Designer Custom Widget or a Qt Designer Custom Widget Collection project. Этот мастер создаст пользовательский виджет или набор пользовательских виджетов для Qt Designer. - - Custom Widgets - Особые виджеты - - - Plugin Details - Подробнее о модуле - QmakeProjectManager::Internal::DesignerExternalEditor @@ -24782,7 +25270,7 @@ Preselects a desktop Qt for building the application if available. QmakeProjectManager::Internal::DesktopQmakeRunConfiguration - The .pro file '%1' is currently being parsed. + The .pro file "%1" is currently being parsed. Идёт обработка файла .pro: «%1». @@ -24831,6 +25319,10 @@ Preselects a desktop Qt for building the application if available. QmakeProjectManager::Internal::DetailsPage + + Details + Подробнее + Internal Library Внутренняя @@ -24903,6 +25395,10 @@ Preselects a desktop Qt for building the application if available. Specify basic information about the classes for which you want to generate skeleton source code files. Укажите базовую информацию о классах, для которых желаете создать шаблоны файлов исходных текстов. + + Details + Подробнее + QmakeProjectManager::Internal::GuiAppWizard @@ -24925,90 +25421,6 @@ Preselects a desktop Qt for building the application if available. This wizard generates a Qt Widgets Application project. The application derives by default from QApplication and includes an empty widget. Этот мастер создаст проект приложения Qt Widgets. По умолчанию приложение будет производным от QApplication и будет включать пустой виджет. - - Details - Подробнее - - - - QmakeProjectManager::Internal::Html5AppWizard - - HTML5 Application - Приложение HTML5 - - - Creates an HTML5 application project that can contain both HTML5 and C++ code and includes a WebKit view. - -You can build the application and deploy it on desktop and mobile target platforms. - Создание проекта приложения HTML5, который может содержать код как HTML5, так и на С++, а так же включает просмотрщик WebKit. - -Можно создать приложение и установить его на настольный компьютер и мобильные платформы. - - - - QmakeProjectManager::Internal::Html5AppWizardDialog - - New HTML5 Application - Новое приложение HTML5 - - - This wizard generates a HTML5 Application project. - Этот мастер создаст проект приложения HTML5. - - - HTML Options - Параметры HTML - - - - QmakeProjectManager::Internal::Html5AppWizardOptionsPage - - Select HTML File - Выбор файла HTML - - - - QmakeProjectManager::Internal::Html5AppWizardSourcesPage - - WizardPage - - - - Main HTML File - Основой HTML файл - - - Generate an index.html file - Создать файл index.html - - - Import an existing .html file - Импортировать существующий файл .html - - - Load a URL - Загрузить по ссылке - - - http:// - http:// - - - Note: Unless you chose to load a URL, all files and directories that reside in the same directory as the main HTML file are deployed. You can modify the contents of the directory any time before deploying. - Если не выбирать загрузку по ссылке, то будут установлены все файлы и каталоги, находящиеся там же, где и основной HTML файл. Можно изменить содержимое каталога в любое время до установки. - - - Touch optimized navigation - Навигация касаниями - - - Enable touch optimized navigation - Включить навигацию, оптимизированную под касания - - - Touch optimized navigation will make the HTML page flickable and enlarge the area of touch sensitive elements. If you use a JavaScript framework which optimizes the touch interaction, leave the checkbox unchecked. - Оптимизация навигации под касания сделает страницу HTML пролистываемой и увеличит зоны чувствительных элементов. Оставьте опцию отключённой при использовании оптимизированной под касания среды JavaScript. - QmakeProjectManager::Internal::LibraryDetailsController @@ -25160,6 +25572,10 @@ Neither the path to the library nor the path to its includes is added to the .pr Links to a system library using pkg-config. Компоновка с системной библиотекой используя pkg-config. + + Type + Тип + QmakeProjectManager::Internal::LibraryWizard @@ -25227,6 +25643,10 @@ Neither the path to the library nor the path to its includes is added to the .pr Select the modules you want to include in your project. The recommended modules for this project are selected by default. Выберите модули, которые хотите включить в проект. Рекомендуемые для этого проекта модули уже выбраны по умолчанию. + + Modules + Модули + QmakeProjectManager::Internal::PluginGenerator @@ -25454,10 +25874,6 @@ Neither the path to the library nor the path to its includes is added to the .pr This wizard generates a Qt Quick Application project. Этот мастер создаст проект приложения Qt Quick. - - Component Set - Набор компонентов - QmakeProjectManager::Internal::QtQuickComponentSetPage @@ -25469,6 +25885,10 @@ Neither the path to the library nor the path to its includes is added to the .pr Qt Quick component set: Набор компонентов Qt Quick: + + Component Set + Набор компонентов + QmakeProjectManager::Internal::SubdirsProjectWizard @@ -25529,10 +25949,6 @@ Neither the path to the library nor the path to its includes is added to the .pr This wizard generates a Qt Unit Test consisting of a single source file with a test class. Этот мастер создаст юнит-тест Qt, содержащий один исходный файл с тестовым классом. - - Details - Подробнее - QmakeProjectManager::Internal::TestWizardPage @@ -25584,6 +26000,10 @@ Neither the path to the library nor the path to its includes is added to the .pr Test Class Information Информация о тестовом классе + + Details + Подробнее + QmakeProjectManager::MakeStep @@ -25592,14 +26012,6 @@ Neither the path to the library nor the path to its includes is added to the .pr Qt MakeStep display name. Сборка - - Qt Creator needs a compiler set up to build. Configure a compiler in the kit options. - Необходимо задать компилятор для сборки. Сделать это можно в настройках комплекта. - - - Configuration is faulty. Check the Issues view for details. - Конфигурация неисправна. Окно «Проблемы» содержит подробную информацию. - Cannot find Makefile. Check your build settings. Не удалось обнаружить Makefile. Проверьте настройки сборки. @@ -25635,10 +26047,6 @@ Neither the path to the library nor the path to its includes is added to the .pr QMakeStep default display name qmake - - Configuration is faulty, please check the Issues view for details. - Конфигурация неисправна. Окно «Проблемы» содержит подробную информацию. - Configuration unchanged, skipping qmake step. Настройки не изменились, этап qmake пропускается. @@ -25737,7 +26145,7 @@ Neither the path to the library nor the path to its includes is added to the .pr В проекте<br><br>%1<br><br>Следующие файлы или устарели, или были изменены:<br><br>%2<br><br>Желаете, чтобы Qt Creator обновил их? Все изменения будут утеряны. - Failed opening project '%1': Project is not a file + Failed opening project "%1": Project is not a file Не удалось открыть проект «%1»: проект не является файлом @@ -25795,30 +26203,30 @@ Neither the path to the library nor the path to its includes is added to the .pr Ошибка разбора файла %1. Отмена. - Could not find .pro file for sub dir '%1' in '%2' + Could not find .pro file for sub dir "%1" in "%2" Не удалось найти .pro файл для подкаталога «%1» в «%2» QmakeProjectManager::QmakeProject - Evaluating - Вычисление + Reading Project "%1" + Чтение проекта «%1» No Qt version set in kit. Для комплекта не задан профиль Qt. - The .pro file '%1' does not exist. + The .pro file "%1" does not exist. .pro-файл «%1» не существует. - The .pro file '%1' is not part of the project. + The .pro file "%1" is not part of the project. .pro-файл «%1» не является частью проекта. - The .pro file '%1' could not be parsed. + The .pro file "%1" could not be parsed. Не удалось разобрать .pro-файл «%1». @@ -25871,6 +26279,14 @@ Neither the path to the library nor the path to its includes is added to the .pr Qt Quick 2.2 Qt Quick 2.2 + + Creates a deployable Qt Quick 2 application using the QtQuick 2.3 import. Requires Qt 5.3 or newer. + Создание устанавливаемого приложения Qt Quick 2 с использованием импорта QtQuick 2.3. Требуется Qt версии 5.3 или выше. + + + Qt Quick 2.3 + Qt Quick 2.3 + Creates a deployable Qt Quick 2 application using Qt Quick Controls. Requires Qt 5.2 or newer. Создание устанавливаемого приложение Qt Quick 2 с использованием Qt Quick Controls. Требуется Qt версии 5.2 или выше. @@ -25879,6 +26295,14 @@ Neither the path to the library nor the path to its includes is added to the .pr Qt Quick Controls 1.1 Qt Quick Controls 1.1 + + Creates a deployable Qt Quick 2 application using Qt Quick Controls. Requires Qt 5.3 or newer. + Создание устанавливаемого приложение Qt Quick 2 с использованием Qt Quick Controls. Требуется Qt версии 5.3 или выше. + + + Qt Quick Controls 1.2 + Qt Quick Controls 1.2 + Creates a deployable Qt Quick 2 application using Qt Quick Controls. Requires Qt 5.1 or newer. Создание устанавливаемого приложение Qt Quick 2 с использованием Qt Quick Controls. Требуется Qt версии 5.1 или выше. @@ -25920,6 +26344,53 @@ Neither the path to the library nor the path to its includes is added to the .pr Не удалось прочитать файл %1. + + QmlDebug::QmlDebugConnection + + Connecting to debug server at %1:%2 ... + Подключение к серверу отладки %1:%2 ... + + + + QmlDebug::QmlDebugConnectionPrivate + + Error: (%1) %2 + %1=error code, %2=error message + Ошибка: (%1) %2 + + + <device is gone> + <устройство отсутствует> + + + Network connection dropped + Разорвано сетевое подключение + + + Resolving host + Определение узла + + + Establishing network connection ... + Установка сетевого соединения... + + + Network connection established + Сетевое соединение установлено + + + Network connection closing + Закрытие сетевого соединения + + + Socket state changed to BoundState. This should not happen! + Состояние сокета изменилось на BoundState. Это не должно было произойти! + + + Socket state changed to ListeningState. This should not happen! + Состояние сокета изменилось на ListeningState. Это не должно было произойти! + + QmlDebug::QmlOutputParser @@ -25940,6 +26411,17 @@ Neither the path to the library nor the path to its includes is added to the .pr Ошибка + + QmlDesigner::AddTabDesignerAction + + Naming Error + Неверное имя + + + Component already exists. + Компонент уже существует. + + QmlDesigner::AddTabToTabViewDialog @@ -25958,6 +26440,17 @@ Neither the path to the library nor the path to its includes is added to the .pr Изменить компоненты определённые в этом файле. + + QmlDesigner::CrumbleBar + + Save the changes to preview them correctly. + Сохранить изменения для правильного их предпросмотра. + + + Always save when leaving subcomponent + Всегда сохранять при выходе из субкомпонента + + QmlDesigner::FormEditorView @@ -26092,6 +26585,10 @@ Neither the path to the library nor the path to its includes is added to the .pr SignalHandlerProperties changed: Изменены SignalHandlerProperties: + + Node selected: + Выбран элемент: + Properties removed: Удалённые свойства: @@ -26282,6 +26779,14 @@ Neither the path to the library nor the path to its includes is added to the .pr Also warns in the code editor about QML features which are not properly supported by the Qt Quick Designer. Также предупреждать в редакторе кода об особенностях QML, которые не поддерживаются корректно Qt Quick Designer. + + Subcomponents + Субкомпоненты + + + Always save when leaving subcomponent in bread crumb + Всегда сохранять в навигационной цепочке при выходе из субкомпонента + QmlDesigner::InvalidArgumentException @@ -26352,14 +26857,6 @@ Neither the path to the library nor the path to its includes is added to the .pr %1 already exists. %1 уже существует. - - Warning - Предупреждение - - - Reparenting the component %1 here will cause the component %2 to be deleted. Do you want to proceed? - Смена здесь владельца компоненты %1 приведёт к удалению компоненты %2. Продолжить? - QmlDesigner::NavigatorWidget @@ -26369,12 +26866,12 @@ Neither the path to the library nor the path to its includes is added to the .pr Навигатор - Become first sibling of parent (CTRL + Left). - Сделать первым соседом родителя (CTRL + Влево). + Become last sibling of parent (CTRL + Left). + Сделать последним соседом родителя (CTRL + Влево). - Become child of first sibling (CTRL + Right). - Сделать потомком первого соседа (CTRL + Вправо). + Become child of last sibling (CTRL + Right). + Сделать потомком последнего соседа (CTRL + Вправо). Move down (CTRL + Down). @@ -26388,45 +26885,20 @@ Neither the path to the library nor the path to its includes is added to the .pr QmlDesigner::NodeInstanceServerProxy - Cannot Start QML Puppet Executable - Не удалось запустить программу QML Puppet + Cannot Start QML Emulation Layer (QML Puppet) + Не удалось запустить слой эмуляции QML (QML Puppet) - The executable of the QML Puppet process (%1) cannot be started. Please check your installation. QML Puppet is a process which runs in the background to render the items. - Не удалось запустить программу QML Puppet (%1). Возможно есть проблема с установкой. Qml Puppet ― это процесс, запускамый в фоне для отрисовки элементов. + The executable of the QML emulation layer (QML Puppet) process cannot be started or does not respond. + Невозможно запустить процесс эмуляции QML (QML Puppet) или он не отвечает. - Wrong QML Puppet Executable Version - Неверная версия программы QML Puppet + QML Emulation Layer (QML Puppet) Crashed + Слой эмуляции QML (QML Puppet) завершился крахом - The QML Puppet version is incompatible with the Qt Creator version. - Версия QML Puppet несовместима с данной вресией Qt Creator. - - - The executable of the QML Puppet process (<code>%1</code>) cannot be found. Check your installation. QML Puppet is a process which runs in the background to render the items. - Не удалось найти программу QML Puppet (<code>%1</code>). Возможно есть проблема с установкой. Qml Puppet ― это процесс, запускамый в фоне для отрисовки элементов. - - - You can build <code>%1</code> yourself with Qt 5.2.0 or higher. The source can be found in <code>%2</code>. - %1 Puppet binary name ("qmlpuppet", "qml2puppet"), %2 source path. - Вы можете собрать <code>%1</code> самостоятельно для Qt 5.2.0 или выше. Его исходники находятся в <code>%2</code>. - - - <code>%1</code> will be installed to the <code>bin</code> directory of your Qt version. Qt Quick Designer will check the <code>bin</code> directory of the currently active Qt version of your project. - <code>%1</code> будет установлен в каталог <code>bin</code> профиля Qt. Qt Quick Designer проверяет каталог <code>bin</code> активного в проекте профиля Qt. - - - QML Puppet Crashed - QML Puppet завершился крахом - - - You are recording a puppet stream and the puppet crashed. It is recommended to reopen the Qt Quick Designer and start again. - Puppet завершился крахом при записи puppet-потока. Рекомендуется переоткрыть QML Designer и запустить запись снова. - - - Cannot Find QML Puppet Executable - Не удалось найти программу QML Puppet + You are recording a puppet stream and the emulations layer crashed. It is recommended to reopen the Qt Quick Designer and start again. + Эмуляция завершилась крахом при записи puppet-потока. Рекомендуется переоткрыть Qt Quick Designer и запустить запись снова. @@ -26536,8 +27008,8 @@ Neither the path to the library nor the path to its includes is added to the .pr Выделить все «%1» - Toggle Full Screen - Переключить полноэкранный режим + Toggle Sidebars + Показать/скрыть боковые панели &Restore Default View @@ -26619,17 +27091,6 @@ Neither the path to the library nor the path to its includes is added to the .pr Состояния - - QmlDesigner::TabViewDesignerAction - - Component already exists. - Компонент уже существует. - - - Naming Error - Неверное имя - - QmlDesigner::TextToModelMerger @@ -26640,10 +27101,6 @@ Neither the path to the library nor the path to its includes is added to the .pr Unsupported QtQuick version Неподдерживаемая версия Qt Quick - - This .qml file contains features which are not supported by Qt Quick Designer - Этот файл .qml содержит свойства, не поддерживаемые Qt Quick Designer - QmlDesigner::XUIFileDialog @@ -26810,12 +27267,16 @@ Neither the path to the library nor the path to its includes is added to the .pr Reset Сбросить + + Step into: %1 + Войти в: %1 + QmlDumpBuildTask - Building helper - Сборка помощника + Building QML Helpers + Сборка помощников QML @@ -26904,11 +27365,11 @@ For qmlproject projects, use the importPaths property to add import paths. QmlJS::ModelManagerInterface - Indexing - Индексация + Parsing QML Files + Разбор файлов QML - QML import scan + Scanning QML Imports Сканирование импорта QML @@ -26975,7 +27436,7 @@ See "Using QML Modules with Plugins" in the documentation. Аргументы: %1 - Failed to parse '%1'. + Failed to parse "%1". Error: %2 Не удалось разобрать «%1». Ошибка: %2 @@ -27034,10 +27495,6 @@ Please build the qmldump application on the Qt version options page. QmlJS::StaticAnalysisMessages - - Do not use '%1' as a constructor. - Не используйте «%1», как конструктор. - Invalid value for enum. Неверное значение для enum. @@ -27090,18 +27547,6 @@ Please build the qmldump application on the Qt version options page. Duplicate id. Повторяющийся id. - - Invalid property name '%1'. - Неверное название свойства «%1». - - - '%1' does not have members. - «%1» не содержит членов. - - - '%1' is not a member of '%2'. - «%1» не является членом «%2». - Assignment in condition. Присваивание в условии. @@ -27126,34 +27571,10 @@ Please build the qmldump application on the Qt version options page. Do not use comma expressions. Не используйте выражения с запятой. - - '%1' already is a formal parameter. - «%1» уже и так формальный параметр. - Unnecessary message suppression. Ненужное подавление сообщения. - - '%1' already is a function. - «%1» уже и так функция. - - - var '%1' is used before its declaration. - Переменная «%1» используется до объявления. - - - '%1' already is a var. - «%1» уже и так переменная. - - - '%1' is declared more than once. - «%1» объявлено более одного раза. - - - Function '%1' is used before its declaration. - Функция «%1» используется до объявления. - The 'function' keyword and the opening parenthesis should be separated by a single space. Слово «function» и открывающаяся скобка должны быть разделены одним пробелом. @@ -27202,22 +27623,6 @@ Please build the qmldump application on the Qt version options page. Unknown component. Неизвестный элемент. - - Could not resolve the prototype '%1' of '%2'. - Не удалось найти объявление «%1» в «%2». - - - Could not resolve the prototype '%1'. - Не удалось найти объявление «%1». - - - Prototype cycle, the last non-repeated component is '%1'. - Зацикленность определений, последний уникальный объект — «%1». - - - Invalid property type '%1'. - Неверный тип свойства «%1». - == and != perform type coercion, use === or !== to avoid it. == и != могут приводить типы, используйте === и !== вместо них. @@ -27243,7 +27648,63 @@ Please build the qmldump application on the Qt version options page. Используйте %1 вместо «var» и «variant» для увеличения производительности. - Missing property '%1'. + Do not use "%1" as a constructor. + Не используйте «%1» как конструктор. + + + Invalid property name "%1". + Неверное название свойства «%1». + + + "%1" does not have members. + «%1» не содержит членов. + + + "%1" is not a member of "%2". + «%1» не является членом «%2». + + + "%1" already is a formal parameter. + «%1» уже и так формальный параметр. + + + "%1" already is a function. + «%1» уже и так функция. + + + var "%1" is used before its declaration. + Переменная «%1» используется до объявления. + + + "%1" already is a var. + «%1» уже и так переменная. + + + "%1" is declared more than once. + «%1» объявлено более одного раза. + + + Function "%1" is used before its declaration. + Функция «%1» используется до объявления. + + + Could not resolve the prototype "%1" of "%2". + Не удалось найти объявление «%1» в «%2». + + + Could not resolve the prototype "%1". + Не удалось найти объявление «%1». + + + Prototype cycle, the last non-repeated component is "%1". + Зацикленность определений, последний уникальный объект — «%1». + + + Invalid property type "%1". + Неверное название свойства «%1». + + + Missing property "%1". Отсутствует свойство «%1». @@ -27362,11 +27823,11 @@ Please build the qmldump application on the Qt version options page. Допустимы только определения объектов Component и ModuleApi. - Expected only Property, Method, Signal and Enum object definitions, not '%1'. + Expected only Property, Method, Signal and Enum object definitions, not "%1". Допустимы только определения объектов Property, Method, Signal и Enum, а не «%1». - Expected only name, prototype, defaultProperty, attachedType, exports isSingleton, isCreatable, isComposite and exportMetaObjectRevisions script bindings, not '%1'. + Expected only name, prototype, defaultProperty, attachedType, exports isSingleton, isCreatable, isComposite and exportMetaObjectRevisions script bindings, not "%1". Допустимы только связки со скриптами name, prototype, defaultProperty, attachedType, exports и exportMetaObjectRevisions, а не «%1». @@ -27506,8 +27967,8 @@ Please build the qmldump application on the Qt version options page. Использование QML/JS: - Searching - Идёт поиск + Searching for Usages + Поиск использований @@ -27561,16 +28022,16 @@ Please build the qmldump application on the Qt version options page. // TODO: Move position bindings from the component to the Loader. // Check all uses of 'parent' inside the root element of the component. - // TODO: Переместите привязки позиций из компонента в загрузчик. -// Проверьте каждое использовние «parent» в корневом элементе компонента. + // TODO: Переместить привязки позиций из компонента в загрузчик. +// Проверить каждое использовние «parent» в корневом элементе компонента. - // Rename all outer uses of the id '%1' to '%2.item'. + // Rename all outer uses of the id "%1" to "%2.item". // Переименовать каждое внешнее использование id «%1» в «%2.item». - // Rename all outer uses of the id '%1' to '%2.item.%1'. + // Rename all outer uses of the id "%1" to "%2.item.%1". // Переименовать все внешние использования id «%1» в «%2.item.%1». @@ -27936,10 +28397,6 @@ Qt Creator know about a likely URI. QmlProfiler::Internal::PaintEventsModelProxy - - Painting - Отрисовка - Animations Анимации @@ -27997,12 +28454,16 @@ Do you want to retry? Повторить? - QML Profiler: Connecting to %1:%2 ... - Профайлер QML: подключение к %1:%2... + Debug connection opened + Отладочное соединение открыто - QML Profiler: connected and running - Профайлер QML: подключён и работает + Debug connection closed + Отладочное соединение закрыто + + + Failed to connect! + Не удалось подключиться! @@ -28013,14 +28474,22 @@ Do you want to retry? - QmlProfiler::Internal::QmlProfilerEventChildrenModelProxy + QmlProfiler::Internal::QmlProfilerEventRelativesView - <program> - <программа> + <bytecode> + <байтовый код> + + + Source code not available + Исходники недоступны + + + Part of binding loop. + Часть закольцованных связей. - QmlProfiler::Internal::QmlProfilerEventParentsModelProxy + QmlProfiler::Internal::QmlProfilerEventsMainView <program> <программа> @@ -28029,16 +28498,10 @@ Do you want to retry? Main Program Основная программа - - - QmlProfiler::Internal::QmlProfilerEventRelativesView - Part of binding loop. - Часть закольцованных связей. + <bytecode> + <байтовый код> - - - QmlProfiler::Internal::QmlProfilerEventsMainView (Opt) (Опт) @@ -28053,6 +28516,10 @@ references to elements in other files, loops, and so on.) Привязка не оптимизирована (может иметь побочные эффекты или присваивания, ссылки на элементы в других файлах, циклы и т.п.) + + Source code not available + Исходники недоступны + Binding loop detected. Обнаружена закольцованность связей. @@ -28082,17 +28549,6 @@ references to elements in other files, loops, and so on.) JavaScript - - QmlProfiler::Internal::QmlProfilerEventsModelProxy - - <program> - <программа> - - - Main Program - Основная программа - - QmlProfiler::Internal::QmlProfilerEventsWidget @@ -28242,26 +28698,6 @@ Please use the stop button instead. QmlProfiler::Internal::QmlProfilerTraceView - - Jump to previous event. - Перейти к предыдущему событию. - - - Jump to next event. - Перейти к следующему событию. - - - Show zoom slider. - Показать ползунок масштабирования. - - - Select range. - Выбрать диапазон. - - - View event information on mouseover. - Показывать информацию о событии при наведении курсора. - Limit Events Pane to Current Range Ограничить панель событий текущим диапазоном @@ -28322,17 +28758,13 @@ Please use the stop button instead. <bytecode> <байтовый код> - - Source code not available. - Исходный код недоступен. - anonymous function анонимная функция - Animations - Анимации + GUI Thread + Поток GUI @@ -28353,8 +28785,8 @@ Please use the stop button instead. QmlProjectManager::Internal::Manager - Failed opening project '%1': Project is not a file - Не удалось открыть проект «%1»: проект не является файлом + Failed opening project "%1": Project is not a file. + Не удалось открыть проект «%1»: проект не является файлом. @@ -28378,10 +28810,6 @@ Please use the stop button instead. This wizard generates a Qt Quick UI project. Этот мастер создаст проект интерфейса пользователя на Qt Quick. - - Component Set - Набор компонентов - QmlProjectManager::Internal::QmlComponentSetPage @@ -28393,6 +28821,10 @@ Please use the stop button instead. Qt Quick component set: Набор компонентов Qt Quick: + + Component Set + Набор компонентов + QmlProjectManager::Internal::QmlProjectRunConfigurationFactory @@ -28442,6 +28874,14 @@ Please use the stop button instead. Qt Quick 2.2 Qt Quick 2.2 + + Creates a Qt Quick 2 UI project with a single QML file that contains the main view. You can review Qt Quick 2 UI projects in the QML Scene and you need not build them. You do not need to have the development environment installed on your computer to create and run this type of project. Requires Qt 5.3 or newer. + Создание проекта Qt Quick 2 с одним файлом QML, содержащим главный интерфейс. Проверять проекты Qt Quick 2 можно без пересборки в QML Scene. Для создания и запуска таких проектов интегрированная среда разработки не нужна. Требуется Qt версии 5.3 или выше. + + + Qt Quick 2.3 + Qt Quick 2.3 + Creates a Qt Quick 2 UI project with a single QML file that contains the main view and uses Qt Quick Controls. You can review Qt Quick 2 UI projects in the QML Scene and you need not build them. This project requires that you have installed Qt Quick Controls for your Qt version. Requires Qt 5.2 or newer. Создание проекта Qt Quick 2 с одним файлом QML, содержащим главный интерфейс и использующим Qt Quick Controls. Проверять проекты Qt Quick 2 можно без пересборки в QML Scene. Проекту необходимо, чтобы для вашего профиля Qt были установлены Qt Quick Controls. Требуется Qt версии 5.2 или выше. @@ -28450,6 +28890,14 @@ Please use the stop button instead. Qt Quick Controls 1.1 Qt Quick Controls 1.1 + + Creates a Qt Quick 2 UI project with a single QML file that contains the main view and uses Qt Quick Controls. You can review Qt Quick 2 UI projects in the QML Scene and you need not build them. This project requires that you have installed Qt Quick Controls for your Qt version. Requires Qt 5.3 or newer. + Создание проекта Qt Quick 2 с одним файлом QML, содержащим главный интерфейс и использующим Qt Quick Controls. Проверять проекты Qt Quick 2 можно без пересборки в QML Scene. Проекту необходимо, чтобы для вашего профиля Qt были установлены Qt Quick Controls. Требуется Qt версии 5.3 или выше. + + + Qt Quick Controls 1.2 + Qt Quick Controls 1.2 + Qt Quick Controls 1.0 Qt Quick Controls 1.0 @@ -28722,7 +29170,7 @@ Please use the stop button instead. Выберите заставку - <font color="red">Could not open '%1' for reading.</font> + <font color="red">Could not open "%1" for reading.</font> <font color="red">Не удалось открыть «%1» для чтения.</font> @@ -28860,6 +29308,47 @@ Please use the stop button instead. Среда + + Qnx::Internal::BarDescriptorFileNodeManager + + Cannot save bar descriptor file: %1 + Не удалось сохранить BAR-файл описания проекта: %1 + + + Cannot reload bar descriptor file: %1 + Не удалось перезагрузить BAR-файл описания проекта: %1 + + + Setup Application Descriptor File + Задать файл описания приложения + + + You need to set up a bar descriptor file to enable packaging. +Do you want Qt Creator to generate it for your project (%1)? + Для создания пакета необходимо настроить BAR-файл описания. +Создать его для вашего проекта (%1)? + + + Don't ask again for this project + Больше не спрашивать для этого проекта + + + Cannot set up application descriptor file: Reading the bar descriptor template failed. + Не удалось настроить файл описания проекта: не удалось прочитать шаблон BAR-файла. + + + Cannot set up application descriptor file: Writing the bar descriptor file failed. + Не удалось настроить файл описания проекта: не удалось записать BAR-файл. + + + Error + Ошибка + + + Cannot open BAR application descriptor file + Не удалось открыть BAR-файл описания приложения + + Qnx::Internal::BarDescriptorPermissionsModel @@ -29008,6 +29497,20 @@ Please use the stop button instead. Qt %1 for %2 Qt %1 для %2 + + - No auto detection source found. + - не найден исходник автоопределения. + + + - No sysroot found. + - не найден корень образа. + + + The following errors occurred while activating target: %1 + + При активации цели возникли следующие ошибки: %1 + + QCC for %1 QCC для %1 @@ -29016,26 +29519,10 @@ Please use the stop button instead. Debugger for %1 Отладчик для %1 - - The following errors occurred while activating target: %1 - При активации цели возникли следующие ошибки: %1 - - No Qt version found. - Профиль Qt не найден. - - - No GCC compiler found. - - Компилятор GCC не найден. - - - - No GDB debugger found for BB10 Device. - - Не найден отладчик GDB для устройств BB10. - - - - No GDB debugger found for BB10 Simulator. - - Не найден отладчик GDB для эмулятора BB10. - Cannot Set up BB10 Configuration Не удалось настроить конфигурацию BB10 @@ -29064,7 +29551,7 @@ Please use the stop button instead. Подтверждение - The device runtime version(%1) does not match the API level version(%2). + The device runtime version (%1) does not match the API level version (%2). This may cause unexpected behavior when debugging. Do you want to continue anyway? Версия среды выполнения устройства (%1) не соответствует версии API Level (%2). @@ -29096,7 +29583,7 @@ Do you want to continue anyway? Не удалось прочитать BAR-манифест пакета. - Internal error: Cannot create temporary manifest file '%1' + Internal error: Cannot create temporary manifest file "%1" Внутренняя ошибка: не удалось создать временный файл манифеста «%1» @@ -29164,7 +29651,7 @@ Do you want to continue anyway? Подтверждение - The device runtime version(%1) does not match the API level version(%2). + The device runtime version (%1) does not match the API level version (%2). Do you want to continue anyway? Версия среды выполнения устройства (%1) не соответствует версии API Level (%2). Продолжить? @@ -29250,7 +29737,7 @@ Do you want to continue anyway? Вы уверены? - The file '%1' will be overwritten. Do you want to proceed? + The file "%1" will be overwritten. Do you want to proceed? Файл «%1» будет перезаписан. Продолжить? @@ -29293,7 +29780,7 @@ Do you want to continue anyway? Создание пакетов - Could not find packager command '%1' in the build environment. + Could not find packager command "%1" in the build environment. Не удалось найти в среде сборки команду создания пакетов «%1». @@ -29309,24 +29796,47 @@ Do you want to continue anyway? Пакет не указан. Проверьте настройки установки. - Could not create build directory '%1'. + Could not create build directory "%1". Невозможно создать каталог сборки «%1». + + In order to link to the correct Qt library specified in the deployment settings Qt Creator needs to update the Qt environment variables in the BAR application file as follows: + +<env var="LD_LIBRARY_PATH" value="%1"/> +<env var="QT_PLUGIN_PATH" value="%2"/> +<env var="QML_IMPORT_PATH" value="%3"/> + + Для подключения библиотек Qt, заданных в настройках установки, Qt Creator обновит в файле приложения BAR следующие переменные среды: + +<env var="LD_LIBRARY_PATH" value="%1"/> +<env var="QT_PLUGIN_PATH" value="%2"/> +<env var="QML_IMPORT_PATH" value="%3"/> + + + +Do you want to update it? + +Обновить их? + + + Confirmation + Подтверждение + + + Error saving BAR application descriptor file "%1" - %2 + Ошибка сохраннеия BAR-файла описания приложения «%1» - %2 + Missing passwords for signing packages. Отсутствуют пароли для подписывания пакетов. - Error preparing BAR application descriptor file. - Ошибка подготовки BAR-файла описания приложения. - - - Error opening BAR application descriptor file '%1' - %2 + Error opening BAR application descriptor file "%1" - %2 Ошибка открытия BAR-файла описания приложения «%1» - %2 - Error saving prepared BAR application descriptor file '%1' - %2 - Ошибка сохранения подготовленного BAR-файла описания приложения «%1» - %2 + Error preparing BAR application descriptor file. + Ошибка подготовки BAR-файла описания приложения. @@ -29485,7 +29995,7 @@ Do you want to continue anyway? Вы уверены? - The file '%1' will be overwritten. Do you want to proceed? + The file "%1" will be overwritten. Do you want to proceed? Файл «%1» будет перезаписан. Продолжить? @@ -29547,32 +30057,6 @@ Do you want to continue anyway? Deploy to BlackBerry Device Установка на устройство BlackBerry - - Setup Application Descriptor File - Задать файл описания приложения - - - You need to set up a BAR descriptor file to enable packaging. -Do you want Qt Creator to generate it for your project (%1)? - Для создания пакета необходимо настроить BAR-файл описания. -Создать его для вашего проекта (%1)? - - - Do not ask again for this project - Больше не спрашивать для этого проекта - - - Reading the BAR descriptor template failed. - Не удалось прочитать шаблон BAR-файла описания. - - - Writing the BAR descriptor file failed. - Не удалось записать BSA-файл описания. - - - Cannot Set up Application Descriptor File - Не удалось настроить файл описания приложения - Qnx::Internal::BlackBerryDeployConfigurationFactory @@ -29603,65 +30087,6 @@ Do you want Qt Creator to generate it for your project (%1)? Пакет - - Qnx::Internal::BlackBerryDeployQtLibrariesDialog - - Qt library to deploy: - Устанавливаемая Qt: - - - Deploy - Установить - - - Remote directory: - Внешний каталог: - - - /accounts/devuser/ - /accounts/devuser/ - - - qt - qt - - - Close - Закрыть - - - Closing the dialog will stop the deployment. Are you sure you want to do this? - Закрытие диалога остановит установку. Закрыть? - - - Please input a remote directory to deploy to. - Введите внешний каталог для установки. - - - Connection failed: %1 - Ошибка подключения: %1 - - - The remote directory '%1' already exists. Deploying to that directory will remove any files already present. - -Are you sure you want to continue? - Внешний каталог «%1» уже существует. Установка в него удалит все существующие в нём файлы. - -Продолжить? - - - Checking existence of '%1' - Проверка наличия «%1» - - - Removing '%1' - Удаление «%1» - - - Deploy Qt to BlackBerry Device - Установка Qt на устройство BlackBerry - - Qnx::Internal::BlackBerryDeployStep @@ -29669,7 +30094,7 @@ Are you sure you want to continue? Установка пакетов - Could not find deploy command '%1' in the build environment + Could not find deploy command "%1" in the build environment Не удалось найти в среде сборки команду установки «%1» @@ -29681,7 +30106,7 @@ Are you sure you want to continue? Не включены пакеты для установки - Package '%1' does not exist. Create the package first. + Package "%1" does not exist. Create the package first. Пакет «%1» отсутствует. Сначала соберите его. @@ -30664,7 +31089,7 @@ Are you sure you want to continue? Импортирует существующие проекты Cascades созданные в среде QNX Momentics, что позволяет использовать их в Qt Creator. - Error generating file '%1': %2 + Error generating file "%1": %2 Ошибка создания файла «%1»: %2 @@ -30682,10 +31107,6 @@ Are you sure you want to continue? Project Name and Location Имя и размещение проекта - - Momentics - Momentics - Qt Creator Qt Creator @@ -30765,6 +31186,21 @@ Are you sure you want to continue? Удалённо: «%1:%2» - процесс %3 + + Qnx::Internal::QnxBaseConfiguration + + - No GCC compiler found. + - компилятор GCC не найден. + + + - No GDB debugger found for armvle7. + - не найден отладчик GDB для устройств armvle7. + + + - No GDB debugger found for x86. + - не найден отладчик GDB для устройств x86. + + Qnx::Internal::QnxBaseQtConfigWidget @@ -30772,6 +31208,41 @@ Are you sure you want to continue? SDK: + + Qnx::Internal::QnxConfiguration + + The following errors occurred while activating the QNX configuration: + При активации конфигурации QNX возникли следующие ошибки: + + + Cannot Set Up QNX Configuration + Не удалось настроить конфигурацию QNX + + + QCC for %1 (armv7) + QCC для %1 (armv7) + + + QCC for %1 (x86) + QCC для %1 (x86) + + + Debugger for %1 (armv7) + Отладчик для %1 (armv7) + + + Debugger for %1 (x86) + Отладчик для %1 (x86) + + + Kit for %1 (armv7) + Комплект для %1 (armv7) + + + Kit for %1 (x86) + Комплект для %1 (x86) + + Qnx::Internal::QnxDebugSupport @@ -30799,12 +31270,67 @@ Are you sure you want to continue? Установить на устройство QNX + + Qnx::Internal::QnxDeployQtLibrariesDialog + + Deploy Qt to BlackBerry Device + Установка Qt на устройство BlackBerry + + + Qt library to deploy: + Устанавливаемая Qt: + + + Deploy + Установить + + + Remote directory: + Внешний каталог: + + + Close + Закрыть + + + Closing the dialog will stop the deployment. Are you sure you want to do this? + Закрытие диалога остановит установку. Закрыть? + + + Please input a remote directory to deploy to. + Введите внешний каталог для установки. + + + Connection failed: %1 + Ошибка подключения: %1 + + + The remote directory "%1" already exists. Deploying to that directory will remove any files already present. + +Are you sure you want to continue? + Внешний каталог «%1» уже существует. Установка в него удалит все существующие в нём файлы. + +Продолжить? + + + Checking existence of "%1" + Проверка наличия «%1» + + + Removing "%1" + Удаление «%1» + + Qnx::Internal::QnxDeviceConfiguration QNX QNX + + Deploy Qt libraries... + Установить библиотеки Qt... + Qnx::Internal::QnxDeviceConfigurationFactory @@ -30907,6 +31433,74 @@ Are you sure you want to continue? + + Qnx::Internal::QnxSettingsPage + + QNX + QNX + + + + Qnx::Internal::QnxSettingsWidget + + Form + + + + Generate kits + Создать комплекты + + + Configuration Information: + Конфигурация: + + + Name: + Название: + + + Version: + Версия: + + + Host: + Хост: + + + Target: + Цель: + + + Add + Добавить + + + Remove + Удалить + + + Select QNX Environment File + Выбор файла среды QNX + + + Warning + Предупреждение + + + Configuration already exists or is invalid. + Конфигурация уже существует или неверна. + + + Remove QNX Configuration + Удаление конфигурации QNX + + + Are you sure you want to remove: + %1? + Удалить: + %1? + + Qnx::Internal::QnxToolChainConfigWidget @@ -31017,6 +31611,10 @@ Are you sure you want to continue? Project path: Путь к проекту: + + Momentics + Momentics + QrcEditor @@ -31384,14 +31982,6 @@ cannot be found in the path. Do you want to remove all invalid Qt Versions?<br><ul><li>%1</li></ul><br>will be removed. Обнаружены неверные профили Qt:<br><ul><li>%1</li></ul><br>Удалить? - - Building helpers - Сборка помощников - - - Debugging Helper Build Log for '%1' - Журнал помощника отладчика для «%1» - Select a qmake Executable Выберите программу qmake @@ -31461,6 +32051,14 @@ cannot be found in the path. The following ABIs are currently not supported:<ul><li>%1</li></ul> Следующие ABI пока не поддерживаются:<ul><li>%1</li></ul> + + Building Helpers + Сборка помощников + + + Debugging Helper Build Log for "%1" + Журнал помощника отладчика для «%1» + Incompatible Qt Versions Несовместимые профили Qt @@ -31506,14 +32104,14 @@ cannot be found in the path. Remove Удалить - - Clean up - Подчистить - Add... Добавить... + + Clean Up + Очистить + QtSupport::Internal::ShowBuildLog @@ -31536,7 +32134,7 @@ cannot be found in the path. QtSupport::QtVersionFactory - No factory found for qmake: '%1' + No factory found for qmake: "%1" Не удалось найти фабрику для qmake: «%1» @@ -31591,20 +32189,20 @@ cannot be found in the path. Неустановленная сборка настроенная с параметром -prefix предназначена для внутренних целей. - Cannot start '%1': %2 + Cannot start "%1": %2 Не удалось запустить «%1»: %2 - Timeout running '%1' (%2 ms). + Timeout running "%1" (%2 ms). Истекло время работы «%1» (%2 мс). - qmake '%1' is not an executable. - qmake «%1» не является программой. + "%1" crashed. + «%1» завершился аварийно. - '%1' crashed. - Программа «%1» завершилась крахом. + qmake "%1" is not an executable. + qmake «%1» не является программой. No qmlviewer installed. @@ -31625,11 +32223,11 @@ cannot be found in the path. - Cannot determine the installation path for Qt version '%1'. + Cannot determine the installation path for Qt version "%1". Невозможно определить путь, куда установлена Qt из профиля «%1». - Building helper(s) with toolchain '%1'... + Building helper(s) with toolchain "%1"... Сборка помощника(ов) инструментарием «%1»... @@ -31837,37 +32435,37 @@ cannot be found in the path. Не удалось инициализировать SFTP: %1 - Upload of file '%1' failed. The server said: '%2'. + Upload of file "%1" failed. The server said: "%2". Ошибка отправки файла «%1». Сервер ответил: «%2». - If '%1' is currently running on the remote host, you might need to stop it first. - Если «%1» выполняется на удалённой машине, то может понадобиться остановить процесс. + If "%1" is currently running on the remote host, you might need to stop it first. + Если «%1» выполняется на удалённой машине, то может понадобиться сначала остановить процесс. - Failed to upload file '%1'. + Failed to upload file "%1". Не удалось отправить файл «%1». + + Failed to upload file "%1": Could not open for reading. + Ошибка отправки файла «%1»: не удалось открыть для чтения. + + + Warning: No remote path set for local file "%1". Skipping upload. + Предупреждение: Не задан удалённый путь для локального файла «%1». Выгрузка пропущена. + + + Uploading file "%1"... + Отправка файла «%1»... + Failed to set executable flag. Не удалось установить флаг выполнения. - - Failed to upload file '%1': Could not open for reading. - Ошибка отправки файла «%1»: не удалось открыть для чтения. - All files successfully deployed. Все файлы успешно установлены. - - Warning: No remote path set for local file '%1'. Skipping upload. - Предупреждение: Не задан удалённый путь для локального файла «%1». Выгрузка пропущена. - - - Uploading file '%1'... - Отправка файла «%1»... - RemoteLinux::GenericDirectUploadStep @@ -32084,10 +32682,6 @@ In addition, device connectivity will be tested. The device's host name or IP address: Имя узла или IP адрес устройства: - - The user name to log into the device: - Имя пользователя для входа в устройство: - The authentication type: Способ авторизации: @@ -32108,6 +32702,10 @@ In addition, device connectivity will be tested. The file containing the user's private key: Файл содержащий закрытый ключ пользователя: + + The username to log into the device: + Имя пользователя для входа в устройство: + RemoteLinux::Internal::LinuxDevice @@ -32155,14 +32753,42 @@ In addition, device connectivity will be tested. - RemoteLinux::Internal::RemoteLinuxDeployConfigurationWidget + RemoteLinux::Internal::RemoteLinuxCustomRunConfiguration + + The remote executable must be set in order to run a custom remote run configuration. + Идей как это перевести дословно и красиво у меня нет + Для запуска внешнего приложения его необходимо задать. + + + Run "%1" on Linux Device + Выполнить «%1» на Linux-устройстве + + + Custom Executable (on Remote Generic Linux Host) + Особая программа (на удалённом обычном Linux-узле) + + + + RemoteLinux::Internal::RemoteLinuxCustomRunConfigurationWidget Form - Files to deploy: - Установка файлов: + Arguments: + Параметры: + + + Local executable: + Локальная программа: + + + Remote executable: + Внешняя программа: + + + Working directory: + Рабочий каталог: @@ -32201,6 +32827,10 @@ In addition, device connectivity will be tested. Cannot debug: Not enough free ports available. Отладка невозможна: недостаточно свободных портов. + + Cannot debug: Local executable is not set. + Отладка невозможна: локальная программа не задана. + RemoteLinux::Internal::TypeSpecificDeviceConfigurationListModel @@ -32273,8 +32903,12 @@ In addition, device connectivity will be tested. Удалённый процесс завершился крахом. - Unexpected output from remote process: '%1'. - Неожиданный вывод удалённого процесса: «%1». + Unexpected output from remote process: "%1" + Неожиданный вывод удалённого процесса: «%1» + + + Cannot check for free disk space: "%1" is not an absolute path. + Не удалось проверить свободное пространство: «%1» не является абсолютным путём. The remote file system has only %n megabytes of free space, but %1 megabytes are required. @@ -32292,10 +32926,6 @@ In addition, device connectivity will be tested. Внешняя файловая система имеет %n мегабайтов свободного пространства. - - Cannot check for free disk space: '%1' is not an absolute path. - Не удалось проверить свободное пространство: «%1» не является абсолютным путём. - RemoteLinux::RemoteLinuxCheckForFreeDiskSpaceStep @@ -32311,7 +32941,7 @@ In addition, device connectivity will be tested. Командная строка не задана. - Starting remote command '%1'... + Starting remote command "%1"... Запуск внешней команды «%1»... @@ -32331,17 +32961,6 @@ In addition, device connectivity will be tested. Внешняя команда успешно завершилась. - - RemoteLinux::RemoteLinuxDeploymentDataModel - - Local File Path - Путь к локальному файлу - - - Remote Directory - Внешний каталог - - RemoteLinux::RemoteLinuxEnvironmentAspect @@ -32469,27 +33088,27 @@ In addition, device connectivity will be tested. Ошибка: невозможно открыть архив tar %1 (%2). - No remote path specified for file '%1', skipping. + No remote path specified for file "%1", skipping. Не задан удалённый путь для файла «%1», пропущен. - Error writing tar file '%1': %2. + Error writing tar file "%1": %2. Ошибка записи архива tar «%1»: %2. - Error reading file '%1': %2. + Error reading file "%1": %2. Ошибка чтения архива tar «%1»: %2. - Adding file '%1' to tarball... + Adding file "%1" to tarball... Добавление файла «%1» в тарбол... - Cannot add file '%1' to tar-archive: path too long. + Cannot add file "%1" to tar-archive: path too long. Не удалось добавить файл «%1» в архив tar: путь слишком длинный. - Error writing tar file '%1': %2 + Error writing tar file "%1": %2 Ошибка записи архива tar «%1»: %2 @@ -32624,6 +33243,14 @@ In addition, device connectivity will be tested. Open in Text Editor Открыть в текстовом редакторе + + Copy path "%1" + Копировать путь «%1» + + + Copy url "%1" + Копировать ссылку «%1» + Add Prefix Добавление префикса @@ -32707,10 +33334,6 @@ In addition, device connectivity will be tested. The <RCC> root element is missing. Отсутствует корневой элемент <RCC>. - - Cannot write file. Disk full? - Не удалось записать файл. Нет места? - RowSpecifics @@ -32787,7 +33410,7 @@ In addition, device connectivity will be tested. Learn how to develop your own applications and explore Qt Creator. - Узнаете, как разрабатывать собственные приложения, и освоите Qt Creator. + Узнайте, как разрабатывать собственные приложения, и освойте Qt Creator. Get Started Now @@ -32869,6 +33492,21 @@ with a password, which you can enter below. Alignment Выравнивание + + Format + Формат + + + + StatesList + + Collapse + Свернуть + + + Expand + Развернуть + SubComponentManager::parseDirectory @@ -32878,7 +33516,7 @@ with a password, which you can enter below. - Subversion::Internal::CheckoutWizard + Subversion::Internal::CheckoutWizardFactory Checks out a Subversion repository and tries to load the contained project. Извлечение хранилища Subversion с последующей попыткой загрузки содержащегося там проекта. @@ -33201,12 +33839,51 @@ with a password, which you can enter below. Фиксация Subversion + + TabViewSpecifics + + Tab View + Закладочный вид + + + Current index + Текущий индекс + + + Frame visible + Рамка видна + + + Determines the visibility of the tab frame around contents. + Определяет, видна ли рамка вкладки вокруг содержимого. + + + Tabs visible + Вкладки видны + + + Determines the visibility of the the tab bar. + Определяет, видна ли панель вкладок. + + + Tab position + Положение вкладки + + + Determines the position of the tabs. + Определяет положение вкладок. + + TabViewToolAction Add Tab... Добавить вкладку... + + Step into Tab + Войти во вкладку + TargetSettingsPanelFactory @@ -33227,27 +33904,24 @@ with a password, which you can enter below. - TaskList::Internal::TaskFileFactory - - Task file reader - Просмотр файла задач - - - File Error - Ошибка файла - - - - TaskList::TaskListPlugin + TaskList::Internal::TaskListPlugin Cannot open task file %1: %2 Невозможно открыть файл задач %1: %2 + + File Error + Ошибка файла + My Tasks Category under which tasklist tasks are listed in Issues view Мои задачи + + Task file reader + Просмотр файла задач + TextAreaSpecifics @@ -33338,14 +34012,6 @@ with a password, which you can enter below. Selection Color Цвет выделения - - Text Input - Текстовый ввод - - - Format - Формат - TextEditor @@ -33357,8 +34023,8 @@ with a password, which you can enter below. TextEditor::BaseFileFind - Search - Поиск + Searching + Идёт поиск List of comma separated wildcard filters @@ -33372,7 +34038,7 @@ with a password, which you can enter below. TextEditor::BaseTextDocument - Opening file + Opening File Открытие файла @@ -33506,7 +34172,7 @@ with a password, which you can enter below. Файлы в системе - Directory '%1': + Directory "%1": Каталог «%1»: @@ -34019,7 +34685,7 @@ Specifies how backspace interacts with indentation. Текущий файл - File '%1': + File "%1": Файл «%1»: @@ -34196,14 +34862,10 @@ Specifies how backspace interacts with indentation. - TextEditor::Internal::Manager + TextEditor::Internal::MultiDefinitionDownloader - Registering definitions - Регистрация определений - - - Downloading definitions - Загрузка определений + Downloading Highlighting Definitions + Загрузка определений подсветки Error downloading selected definition(s). @@ -34454,85 +35116,7 @@ Influences the indentation of continuation lines. - TextEditor::Internal::TextEditorPlugin - - Creates a text file. The default file extension is <tt>.txt</tt>. You can specify a different extension as part of the filename. - Создание текстового файла. Расширение по умолчанию - <tt>.txt</tt>. Можно указать другое расширение, как часть имени файла. - - - Text File - Текстовый файл - - - General - Основное - - - Creates a scratch buffer using a temporary file. - Создание временного буфера из файла. - - - Scratch Buffer - Временный буфер - - - Triggers a completion in this scope - Переключение завершения в этой области - - - Ctrl+Space - - - - Meta+Space - - - - Triggers a quick fix in this scope - Переключает быстрое дополнение в этой области - - - Alt+Return - - - - Selected text within the current document. - Выделенный текст внутри текущего документа. - - - Line number of the text cursor position in current document (starts with 1). - Номер строки текущего документа, в которой находится курсор (счёт идёт с 1). - - - Column number of the text cursor position in current document (starts with 0). - Номер столбца текущего документа, в котором находится курсор (счёт идёт с 0). - - - Number of lines visible in current document. - Количество видимых строк текущего документа. - - - Number of columns visible in current document. - Количество видимых стобцов текущего документа. - - - Current document's font size in points. - Размер шрифта в точках в текущем документе. - - - - TextEditor::QuickFixFactory - - Create Getter and Setter Member Functions - Создать методы получения и установки значения - - - Generate Missing Q_PROPERTY Members... - Создание отсутствующих членов Q_PROPERTY... - - - - TextEditor::TextEditorActionHandler + TextEditor::Internal::TextEditorActionHandlerPrivate &Undo &Отменить @@ -34541,167 +35125,10 @@ Influences the indentation of continuation lines. &Redo &Повторить - - Select Encoding... - Выбрать кодировку... - - - Auto-&indent Selection - буквальный перевод "автоотступить выделенное" - Сделать &автоотступ - - - Ctrl+I - - - - &Rewrap Paragraph - &Переделать переносы - - - &Visualize Whitespace - Отображение про&белов - - - Clean Whitespace - Очистить пробелы - - - Enable Text &Wrapping - П&еренос текста - - - Ctrl+/ - - - - Cut &Line - В&ырезать строку - - - Shift+Del - - - - Copy &Line - Скоп&ировать строку - - - Ctrl+Ins - - Delete &Line Удалить строк&у - - Ctrl+< - - - - Ctrl+> - - - - Toggle &Fold All - Свернут&ь/развернуть всё - - - Increase Font Size - Увеличить шрифт - - - Ctrl++ - - - - Decrease Font Size - Уменьшить шрифт - - - Ctrl+- - - - - Reset Font Size - Восстановить размер шрифта - - - Ctrl+0 - - - - Go to Block Start - Перейти в начало блока - - - Go to Block End - Перейти в конец блока - - - Insert Line Above Current Line - Вставить строку выше текущей строки - - - Ctrl+Shift+Return - - - - Insert Line Below Current Line - Вставить строку ниже текущей строки - - - Ctrl+Return - - - - Uppercase Selection - В верхний регистр - - - Alt+Shift+U - - - - Lowercase Selection - В нижний регистр - - - Alt+U - - - - Ctrl+[ - - - - Meta+E, R - Meta+E, R - - - Ctrl+E, R - Ctrl+E, R - - - Meta+E, Meta+V - Meta+E, Meta+V - - - Ctrl+E, Ctrl+V - Ctrl+E, Ctrl+V - - - Meta+E, Meta+W - Meta+E, Meta+W - - - Ctrl+E, Ctrl+W - Ctrl+E, Ctrl+W - - - Toggle Comment &Selection - &Закомментировать/раскомментировать - Delete Word from Cursor On Удалить слово под курсором @@ -34718,29 +35145,13 @@ Influences the indentation of continuation lines. Delete Word Camel Case up to Cursor Удалить слово перед курсором с учётом верблюжьего регистра - - Fold - Свернуть - - - Unfold - Развернуть - - - Meta+0 - Meta+0 - - - Ctrl+] - - Go to Block Start with Selection Перейти в начало блока с выделением Ctrl+{ - + Ctrl+{ Go to Block End with Selection @@ -34748,19 +35159,7 @@ Influences the indentation of continuation lines. Ctrl+} - - - - Select Block Up - Выделить блок вверх - - - Ctrl+U - - - - Select Block Down - Выделить блок вниз + Ctrl+} Move Line Up @@ -34768,7 +35167,7 @@ Influences the indentation of continuation lines. Ctrl+Shift+Up - + Ctrl+Shift+Up Move Line Down @@ -34776,7 +35175,7 @@ Influences the indentation of continuation lines. Ctrl+Shift+Down - + Ctrl+Shift+Down Copy Line Up @@ -34784,7 +35183,7 @@ Influences the indentation of continuation lines. Ctrl+Alt+Up - + Ctrl+Alt+Up Copy Line Down @@ -34792,7 +35191,7 @@ Influences the indentation of continuation lines. Ctrl+Alt+Down - + Ctrl+Alt+Down Join Lines @@ -34800,23 +35199,23 @@ Influences the indentation of continuation lines. Ctrl+J - + Ctrl+J - Meta+Shift+U - Meta+Shift+U + Insert Line Above Current Line + Вставить строку выше текущей строки - Meta+U - Meta+U + Ctrl+Shift+Return + Ctrl+Shift+Return - Paste from Clipboard History - Вставить из истории буфера обмена + Insert Line Below Current Line + Вставить строку ниже текущей строки - Ctrl+Shift+V - Ctrl+Shift+V + Ctrl+Return + Ctrl+Return Indent @@ -34824,7 +35223,7 @@ Influences the indentation of continuation lines. Unindent - Отступ назад + Отступить назад Follow Symbol Under Cursor @@ -34846,6 +35245,222 @@ Influences the indentation of continuation lines. Jump To File Under Cursor Перейти к файлу под курсором + + Move the View a Page Up and Keep the Cursor Position + Сдвинуть отображаемый текст на страницу выше с сохранением позиции курсора + + + Ctrl+PgUp + Ctrl+PgUp + + + Move the View a Page Down and Keep the Cursor Position + Сдвинуть отображаемый текст на страницу ниже с сохранением позиции курсора + + + Ctrl+PgDown + Ctrl+PgDown + + + Move the View a Line Up and Keep the Cursor Position + Сдвинуть отображаемый текст настроку выше с сохранением позиции курсора + + + Ctrl+Up + Ctrl+Up + + + Move the View a Line Down and Keep the Cursor Position + Сдвинуть отображаемый текст на строку ниже с сохранением позиции курсора + + + Ctrl+Down + Ctrl+Down + + + Select Encoding... + Выбрать кодировку... + + + Paste from Clipboard History + Вставить из истории буфера обмена + + + Ctrl+Shift+V + Ctrl+Shift+V + + + Auto-&indent Selection + Сделать &автоотступ + + + Ctrl+I + Ctrl+I + + + &Rewrap Paragraph + П&еределать переносы + + + Meta+E, R + Meta+E, R + + + Ctrl+E, R + Ctrl+E, R + + + &Visualize Whitespace + Отображение про&белов + + + Meta+E, Meta+V + Meta+E, Meta+V + + + Ctrl+E, Ctrl+V + Ctrl+E, Ctrl+V + + + Clean Whitespace + Очистить пробелы + + + Enable Text &Wrapping + П&еренос текста + + + Meta+E, Meta+W + Meta+E, Meta+W + + + Ctrl+E, Ctrl+W + Ctrl+E, Ctrl+W + + + Toggle Comment &Selection + &Закомментировать/раскомментировать + + + Ctrl+/ + Ctrl+/ + + + Cut &Line + В&ырезать строку + + + Shift+Del + Shift+Del + + + Copy &Line + Скоп&ировать строку + + + Ctrl+Ins + Ctrl+Ins + + + Uppercase Selection + В верхний регистр + + + Meta+Shift+U + Meta+Shift+U + + + Alt+Shift+U + Alt+Shift+U + + + Lowercase Selection + В нижний регистр + + + Meta+U + Meta+U + + + Alt+U + Alt+U + + + Fold + Свернуть + + + Ctrl+< + Ctrl+< + + + Unfold + Развернуть + + + Ctrl+> + Ctrl+> + + + Toggle &Fold All + Свернут&ь/развернуть всё + + + Increase Font Size + Увеличить шрифт + + + Ctrl++ + Ctrl++ + + + Decrease Font Size + Уменьшить шрифт + + + Ctrl+- + Ctrl+- + + + Reset Font Size + Восстановить размер шрифта + + + Meta+0 + Meta+0 + + + Ctrl+0 + Ctrl+0 + + + Go to Block Start + Перейти в начало блока + + + Ctrl+[ + Ctrl+[ + + + Go to Block End + Перейти в конец блока + + + Ctrl+] + Ctrl+] + + + Select Block Up + Выделить блок вверх + + + Ctrl+U + Ctrl+U + + + Select Block Down + Выделить блок вниз + Go to Line Start Перейти в начало строки @@ -34931,6 +35546,88 @@ Influences the indentation of continuation lines. <строка>:<столбец> + + TextEditor::Internal::TextEditorPlugin + + Creates a text file. The default file extension is <tt>.txt</tt>. You can specify a different extension as part of the filename. + Создание текстового файла. Расширение по умолчанию - <tt>.txt</tt>. Можно указать другое расширение, как часть имени файла. + + + Text File + Текстовый файл + + + General + Основное + + + Creates a scratch buffer using a temporary file. + Создание временного буфера из файла. + + + Scratch Buffer + Временный буфер + + + Ctrl+Space + + + + Meta+Space + + + + Trigger Completion + Выполнить дополнение + + + Trigger Refactoring Action + Выполнить рефакторинг + + + Alt+Return + + + + Create Scratch Buffer Using a Temporary File + Создать временный буфер из файла + + + Selected text within the current document. + Выделенный текст внутри текущего документа. + + + Line number of the text cursor position in current document (starts with 1). + Номер строки текущего документа, в которой находится курсор (счёт идёт с 1). + + + Column number of the text cursor position in current document (starts with 0). + Номер столбца текущего документа, в котором находится курсор (счёт идёт с 0). + + + Number of lines visible in current document. + Количество видимых строк текущего документа. + + + Number of columns visible in current document. + Количество видимых стобцов текущего документа. + + + Current document's font size in points. + Размер шрифта в точках в текущем документе. + + + + TextEditor::QuickFixFactory + + Create Getter and Setter Member Functions + Создать методы получения и установки значения + + + Generate Missing Q_PROPERTY Members... + Создание отсутствующих членов Q_PROPERTY... + + TextEditor::TextEditorSettings @@ -35025,6 +35722,10 @@ Influences the indentation of continuation lines. Character and string literals. Символьный или строковый литералы. + + Primitive Type + Тип примитива + Type Тип @@ -35077,6 +35778,10 @@ Applied to text, if no other rules matching. Occurrences of a symbol that will be renamed. Размещения переименовываемого символа. + + Name of a primitive data type. + Имя типа данных примитива. + Function Функция @@ -35169,10 +35874,6 @@ Applied to text, if no other rules matching. Keyword Ключевое слово - - Reserved keywords of the programming language. - Зарезервированные слова языка программирования. - Operator Оператор @@ -35249,6 +35950,10 @@ Applied to text, if no other rules matching. QML Scope Object Property Свойство локального объекта QML + + Reserved keywords of the programming language except keywords denoting primitive types. + Зарезервированные слова языка программирования, за исключением типов примитивов. + Labels for goto statements. Метки для операторов goto. @@ -35378,14 +36083,6 @@ Will not be applied to whitespace in comments and strings. Determines whether the text field is read only. Определяет, является ли текстовое поле изменяемым или нет. - - Password mode - Режим пароля - - - Determines whether the text field is in password mode. - Определяет, является ли текст в поле паролем или нет. - Input mask Маска ввода @@ -35639,24 +36336,17 @@ Will not be applied to whitespace in comments and strings. Не удалось найти размещение утилиты обслуживания. Проверьте правильность установки, если этот модуль не был включён вручную. - Could not find maintenance tool at '%1'. Check your installation. + Could not find maintenance tool at "%1". Check your installation. Не удалось найти утилиту обслуживания в «%1». Проверьте правильность установки. + + Updates Available + Доступны обновления + Start Updater Запустить обновление - - Updates available - Доступны обновления - - - - Utils::BaseTreeView - - Adjust Column Widths to Contents - Выравнить ширину столбцов по содержимому - Utils::CheckableMessageBox @@ -35703,21 +36393,21 @@ Will not be applied to whitespace in comments and strings. Не удалось записать во временный файл. Нет места? - Cannot create temporary directory '%1': %2 + Cannot create temporary directory "%1": %2 Не удалось создать временный каталог «%1»: %2 + + Cannot change to working directory "%1": %2 + Не удалось войти в рабочий каталог «%1»: %2 + + + Cannot execute "%1": %2 + Не удалось выполнить «%1»: %2 + Unexpected output from helper program (%1). Неожиданные данные от служебной программы (%1). - - Cannot change to working directory '%1': %2 - Не удалось войти в рабочий каталог «%1»: %2 - - - Cannot execute '%1': %2 - Не удалось выполнить «%1»: %2 - Quoting error in command. Ошибка с кавычками в команде. @@ -35735,15 +36425,15 @@ Will not be applied to whitespace in comments and strings. Терминальная команда, возможно, не является командой оболочки. - Cannot start the terminal emulator '%1', change the setting in the Environment options. + Cannot start the terminal emulator "%1", change the setting in the Environment options. Не удалось запустить эмулятор терминала «%1», смените настройки в параметрах среды. - Cannot create socket '%1': %2 + Cannot create socket "%1": %2 Не удалось создать сокет «%1»: %2 - The process '%1' could not be started: %2 + The process "%1" could not be started: %2 Не удалось запустить процесс «%1»: %2 @@ -35765,15 +36455,15 @@ Will not be applied to whitespace in comments and strings. Utils::ElfReader - '%1' is an invalid ELF object (%2) + "%1" is an invalid ELF object (%2) «%1» не является корректным объектом ELF (%2) - '%1' is not an ELF object (file too small) + "%1" is not an ELF object (file too small) «%1» не является объектом ELF (файл слишком мал) - '%1' is not an ELF object + "%1" is not an ELF object «%1» не является объектом ELF @@ -35847,10 +36537,6 @@ Will not be applied to whitespace in comments and strings. Utils::FancyMainWindow - - Locked - Зафиксировано - Reset to Default Layout Сбросить в исходное состояние @@ -35867,12 +36553,12 @@ Will not be applied to whitespace in comments and strings. Имя содержит пробельные символы. - Invalid character '%1'. + Invalid character "%1". Неверный символ «%1». - Invalid characters '%1'. - Неверные символы «%1». + Invalid characters "%1". + Неверный символ «%1». Name matches MS Windows device. (%1). @@ -35917,19 +36603,19 @@ Will not be applied to whitespace in comments and strings. Предотвращение удаления домашнего каталога. - Failed to remove directory '%1'. + Failed to remove directory "%1". Не удалось удалить каталог «%1». - Failed to remove file '%1'. + Failed to remove file "%1". Не удалось удалить файл «%1». - Failed to create directory '%1'. - Не удалось создать каталог «%1». + Failed to create directory "%1". + Не удалось создать каталог: «%1». - Could not copy file '%1' to '%2'. + Could not copy file "%1" to "%2". Не удалось скопировать файл «%1» в «%2». @@ -35962,7 +36648,7 @@ Will not be applied to whitespace in comments and strings. - Utils::FileWizardDialog + Utils::FileWizardPage Location Размещение @@ -35989,15 +36675,15 @@ Will not be applied to whitespace in comments and strings. Некорректное имя базового класса - Invalid header file name: '%1' + Invalid header file name: "%1" Некорректное имя заголовочного файла: «%1» - Invalid source file name: '%1' + Invalid source file name: "%1" Некорректное имя файла исходников: «%1» - Invalid form file name: '%1' + Invalid form file name: "%1" Некорректное имя файла формы: «%1» @@ -36080,17 +36766,25 @@ Will not be applied to whitespace in comments and strings. Выбор файла - The path '%1' expanded to an empty string. - Путь «%1» преобразовался к пустой строке. + The path "%1" expanded to an empty string. + Путь «%1» преобразовался в пустую строку. - The path '%1' is not a directory. + The path "%1" does not exist. + Путь «%1» не существует. + + + The path "%1" is not a directory. Путь «%1» не является каталогом. - The directory '%1' does not exist. + The directory "%1" does not exist. Каталог «%1» отсутствует. + + Cannot execute "%1". + Не удалось выполнить «%1». + The path <b>%1</b> is not an executable file. Путь <b>%1</b> не является программой. @@ -36103,14 +36797,6 @@ Will not be applied to whitespace in comments and strings. The path must not be empty. Путь не должен быть пустым. - - The path '%1' does not exist. - Путь «%1» не существует. - - - Cannot execute '%1'. - Не удалось выполнить «%1». - The path <b>%1</b> is not a directory. Путь <b>%1</b> не является каталогом. @@ -36153,6 +36839,10 @@ Will not be applied to whitespace in comments and strings. <Enter_Name> <Введите_Имя> + + Location + Размещение + The project already exists. Проект уже существует. @@ -36185,14 +36875,41 @@ Will not be applied to whitespace in comments and strings. Utils::ProjectNameValidatingLineEdit - Invalid character '%1' found! - Обнаружен недопустимый символ «%1». + Invalid character "%1" found! + Обнаружен недопустимый символ «%1»! Invalid character '.'. Недопустимый символ «.». + + Utils::ProxyCredentialsDialog + + Proxy Credentials + Авторизация на прокси-сервере + + + The proxy %1 requires a username and password. + Прокси-сервер %1 требует имя пользователя и пароль. + + + Username: + Имя пользователя: + + + Username + Пользователь + + + Password: + Пароль: + + + Password + Пароль + + Utils::QtcProcess @@ -36200,6 +36917,25 @@ Will not be applied to whitespace in comments and strings. Ошибка в командной строке. + + Utils::SettingsAccessor + + No Valid Settings Found + Подходящие настройки не найдены + + + <p>No valid settings file could be found.</p><p>All settings files found in directory "%1" were either too new or too old to be read.</p> + <p>Не удалось найти подходящий для этой версии Qt Creator файл настроек.</p><p>Все найденные в каталоге «%1» файлы настроек или слишком старые, или слишком новые.</p> + + + Using Old Settings + Используются старые настройки + + + <p>The versioned backup "%1" of the settings file is used, because the non-versioned file was created by an incompatible version of Qt Creator.</p><p>Settings changes made since the last time this version of Qt Creator was used are ignored, and changes made now will <b>not</b> be propagated to the newer version.</p> + <p>Будет использоваться резервная копия файла настроек .user более старой версии («%1»), так как текущий файл создан несовместимой версией Qt Creator.</p><p>Изменения настроек проекта, сделанные с момента последнего запуска этой версии Qt Creator, не будут учтены, а изменения, вносимые сейчас, <b>не будут</b> сохранены в новую версию файла проекта.</p> + + Utils::SettingsSelector @@ -36230,24 +36966,24 @@ Will not be applied to whitespace in comments and strings. Utils::SynchronousProcess - The command '%1' finished successfully. + The command "%1" finished successfully. Команда «%1» успешно завершилась. - The command '%1' terminated with exit code %2. + The command "%1" terminated with exit code %2. Команда «%1» завершилась с кодом %2. - The command '%1' terminated abnormally. + The command "%1" terminated abnormally. Команда «%1» аварийно завершилась. - The command '%1' could not be started. + The command "%1" could not be started. Невозможно запустить команду «%1». - The command '%1' did not respond within the timeout limit (%2 ms). - Команда «%1» не ответила за отведённое время (%2 ms). + The command "%1" did not respond within the timeout limit (%2 ms). + Команда «%1» не ответила за отведённое время (%2 мс). Process not Responding @@ -36258,7 +36994,7 @@ Will not be applied to whitespace in comments and strings. Процесс не отвечает. - The process '%1' is not responding. + The process "%1" is not responding. Процесс «%1» не отвечает. @@ -36379,10 +37115,6 @@ Will not be applied to whitespace in comments and strings. Git Annotation Editor Редактор аннотации Git - - Git Diff Editor - Редактор изменений Git - Git Commit Editor Редактор фиксаций Git @@ -37157,12 +37889,12 @@ With cache simulation, further event counters are enabled: Профайлер функций Valgrind - Valgrind Memory Analyzer (Remote) - Анализатор памяти Valgrind (удалённо) + Valgrind Memory Analyzer (External Remote Application) + Анализатор памяти Valgrind (внешняя программа) - Valgrind Function Profiler (Remote) - Профайлер функций Valgrind (удалённо) + Valgrind Function Profiler (External Remote Application) + Профайлер функций Valgrind (внешняя программа) Profile Costs of This Function and Its Callees @@ -37216,22 +37948,6 @@ With cache simulation, further event counters are enabled: Valgrind::Memcheck::MemcheckRunner - - No network interface found for remote analysis. - Не обнаружено сетевых подключений для удалённого анализа. - - - Select Network Interface - Выбор сетевого подключения - - - More than one network interface was found on your machine. Please select the one you want to use for remote analysis. - Обнаружено более одного сетевого подключения на вашей машине. Выберите одно для удалённого анализа. - - - No network interface was chosen for remote analysis. - Сетевое подключение не выбрано для удалённого анализа. - XmlServer on %1: XmlServer на %1: @@ -37412,25 +38128,21 @@ With cache simulation, further event counters are enabled: - VcsBase::BaseCheckoutWizard + VcsBase::BaseCheckoutWizardFactory Cannot Open Project Не удалось открыть проект - Failed to open project in '%1'. + Failed to open project in "%1". Не удалось открыть проект в «%1». - Could not find any project files matching (%1) in the directory '%2'. + Could not find any project files matching (%1) in the directory "%2". Не удалось найти ни одного файла проекта соответствующего «%1» в каталоге «%2». - The Project Explorer is not available. - Обозреватель проекта недоступен. - - - '%1' does not exist. + "%1" does not exist. «%1» отсутствует. @@ -37481,8 +38193,8 @@ With cache simulation, further event counters are enabled: - Cleaning %1 - Очистка %1 + Cleaning "%1" + Очистка «%1» @@ -37611,10 +38323,6 @@ With cache simulation, further event counters are enabled: User &fields configuration file: Файл &настройки полей: - - &Patch command: - &Команда patch: - &SSH prompt command: Команда &запроса пароля SSH: @@ -37626,19 +38334,12 @@ should a repository require SSH-authentication (see documentation on SSH and the требующих авторизацию по SSH (см. документацию к SSH и переменной среды SSH_ASKPASS). - A file listing user names and email addresses in a 4-column mailmap format: + A file listing nicknames in a 4-column mailmap format: 'name <email> alias <email>'. - Файл списка пользователей и их email в 4-х столбцовом формате mailmap: + Файл списка ников в 4-х столбцовом формате mailmap: «имя <email> алиас <email>». - - VcsBase::Internal::CommonSettingsWidget - - Command used for reverting diff chunks. - Команда, используемаях для отката фрагментов diff. - - VcsBase::Internal::EmailTextCursorHandler @@ -37657,17 +38358,17 @@ should a repository require SSH-authentication (see documentation on SSH and the Имя - E-mail - E-mail + Email + Email + + + Alias email + Email алиаса Alias Алиас - - Alias e-mail - E-mail алиаса - Nicknames Ники @@ -37694,6 +38395,10 @@ should a repository require SSH-authentication (see documentation on SSH and the The current version control topic (branch or tag) identification of the current project. Идентификатор раздела (ветки или тега) системы контроля версий текущего проекта. + + The top level path to the repository the current project is in. + Путь верхнего уровня к хранилищу, в котором размещён текущий проект. + VcsBase::SubmitEditorWidget @@ -37709,10 +38414,6 @@ should a repository require SSH-authentication (see documentation on SSH and the F&iles &Файлы - - Check a&ll - &Включить всё - %1 %2/%n File(s) @@ -37726,14 +38427,18 @@ should a repository require SSH-authentication (see documentation on SSH and the &Фиксировать - Check All + Select All Check all for submit - Включить всё + Выбрать все - Uncheck All + Unselect All Uncheck all for submit - Отключить всё + Снять все отметки + + + Select a&ll + В&ыбрать все @@ -37750,7 +38455,7 @@ should a repository require SSH-authentication (see documentation on SSH and the VcsBase::VcsBaseClient - Unable to start process '%1': %2 + Unable to start process "%1": %2 Не удалось запустить процесс «%1»: %2 @@ -37846,17 +38551,17 @@ should a repository require SSH-authentication (see documentation on SSH and the Version Control Контроль версий - - The file '%1' could not be deleted. - Не удалось удалить файл «%1». - Choose Repository Directory Выберите каталог хранилища - The directory '%1' is already managed by a version control system (%2). Would you like to specify another directory? - Каталог «%1» уже находится под системой контроля версий (%2). Желаете выбрать другой каталог? + The file "%1" could not be deleted. + Не удалось удалить файл «%1». + + + The directory "%1" is already managed by a version control system (%2). Would you like to specify another directory? + Каталог «%1» уже находится под системой контроля версий (%2). Выбрать другой каталог? Repository already under version control @@ -37870,26 +38575,6 @@ should a repository require SSH-authentication (see documentation on SSH and the Repository Creation Failed Не удалось создать хранилище - - There is no patch-command configured in the common 'Version Control' settings. - Команда patch не настроена в общих настройках «Контроля версий». - - - Unable to launch '%1': %2 - Не удалось запустить «%1»: %2 - - - A timeout occurred running '%1' - Истекло время работы «%1» - - - '%1' crashed. - Команда «%1» завершилась крахом. - - - '%1' failed (exit code %2). - Ошибка команды «%1» (код завершения %2). - A version control repository has been created in %1. Хранилище контроля версиями создано в %1. @@ -37926,16 +38611,16 @@ should a repository require SSH-authentication (see documentation on SSH and the Выполнение [%1] %2 - The check script '%1' could not be started: %2 + The check script "%1" could not be started: %2 Скрипт проверки «%1» не запускается: %2 - The check script '%1' timed out. + The check script "%1" timed out. Вышло время ожидания проверочного скрипта «%1». - The check script '%1' crashed. - Скрипт проверки «%1» завершился авариайно. + The check script "%1" crashed. + Скрипт проверки «%1» завершился аварийно. The check script returned exit code %1. @@ -37960,13 +38645,6 @@ should a repository require SSH-authentication (see documentation on SSH and the ... поиск переопределений - - Welcome::Internal::CommunityWelcomePage - - News && Support - Новости и поддержка - - Welcome::Internal::WelcomeMode @@ -38001,6 +38679,29 @@ should a repository require SSH-authentication (see documentation on SSH and the Файл «%1» не является модулем QmlDesigner. + + WinRt::Internal::WinRtDebugSupport + + The WinRT debugging helper is missing from your Qt Creator installation. It was assumed to be located at %1 + Помощник отладчика WinRT отсутствует в составе установки вашего Qt Creator. Предполагается, что он находится в %1 + + + Cannot start the WinRT Runner Tool. + Не удалось запустить WinRT Runner Tool. + + + Cannot establish connection to the WinRT debugging helper. + Не удалось установить подключение к помощнику отладчика WinRT. + + + Cannot extract the PID from the WinRT debugging helper. (output: %1) + Не удалось извлечь PID из помощника отладчика WinRT (вывод: %1) + + + Cannot create an appropriate run control for the current run configuration. + Не удалось создать подходящее управление запуском для текущей конфигурации запуска. + + WinRt::Internal::WinRtDeployConfiguration @@ -38144,7 +38845,18 @@ should a repository require SSH-authentication (see documentation on SSH and the - WinRt::Internal::WinRtRunControl + WinRt::Internal::WinRtRunControlFactory + + Unsupported run mode %1. + Режим запуска %1 не поддерживается. + + + WinRT Run Control Factory + Фабрика компонентов WinRT + + + + WinRt::Internal::WinRtRunnerHelper The current kit has no Qt version. У текущего комплекта не указан профиль Qt. @@ -38154,35 +38866,12 @@ should a repository require SSH-authentication (see documentation on SSH and the Не удалось найти winrtrunner.exe в «%1». - winrtrunner crashed. - winrtrunner завершился крахом. - - - winrtrunner returned with exit code %1. - winrtrunner завершился с кодом %1. - - - winrtrunner finished successfully. - winrtrunner завершился успешно. - - - Error while executing winrtrunner: %1 + Error while executing the WinRT Runner Tool: %1 - Ошибка запуска winrtrunner: %1 + Ошибка запуска WinRT Runner Tool: %1 - - WinRt::Internal::WinRtRunControlFactory - - Unsupported run mode %1. - Режим запуска %1 не поддерживается. - - - WinRT Run Control Factory - Фабрика компонентов WinRT - - WindowSpecifics @@ -38280,7 +38969,7 @@ should a repository require SSH-authentication (see documentation on SSH and the ZeroConf::Internal::ZConfLib - AvahiZConfLib could not load the native library '%1': %2 + AvahiZConfLib could not load the native library "%1": %2 AvahiZConfLib не смог загрузить библиотеку «%1»: %2 @@ -38308,7 +38997,7 @@ should a repository require SSH-authentication (see documentation on SSH and the неожиданное состояние %1 в cAvahiBrowseReply. - %1 failed to kill other daemons with '%2'. + %1 failed to kill other daemons with "%2". %1 не смог завершить другие службы командой «%2». @@ -38316,7 +39005,7 @@ should a repository require SSH-authentication (see documentation on SSH and the %1 обнаружил файл в /tmp/mdnsd, видимо, не удалось запустить службу. - %1: log of previous daemon run is: '%2'. + %1: log of previous daemon run is: "%2". %1: история предыдущего запуска службы: «%2».