aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dist/changes-2.7.0132
-rw-r--r--doc/images/creator-qbs-project.pngbin0 -> 35937 bytes
-rw-r--r--doc/images/creator-run-settings-qbs.pngbin0 -> 21281 bytes
-rw-r--r--doc/images/qtcreator-add-breakpoint.pngbin17638 -> 57327 bytes
-rw-r--r--doc/src/android/androiddev.qdoc10
-rw-r--r--doc/src/debugger/creator-debugger.qdoc80
-rw-r--r--doc/src/howto/creator-cli.qdoc4
-rw-r--r--doc/src/howto/creator-vcs.qdoc58
-rw-r--r--doc/src/projects/creator-projects-autotools.qdoc2
-rw-r--r--doc/src/projects/creator-projects-cmake.qdoc2
-rw-r--r--doc/src/projects/creator-projects-other.qdoc8
-rw-r--r--doc/src/projects/creator-projects-qbs.qdoc88
-rw-r--r--doc/src/qtcreator.qdoc1
-rw-r--r--qbs/pluginspec/pluginspec.qbs14
-rw-r--r--qtcreator.qbs3
-rwxr-xr-xscripts/deployqt.py2
-rw-r--r--share/qtcreator/qml-type-descriptions/qbs-bundle.json14
-rw-r--r--share/qtcreator/qml-type-descriptions/qmlproject-bundle.json12
-rw-r--r--share/qtcreator/qml-type-descriptions/qmltypes-bundle.json9
-rw-r--r--share/qtcreator/qml-type-descriptions/qt4QtQuick1-bundle.json17
-rw-r--r--share/qtcreator/qml-type-descriptions/qt5QtQuick1-bundle.json16
-rw-r--r--share/qtcreator/qml-type-descriptions/qt5QtQuick2-bundle.json20
-rw-r--r--share/qtcreator/snippets/cpp.xml6
-rw-r--r--share/qtcreator/templates/qml/qtquick1_1/main.qmlproject2
-rw-r--r--share/qtcreator/templates/qml/qtquick2/main.qmlproject2
-rw-r--r--share/qtcreator/templates/wizards/bb-guiapp/main.cpp2
-rw-r--r--share/qtcreator/templates/wizards/bb-qt5-guiapp/main.cpp2
-rw-r--r--share/qtcreator/templates/wizards/bb-qt5-quick2app/bar-descriptor.xml33
-rw-r--r--share/qtcreator/templates/wizards/bb-qt5-quick2app/icon.pngbin10801 -> 0 bytes
-rw-r--r--share/qtcreator/templates/wizards/bb-qt5-quick2app/main.cpp13
-rw-r--r--share/qtcreator/templates/wizards/bb-qt5-quick2app/project.pro15
-rw-r--r--share/qtcreator/templates/wizards/bb-qt5-quick2app/qml/main.qml17
-rw-r--r--share/qtcreator/templates/wizards/bb-qt5-quick2app/wizard.xml49
-rw-r--r--share/qtcreator/templates/wizards/bb-quickapp/bar-descriptor.xml23
-rw-r--r--share/qtcreator/templates/wizards/bb-quickapp/icon.pngbin10801 -> 0 bytes
-rw-r--r--share/qtcreator/templates/wizards/bb-quickapp/main.cpp15
-rw-r--r--share/qtcreator/templates/wizards/bb-quickapp/project.pro13
-rw-r--r--share/qtcreator/templates/wizards/bb-quickapp/qml/main.qml17
-rw-r--r--share/qtcreator/templates/wizards/bb-quickapp/wizard.xml49
-rw-r--r--share/qtcreator/templates/wizards/qtcreatorplugin/myplugin.h3
-rw-r--r--share/qtcreator/translations/qtcreator_cs.ts8514
-rw-r--r--share/qtcreator/translations/qtcreator_de.ts1030
-rw-r--r--share/qtcreator/translations/qtcreator_uk.ts13061
-rw-r--r--src/libs/3rdparty/botan/botan.h20
-rw-r--r--src/libs/3rdparty/botan/botan.pri8
-rw-r--r--src/libs/3rdparty/cplusplus/Lexer.cpp5
-rw-r--r--src/libs/3rdparty/cplusplus/Templates.cpp20
-rw-r--r--src/libs/cplusplus/CppDocument.cpp5
-rw-r--r--src/libs/cplusplus/CppDocument.h5
-rw-r--r--src/libs/cplusplus/FindUsages.cpp68
-rw-r--r--src/libs/cplusplus/FindUsages.h7
-rw-r--r--src/libs/cplusplus/LookupContext.cpp71
-rw-r--r--src/libs/cplusplus/LookupContext.h10
-rw-r--r--src/libs/cplusplus/Macro.h3
-rw-r--r--src/libs/cplusplus/ResolveExpression.cpp8
-rw-r--r--src/libs/cplusplus/pp-engine.cpp4
-rw-r--r--src/libs/cplusplus/pp-engine.h4
-rw-r--r--src/libs/extensionsystem/optionsparser.cpp25
-rw-r--r--src/libs/extensionsystem/optionsparser.h2
-rw-r--r--src/libs/extensionsystem/pluginerroroverview.cpp2
-rw-r--r--src/libs/extensionsystem/pluginmanager.cpp16
-rw-r--r--src/libs/extensionsystem/pluginspec.cpp70
-rw-r--r--src/libs/extensionsystem/pluginspec.h7
-rw-r--r--src/libs/extensionsystem/pluginspec_p.h4
-rw-r--r--src/libs/extensionsystem/pluginview.cpp59
-rw-r--r--src/libs/qmldebug/qmltoolsclient.cpp2
-rw-r--r--src/libs/qmldebug/qmltoolsclient.h2
-rw-r--r--src/libs/qmljs/persistenttrie.cpp78
-rw-r--r--src/libs/qmljs/persistenttrie.h9
-rw-r--r--src/libs/qmljs/qmljs-lib.pri2
-rw-r--r--src/libs/qmljs/qmljs.qbs2
-rw-r--r--src/libs/qmljs/qmljsbind.cpp19
-rw-r--r--src/libs/qmljs/qmljsbundle.cpp317
-rw-r--r--src/libs/qmljs/qmljsbundle.h115
-rw-r--r--src/libs/qmljs/qmljscompletioncontextfinder.cpp38
-rw-r--r--src/libs/qmljs/qmljscompletioncontextfinder.h2
-rw-r--r--src/libs/qmljs/qmljsdocument.cpp5
-rw-r--r--src/libs/qmljs/qmljsdocument.h1
-rw-r--r--src/libs/qmljs/qmljsinterpreter.h2
-rw-r--r--src/libs/qmljs/qmljsmodelmanagerinterface.cpp1
-rw-r--r--src/libs/qmljs/qmljsmodelmanagerinterface.h8
-rw-r--r--src/libs/qtcomponents/styleitem/qstyleitem.cpp2
-rw-r--r--src/libs/qtcreatorcdbext/symbolgroupvalue.cpp28
-rw-r--r--src/libs/ssh/ssh.qbs26
-rw-r--r--src/libs/utils/filesearch.cpp7
-rw-r--r--src/libs/utils/synchronousprocess.cpp8
-rw-r--r--src/plugins/android/androidconfigurations.cpp175
-rw-r--r--src/plugins/android/androidconfigurations.h4
-rw-r--r--src/plugins/android/androiddeploystep.cpp27
-rw-r--r--src/plugins/android/androidmanager.cpp88
-rw-r--r--src/plugins/android/androidpackagecreationstep.cpp15
-rw-r--r--src/plugins/android/androidplugin.cpp13
-rw-r--r--src/plugins/android/androidplugin.h2
-rw-r--r--src/plugins/android/androidqtversion.cpp12
-rw-r--r--src/plugins/android/androidrunner.cpp24
-rw-r--r--src/plugins/android/androidsettingspage.cpp11
-rw-r--r--src/plugins/android/androidsettingswidget.cpp85
-rw-r--r--src/plugins/android/androidsettingswidget.h1
-rw-r--r--src/plugins/android/androidsettingswidget.ui264
-rw-r--r--src/plugins/android/androidtoolchain.cpp36
-rw-r--r--src/plugins/android/androidtoolchain.h9
-rw-r--r--src/plugins/autotoolsprojectmanager/autotoolsproject.cpp2
-rw-r--r--src/plugins/bineditor/bineditor.cpp66
-rw-r--r--src/plugins/classview/classviewsymbolinformation.h2
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp83
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.h16
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeproject.cpp11
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeproject.h2
-rw-r--r--src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp2
-rw-r--r--src/plugins/cmakeprojectmanager/makestep.cpp2
-rw-r--r--src/plugins/coreplugin/dialogs/ioptionspage.h2
-rw-r--r--src/plugins/coreplugin/dialogs/settingsdialog.cpp2
-rw-r--r--src/plugins/coreplugin/editormanager/editormanager.cpp3
-rw-r--r--src/plugins/coreplugin/id.cpp2
-rw-r--r--src/plugins/coreplugin/mainwindow.cpp13
-rw-r--r--src/plugins/coreplugin/progressmanager/progressbar.cpp3
-rw-r--r--src/plugins/coreplugin/progressmanager/progressbar.h2
-rw-r--r--src/plugins/cpaster/frontend/frontend.qbs2
-rw-r--r--src/plugins/cppeditor/cppdoxygen_test.cpp343
-rw-r--r--src/plugins/cppeditor/cppeditor.cpp287
-rw-r--r--src/plugins/cppeditor/cppeditor.h2
-rw-r--r--src/plugins/cppeditor/cppeditor.pro3
-rw-r--r--src/plugins/cppeditor/cppeditor.qbs3
-rw-r--r--src/plugins/cppeditor/cppfunctiondecldeflink.cpp2
-rw-r--r--src/plugins/cppeditor/cppinsertdecldef.cpp14
-rw-r--r--src/plugins/cppeditor/cppinsertdecldef.h3
-rw-r--r--src/plugins/cppeditor/cppplugin.h13
-rw-r--r--src/plugins/cppeditor/cppquickfix_test.cpp841
-rw-r--r--src/plugins/cpptools/builtinindexingsupport.cpp3
-rw-r--r--src/plugins/cpptools/completionsettingspage.ui2
-rw-r--r--src/plugins/cpptools/cppchecksymbols.cpp19
-rw-r--r--src/plugins/cpptools/cppchecksymbols.h5
-rw-r--r--src/plugins/cpptools/cppcompletion_test.cpp181
-rw-r--r--src/plugins/cpptools/cppcompletionassist.cpp2
-rw-r--r--src/plugins/cpptools/cpplocalsymbols.cpp16
-rw-r--r--src/plugins/cpptools/cpplocalsymbols.h2
-rw-r--r--src/plugins/cpptools/cppmodelmanager.cpp14
-rw-r--r--src/plugins/cpptools/cppmodelmanager.h8
-rw-r--r--src/plugins/cpptools/cppsemanticinfo.cpp2
-rw-r--r--src/plugins/cpptools/cppsemanticinfo.h2
-rw-r--r--src/plugins/cpptools/cpptoolseditorsupport.h2
-rw-r--r--src/plugins/cpptools/cpptoolsplugin.h4
-rw-r--r--src/plugins/cpptools/doxygengenerator.cpp22
-rw-r--r--src/plugins/cpptools/doxygengenerator.h6
-rw-r--r--src/plugins/debugger/breakwindow.cpp12
-rw-r--r--src/plugins/debugger/debugger.qbs1
-rw-r--r--src/plugins/debugger/debuggerkitconfigwidget.cpp34
-rw-r--r--src/plugins/debugger/debuggerkitconfigwidget.h4
-rw-r--r--src/plugins/debugger/debuggerplugin.cpp3
-rw-r--r--src/plugins/debugger/gdb/gdbengine.cpp11
-rw-r--r--src/plugins/debugger/logwindow.cpp13
-rw-r--r--src/plugins/debugger/stackframe.cpp17
-rw-r--r--src/plugins/diffeditor/DiffEditor.pluginspec.in20
-rw-r--r--src/plugins/diffeditor/diffeditor.pri3
-rw-r--r--src/plugins/diffeditor/diffeditor.pro17
-rw-r--r--src/plugins/diffeditor/diffeditor.qbs26
-rw-r--r--src/plugins/diffeditor/diffeditor_dependencies.pri3
-rw-r--r--src/plugins/diffeditor/diffeditor_global.h41
-rw-r--r--src/plugins/diffeditor/diffeditorconstants.h44
-rw-r--r--src/plugins/diffeditor/diffeditorplugin.cpp355
-rw-r--r--src/plugins/diffeditor/diffeditorplugin.h158
-rw-r--r--src/plugins/diffeditor/diffeditorwidget.cpp1027
-rw-r--r--src/plugins/diffeditor/diffeditorwidget.h159
-rw-r--r--src/plugins/diffeditor/differ.cpp499
-rw-r--r--src/plugins/diffeditor/differ.h98
-rw-r--r--src/plugins/find/searchresulttreeitems.cpp4
-rw-r--r--src/plugins/find/searchresulttreeitems.h2
-rw-r--r--src/plugins/genericprojectmanager/genericproject.cpp44
-rw-r--r--src/plugins/genericprojectmanager/selectablefilesmodel.h2
-rw-r--r--src/plugins/git/TODO.txt9
-rw-r--r--src/plugins/git/clonewizardpage.cpp55
-rw-r--r--src/plugins/git/clonewizardpage.h4
-rw-r--r--src/plugins/git/gitclient.cpp46
-rw-r--r--src/plugins/git/gitclient.h1
-rw-r--r--src/plugins/git/gitplugin.cpp39
-rw-r--r--src/plugins/git/gitplugin.h1
-rw-r--r--src/plugins/git/gitutils.cpp14
-rw-r--r--src/plugins/git/gitutils.h2
-rw-r--r--src/plugins/git/gitversioncontrol.cpp20
-rw-r--r--src/plugins/git/resetdialog.cpp9
-rw-r--r--src/plugins/locator/settingspage.cpp1
-rw-r--r--src/plugins/plugins.pro10
-rw-r--r--src/plugins/projectexplorer/abi.cpp1
-rw-r--r--src/plugins/projectexplorer/gcctoolchain.cpp86
-rw-r--r--src/plugins/projectexplorer/kit.cpp20
-rw-r--r--src/plugins/projectexplorer/kit.h4
-rw-r--r--src/plugins/projectexplorer/kitinformation.cpp5
-rw-r--r--src/plugins/projectexplorer/kitmanager.cpp12
-rw-r--r--src/plugins/projectexplorer/kitmodel.cpp1
-rw-r--r--src/plugins/projectexplorer/msvctoolchain.cpp23
-rw-r--r--src/plugins/projectexplorer/project.cpp10
-rw-r--r--src/plugins/projectexplorer/project.h4
-rw-r--r--src/plugins/projectexplorer/projectexplorer.cpp15
-rw-r--r--src/plugins/projectexplorer/projectexplorer.h1
-rw-r--r--src/plugins/projectexplorer/projectwindow.cpp9
-rw-r--r--src/plugins/projectexplorer/runconfiguration.cpp16
-rw-r--r--src/plugins/projectexplorer/session.cpp4
-rw-r--r--src/plugins/projectexplorer/showineditortaskhandler.cpp2
-rw-r--r--src/plugins/projectexplorer/toolchainmanager.cpp16
-rw-r--r--src/plugins/projectexplorer/wincetoolchain.cpp2
-rw-r--r--src/plugins/qbsprojectmanager/qbsproject.cpp157
-rw-r--r--src/plugins/qbsprojectmanager/qbsproject.h1
-rw-r--r--src/plugins/qbsprojectmanager/qbsprojectmanager.qbs1
-rw-r--r--src/plugins/qbsprojectmanager/qbsprojectmanager_dependencies.pri1
-rw-r--r--src/plugins/qbsprojectmanager/qbsstep.cpp2
-rw-r--r--src/plugins/qmldesigner/designercore/include/nodeinstanceview.h5
-rw-r--r--src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp31
-rw-r--r--src/plugins/qmljseditor/qmljscompletionassist.cpp34
-rw-r--r--src/plugins/qmljseditor/qmljseditor.cpp7
-rw-r--r--src/plugins/qmljseditor/qmljshoverhandler.cpp9
-rw-r--r--src/plugins/qmljstools/qmljsbundleprovider.cpp201
-rw-r--r--src/plugins/qmljstools/qmljsbundleprovider.h80
-rw-r--r--src/plugins/qmljstools/qmljsmodelmanager.cpp163
-rw-r--r--src/plugins/qmljstools/qmljsmodelmanager.h10
-rw-r--r--src/plugins/qmljstools/qmljsplugindumper.cpp7
-rw-r--r--src/plugins/qmljstools/qmljstools.pro2
-rw-r--r--src/plugins/qmljstools/qmljstools.qbs2
-rw-r--r--src/plugins/qmljstools/qmljstoolsplugin.cpp2
-rw-r--r--src/plugins/qmlprofiler/QmlProfiler.pluginspec.in1
-rw-r--r--src/plugins/qmlprofiler/qmlprofiler.pro1
-rw-r--r--src/plugins/qmlprofiler/qmlprofilerdatamodel.cpp9
-rw-r--r--src/plugins/qmlprofiler/qmlprofilerdatamodel.h4
-rw-r--r--src/plugins/qmlprojectmanager/QmlProjectManager.pluginspec.in1
-rw-r--r--src/plugins/qmlprojectmanager/qmlproject.cpp29
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectmanager.qbs1
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectmanager_dependencies.pri1
-rw-r--r--src/plugins/qnx/bardescriptoreditorwidget.cpp75
-rw-r--r--src/plugins/qnx/bardescriptoreditorwidget.h6
-rw-r--r--src/plugins/qnx/bardescriptoreditorwidget.ui11
-rw-r--r--src/plugins/qnx/blackberrycertificatemodel.cpp3
-rw-r--r--src/plugins/qnx/blackberryconfiguration.cpp3
-rw-r--r--src/plugins/qnx/blackberrydebugtokenreader.cpp114
-rw-r--r--src/plugins/qnx/blackberrydebugtokenreader.h67
-rw-r--r--src/plugins/qnx/blackberrydebugtokenrequestdialog.cpp229
-rw-r--r--src/plugins/qnx/blackberrydebugtokenrequestdialog.h79
-rw-r--r--src/plugins/qnx/blackberrydebugtokenrequestdialog.ui153
-rw-r--r--src/plugins/qnx/blackberrydebugtokenrequester.cpp75
-rw-r--r--src/plugins/qnx/blackberrydebugtokenrequester.h63
-rw-r--r--src/plugins/qnx/blackberrydebugtokenuploader.cpp68
-rw-r--r--src/plugins/qnx/blackberrydebugtokenuploader.h66
-rw-r--r--src/plugins/qnx/blackberrydeployconfiguration.cpp21
-rw-r--r--src/plugins/qnx/blackberrydeviceconfigurationwidget.cpp86
-rw-r--r--src/plugins/qnx/blackberrydeviceconfigurationwidget.h14
-rw-r--r--src/plugins/qnx/blackberrydeviceconfigurationwidget.ui25
-rw-r--r--src/plugins/qnx/blackberrydeviceconfigurationwizardpages.cpp13
-rw-r--r--src/plugins/qnx/blackberrydeviceconfigurationwizardpages.h1
-rw-r--r--src/plugins/qnx/blackberrydeviceconfigurationwizardsetuppage.ui62
-rw-r--r--src/plugins/qnx/blackberryndkprocess.cpp145
-rw-r--r--src/plugins/qnx/blackberryndkprocess.h87
-rw-r--r--src/plugins/qnx/qnx.pro25
-rw-r--r--src/plugins/qnx/qnx.qbs11
-rw-r--r--src/plugins/qt4projectmanager/Qt4ProjectManager.pluginspec.in1
-rw-r--r--src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.cpp19
-rw-r--r--src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.h2
-rw-r--r--src/plugins/qt4projectmanager/qt4nodes.cpp7
-rw-r--r--src/plugins/qt4projectmanager/qt4nodes.h12
-rw-r--r--src/plugins/qt4projectmanager/qt4project.cpp57
-rw-r--r--src/plugins/qt4projectmanager/qt4projectmanager.qbs1
-rw-r--r--src/plugins/qt4projectmanager/qt4projectmanager_dependencies.pri1
-rw-r--r--src/plugins/qtsupport/exampleslistmodel.h4
-rw-r--r--src/plugins/texteditor/behaviorsettingspage.cpp3
-rw-r--r--src/plugins/texteditor/behaviorsettingspage.ui6
-rw-r--r--src/plugins/texteditor/codeassist/codeassistant.cpp6
-rw-r--r--src/plugins/texteditor/codeassist/defaultassistinterface.cpp18
-rw-r--r--src/plugins/texteditor/codeassist/defaultassistinterface.h6
-rw-r--r--src/plugins/texteditor/codeassist/iassistinterface.h3
-rw-r--r--src/plugins/texteditor/codeassist/runner.cpp1
-rw-r--r--src/plugins/texteditor/fontsettingspage.cpp2
-rw-r--r--src/plugins/texteditor/fontsettingspage.h2
-rw-r--r--src/plugins/texteditor/generichighlighter/highlightdefinition.cpp2
-rw-r--r--src/plugins/texteditor/generichighlighter/highlightdefinition.h2
-rw-r--r--src/plugins/texteditor/itextmark.h8
-rw-r--r--src/plugins/texteditor/semantichighlighter.cpp7
-rw-r--r--src/plugins/texteditor/syntaxhighlighter.cpp22
-rw-r--r--src/plugins/texteditor/syntaxhighlighter.h2
-rw-r--r--src/plugins/texteditor/texteditoroverlay.cpp2
-rw-r--r--src/plugins/texteditor/texteditoroverlay.h2
-rw-r--r--src/plugins/valgrind/callgrind/callgrindparsedata.cpp10
-rw-r--r--src/shared/qtsingleapplication/qtlocalpeer.cpp7
-rw-r--r--src/tools/sdktool/addkeysoperation.cpp6
-rw-r--r--src/tools/sdktool/addkitoperation.cpp12
-rw-r--r--src/tools/sdktool/addqtoperation.cpp6
-rw-r--r--src/tools/sdktool/addtoolchainoperation.cpp6
-rw-r--r--src/tools/sdktool/rmkeysoperation.cpp2
-rw-r--r--src/tools/sdktool/rmkitoperation.cpp12
-rw-r--r--src/tools/sdktool/rmtoolchainoperation.cpp2
-rw-r--r--tests/auto/cplusplus/cplusplus.pro3
-rw-r--r--tests/auto/cplusplus/lexer/lexer.pro4
-rw-r--r--tests/auto/cplusplus/lexer/tst_lexer.cpp109
-rw-r--r--tests/manual/fakevim/main.cpp18
-rw-r--r--tests/manual/utils/tcpportsgatherer/main.cpp4
-rw-r--r--tests/system/shared/debugger.py3
-rw-r--r--tests/system/shared/editor_utils.py3
-rw-r--r--tests/system/shared/hook_utils.py2
-rw-r--r--tests/system/shared/project.py4
-rw-r--r--tests/system/shared/qtcreator.py15
-rw-r--r--tests/system/suite_APTW/tst_APTW01/test.py2
-rw-r--r--tests/system/suite_APTW/tst_APTW02/test.py2
-rwxr-xr-xtests/system/suite_CCOM/tst_CCOM01/test.py2
-rwxr-xr-xtests/system/suite_CCOM/tst_CCOM02/test.py2
-rw-r--r--tests/system/suite_CSUP/tst_CSUP01/test.py2
-rw-r--r--tests/system/suite_CSUP/tst_CSUP02/test.py2
-rw-r--r--tests/system/suite_CSUP/tst_CSUP04/test.py2
-rw-r--r--tests/system/suite_CSUP/tst_CSUP05/test.py2
-rwxr-xr-xtests/system/suite_HELP/tst_HELP02/test.py2
-rwxr-xr-xtests/system/suite_HELP/tst_HELP04/test.py2
-rwxr-xr-xtests/system/suite_HELP/tst_HELP05/test.py2
-rwxr-xr-xtests/system/suite_HELP/tst_HELP06/test.py2
-rw-r--r--tests/system/suite_QMLS/shared/qmls.py2
-rw-r--r--tests/system/suite_QMLS/tst_QMLS02/test.py2
-rw-r--r--tests/system/suite_QMLS/tst_QMLS03/test.py5
-rw-r--r--tests/system/suite_QMLS/tst_QMLS04/test.py4
-rw-r--r--tests/system/suite_QMLS/tst_QMLS05/test.py4
-rw-r--r--tests/system/suite_QMLS/tst_QMLS06/test.py4
-rw-r--r--tests/system/suite_QMLS/tst_QMLS07/test.py4
-rw-r--r--tests/system/suite_SCOM/tst_SCOM01/test.py2
-rw-r--r--tests/system/suite_SCOM/tst_SCOM02/test.py2
-rw-r--r--tests/system/suite_SCOM/tst_SCOM04/test.py2
-rw-r--r--tests/system/suite_SCOM/tst_SCOM05/test.py2
-rwxr-xr-xtests/system/suite_WELP/tst_WELP01/test.py2
-rw-r--r--tests/system/suite_WELP/tst_WELP02/test.py2
-rw-r--r--tests/system/suite_WELP/tst_WELP03/test.py2
-rw-r--r--tests/system/suite_WELP/tst_WELP04/test.py2
-rw-r--r--tests/system/suite_debugger/tst_build_new_project/test.py2
-rw-r--r--tests/system/suite_debugger/tst_cli_output_console/test.py2
-rw-r--r--tests/system/suite_debugger/tst_simple_debug/test.py2
-rw-r--r--tests/system/suite_editors/tst_basic_cpp_support/test.py2
-rw-r--r--tests/system/suite_editors/tst_delete_externally/test.py2
-rw-r--r--tests/system/suite_editors/tst_memberoperator/test.py2
-rw-r--r--tests/system/suite_editors/tst_modify_readonly/test.py2
-rw-r--r--tests/system/suite_editors/tst_qml_editor/test.py5
-rw-r--r--tests/system/suite_editors/tst_qml_indent/test.py2
-rw-r--r--tests/system/suite_editors/tst_rename_macros/test.py2
-rw-r--r--tests/system/suite_editors/tst_revert_changes/test.py2
-rw-r--r--tests/system/suite_editors/tst_select_all/test.py7
-rw-r--r--tests/system/suite_general/tst_build_speedcrunch/test.py2
-rw-r--r--tests/system/suite_general/tst_cmake_speedcrunch/test.py3
-rw-r--r--tests/system/suite_general/tst_create_proj_wizard/test.py2
-rw-r--r--tests/system/suite_general/tst_default_settings/test.py2
-rw-r--r--tests/system/suite_general/tst_installed_languages/test.py2
-rw-r--r--tests/system/suite_general/tst_openqt_creator/test.py2
-rw-r--r--tests/system/suite_qtquick/tst_qml_outline/test.py2
-rw-r--r--tests/system/suite_qtquick/tst_qtquick_creation/test.py2
-rw-r--r--tests/system/suite_qtquick/tst_qtquick_creation2/test.py2
-rw-r--r--tests/system/suite_qtquick/tst_qtquick_creation3/test.py2
-rw-r--r--tests/system/suite_qtquick/tst_qtquick_creation4/test.py2
346 files changed, 23974 insertions, 9112 deletions
diff --git a/dist/changes-2.7.0 b/dist/changes-2.7.0
index b069bfeea6f..e09b77f5f0f 100644
--- a/dist/changes-2.7.0
+++ b/dist/changes-2.7.0
@@ -65,9 +65,9 @@ CMake Projects
* Fixed build directory when adding build configurations
(QTCREATORBUG-8425)
-QBS Projects
- * Implemented initial support for Qt Build Suite (QBS) projects
- * Made Qt Creator itself compilable with QBS
+Qbs Projects
+ * Implemented initial support for Qt Build Suite (Qbs) projects
+ * Made Qt Creator itself compilable with Qbs
Generic Projects
* Implemented using MIME types to recognize source files (QTCREATORBUG-5451)
@@ -84,63 +84,80 @@ Debugging
types (QByteArray, std::string, char[], char* etc)
* Adjusted to GDB 7.5 changes
* Removed dependency on QmlJSTools
- * Added shortcut to add breakpoint by double click on break view
- * Made breakpoint markers draggable
- * Added logging of exceptions (QTCREATORBUG-8141)
- * Added option to use Intel-style disassembly
- * Improved color highlighting of locals in memory view
+ * Implemented adding breakpoints by double-clicking in Breakpoints view
+ * Implemented dragging and dropping breakpoint markers
+ * Added logging of exceptions in the Compile Output pane (QTCREATORBUG-8141)
+ * Added option to use Intel-style disassembly to debugger GDB options
+ * Improved color highlighting of locals in Memory view
* Made string cutoff value configurable
* Put separate string displays in tab widget (QTCREATORBUG-8344)
* Implemented basic value editing for CDB (QTCREATORBUG-8344)
+ * Added CDB setting to ignore first-chance exceptions (QTCREATORBUG-8141)
* Implemented support for displaying images in CDB
- * Added framework to wrap plain GDB pretty printers for use in Creator
+ * Added framework to wrap plain GDB pretty printers for use in Qt Creator
* Implemented display format changes for multi-selection
(QTCREATORBUG-7577)
+ * Added hook for user specified commands after attaching to target
Analyzer
C++ Support
- * Added GetterSetter quick fix
+ * Added Create Getter and Setter Member Functions refactoring action
+ * Added Reformat Pointers or References refactoring action
+ (QTCREATORBUG-6169)
+ * Introduced formatting options for pointers and references
+ (QTCREATORBUG-6169)
* Fixed semantic highlighting when multiple editors are visible
- * Fixed Find/Rename Macro usage
- * Added code completion for instantiation of templates with default argument
- * Added C++11 alignof and alignas tokens
- * Added support for C++11 brace initializers (QTCREATORBUG-7919 et al)
- * Fixed parsing of C++11 noexcept(constant-expression_
- * Added support for C++11 ref-qualifiers in function declarators: void
- foo() const &; void bar() && and related pointer-to-member declarators
- * Added parsing of alias declarations: using Foo = std::vector<int>::iterator
- * Added support for C++11 enum classes and opaque enum declarations
- * Fixed use of >> in C++11 template arguments
- * Added hook for user specified commands after attaching to target
- * Added CDB setting to ignore first-chance exceptions (QTCREATORBUG-8141)
- * Improved handling of lambda captures (QTCREATORBUG-7968,
- QTCREATORBUG-7949)
- * Improved code completion for Qt containers (QTCREATORBUG-8228)
+ * Fixed Rename Symbol Under Cursor for C++ macros
* Added support for -stdlib=.. variants
- * Fixed code completion in nested classes when enclosing class is template
- * Fixed code completion for operator-> (QTCREATORBUG-629)
- * Fixed code completion when casting inside parentheses
- (QTCREATORBUG-8368)
- * Switched to C++11 parsing in cases of doubt (CMake/Autotools/Generic)
* Fixed constructor parsing in cases with unnamed parameters
- * Introduced formatting options for pointers and references
- (QTCREATORBUG-6169)
+ * Code completion
+ * Added code completion for instantiation of templates with default
+ argument
+ * Improved code completion for Qt containers (QTCREATORBUG-8228)
+ * Fixed code completion for classes in class templates
+ * Fixed code completion for operator-> (QTCREATORBUG-629)
+ * Fixed code completion when casting inside parentheses (QTCREATORBUG-8368)
+ * C++11 support
+ * Added C++11 alignof and alignas tokens
+ * Added support for C++11 brace initializers (QTCREATORBUG-7919 et al)
+ * Added support for C++11 ref-qualifiers in function declarators: void
+ foo() const &; void bar() && and related pointer-to-member declarators
+ * Added support for C++11 enum classes and opaque enum declarations
+ * Fixed use of >> in C++11 template arguments
+ * Switched to C++11 parsing in cases of doubt (CMake/Autotools/Generic)
+ * Fixed parsing of C++11 noexcept(constant-expression)
+ * Added parsing of alias declarations:
+ using Foo = std::vector<int>::iterator
+ * Improved handling of lambda captures (QTCREATORBUG-7968,
+ QTCREATORBUG-7949)
QML/JS Support
* Improved JS Console
* Fixed indentation in if condition and lambda expressions
(QTCREATORBUG-7243)
- * Added persistent trie to store imports
+ * Made sure default kit for new Qt Quick 2 UI project is Qt 5 based
+ (QTCREATORBUG-8424)
+ * Added detection of import type from main file to invoke QML Viewer when
+ previewing QML documents that import Qt Quick 1 (QTCREATORBUG-8358)
+ * Corrected handling of Qt Quick 2 only features
+ (QTCREATORBUG-8750, QTCREATORBUG-8624, QTCREATORBUG-8584,
+ QTCREATORBUG-8583, QTCREATORBUG-8429)
+ * Added import completion in editor
+ * Improved speed of QML/JS Editor for large files (QTCREATORBUG-8673)
+ * Made contextual help more robust (QTCREATORBUG-3169)
* Improved initial kit selection (QTCREATORBUG-8424)
* Added detection of import type from main file (QTCREATORBUG-8358)
- * Fixed QmlProjectManager (QTCREATORBUG-8679, QTCREATORBUG-8680)
+ * Hid properties starting with "__" in auto-completion
+ * Changed paser to enforce strict mode for javascript within a QML file
GLSL Support
Help
- * Used zoom factor instead of text size multiplier (QTCREATORBUG-7199)
- * Corrected setup of HelpNetworkReply for offline resources
+ * Used zoom factor instead of text size multiplier to make also images
+ smaller when zooming in (QTCREATORBUG-7199)
+ * Corrected setup of HelpNetworkReply for offline resources to display
+ standard help icons correctly when viewing documents in Help mode
(QTCREATORBUG-8211)
Qt Designer
@@ -153,27 +170,25 @@ Qt Quick Designer
* Added manual test files for Qt Quick 2
* Added QQuickItem to New Class wizard
-Version control plugins
-
-Git
- * Introduced MergeTool support
- * Added timeout to the gerrit query process
- * Added support for merge status
- * Fixed log encoding
- * Reorganized menu (QTCREATORBUG-8363)
- * Added gitk launch for current file (QTCREATORBUG-8327)
- * Added branch name validation (QTCREATORBUG-8370)
- * Added Merge and Rebase (QTCREATORBUG-8367)
- * Added auto stash when switching branches (QTCREATORBUG-8417)
- * Added Soft Reset to Reset dialog
- * Added context actions for cherry-pick and revert
- * Implemented refreshing file list on commit page every time
- it becomes visible (QTCREATORBUG-5645)
-
-SVN
-
-ClearCase
- * Marked the plugin as non-experimental
+Version Control Systems
+ * Git
+ * Dropped support for Git versions earlier than 1.7.2
+ * Introduced Merge Tool support
+ * Added timeout to the Gerrit query process
+ * Added support for merge status
+ * Fixed log encoding
+ * Reorganized Git menu (QTCREATORBUG-8363)
+ * Added Gitk launch for current file (QTCREATORBUG-8327)
+ * Added branch name validation (QTCREATORBUG-8370)
+ * Added Merge and Rebase for branches in local repository
+ (QTCREATORBUG-8367)
+ * Added automatic stashing when switching branches (QTCREATORBUG-8417)
+ * Added Soft Reset to Reset dialog
+ * Added Cherry-Pick Commit and Revert Single Commit in local repository
+ * Implemented refreshing file list in Git Commit pane every time
+ it is displayed (QTCREATORBUG-5645)
+ * Promoted the ClearCase plugin from an experimental plugin to a
+ standard plugin
FakeVim
* Created new suite of auto tests
@@ -203,9 +218,12 @@ WelcomePage:
Platform Specific
Mac
+ * Replaced xterm with Terminal.app as default terminal (QTCREATORBUG-6371)
Linux
* Added crash handler providing a backtrace for debug builds
+ * Added support for terminal emulators that share a unique process
+ (QTCREATORBUG-1633)
Windows
* Improved UI to handle x64 and amd64 etc toolchains
diff --git a/doc/images/creator-qbs-project.png b/doc/images/creator-qbs-project.png
new file mode 100644
index 00000000000..ec4dcadae10
--- /dev/null
+++ b/doc/images/creator-qbs-project.png
Binary files differ
diff --git a/doc/images/creator-run-settings-qbs.png b/doc/images/creator-run-settings-qbs.png
new file mode 100644
index 00000000000..a8236387a9d
--- /dev/null
+++ b/doc/images/creator-run-settings-qbs.png
Binary files differ
diff --git a/doc/images/qtcreator-add-breakpoint.png b/doc/images/qtcreator-add-breakpoint.png
index b984afbf961..a21f6b737bd 100644
--- a/doc/images/qtcreator-add-breakpoint.png
+++ b/doc/images/qtcreator-add-breakpoint.png
Binary files differ
diff --git a/doc/src/android/androiddev.qdoc b/doc/src/android/androiddev.qdoc
index fce11320d79..ab5f2614e68 100644
--- a/doc/src/android/androiddev.qdoc
+++ b/doc/src/android/androiddev.qdoc
@@ -34,6 +34,12 @@
with the Android device type, the tool chain, and the Qt version for Android,
to build and run applications on Android devices.
+ The Android Debug Bridge (adb) command line tool is integrated to \QC to
+ enable you to deploy applications to connected Android devices, to run
+ the applications on them, and to read logs from them. It includes a client
+ and server that run on the development host and a daemon that runs on the
+ emulator or device.
+
\section1 Requirements
To use \QC to develop Qt applications for Android, you need the following:
@@ -112,6 +118,10 @@
\section1 Debugging on Android Devices
+ \QC is integrated with the GDB and GDB server that are delivered with the
+ Necessitas SDK. It provides GDB with Python support that enables \QC to
+ display custom Qt types, such as QString, QObject, and so on.
+
Android devices support debugging multi-thread applications in version
2.2.1 and later. If you use AVD, select Android 2.3, or later. For more
information, see the Android documentation.
diff --git a/doc/src/debugger/creator-debugger.qdoc b/doc/src/debugger/creator-debugger.qdoc
index 30834412307..ff73ad3c14a 100644
--- a/doc/src/debugger/creator-debugger.qdoc
+++ b/doc/src/debugger/creator-debugger.qdoc
@@ -502,34 +502,80 @@
The interruption of a program by a breakpoint can be restricted with
certain conditions.
- To set a breakpoint at a particular line you want the program to stop,
- click the left margin or press \key F9 (\key F8 for Mac OS X).
+ You can set and delete breakpoints before the program starts running or
+ while it is running under the debugger's control. Breakpoints are saved
+ together with a session.
+
+ \section2 Adding Breakpoints
+
+ To add breakpoints:
+
+ \list 1
+
+ \li Add a new breakpoint in one of the following ways:
+
+ \list
+
+ \li In the code editor, click the left margin or press \key F9
+ (\key F8 for Mac OS X) at a particular line you want the
+ program to stop.
+
+ \li In the \gui Breakpoints view, double-click in the empty
+ part of the view.
+
+ \li In the \gui Breakpoints view, select \gui {Add Breakpoint}
+ in the context menu.
+
+ \endlist
+
+ \li In the \gui {Breakpoint type} field, select the location in the
+ program code where you want the program to stop. The other options
+ to specify depend on the selected location.
- To set breakpoints, select \gui {Add Breakpoint} in
- the context menu in the \gui Breakpoints view.
+ \image qtcreator-add-breakpoint.png "Add Breakpoints" dialog
- \image qtcreator-add-breakpoint.png "Add Breakpoints" dialog
+ \li In the \gui Condition field, set the condition to be evaluated
+ before stopping at the breakpoint if the condition evaluates as
+ true.
- \note You can remove a breakpoint:
+ \li In the \gui Ignore field, specify the number of times that the
+ breakpoint is ignored before the program stops.
+
+ \li In the \gui Commands field, specify the commands to execute when
+ the program stops; one command on a line. GDB executes the commands
+ in the order in which they are specified.
+
+ \endlist
+
+ For more information on breakpoints, see
+ \l{http://sourceware.org/gdb/onlinedocs/gdb/Breakpoints.html#Breakpoints}
+ {Breakpoints, Watchpoints, and Catchpoints} in GDB documentation.
+
+ \section2 Moving Breakpoints
+
+ To move the breakpoint, drag and drop a breakpoint marker to another line.
+
+ \section2 Deleting Breakpoints
+
+ To delete breakpoints:
\list
- \li By clicking the breakpoint marker in the text editor.
+ \li Click the breakpoint marker in the text editor.
- \li By selecting the breakpoint in the breakpoint view and pressing
+ \li Select the breakpoint in the \gui Breakpoints view and press
\key{Delete}.
- \li By selecting \gui{Delete Breakpoint} from the context
- menu in the \gui Breakpoints view.
+ \li Select \gui{Delete Breakpoint} in the context menu in the
+ \gui Breakpoints view.
\endlist
- You can set and delete breakpoints before the program starts running or
- while it is running under the debugger's control. Breakpoints are saved
- together with a session.
-
\section2 Setting Data Breakpoints
+ A \e {data breakpoint} stops the program when data is read or written at the
+ specified address.
+
To set a data breakpoint at an address:
\list 1
@@ -1281,8 +1327,10 @@
However, the usefulness of this security measure seems dubious,
because this feature can be easily disabled. With root permissions, you can
- disable the feature immediately by writing \c{0} into
- \c{/proc/sys/kernel/yama/ptrace_scope}. Even if you do not have elevated
+ disable the feature temporarily by writing \c{0} into
+ \c{/proc/sys/kernel/yama/ptrace_scope} or permanently by changing
+ the value in \c{/etc/sysctl.d/10-ptrace.conf}.
+ Even if you do not have elevated
permissions, you can disable the feature later by adding a library that
calls \c{prctl(0x59616d61, getppid(), 0, 0, 0);}, such as the one in
\c{$QTCREATORDIR/lib/libptracepreload.so} to the LD_PRELOAD environment.
diff --git a/doc/src/howto/creator-cli.qdoc b/doc/src/howto/creator-cli.qdoc
index 8fc09089242..a9577871520 100644
--- a/doc/src/howto/creator-cli.qdoc
+++ b/doc/src/howto/creator-cli.qdoc
@@ -79,6 +79,10 @@
\li -client
\li Attempt to connect to an already running instance of \QC.
+ \row
+ \li -load <plugin>
+ \li Load the specified plugin.
+
\row
\li -noload <plugin>
\li Do not load the specified plugin.
diff --git a/doc/src/howto/creator-vcs.qdoc b/doc/src/howto/creator-vcs.qdoc
index 49684e7616d..f4e07fbc2ad 100644
--- a/doc/src/howto/creator-vcs.qdoc
+++ b/doc/src/howto/creator-vcs.qdoc
@@ -43,7 +43,7 @@
\row
\li ClearCase
\li \l{http://www-01.ibm.com/software/awdtools/clearcase/}
- \li Experimental plugin in \QC 2.6
+ \li \QC 2.6 and later
\row
\li CVS
\li \l{http://www.cvshome.org}
@@ -51,7 +51,7 @@
\row
\li Git
\li \l{http://git-scm.com/}
- \li
+ \li Git version 1.7.2, or later
\row
\li Mercurial
\li \l{http://mercurial.selenic.com/}
@@ -293,29 +293,17 @@
Bazaar is a free version control system sponsored by Canonical.
- The \gui Bazaar submenu contains the following additional items:
-
- \table
- \header
- \li Menu Item
- \li Description
- \row
- \li \gui{Pull}
- \li Turn the branch into a mirror of another branch.
- \row
- \li \gui{Push}
- \li Update a mirror of the branch.
-
- \endtable
+ In addition to the standard version control system functions, you can
+ select \gui Tools > \gui Bazaar > \gui Pull to turn the branch into a
+ mirror of another branch. To update a mirror of the branch, select
+ \gui Push.
\section2 Using Additional ClearCase Functions
IBM Rational ClearCase is a version control, workspace management, parallel
development support, and build automation solution developed by IBM. The
- ClearCase client plugin is an experimental plugin that you can enable by
- selecting \gui Help > \gui {About Plugins} > \gui {Version Control} >
- \gui ClearCase. The ClearCase client plugin is available on Linux and
- Windows for accessing a ClearCase server.
+ ClearCase client plugin is available on Linux and Windows for accessing a
+ ClearCase server.
The \gui ClearCase submenu contains the following additional items:
@@ -350,20 +338,9 @@
CVS is an open source version control system.
- The \gui CVS submenu contains the following additional items:
-
- \table
- \header
- \li Menu Item
- \li Description
- \row
- \li \gui{Edit}
- \li Open a file for editing.
- \row
- \li \gui{Unedit}
- \li Discard the changes that you made in a file.
-
- \endtable
+ In addition to the standard version control system functions, you can
+ select \gui Tools > \gui CVS > \gui Edit to open a file for editing.
+ To discard the changes that you made in a file, select \gui Unedit.
\section2 Using Additional Git Functions
@@ -623,15 +600,8 @@
Subversion is an open source version control system.
- The \gui Subversion submenu contains the following additional items:
-
- \table
- \header
- \li Menu Item
- \li Description
- \row
- \li \gui{Describe}
- \li Display commit log messages for a revision.
- \endtable
+ In addition to the standard version control system functions, you can
+ select \gui Tools > \gui Subversion > \gui Describe to display commit log
+ messages for a revision.
*/
diff --git a/doc/src/projects/creator-projects-autotools.qdoc b/doc/src/projects/creator-projects-autotools.qdoc
index 9f6e165b2d1..af969d1f33d 100644
--- a/doc/src/projects/creator-projects-autotools.qdoc
+++ b/doc/src/projects/creator-projects-autotools.qdoc
@@ -32,7 +32,7 @@
/*!
\contentspage index.html
- \previouspage creator-project-cmake.html
+ \previouspage creator-project-qbs.html
\page creator-projects-autotools.html
\nextpage creator-project-generic.html
diff --git a/doc/src/projects/creator-projects-cmake.qdoc b/doc/src/projects/creator-projects-cmake.qdoc
index ab97d641734..54638f942a8 100644
--- a/doc/src/projects/creator-projects-cmake.qdoc
+++ b/doc/src/projects/creator-projects-cmake.qdoc
@@ -26,7 +26,7 @@
\contentspage index.html
\previouspage creator-project-other.html
\page creator-project-cmake.html
- \nextpage creator-projects-autotools.html
+ \nextpage creator-project-qbs.html
\title Setting Up a CMake Project
diff --git a/doc/src/projects/creator-projects-other.qdoc b/doc/src/projects/creator-projects-other.qdoc
index 655504c20c6..1a4c3242e57 100644
--- a/doc/src/projects/creator-projects-other.qdoc
+++ b/doc/src/projects/creator-projects-other.qdoc
@@ -40,6 +40,14 @@
CMake is an alternative to qmake for automating the generation of
build configurations.
+ \li \l{Setting Up a Qbs Project}
+
+ Qt Build Suite (Qbs) is a new build tool for Qt. It is an all-in-one
+ tool that generates a build graph from a high-level project
+ description (like qmake or CMake do) and executes the commands in
+ the low-level build graph (like make does). Qbs is still
+ experimental, but you can use it to build \QC, for example.
+
\li \l{Setting Up an Autotools Project}
\QC can open projects that use the Autotools build system. You can
diff --git a/doc/src/projects/creator-projects-qbs.qdoc b/doc/src/projects/creator-projects-qbs.qdoc
new file mode 100644
index 00000000000..29b0efdd821
--- /dev/null
+++ b/doc/src/projects/creator-projects-qbs.qdoc
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** Copyright (c) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of Qt Creator
+**
+**
+** GNU Free Documentation License
+**
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of this
+** file.
+**
+**
+****************************************************************************/
+
+/*!
+ \contentspage index.html
+ \previouspage creator-project-cmake.html
+ \page creator-project-qbs.html
+ \nextpage creator-projects-autotools.html
+
+ \title Setting Up a Qbs Project
+
+ The Qt Build Suite (Qbs) and the Qbs plugin are still experimental, and
+ therefore, you must first build them from sources. You can use the Qbs
+ plugin only with a \QC instance you also built from sources by using the
+ same tool chain as for building Qbs and the Qbs plugin.
+
+ To use Qbs to build a project, you must create a .qbs file for the project.
+ For more information, see the
+ \l{http://doc-snapshot.qt-project.org/qbs/index.html}{Qbs Manual}.
+
+ \section1 Building the Qbs Plugin
+
+ To build the Qbs plugin and to enable it in \QC:
+
+ \list 1
+
+ \li Clone the Qbs repository and build Qbs.
+
+ \li Set values for the environment variables that specify the Qbs source
+ directory (QBS_SOURCE_DIR) and build directory (QBS_BUILD_DIR).
+
+ \li To build the Qbs plugin that is located in the
+ \c {src\plugins\qbsprojectmanager} directory in the \QC source
+ directory, clone the \QC repository and build \QC.
+
+ \li To enable the plugin, select \gui Help > \gui {About Plugins} >
+ \gui {Build Systems} > \gui {QbsProjectManager}.
+
+ \li To use the plugin, restart \QC.
+
+ \endlist
+
+ \section1 Building Applications with Qbs
+
+ To build your application with Qbs:
+
+ \list 1
+
+ \li Create a .qbs file for your project. For examples, see the
+ \c {tests\manual} directory in the qbs repository.
+
+ \li In \QC, select \gui File > \gui {Open File or Project}.
+
+ \li Select the .qbs file for your project.
+
+ \image creator-qbs-project.png
+
+ \li Select \gui Build > \gui {Build Project} to build the executable, so
+ that you can specify it in the run settings of the project.
+
+ \li Select \gui Projects > \gui {Run}, and specify the executable in the
+ \gui Command field. This allows you to run it directly from \QC.
+ This will happen automatically in a future release.
+
+ \image creator-run-settings-qbs.png
+
+ \li Click the
+ \inlineimage qtcreator-run.png
+ (\gui Run) button to run the application.
+
+ \endlist
+
+*/
diff --git a/doc/src/qtcreator.qdoc b/doc/src/qtcreator.qdoc
index 442531398e9..00a2beffc83 100644
--- a/doc/src/qtcreator.qdoc
+++ b/doc/src/qtcreator.qdoc
@@ -286,6 +286,7 @@
\li \l{Using Other Build Systems}
\list
\li \l{Setting Up a CMake Project}
+ \li \l{Setting Up a Qbs Project}
\li \l{Setting Up an Autotools Project}
\li \l{Setting Up a Generic Project}
\endlist
diff --git a/qbs/pluginspec/pluginspec.qbs b/qbs/pluginspec/pluginspec.qbs
index 9e7861f0169..4ff2d018884 100644
--- a/qbs/pluginspec/pluginspec.qbs
+++ b/qbs/pluginspec/pluginspec.qbs
@@ -23,12 +23,12 @@ Module {
var cmd = new JavaScriptCommand();
cmd.description = "prepare " + FileInfo.fileName(output.fileName);
cmd.highlight = "codegen";
- cmd.qtcreator_version = product.module.qtcreator_version;
- cmd.ide_version_major = product.module.ide_version_major;
- cmd.ide_version_minor = product.module.ide_version_minor;
- cmd.ide_version_release = product.module.ide_version_release;
+ cmd.qtcreator_version = product.moduleProperty("pluginspec", "qtcreator_version");
+ cmd.ide_version_major = product.moduleProperty("pluginspec", "ide_version_major");
+ cmd.ide_version_minor = product.moduleProperty("pluginspec", "ide_version_minor");
+ cmd.ide_version_release = product.moduleProperty("pluginspec", "ide_version_release");
- cmd.pluginspecreplacements = product.module.pluginspecreplacements;
+ cmd.pluginspecreplacements = product.moduleProperty("pluginspec", "pluginspecreplacements");
cmd.sourceCode = function() {
var i;
@@ -60,7 +60,7 @@ Module {
Artifact {
fileTags: ["qt_plugin_metadata"]
fileName: {
- var destdir = FileInfo.joinPaths(product.modules["qt/core"].generatedFilesDir,
+ var destdir = FileInfo.joinPaths(product.moduleProperty("qt/core", "generatedFilesDir"),
input.fileName);
return destdir.replace(/\.[^\.]*$/, '.json');
}
@@ -68,7 +68,7 @@ Module {
prepare: {
var xslFile = project.path + "/src/pluginjsonmetadata.xsl";
- var xmlPatternsPath = product.modules["qt/core"].binPath + "/xmlpatterns";
+ var xmlPatternsPath = product.moduleProperty("qt/core", "binPath") + "/xmlpatterns";
var args = [
"-no-format",
"-output",
diff --git a/qtcreator.qbs b/qtcreator.qbs
index c851330dddc..4648db53f16 100644
--- a/qtcreator.qbs
+++ b/qtcreator.qbs
@@ -45,6 +45,7 @@ Project {
"src/plugins/debugger/debugger.qbs",
"src/plugins/debugger/ptracepreload.qbs",
"src/plugins/designer/designer.qbs",
+ "src/plugins/diffeditor/diffeditor.qbs",
"src/plugins/fakevim/fakevim.qbs",
"src/plugins/find/find.qbs",
"src/plugins/genericprojectmanager/genericprojectmanager.qbs",
@@ -109,7 +110,7 @@ Project {
cmd.ide_version_major = product.ide_version_major;
cmd.ide_version_minor = product.ide_version_minor;
cmd.ide_version_release = product.ide_version_release;
- cmd.onWindows = (product.modules.qbs.targetOS == "windows");
+ cmd.onWindows = (product.moduleProperty("qbs", "targetOS") === "windows");
cmd.sourceCode = function() {
var file = new TextFile(input.fileName);
var content = file.readAll();
diff --git a/scripts/deployqt.py b/scripts/deployqt.py
index 69ca2d38fd8..4420c4b917e 100755
--- a/scripts/deployqt.py
+++ b/scripts/deployqt.py
@@ -251,7 +251,7 @@ def main():
QT_INSTALL_IMPORTS = readQmakeVar(qmake_bin, 'QT_INSTALL_IMPORTS')
QT_INSTALL_TRANSLATIONS = readQmakeVar(qmake_bin, 'QT_INSTALL_TRANSLATIONS')
- plugins = ['accessible', 'designer', 'iconengines', 'imageformats', 'platforms', 'printsupport', 'sqldrivers']
+ plugins = ['accessible', 'codecs', 'designer', 'iconengines', 'imageformats', 'platforms', 'printsupport', 'sqldrivers']
imports = ['Qt', 'QtWebKit']
if sys.platform.startswith('win'):
diff --git a/share/qtcreator/qml-type-descriptions/qbs-bundle.json b/share/qtcreator/qml-type-descriptions/qbs-bundle.json
new file mode 100644
index 00000000000..a6f70ed7928
--- /dev/null
+++ b/share/qtcreator/qml-type-descriptions/qbs-bundle.json
@@ -0,0 +1,14 @@
+{
+ "name": "qbs",
+ "searchPaths": [
+ "$(QBS_IMPORT_PATH)"],
+ "installPaths": [
+ "$(QBS_IMPORT_PATH)"],
+ "implicitImports": [
+ "__javascriptQt5__"],
+ "supportedImports": [
+ "qbs.base 1.0",
+ "qbs 1.0",
+ "qbs.fileinfo 1.0",
+ "qbs.probe 1.0"]
+}
diff --git a/share/qtcreator/qml-type-descriptions/qmlproject-bundle.json b/share/qtcreator/qml-type-descriptions/qmlproject-bundle.json
new file mode 100644
index 00000000000..5cf6d6c6875
--- /dev/null
+++ b/share/qtcreator/qml-type-descriptions/qmlproject-bundle.json
@@ -0,0 +1,12 @@
+{
+ "name": "qmlproject",
+ "searchPaths": [
+ ""],
+ "installPaths": [
+ ""],
+ "implicitImports": [
+ ""],
+ "supportedImports": [
+ "QmlProject 1.0",
+ "QmlProject 1.1"]
+}
diff --git a/share/qtcreator/qml-type-descriptions/qmltypes-bundle.json b/share/qtcreator/qml-type-descriptions/qmltypes-bundle.json
new file mode 100644
index 00000000000..1b8afd046c8
--- /dev/null
+++ b/share/qtcreator/qml-type-descriptions/qmltypes-bundle.json
@@ -0,0 +1,9 @@
+{
+ "name":"qmltypes",
+ "searchPaths":[],
+ "installPaths":[],
+ "implicitImports":[],
+ "supportedImports":[
+ "QtQuick.tooling 1.1",
+ "QtQuick.tooling 1.0"]
+}
diff --git a/share/qtcreator/qml-type-descriptions/qt4QtQuick1-bundle.json b/share/qtcreator/qml-type-descriptions/qt4QtQuick1-bundle.json
new file mode 100644
index 00000000000..97066c2af76
--- /dev/null
+++ b/share/qtcreator/qml-type-descriptions/qt4QtQuick1-bundle.json
@@ -0,0 +1,17 @@
+{
+ "name": "QtQuick1",
+ "searchPaths": [
+ "$(QT_INSTALL_IMPORTS)"],
+ "installPaths": [
+ "$(QT_INSTALL_IMPORTS)"],
+ "implicitImports": [
+ "__javascriptQt4__"],
+ "supportedImports": [
+ "QtQuick 1.0",
+ "QtQuick 1.1",
+ "Qt.labs.gestures 1.0",
+ "Qt.labs.particles 1.0",
+ "Qt.labs.shaders 1.0",
+ "Qt.labs.folderlistmodel 1.0",
+ "QtWebKit 1.0"]
+}
diff --git a/share/qtcreator/qml-type-descriptions/qt5QtQuick1-bundle.json b/share/qtcreator/qml-type-descriptions/qt5QtQuick1-bundle.json
new file mode 100644
index 00000000000..cee8a45c302
--- /dev/null
+++ b/share/qtcreator/qml-type-descriptions/qt5QtQuick1-bundle.json
@@ -0,0 +1,16 @@
+{
+ "name": "QtQuick1",
+ "searchPaths": [
+ "$(QT_INSTALL_IMPORTS)"],
+ "installPaths": [
+ "$(QT_INSTALL_IMPORTS)"],
+ "implicitImports": [
+ "__javascriptQt5__"],
+ "supportedImports": [
+ "QtQuick 1.1",
+ "Qt.labs.gestures 1.0",
+ "Qt.labs.particles 1.0",
+ "Qt.labs.shaders 1.0",
+ "Qt.labs.folderlistmodel 1.0",
+ "QtWebKit 1.0"]
+}
diff --git a/share/qtcreator/qml-type-descriptions/qt5QtQuick2-bundle.json b/share/qtcreator/qml-type-descriptions/qt5QtQuick2-bundle.json
new file mode 100644
index 00000000000..896e32c36b2
--- /dev/null
+++ b/share/qtcreator/qml-type-descriptions/qt5QtQuick2-bundle.json
@@ -0,0 +1,20 @@
+{
+ "name": "QtQuick2",
+ "searchPaths": [
+ "$(QT_INSTALL_QML)"],
+ "installPaths": [
+ "$(QT_INSTALL_QML)"],
+ "implicitImports": [
+ "__javascriptQt5__"],
+ "supportedImports": [
+ "Qt.labs.folderlistmodel 2.0",
+ "QtAudioEngine 1.0",
+ "QtMultimedia 5.0",
+ "QtQuick.LocalStorage 2.0",
+ "QtQuick.Particles 2.0",
+ "QtQuick.Window 2.0",
+ "QtQuick.XmlListModel 2.0",
+ "QtQuick 2.0",
+ "QtTest 1.0",
+ "QtWebKit 3.0"]
+}
diff --git a/share/qtcreator/snippets/cpp.xml b/share/qtcreator/snippets/cpp.xml
index 67a8f23bf50..05ce9bd89fc 100644
--- a/share/qtcreator/snippets/cpp.xml
+++ b/share/qtcreator/snippets/cpp.xml
@@ -1,5 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<snippets>
+<snippet group="C++" trigger="main" id="cpp_main">int main(int argc, char *argv[])
+{
+ $$
+ return 0;
+}
+</snippet>
<snippet group="C++" trigger="class" id="cpp_genericclass">class $name$
{
public:
diff --git a/share/qtcreator/templates/qml/qtquick1_1/main.qmlproject b/share/qtcreator/templates/qml/qtquick1_1/main.qmlproject
index 4abcb0d9750..558f68d0351 100644
--- a/share/qtcreator/templates/qml/qtquick1_1/main.qmlproject
+++ b/share/qtcreator/templates/qml/qtquick1_1/main.qmlproject
@@ -3,7 +3,7 @@
import QmlProject 1.1
Project {
-# QTC_REPLACE main.qml WITH main
+// QTC_REPLACE main.qml WITH main
mainFile: "main.qml"
/* Include .qml, .js, and image files from current directory and subdirectories */
diff --git a/share/qtcreator/templates/qml/qtquick2/main.qmlproject b/share/qtcreator/templates/qml/qtquick2/main.qmlproject
index 4abcb0d9750..558f68d0351 100644
--- a/share/qtcreator/templates/qml/qtquick2/main.qmlproject
+++ b/share/qtcreator/templates/qml/qtquick2/main.qmlproject
@@ -3,7 +3,7 @@
import QmlProject 1.1
Project {
-# QTC_REPLACE main.qml WITH main
+// QTC_REPLACE main.qml WITH main
mainFile: "main.qml"
/* Include .qml, .js, and image files from current directory and subdirectories */
diff --git a/share/qtcreator/templates/wizards/bb-guiapp/main.cpp b/share/qtcreator/templates/wizards/bb-guiapp/main.cpp
index 198a87db963..524ad5b6338 100644
--- a/share/qtcreator/templates/wizards/bb-guiapp/main.cpp
+++ b/share/qtcreator/templates/wizards/bb-guiapp/main.cpp
@@ -4,6 +4,8 @@
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
+ // Set default BB10 style. You can also use bb10dark style
+ a.setStyle(QLatin1String("bb10bright"));
MainWidget w;
w.showMaximized();
diff --git a/share/qtcreator/templates/wizards/bb-qt5-guiapp/main.cpp b/share/qtcreator/templates/wizards/bb-qt5-guiapp/main.cpp
index f49892189e5..68ab283ccfd 100644
--- a/share/qtcreator/templates/wizards/bb-qt5-guiapp/main.cpp
+++ b/share/qtcreator/templates/wizards/bb-qt5-guiapp/main.cpp
@@ -4,6 +4,8 @@
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
+ // Set default BB10 style. You can also use bb10dark style
+ a.setStyle(QLatin1String("bb10bright"));
MainWidget w;
w.showFullScreen();
diff --git a/share/qtcreator/templates/wizards/bb-qt5-quick2app/bar-descriptor.xml b/share/qtcreator/templates/wizards/bb-qt5-quick2app/bar-descriptor.xml
deleted file mode 100644
index 3a0bac85820..00000000000
--- a/share/qtcreator/templates/wizards/bb-qt5-quick2app/bar-descriptor.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="no"?>
-<qnx xmlns="http://www.qnx.com/schemas/application/1.0">
- <id>com.example.%ProjectName%</id>
- <name>%ProjectName%</name>
- <versionNumber>1.0.0</versionNumber>
- <description>DESCRIPTION</description>
-
- <initialWindow>
- <systemChrome>none</systemChrome>
- <transparent>false</transparent>
- <autoOrients>true</autoOrients>
- <aspectRatio>landscape</aspectRatio>
- </initialWindow>
- <publisher>PUBLISHER</publisher>
- <copyright>COPYRIGHT</copyright>
-
- <env var="QML2_IMPORT_PATH" value="app/native/imports"/>
- <env var="QT_PLUGIN_PATH" value="app/native/plugins"/>
- <env var="LD_LIBRARY_PATH" value="app/native/lib"/>
-
- <arg>-platform</arg>
- <arg>qnx</arg>
-
- <action system="true">run_native</action>
- <asset entry="true" path="%ProjectName%" type="Qnx/Elf">%ProjectName%</asset>
-
- <asset path="%SRC_DIR%/qml">qml</asset>
-
- <!-- These values will be replaced when deploying in Qt Creator -->
- <asset path="%QT_INSTALL_LIBS%">lib</asset>
- <asset path="%QT_INSTALL_PLUGINS%">plugins</asset>
- <asset path="%QT_INSTALL_QML%">imports</asset>
-</qnx>
diff --git a/share/qtcreator/templates/wizards/bb-qt5-quick2app/icon.png b/share/qtcreator/templates/wizards/bb-qt5-quick2app/icon.png
deleted file mode 100644
index 5260eb64d91..00000000000
--- a/share/qtcreator/templates/wizards/bb-qt5-quick2app/icon.png
+++ /dev/null
Binary files differ
diff --git a/share/qtcreator/templates/wizards/bb-qt5-quick2app/main.cpp b/share/qtcreator/templates/wizards/bb-qt5-quick2app/main.cpp
deleted file mode 100644
index ec44f30cf92..00000000000
--- a/share/qtcreator/templates/wizards/bb-qt5-quick2app/main.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <QGuiApplication>
-#include "qtquick2applicationviewer.h"
-
-int main(int argc, char *argv[])
-{
- QGuiApplication app(argc, argv);
-
- QtQuick2ApplicationViewer viewer;
- viewer.setMainQmlFile(QLatin1String("qml/main.qml")); // MAINQML
- viewer.showExpanded();
-
- return app.exec();
-} \ No newline at end of file
diff --git a/share/qtcreator/templates/wizards/bb-qt5-quick2app/project.pro b/share/qtcreator/templates/wizards/bb-qt5-quick2app/project.pro
deleted file mode 100644
index 622209b2abd..00000000000
--- a/share/qtcreator/templates/wizards/bb-qt5-quick2app/project.pro
+++ /dev/null
@@ -1,15 +0,0 @@
-TEMPLATE = app
-
-# Please do not modify the following line.
-include(qtquick2applicationviewer/qtquick2applicationviewer.pri)
-
-QT += qml quick
-
-# Additional import path used to resolve QML modules in Creator's code model
-QML_IMPORT_PATH =
-
-# The .cpp file which was generated for your project. Feel free to hack it.
-SOURCES += main.cpp
-
-OTHER_FILES += bar-descriptor.xml \
- qml/main.qml
diff --git a/share/qtcreator/templates/wizards/bb-qt5-quick2app/qml/main.qml b/share/qtcreator/templates/wizards/bb-qt5-quick2app/qml/main.qml
deleted file mode 100644
index 5968d869731..00000000000
--- a/share/qtcreator/templates/wizards/bb-qt5-quick2app/qml/main.qml
+++ /dev/null
@@ -1,17 +0,0 @@
-import QtQuick 2.0
-
-Rectangle {
- width: 1024
- height: 600
- Text {
- text: qsTr("Hello from QtQuick2")
- anchors.centerIn: parent
- }
- MouseArea {
- anchors.fill: parent
- onClicked: {
- Qt.quit();
- }
- }
-}
-
diff --git a/share/qtcreator/templates/wizards/bb-qt5-quick2app/wizard.xml b/share/qtcreator/templates/wizards/bb-qt5-quick2app/wizard.xml
deleted file mode 100644
index d8e5618ae09..00000000000
--- a/share/qtcreator/templates/wizards/bb-qt5-quick2app/wizard.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (C) 2011 - 2013 Research In Motion
-**
-** Contact: Research In Motion (blackberry-qt@qnx.com)
-** Contact: KDAB (info@kdab.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** 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.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Digia.
-**
-**************************************************************************/
--->
-<wizard version="1" kind="project"
- class="qt4project" firstpage="10"
- id="Q.QnxBlackBerryQQ2App" category="F.QtApplications"
- featuresRequired="QtSupport.Wizards.FeatureBlackBerry">
- <icon>icon.png</icon>
- <displayname>BlackBerry Qt Quick 2 Application</displayname>;
- <description>Creates an experimental Qt Quick 2 application for BlackBerry 10. You need to provide your own build of Qt 5 for BlackBerry 10 since Qt 5 is not provided in the current BlackBerry 10 NDK and is not included in DevAlpha devices.</description>
- <files>
- <file source="main.cpp" openeditor="true"/>
- <file source="qml/main.qml" openeditor="true"/>
- <file source="bar-descriptor.xml" openeditor="true"/>
- <file source="project.pro" target="%ProjectName%.pro" openproject="true"/>
- <file source="../../qtquick2app/qtquick2applicationviewer/qtquick2applicationviewer.h" target="qtquick2applicationviewer/qtquick2applicationviewer.h" />
- <file source="../../qtquick2app/qtquick2applicationviewer/qtquick2applicationviewer.cpp" target="qtquick2applicationviewer/qtquick2applicationviewer.cpp" />
- <file source="../../qtquick2app/qtquick2applicationviewer/qtquick2applicationviewer.pri" target="qtquick2applicationviewer/qtquick2applicationviewer.pri" />
- </files>
-</wizard>
diff --git a/share/qtcreator/templates/wizards/bb-quickapp/bar-descriptor.xml b/share/qtcreator/templates/wizards/bb-quickapp/bar-descriptor.xml
deleted file mode 100644
index 3bf0f233123..00000000000
--- a/share/qtcreator/templates/wizards/bb-quickapp/bar-descriptor.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="no"?>
-<qnx xmlns="http://www.qnx.com/schemas/application/1.0">
- <id>com.example.%ProjectName%</id>
- <name>%ProjectName%</name>
- <versionNumber>1.0.0</versionNumber>
- <description>DESCRIPTION</description>
-
- <initialWindow>
- <systemChrome>none</systemChrome>
- <transparent>false</transparent>
- <autoOrients>true</autoOrients>
- <aspectRatio>landscape</aspectRatio>
- </initialWindow>
-
- <env var="QML_IMPORT_PATH" value="app/native/imports:/usr/lib/qt4/imports"/>
- <env var="QT_PLUGIN_PATH" value="app/native/plugins:/usr/lib/qt4/plugins"/>
- <env var="LD_LIBRARY_PATH" value="app/native/lib:/usr/lib/qt4/lib/"/>
-
- <action system="true">run_native</action>
- <asset entry="true" path="%ProjectName%" type="Qnx/Elf">%ProjectName%</asset>
-
- <asset path="%SRC_DIR%/qml">qml</asset>
-</qnx>
diff --git a/share/qtcreator/templates/wizards/bb-quickapp/icon.png b/share/qtcreator/templates/wizards/bb-quickapp/icon.png
deleted file mode 100644
index 5260eb64d91..00000000000
--- a/share/qtcreator/templates/wizards/bb-quickapp/icon.png
+++ /dev/null
Binary files differ
diff --git a/share/qtcreator/templates/wizards/bb-quickapp/main.cpp b/share/qtcreator/templates/wizards/bb-quickapp/main.cpp
deleted file mode 100644
index 618da57ec9b..00000000000
--- a/share/qtcreator/templates/wizards/bb-quickapp/main.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <QApplication>
-#include "qmlapplicationviewer.h"
-
-int main(int argc, char *argv[])
-{
- QScopedPointer<QApplication> app(createApplication(argc, argv));
-
- QmlApplicationViewer viewer;
- viewer.addImportPath(QLatin1String("modules")); // ADDIMPORTPATH
- viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto); // ORIENTATION
- viewer.setMainQmlFile(QLatin1String("qml/main.qml")); // MAINQML
- viewer.showExpanded();
-
- return app->exec();
-}
diff --git a/share/qtcreator/templates/wizards/bb-quickapp/project.pro b/share/qtcreator/templates/wizards/bb-quickapp/project.pro
deleted file mode 100644
index e2c68d149ce..00000000000
--- a/share/qtcreator/templates/wizards/bb-quickapp/project.pro
+++ /dev/null
@@ -1,13 +0,0 @@
-TEMPLATE = app
-
-# Please do not modify the following line.
-include(qmlapplicationviewer/qmlapplicationviewer.pri)
-
-# Additional import path used to resolve QML modules in Creator's code model
-QML_IMPORT_PATH =
-
-# The .cpp file which was generated for your project. Feel free to hack it.
-SOURCES += main.cpp
-
-OTHER_FILES += bar-descriptor.xml \
- qml/main.qml
diff --git a/share/qtcreator/templates/wizards/bb-quickapp/qml/main.qml b/share/qtcreator/templates/wizards/bb-quickapp/qml/main.qml
deleted file mode 100644
index 8cac67b0b3a..00000000000
--- a/share/qtcreator/templates/wizards/bb-quickapp/qml/main.qml
+++ /dev/null
@@ -1,17 +0,0 @@
-import QtQuick 1.1
-
-Rectangle {
- width: 360
- height: 360
- Text {
- text: qsTr("Hello World")
- anchors.centerIn: parent
- }
- MouseArea {
- anchors.fill: parent
- onClicked: {
- Qt.quit();
- }
- }
-}
-
diff --git a/share/qtcreator/templates/wizards/bb-quickapp/wizard.xml b/share/qtcreator/templates/wizards/bb-quickapp/wizard.xml
deleted file mode 100644
index d46c123cffe..00000000000
--- a/share/qtcreator/templates/wizards/bb-quickapp/wizard.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/**************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (C) 2011 - 2013 Research In Motion
-**
-** Contact: Research In Motion (blackberry-qt@qnx.com)
-** Contact: KDAB (info@kdab.com)
-**
-**
-** GNU Lesser General Public License Usage
-**
-** 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.
-**
-** Other Usage
-**
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Digia.
-**
-**************************************************************************/
--->
-<wizard version="1" kind="project"
- class="qt4project" firstpage="10"
- id="Q.QnxBlackBerryQQApp" category="F.QtApplications"
- featuresRequired="QtSupport.Wizards.FeatureBlackBerry">
- <icon>icon.png</icon>
- <displayname>BlackBerry Qt Quick Application</displayname>;
- <description>Creates a Qt Quick application for BlackBerry.</description>
- <files>
- <file source="main.cpp" openeditor="true"/>
- <file source="qml/main.qml" openeditor="true"/>
- <file source="bar-descriptor.xml" openeditor="true"/>
- <file source="project.pro" target="%ProjectName%.pro" openproject="true"/>
- <file source="../../qtquickapp/qmlapplicationviewer/qmlapplicationviewer.h" target="qmlapplicationviewer/qmlapplicationviewer.h" />
- <file source="../../qtquickapp/qmlapplicationviewer/qmlapplicationviewer.cpp" target="qmlapplicationviewer/qmlapplicationviewer.cpp" />
- <file source="../../qtquickapp/qmlapplicationviewer/qmlapplicationviewer.pri" target="qmlapplicationviewer/qmlapplicationviewer.pri" />
- </files>
-</wizard>
diff --git a/share/qtcreator/templates/wizards/qtcreatorplugin/myplugin.h b/share/qtcreator/templates/wizards/qtcreatorplugin/myplugin.h
index 92eaa9d3e8f..97aebfb6194 100644
--- a/share/qtcreator/templates/wizards/qtcreatorplugin/myplugin.h
+++ b/share/qtcreator/templates/wizards/qtcreatorplugin/myplugin.h
@@ -8,9 +8,10 @@
namespace %PluginName% {
namespace Internal {
-class %PluginName%Plugin : public ExtensionSystem::IPlugin
+class %PluginName:u%SHARED_EXPORT %PluginName%Plugin : public ExtensionSystem::IPlugin
{
Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "%PluginName%.json")
public:
%PluginName%Plugin();
diff --git a/share/qtcreator/translations/qtcreator_cs.ts b/share/qtcreator/translations/qtcreator_cs.ts
index ab1e91cd8ba..387ffcbf9b1 100644
--- a/share/qtcreator/translations/qtcreator_cs.ts
+++ b/share/qtcreator/translations/qtcreator_cs.ts
@@ -442,19 +442,19 @@
<name>CMakeProjectManager::Internal::CMakeRunPage</name>
<message>
<source>Please specify the path to the cmake executable. No cmake executable was found in the path.</source>
- <translation>Zadejte, prosím, cestu ke spustitelnému souboru cmake. V cestě nebyl nalezen žádný spustitelný soubor cmake.</translation>
+ <translation type="obsolete">Zadejte, prosím, cestu ke spustitelnému souboru cmake. V cestě nebyl nalezen žádný spustitelný soubor cmake.</translation>
</message>
<message>
<source> The cmake executable (%1) does not exist.</source>
- <translation> Spustitelný soubor cmake (%1) neexistuje.</translation>
+ <translation type="obsolete"> Spustitelný soubor cmake (%1) neexistuje.</translation>
</message>
<message>
<source> The path %1 is not a executable.</source>
- <translation>Cesta &apos;%1&apos; není spustitelným souborem.</translation>
+ <translation type="obsolete">Cesta &apos;%1&apos; není spustitelným souborem.</translation>
</message>
<message>
<source> The path %1 is not a valid cmake.</source>
- <translation>Cesta &apos;%1&apos; není platným cmake.</translation>
+ <translation type="obsolete">Cesta &apos;%1&apos; není platným cmake.</translation>
</message>
<message>
<source>Arguments:</source>
@@ -470,7 +470,11 @@
</message>
<message>
<source>The directory %1 already contains a cbp file, which is recent enough. You can pass special arguments or change the used tool chain here and rerun CMake. Or simply finish the wizard directly.</source>
- <translation>Adresář %1 již obsahuje dostateÄnÄ› Äerstvý soubor cbp. Můžete tu podat zvláštní argumenty nebo zmÄ›nit použitou sadu nástrojů a spustit CMake znovu. Také lze průvodce rovnou ukonÄit.</translation>
+ <translation type="obsolete">Adresář %1 již obsahuje dostateÄnÄ› Äerstvý soubor cbp. Můžete tu podat zvláštní argumenty nebo zmÄ›nit použitou sadu nástrojů a spustit CMake znovu. Také lze průvodce rovnou ukonÄit.</translation>
+ </message>
+ <message>
+ <source>The directory %1 already contains a cbp file, which is recent enough. You can pass special arguments and rerun CMake. Or simply finish the wizard directly.</source>
+ <translation>Adresář %1 již obsahuje soubor cbp, který je dostateÄnÄ› nový. Můžete tu podat zvláštní argumenty a spustit cmake znovu. Nebo průvodce jednoduÅ¡e rovnou ukonÄete.</translation>
</message>
<message>
<source>The directory %1 does not contain a cbp file. Qt Creator needs to create this file by running CMake. Some projects require command line arguments to the initial CMake call.</source>
@@ -494,11 +498,11 @@
</message>
<message>
<source>MinGW Generator (%1)</source>
- <translation>Generátor MinGW (%1)</translation>
+ <translation type="obsolete">Generátor MinGW (%1)</translation>
</message>
<message>
<source>Unix Generator (%1)</source>
- <translation>Generátor Unix (%1)</translation>
+ <translation type="obsolete">Generátor Unix (%1)</translation>
</message>
<message>
<source>No generator selected.</source>
@@ -534,7 +538,7 @@
</message>
<message>
<source>NMake Generator (%1)</source>
- <translation>Generátor NMake (%1)</translation>
+ <translation type="obsolete">Generátor NMake (%1)</translation>
</message>
<message>
<source>MinGW Generator</source>
@@ -591,8 +595,12 @@
<translation>Make</translation>
</message>
<message>
+ <source>&lt;b&gt;No build configuration found on this target.&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Při tomto cíli nenalezeno žádné nastavení sestavování.&lt;/b&gt;</translation>
+ </message>
+ <message>
<source>&lt;b&gt;Unknown tool chain&lt;/b&gt;</source>
- <translation>&lt;b&gt;Neznámá sada nástrojů&lt;/b&gt;</translation>
+ <translation type="obsolete">&lt;b&gt;Neznámá sada nástrojů&lt;/b&gt;</translation>
</message>
<message>
<source>&lt;b&gt;Make:&lt;/b&gt; %1 %2</source>
@@ -733,6 +741,10 @@
<translation>Alt+C, Alt+P</translation>
</message>
<message>
+ <source>Meta+C,Meta+P</source>
+ <translation>Meta+C,Meta+P</translation>
+ </message>
+ <message>
<source>Paste Clipboard...</source>
<translation>Uložit schránku na...</translation>
</message>
@@ -745,6 +757,22 @@
<translation>Alt+C, Alt+F</translation>
</message>
<message>
+ <source>Meta+C,Meta+F</source>
+ <translation>Meta+C,Meta+F</translation>
+ </message>
+ <message>
+ <source>Fetch from URL...</source>
+ <translation>Přivést (fetch) z adresy (URL)...</translation>
+ </message>
+ <message>
+ <source>Fetch from URL</source>
+ <translation>Přivést (fetch) z adresy (URL)</translation>
+ </message>
+ <message>
+ <source>Enter URL:</source>
+ <translation>Zadat adresu (URL):</translation>
+ </message>
+ <message>
<source>Empty snippet received for &quot;%1&quot;.</source>
<translation>Přijat prázdný úryvek pro &quot;%1&quot;.</translation>
</message>
@@ -1173,18 +1201,58 @@ Chcete je nechat přepsat?</translation>
<translation>Rozdělit</translation>
</message>
<message>
+ <source>Meta+E,2</source>
+ <translation>Meta+E,2</translation>
+ </message>
+ <message>
+ <source>Ctrl+E,2</source>
+ <translation>Ctrl+E,2</translation>
+ </message>
+ <message>
<source>Split Side by Side</source>
<translation>Rozdělit jedno vedle druhého</translation>
</message>
<message>
+ <source>Meta+E,3</source>
+ <translation>Meta+E,3</translation>
+ </message>
+ <message>
+ <source>Ctrl+E,3</source>
+ <translation>Ctrl+E,3</translation>
+ </message>
+ <message>
<source>Remove Current Split</source>
<translation>Odstranit nynější rozdělení</translation>
</message>
<message>
+ <source>Meta+E,0</source>
+ <translation>Meta+E,0</translation>
+ </message>
+ <message>
+ <source>Ctrl+E,0</source>
+ <translation>Ctrl+E,0</translation>
+ </message>
+ <message>
<source>Remove All Splits</source>
<translation>Odstranit všechna rozdělení</translation>
</message>
<message>
+ <source>Meta+E,1</source>
+ <translation>Meta+E,1</translation>
+ </message>
+ <message>
+ <source>Ctrl+E,1</source>
+ <translation>Ctrl+E,1</translation>
+ </message>
+ <message>
+ <source>Meta+E,o</source>
+ <translation>Meta+E,o</translation>
+ </message>
+ <message>
+ <source>Ctrl+E,o</source>
+ <translation>Ctrl+E,o</translation>
+ </message>
+ <message>
<source>Ad&amp;vanced</source>
<translation>&amp;PokroÄilé</translation>
</message>
@@ -1342,27 +1410,27 @@ Chcete je nechat přepsat?</translation>
</message>
<message>
<source>Meta+E</source>
- <translation>Meta+E</translation>
+ <translation type="obsolete">Meta+E</translation>
</message>
<message>
<source>Ctrl+E</source>
- <translation>Ctrl+E</translation>
+ <translation type="obsolete">Ctrl+E</translation>
</message>
<message>
<source>%1,2</source>
- <translation>%1,2</translation>
+ <translation type="obsolete">%1,2</translation>
</message>
<message>
<source>%1,3</source>
- <translation>%1,3</translation>
+ <translation type="obsolete">%1,3</translation>
</message>
<message>
<source>%1,0</source>
- <translation>%1,0</translation>
+ <translation type="obsolete">%1,0</translation>
</message>
<message>
<source>%1,1</source>
- <translation>%1,1</translation>
+ <translation type="obsolete">%1,1</translation>
</message>
<message>
<source>Go to Next Split</source>
@@ -1370,7 +1438,7 @@ Chcete je nechat přepsat?</translation>
</message>
<message>
<source>%1,o</source>
- <translation>%1,o</translation>
+ <translation type="obsolete">%1,o</translation>
</message>
<message>
<source>All Files (*)</source>
@@ -1763,11 +1831,11 @@ Chcete je nechat přepsat?</translation>
</message>
<message>
<source>Exit Full Screen</source>
- <translation type="obsolete">UkonÄit na celou obrazovku</translation>
+ <translation>UkonÄit na celou obrazovku</translation>
</message>
<message>
<source>Enter Full Screen</source>
- <translation type="obsolete">Vstoupit na celou obrazovku</translation>
+ <translation>Vstoupit na celou obrazovku</translation>
</message>
<message>
<source>Open File &amp;With...</source>
@@ -1895,7 +1963,7 @@ Chcete je nechat přepsat?</translation>
</message>
<message>
<source>Ctrl+Meta+F</source>
- <translation type="obsolete">Ctrl+Meta+F</translation>
+ <translation>Ctrl+Meta+F</translation>
</message>
<message>
<source>Ctrl+Shift+F11</source>
@@ -2225,7 +2293,7 @@ Chcete je nechat přepsat?</translation>
</message>
<message>
<source>Import Keyboard Mapping Scheme</source>
- <translation>Zavést schéma přiřazení kláves</translation>
+ <translation>Importovat schéma přiřazení kláves</translation>
</message>
<message>
<source>Keyboard Mapping Scheme (*.kms)</source>
@@ -2233,7 +2301,7 @@ Chcete je nechat přepsat?</translation>
</message>
<message>
<source>Export Keyboard Mapping Scheme</source>
- <translation>Vyvést schéma přiřazení kláves</translation>
+ <translation>Exportovat schéma přiřazení kláves</translation>
</message>
</context>
<context>
@@ -2422,7 +2490,7 @@ Chcete je nechat přepsat?</translation>
</message>
<message>
<source>Follow Symbol Under Cursor</source>
- <translation>Následovat symbol pod ukazovátkem</translation>
+ <translation type="obsolete">Následovat symbol pod ukazovátkem</translation>
</message>
<message>
<source>Switch Between Method Declaration/Definition</source>
@@ -2449,6 +2517,10 @@ Chcete je nechat přepsat?</translation>
<translation>Ctrl+Shift+T</translation>
</message>
<message>
+ <source>Meta+Shift+T</source>
+ <translation>Meta+Shift+T</translation>
+ </message>
+ <message>
<source>Rename Symbol Under Cursor</source>
<translation>Přejmenovat symbol pod ukazovátkem</translation>
</message>
@@ -2695,6 +2767,11 @@ Chcete je nechat přepsat?</translation>
<translation>Obecné</translation>
</message>
<message>
+ <source>Locals &amp;&amp; Expressions</source>
+ <extracomment>&apos;&amp;&amp;&apos; will appear as one (one is marking keyboard shortcut)</extracomment>
+ <translation>Místní proměnné a výrazy</translation>
+ </message>
+ <message>
<source>Debugger</source>
<translation>LadiÄ</translation>
</message>
@@ -2822,7 +2899,7 @@ Chcete je nechat přepsat?</translation>
</message>
<message>
<source>Debugging Helper</source>
- <translation>Pomocný ladicí program</translation>
+ <translation type="obsolete">Pomocný ladicí program</translation>
</message>
<message>
<source>Ctrl+Shift+F11</source>
@@ -2836,16 +2913,40 @@ Chcete je nechat přepsat?</translation>
<context>
<name>Debugger::Internal::AttachCoreDialog</name>
<message>
+ <source>Load Core File</source>
+ <translation>Nahrát soubor core</translation>
+ </message>
+ <message>
+ <source>Browse...</source>
+ <translation>Procházet...</translation>
+ </message>
+ <message>
+ <source>Use local core file:</source>
+ <translation>Použít místní soubor core</translation>
+ </message>
+ <message>
<source>Select Executable</source>
<translation>Vybrat spustitelný soubor</translation>
</message>
<message>
+ <source>Kit:</source>
+ <translation>Sada:</translation>
+ </message>
+ <message>
+ <source>Core file:</source>
+ <translation>Soubor core:</translation>
+ </message>
+ <message>
+ <source>Select Remote Core File</source>
+ <translation>Vybrat vzdálený soubor core</translation>
+ </message>
+ <message>
<source>Select Core File</source>
<translation>Vybrat hlavní soubor</translation>
</message>
<message>
<source>Select Sysroot</source>
- <translation>Vybrat Sysroot</translation>
+ <translation type="obsolete">Vybrat Sysroot</translation>
</message>
<message>
<source>Select Startup Script</source>
@@ -2853,7 +2954,7 @@ Chcete je nechat přepsat?</translation>
</message>
<message>
<source>Start Debugger</source>
- <translation>Spustit ladicí program</translation>
+ <translation type="obsolete">Spustit ladicí program</translation>
</message>
<message>
<source>&amp;Executable:</source>
@@ -2861,15 +2962,15 @@ Chcete je nechat přepsat?</translation>
</message>
<message>
<source>&amp;Core file:</source>
- <translation>Soubor &amp;core:</translation>
+ <translation type="obsolete">Soubor &amp;core:</translation>
</message>
<message>
<source>&amp;Tool chain:</source>
- <translation>Sada &amp;nástrojů:</translation>
+ <translation type="obsolete">Sada &amp;nástrojů:</translation>
</message>
<message>
<source>Sys&amp;root:</source>
- <translation>Sys&amp;root:</translation>
+ <translation type="obsolete">Sys&amp;root:</translation>
</message>
<message>
<source>Override &amp;start script:</source>
@@ -2880,41 +2981,41 @@ Chcete je nechat přepsat?</translation>
<name>Debugger::Internal::AttachExternalDialog</name>
<message>
<source>Process ID</source>
- <translation>ID procesu</translation>
+ <translation type="obsolete">ID procesu</translation>
</message>
<message>
<source>Name</source>
- <translation>Název</translation>
+ <translation type="obsolete">Název</translation>
</message>
<message>
<source>State</source>
- <translation>Stav</translation>
+ <translation type="obsolete">Stav</translation>
</message>
<message>
<source>Refresh</source>
- <translation>Obnovit</translation>
+ <translation type="obsolete">Obnovit</translation>
</message>
<message>
<source>Process Already Under Debugger Control</source>
- <translation>Proces již pod řízením ladiÄe</translation>
+ <translation type="obsolete">Proces již pod řízením ladiÄe</translation>
</message>
<message>
<source>The process %1 is already under the control of a debugger.
Qt Creator cannot attach to it.</source>
- <translation>Proces %1 je již pod řízením ladiÄe.
+ <translation type="obsolete">Proces %1 je již pod řízením ladiÄe.
Qt Creator se k němu nemůže připojit.</translation>
</message>
<message>
<source>Start Debugger</source>
- <translation>Spustit ladicí program</translation>
+ <translation type="obsolete">Spustit ladicí program</translation>
</message>
<message>
<source>Attach to &amp;process ID:</source>
- <translation>Připojit k ID &amp;procesu:</translation>
+ <translation type="obsolete">Připojit k ID &amp;procesu:</translation>
</message>
<message>
<source>&amp;Tool chain:</source>
- <translation>Sada &amp;nástrojů:</translation>
+ <translation type="obsolete">Sada &amp;nástrojů:</translation>
</message>
</context>
<context>
@@ -2941,7 +3042,7 @@ Qt Creator se k němu nemůže připojit.</translation>
</message>
<message>
<source>Breakpoint on QML Signal Emit</source>
- <translation type="obsolete">Přerušit při vyslání signálu QML</translation>
+ <translation>Přerušit při vyslání signálu QML</translation>
</message>
<message>
<source>Breakpoint will only be hit in the specified thread(s).</source>
@@ -3098,7 +3199,7 @@ Qt Creator se k němu nemůže připojit.</translation>
</message>
<message>
<source>Breakpoint on QML Signal Handler</source>
- <translation>Přerušit při manipulátoru signálu QML</translation>
+ <translation type="obsolete">Přerušit při manipulátoru signálu QML</translation>
</message>
<message>
<source>Breakpoint at JavaScript throw</source>
@@ -3217,43 +3318,43 @@ Qt Creator se k němu nemůže připojit.</translation>
</message>
<message>
<source>Delete Breakpoint</source>
- <translation>Smazat bod přerušení</translation>
+ <translation type="obsolete">Smazat bod přerušení</translation>
</message>
<message>
<source>Delete All Breakpoints</source>
- <translation>Smazat všechny body přerušení</translation>
+ <translation type="obsolete">Smazat všechny body přerušení</translation>
</message>
<message>
<source>Delete Breakpoints of &quot;%1&quot;</source>
- <translation>Smazat body přerušení v &quot;%1&quot;</translation>
+ <translation type="obsolete">Smazat body přerušení v &quot;%1&quot;</translation>
</message>
<message>
<source>Delete Breakpoints of File</source>
- <translation>Smazat body přerušení v souboru</translation>
+ <translation type="obsolete">Smazat body přerušení v souboru</translation>
</message>
<message>
<source>Adjust Column Widths to Contents</source>
- <translation>Přizpůsobit šířku sloupců obsahu</translation>
+ <translation type="obsolete">Přizpůsobit šířku sloupců obsahu</translation>
</message>
<message>
<source>Edit Breakpoint...</source>
- <translation>Upravit bod přerušení...</translation>
+ <translation type="obsolete">Upravit bod přerušení...</translation>
</message>
<message>
<source>Associate Breakpoint With All Threads</source>
- <translation>Dát bod přerušení pro všechna vlákna</translation>
+ <translation type="obsolete">Dát bod přerušení pro všechna vlákna</translation>
</message>
<message>
<source>Associate Breakpoint With Thread %1</source>
- <translation>Dát bod přerušení pro vlákno %1</translation>
+ <translation type="obsolete">Dát bod přerušení pro vlákno %1</translation>
</message>
<message>
<source>Add Breakpoint...</source>
- <translation>Přidat bod přerušení...</translation>
+ <translation type="obsolete">Přidat bod přerušení...</translation>
</message>
<message>
<source>Add Breakpoint</source>
- <translation>Přidat bod přerušení</translation>
+ <translation type="obsolete">Přidat bod přerušení</translation>
</message>
<message>
<source>Always Adjust Column Widths to Contents</source>
@@ -3265,23 +3366,23 @@ Qt Creator se k němu nemůže připojit.</translation>
</message>
<message>
<source>Synchronize Breakpoints</source>
- <translation>Seřídit body přerušení</translation>
+ <translation type="obsolete">Seřídit body přerušení</translation>
</message>
<message>
<source>Disable Selected Breakpoints</source>
- <translation>Vypnout vybrané body přerušení</translation>
+ <translation type="obsolete">Vypnout vybrané body přerušení</translation>
</message>
<message>
<source>Enable Selected Breakpoints</source>
- <translation>Zapnout vybrané body přerušení</translation>
+ <translation type="obsolete">Zapnout vybrané body přerušení</translation>
</message>
<message>
<source>Disable Breakpoint</source>
- <translation>Vypnout bod přerušení</translation>
+ <translation type="obsolete">Vypnout bod přerušení</translation>
</message>
<message>
<source>Enable Breakpoint</source>
- <translation>Zapnout bod přerušení</translation>
+ <translation type="obsolete">Zapnout bod přerušení</translation>
</message>
<message>
<source>Use Short Path</source>
@@ -3559,7 +3660,7 @@ Qt Creator se k němu nemůže připojit.</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Use CDB&apos;s native console instead of Qt Creator&apos;s console for console applications. The native console does not prompt on application exit. It is suitable for diagnosing cases in which the application does not start up properly in Qt Creator&apos;s console and the subsequent attach fails.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Způsobí, že se použije původní konzole CDB namísto konzole Qt Creatoru. Původní konzole CDB se zavÅ™e po ukonÄení programu bez zeptání. Lze ji používat k rozpoznání příÄiny potíží programů, které se v konzolu Qt Creatoru nespustí a u nichž se následné pÅ™ipojení ladiÄe nepodaří.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Způsobí, že se použije nativní konzole CDB namísto konzole Qt Creatoru. Nativní konzole CDB se zavÅ™e po ukonÄení programu bez zeptání. Lze ji používat k rozpoznání příÄiny potíží programů, které se v konzolu Qt Creatoru nespustí a u nichž se následné pÅ™ipojení ladiÄe nepodaří.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Use CDB &amp;console</source>
@@ -3593,6 +3694,14 @@ Qt Creator se k němu nemůže připojit.</translation>
<source>Correct breakpoint location</source>
<translation>Opravit umístění bodu přerušení</translation>
</message>
+ <message>
+ <source>Break on functions:</source>
+ <translation>Přerušit při funkcích:</translation>
+ </message>
+ <message>
+ <source>This is useful to catch runtime error messages, for example caused by assert().</source>
+ <translation>Toto je užiteÄné na zachycení bÄ›hových chybových zpráv, způsobených například assert().</translation>
+ </message>
</context>
<context>
<name>Debugger::Internal::CdbSymbolPathListEditor</name>
@@ -3605,8 +3714,12 @@ Qt Creator se k němu nemůže připojit.</translation>
<translation>PÅ™idá symbolický server firmy Microsoft, který poskytuje symboly pro knihovny operaÄního systému. Vyžaduje zadání adresáře s místní vyrovnávací pamÄ›tí.</translation>
</message>
<message>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The debugger is not configured to use the public &lt;a href=&quot;%1&quot;&gt;Microsoft Symbol Server&lt;/a&gt;. This is recommended for retrieval of the symbols of the operating system libraries.&lt;/p&gt;&lt;p&gt;&lt;i&gt;Note:&lt;/i&gt; A fast internet connection is required for this to work smoothly. Also, a delay might occur when connecting for the first time.&lt;/p&gt;&lt;p&gt;Would you like to set it up?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;LadiÄ není zařízen k používání veÅ™ejného &lt;a href=&quot;%1&quot;&gt;Microsoft Symbol Serveru&lt;/a&gt;. Toto se doporuÄuje k vyhledávání symbolů knihoven operaÄních systémů.&lt;/p&gt;&lt;p&gt;&lt;i&gt;Poznámka:&lt;/i&gt; Je požadováno rychle internetové spojení. PÅ™i prvním spuÅ¡tÄ›ní se může vyskytnout zpoždÄ›ní.&lt;/p&gt;&lt;p&gt;Chcete zřídit symbolický server?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The debugger is not configured to use the public &lt;a href=&quot;%1&quot;&gt;Microsoft Symbol Server&lt;/a&gt;. This is recommended for retrieval of the symbols of the operating system libraries.&lt;/p&gt;&lt;p&gt;&lt;i&gt;Note:&lt;/i&gt; A fast internet connection is required for this to work smoothly. Also, a delay might occur when connecting for the first time.&lt;/p&gt;&lt;p&gt;Would you like to set it up?&lt;/p&gt;&lt;/br&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;LadiÄ není zařízen k používání veÅ™ejného &lt;a href=&quot;%1&quot;&gt;Microsoft Symbol Serveru&lt;/a&gt;. Toto se doporuÄuje k vyhledávání symbolů knihoven operaÄních systémů.&lt;/p&gt;&lt;p&gt;&lt;i&gt;Poznámka:&lt;/i&gt; Je požadováno rychle internetové spojení. PÅ™i prvním spuÅ¡tÄ›ní se může vyskytnout zpoždÄ›ní.&lt;/p&gt;&lt;p&gt;Chcete zřídit symbolický server?&lt;/p&gt;&lt;/br&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation type="obsolete">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;LadiÄ není zařízen k používání veÅ™ejného &lt;a href=&quot;%1&quot;&gt;Microsoft Symbol Serveru&lt;/a&gt;. Toto se doporuÄuje k vyhledávání symbolů knihoven operaÄních systémů.&lt;/p&gt;&lt;p&gt;&lt;i&gt;Poznámka:&lt;/i&gt; Je požadováno rychle internetové spojení. PÅ™i prvním spuÅ¡tÄ›ní se může vyskytnout zpoždÄ›ní.&lt;/p&gt;&lt;p&gt;Chcete zřídit symbolický server?&lt;/p&gt;&lt;/br&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Symbol Server</source>
@@ -3825,6 +3938,34 @@ Qt Creator se k němu nemůže připojit.</translation>
<translation>U ukazatelů automaticky vyhodnotit odkazy</translation>
</message>
<message>
+ <source>Break on &quot;abort&quot;</source>
+ <translation>Přerušit při &quot;abort&quot;</translation>
+ </message>
+ <message>
+ <source>Use Tooltips in Locals View when Debugging</source>
+ <translation>Při ladění použít vysvětlivky pro zobrazení místních proměnných</translation>
+ </message>
+ <message>
+ <source>Use Tooltips in Breakpoints View when Debugging</source>
+ <translation>Při ladění použít vysvětlivky v okně s body přerušení</translation>
+ </message>
+ <message>
+ <source>Show Address Data in Breakpoints View when Debugging</source>
+ <translation>Ukázat během ladění adresy bodů přerušení</translation>
+ </message>
+ <message>
+ <source>Show Address Data in Stack View when Debugging</source>
+ <translation>Ukázat v okně zásobníku během ladění adresy</translation>
+ </message>
+ <message>
+ <source>Show Application On Top</source>
+ <translation>Ukázat program v popředí</translation>
+ </message>
+ <message>
+ <source>Apply Changes on Save</source>
+ <translation>Použít změny při uložení</translation>
+ </message>
+ <message>
<source>Watch Expression &quot;%1&quot;</source>
<translation type="obsolete">Sledovaný výraz &quot;%1&quot;</translation>
</message>
@@ -3910,7 +4051,7 @@ Qt Creator se k němu nemůže připojit.</translation>
</message>
<message>
<source>Break on &quot;raise&quot;</source>
- <translation>Přerušit při &quot;raise&quot;</translation>
+ <translation type="obsolete">Přerušit při &quot;raise&quot;</translation>
</message>
<message>
<source>Use Dynamic Object Type for Display</source>
@@ -3930,19 +4071,19 @@ Qt Creator se k němu nemůže připojit.</translation>
</message>
<message>
<source>Use Tooltips in Locals View When Debugging</source>
- <translation>Při ladění použít vysvětlivky pro zobrazení místních proměnných</translation>
+ <translation type="obsolete">Při ladění použít vysvětlivky pro zobrazení místních proměnných</translation>
</message>
<message>
<source>Use Tooltips in Breakpoints View When Debugging</source>
- <translation>Při ladění použít vysvětlivky v okně s body přerušení</translation>
+ <translation type="obsolete">Při ladění použít vysvětlivky v okně s body přerušení</translation>
</message>
<message>
<source>Show Address Data in Breakpoints View When Debugging</source>
- <translation>Ukázat během ladění adresy bodů přerušení</translation>
+ <translation type="obsolete">Ukázat během ladění adresy bodů přerušení</translation>
</message>
<message>
<source>Show Address Data in Stack View When Debugging</source>
- <translation>Ukázat v okně zásobníku během ladění adresy</translation>
+ <translation type="obsolete">Ukázat v okně zásobníku během ladění adresy</translation>
</message>
<message>
<source>List Source Files</source>
@@ -4102,6 +4243,22 @@ Qt Creator se k němu nemůže připojit.</translation>
<source>Display thread names</source>
<translation>Zobrazit názvy vláken</translation>
</message>
+ <message>
+ <source>Show &apos;std::&apos; prefix for types from the standard library.</source>
+ <translation>Ukázat předponu &apos;std::&apos; pro typy ze standardní knihovny.</translation>
+ </message>
+ <message>
+ <source>Show &quot;std::&quot; namespace for types</source>
+ <translation>Ukázat jmenný prostor &quot;std::&quot; pro typy</translation>
+ </message>
+ <message>
+ <source>Show Qt namespace prefix for Qt types. This is only relevant if Qt was configured with &apos;-qtnamespace&apos;.</source>
+ <translation>Ukázat předponu jmenného prostoru Qt pro typy Qt. Toto má význam jen tehdy, když Qt bylo nastaveno s &apos;-qtnamespace&apos;.</translation>
+ </message>
+ <message>
+ <source>Show Qt&apos;s namespace for types</source>
+ <translation>Ukázat jmenný prostor Qt pro typy</translation>
+ </message>
</context>
<context>
<name>Debugger::Internal::GdbEngine</name>
@@ -4172,7 +4329,7 @@ Proces Gdb po úspěšném spuštění za nějakou dobu spadl.</translation>
</message>
<message>
<source>Loading %1...</source>
- <translation>Nahrává se %1...</translation>
+ <translation type="obsolete">Nahrává se %1...</translation>
</message>
<message>
<source>Stopped at breakpoint.</source>
@@ -4295,7 +4452,7 @@ Můžete si vybrat mezi delším Äekáním nebo pÅ™eruÅ¡ením ladÄ›ní.</transl
<message>
<source>The gdb process failed to start. Either the invoked program &apos;%1&apos; is missing, or you may have insufficient permissions to invoke the program.
%2</source>
- <translation>SpuÅ¡tÄ›ní procesu Gdb se nezdaÅ™ilo. BuÄ chybí spustitelný soubor &apos;%1&apos;, nebo nemáte dostateÄná oprávnÄ›ní pro spuÅ¡tÄ›ní programu.
+ <translation type="obsolete">SpuÅ¡tÄ›ní procesu Gdb se nezdaÅ™ilo. BuÄ chybí spustitelný soubor &apos;%1&apos;, nebo nemáte dostateÄná oprávnÄ›ní pro spuÅ¡tÄ›ní programu.
%2</translation>
</message>
<message>
@@ -4329,7 +4486,7 @@ Můžete si vybrat mezi delším Äekáním nebo pÅ™eruÅ¡ením ladÄ›ní.</transl
<message>
<source>Missing debug information for %1
Try: %2</source>
- <translation type="obsolete">Chybí informace o ladění pro %1
+ <translation>Chybí informace o ladění pro %1
Zkuste: %2</translation>
</message>
<message>
@@ -4340,10 +4497,73 @@ Zkuste: %2</translation>
<source>Processing queued commands</source>
<translation>Zpracovávají se zařazené příkazy</translation>
</message>
+ <message>
+ <source>The gdb process terminated.</source>
+ <translation>Proces gdb byl ukonÄen.</translation>
+ </message>
+ <message>
+ <source>The gdb process terminated unexpectedly (code %1)</source>
+ <translation>Proces gdb byl neoÄekávanÄ› ukonÄen (kód %1)</translation>
+ </message>
+ <message>
+ <source>This does not seem to be a &quot;Debug&quot; build.
+Setting breakpoints by file name and line number may fail.
+</source>
+ <translation>Zdá se, že toto není sestavení &quot;Debug&quot;.
+Nastavení bodů pÅ™eruÅ¡ení podle názvů souborů a Äísel řádků může selhat.</translation>
+ </message>
+ <message>
+ <source>Found.</source>
+ <translation>Nalezeno.</translation>
+ </message>
+ <message>
+ <source>Not Found.</source>
+ <translation>Nenalezeno.</translation>
+ </message>
+ <message>
+ <source>
+Section %1: %2</source>
+ <translation>
+Část %1: %2</translation>
+ </message>
+ <message>
+ <source>Warning</source>
+ <translation>Varování</translation>
+ </message>
+ <message>
+ <source>The gdb process could not be stopped:
+%1</source>
+ <translation>Proces Gdb se nepodařilo zastavit:
+%1</translation>
+ </message>
+ <message>
+ <source>Application process could not be stopped:
+%1</source>
+ <translation>Proces programu se nepodařilo zastavit:
+%1</translation>
+ </message>
+ <message>
+ <source>Application started</source>
+ <translation>Program spuštěn</translation>
+ </message>
+ <message>
+ <source>Application running</source>
+ <translation>Program běží</translation>
+ </message>
+ <message>
+ <source>Attached to stopped application</source>
+ <translation>Ladicí program připojen k zastavenému programu</translation>
+ </message>
+ <message>
+ <source>Connecting to remote server failed:
+%1</source>
+ <translation>Spojení se vzdáleným serverem se nepodařilo vytvořit:
+%1</translation>
+ </message>
<message numerus="yes">
<source>The gdb process has not responded to a command within %n second(s). This could mean it is stuck in an endless loop or taking longer than expected to perform the operation.
You can choose between waiting longer or abort debugging.</source>
- <translation>
+ <translation type="obsolete">
<numerusform>Proces Gdb neodpovÄ›dÄ›l na příkaz po dobu %n sekundy. Možná je zaseknutý v nekoneÄné smyÄce nebo potÅ™ebuje na provedení operace delší Äas, než bylo oÄekáváno.
Můžete si vybrat mezi delším Äekáním nebo pÅ™eruÅ¡ením ladÄ›ní.</numerusform>
<numerusform>Proces Gdb neodpovÄ›dÄ›l na příkaz po dobu %n sekund. Možná je zaseknutý v nekoneÄné smyÄce nebo potÅ™ebuje na provedení operace delší Äas, než bylo oÄekáváno.
@@ -4390,7 +4610,7 @@ Můžete si vybrat mezi delším Äekáním nebo pÅ™eruÅ¡ením ladÄ›ní.</numeru
</message>
<message>
<source>There is no gdb binary available for binaries in format &apos;%1&apos;</source>
- <translation>Pro spustitelný soubor pro &apos;%1&apos; není dostupný žádný spustitelný soubor Gdb</translation>
+ <translation type="obsolete">Pro spustitelný soubor pro &apos;%1&apos; není dostupný žádný spustitelný soubor Gdb</translation>
</message>
<message>
<source>Step requested...</source>
@@ -4426,11 +4646,11 @@ Můžete si vybrat mezi delším Äekáním nebo pÅ™eruÅ¡ením ladÄ›ní.</numeru
</message>
<message>
<source>The gdb process crashed.</source>
- <translation>Proces Gdb spadl.</translation>
+ <translation type="obsolete">Proces Gdb spadl.</translation>
</message>
<message>
<source>The gdb process exited unexpectedly (code %1)</source>
- <translation>Proces Gdb byl neoÄekávanÄ› ukonÄen (kód %1)</translation>
+ <translation type="obsolete">Proces Gdb byl neoÄekávanÄ› ukonÄen (kód %1)</translation>
</message>
<message>
<source>Unexpected GDB Exit</source>
@@ -4512,7 +4732,7 @@ Můžete si vybrat mezi delším Äekáním nebo pÅ™eruÅ¡ením ladÄ›ní.</numeru
</message>
<message>
<source>&lt;unknown&gt;</source>
- <translation>&lt;Neznámá&gt;</translation>
+ <translation type="obsolete">&lt;Neznámá&gt;</translation>
</message>
<message>
<source>Jumped. Stopped</source>
@@ -4631,6 +4851,28 @@ Chcete zastavit laděný proces a nahrát vybraný snímek?</translation>
<translation>Nepodařilo se najít spouštěcí skript ladicího programu</translation>
</message>
<message>
+ <source>The gdb process failed to start. Either the invoked program &quot;%1&quot; is missing, or you may have insufficient permissions to invoke the program.
+%2</source>
+ <translation>SpuÅ¡tÄ›ní procesu Gdb se nezdaÅ™ilo. BuÄ chybí spustitelný soubor &apos;%1&apos;, nebo nemáte dostateÄná oprávnÄ›ní pro spuÅ¡tÄ›ní programu.
+%2</translation>
+ </message>
+ <message numerus="yes">
+ <source>The gdb process has not responded to a command within %n second(s). This could mean it is stuck in an endless loop or taking longer than expected to perform the operation.
+You can choose between waiting longer or aborting debugging.</source>
+ <translation>
+ <numerusform>Proces Gdb neodpovÄ›dÄ›l na příkaz po dobu %n sekundy. Možná je zaseknutý v nekoneÄné smyÄce nebo potÅ™ebuje na provedení operace delší Äas, než bylo oÄekáváno.
+Můžete si vybrat mezi delším Äekáním nebo pÅ™eruÅ¡ením ladÄ›ní.</numerusform>
+ <numerusform>Proces Gdb neodpovÄ›dÄ›l na příkaz po dobu %n sekund. Možná je zaseknutý v nekoneÄné smyÄce nebo potÅ™ebuje na provedení operace delší Äas, než bylo oÄekáváno.
+Můžete si vybrat mezi delším Äekáním nebo pÅ™eruÅ¡ením ladÄ›ní.</numerusform>
+ <numerusform>Proces Gdb neodpovÄ›dÄ›l na příkaz po dobu %n sekund. Možná je zaseknutý v nekoneÄné smyÄce nebo potÅ™ebuje na provedení operace delší Äas, než bylo oÄekáváno.
+Můžete si vybrat mezi delším Äekáním nebo pÅ™eruÅ¡ením ladÄ›ní.</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>There is no GDB binary available for binaries in format &apos;%1&apos;</source>
+ <translation>Pro spustitelný soubor pro &apos;%1&apos; není dostupný žádný spustitelný soubor Gdb</translation>
+ </message>
+ <message>
<source>Cannot Read Symbols</source>
<translation>Symboly se nepodaÅ™ilo pÅ™eÄíst</translation>
</message>
@@ -4652,7 +4894,7 @@ Chcete zastavit laděný proces a nahrát vybraný snímek?</translation>
</message>
<message>
<source>The gdb location must be given as an absolute path in the debugger settings (%1).</source>
- <translation>UmístÄ›ní gdb musí být zadáno jako absolutní cesta v nastavení ladiÄe (%1).</translation>
+ <translation type="obsolete">UmístÄ›ní gdb musí být zadáno jako absolutní cesta v nastavení ladiÄe (%1).</translation>
</message>
<message>
<source>The GDB installed at %1 cannot find a valid python installation in its subdirectories.
@@ -4758,7 +5000,7 @@ it terminates a non-responsive GDB process. The default value of 20 seconds
should be sufficient for most applications, but there are situations when
loading big libraries or listing source files takes much longer than that
on slow machines. In this case, the value should be increased.</source>
- <translation>Toto je poÄet sekund, po které Qt Creator poÄká než ukonÄí neodpovídající proces GDB.
+ <translation type="obsolete">Toto je poÄet sekund, po které Qt Creator poÄká než ukonÄí neodpovídající proces GDB.
Výchozí hodnotou je 20 sekund, což by mÄ›lo postaÄovat v případÄ› vÄ›tÅ¡iny programů. Ale jsou situace,
kdy na pomalých strojích nahrávání velkých knihoven nebo výpis zdrojových souborů zabere mnohem
více Äasu. V takovém případÄ› by se mÄ›la hodnota zvýšit.</translation>
@@ -4776,7 +5018,7 @@ více Äasu. V takovém případÄ› by se mÄ›la hodnota zvýšit.</translation>
for less noisy debugging. For example, the atomic reference
counting code is skipped, and a single &apos;Step Into&apos; for a signal
emission ends up directly in the slot connected to it.</source>
- <translation>Tato volba má za následek, že v urÄitých situacích slouÄí
+ <translation type="obsolete">Tato volba má za následek, že v urÄitých situacích slouÄí
&apos;Krok do&apos; více kroků do jednoho, Äímž se ladÄ›ní
uspíší. Například se pÅ™eskoÄí kód atomického poÄítání odkazů,
a jednotlivý &apos;Krok do&apos; pro vyslání signálu skonÄí přímo ve zdířce
@@ -4789,6 +5031,36 @@ a jednotlivý &apos;Krok do&apos; pro vyslání signálu skonÄí přímo ve zdÃ
<message>
<source>This will show a message box as soon as your application
receives a signal like SIGSEGV during debugging.</source>
+ <translation type="obsolete">Ukáže oznamovací okno, když program během ladění
+přijme signál SIGSEGV.</translation>
+ </message>
+ <message>
+ <source>The number of seconds Qt Creator will wait before it terminates
+a non-responsive GDB process. The default value of 20 seconds should
+be sufficient for most applications, but there are situations when
+loading big libraries or listing source files takes much longer than
+that on slow machines. In this case, the value should be increased.</source>
+ <translation>Toto je poÄet sekund, po které bude Qt Creator Äekat, pÅ™edtím než
+ukonÄí neodpovídající procesy gdb. Výchozí hodnota, jíž je 20 sekund,
+by mÄ›la postaÄovat v případÄ› vÄ›tÅ¡iny programů. Ale jsou situace,
+kdy na pomalých strojích nahrávání velkých knihoven nebo výpis
+zdrojových souborů zabere mnohemvíce Äasu, než je nastaveno.
+V takovém případě by se měla hodnota zvýšit.</translation>
+ </message>
+ <message>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Allows &lt;i&gt;Step Into&lt;/i&gt; to compress several steps into one step
+for less noisy debugging. For example, the atomic reference
+counting code is skipped, and a single &lt;i&gt;Step Into&lt;/i&gt; for a signal
+emission ends up directly in the slot connected to it.</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Tato volba má za následek, že v urÄitých
+situacích slouÄí &lt;i&gt;Jednotlivý krok do&lt;/i&gt; více kroků do jednoho,
+Äímž se ladÄ›ní uspíší. Například se pÅ™eskoÄí kód poÄítání atomárních
+odkazů; a jednotlivý &lt;i&gt;Krok do&lt;/i&gt; pro vyslání signálu skonÄí přímo
+v místě (slot) s ním spojeném.</translation>
+ </message>
+ <message>
+ <source>Displays a message box as soon as your application
+receives a signal like SIGSEGV during debugging.</source>
<translation>Ukáže oznamovací okno, když program během ladění
přijme signál SIGSEGV.</translation>
</message>
@@ -4809,17 +5081,47 @@ markers in the source code editor.</source>
<translation>Použít pro zobrazení dynamický typ objektu</translation>
</message>
<message>
- <source>This specifies whether the dynamic or the static type of objects will bedisplayed. Choosing the dynamic type might be slower.</source>
+ <source>Specifies whether the dynamic or the static type of objects will be displayed. Choosing the dynamic type might be slower.</source>
<translation>Udává, zda je zobrazen dynamický nebo statický typ objektu. UrÄení dynamického typu může trvat déle.</translation>
</message>
<message>
+ <source>Allows or inhibits reading the user&apos;s default
+.gdbinit file on debugger startup.</source>
+ <translation>Dovolí nebo potlaÄí Ätení výchozího uživatelského
+souboru .gdbinit pÅ™i spuÅ¡tÄ›ní ladiÄe.</translation>
+ </message>
+ <message>
+ <source>Warn when debugging &quot;Release&quot; builds</source>
+ <translation>Varovat při ladění sestavení, která představují vydání (Release)</translation>
+ </message>
+ <message>
+ <source>Show a warning when starting the debugger on a binary with insufficient debug information.</source>
+ <translation>Ukázat varování pÅ™i spuÅ¡tÄ›ní ladÄ›ní pro spustitelný soubor s nedostateÄnými ladicími informacemi.</translation>
+ </message>
+ <message>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;Add common paths to locations of debug information such as &lt;i&gt;/usr/src/debug&lt;/i&gt; when starting GDB.&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;Přidat obvyklou cestu k umístěním s ladicími informacemi, jako např. &lt;i&gt;/usr/src/debug&lt;/i&gt; při spuštění GDB.&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Enable stepping backwards.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This feature is very slow and unstable on the GDB side. It exhibits unpredictable behavior when going backwards over system calls and is very likely to destroy your debugging session.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;VýbÄ›r tohoto povolí obrácené ladÄ›ní.&lt;/p&gt;&lt;.p&gt;&lt;b&gt;Poznámka:&lt;/b&gt; Tato vlastnost je velmi pomalá a na stranÄ› GDB nestálá. Projevuje pÅ™i postupu zpÄ›t systémovými voláními nepÅ™edvídatelné chování a je dost pravdÄ›podobné, že zniÄí vaÅ¡e ladicí sezení.&lt;/p&gt;&lt;body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;Postpone reading debug information as long as possible. This can result in faster startup times at the price of not being able to set breakpoints by file and number.&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;ZaÅ¡krtnutí této volby odloží Ätení informací o ladÄ›ní na tak dlouho, jak jen to bude možné. To může mít za následek rychlejší Äasy spuÅ¡tÄ›ní za tu cenu, že body pÅ™eruÅ¡ení nejde nastavit podle souboru a Äísla.&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <source>This specifies whether the dynamic or the static type of objects will bedisplayed. Choosing the dynamic type might be slower.</source>
+ <translation type="obsolete">Udává, zda je zobrazen dynamický nebo statický typ objektu. UrÄení dynamického typu může trvat déle.</translation>
+ </message>
+ <message>
<source>Load .gdbinit file on startup</source>
<translation>Nahrát soubor .gdbinit na zaÄátku</translation>
</message>
<message>
<source>This allows or inhibits reading the user&apos;s default
.gdbinit file on debugger startup.</source>
- <translation>Dovolí nebo potlaÄí Ätení výchozího uživatelského
+ <translation type="obsolete">Dovolí nebo potlaÄí Ätení výchozího uživatelského
souboru-.gdbinit pÅ™i spuÅ¡tÄ›ní ladiÄe.</translation>
</message>
<message>
@@ -4827,6 +5129,10 @@ souboru-.gdbinit pÅ™i spuÅ¡tÄ›ní ladiÄe.</translation>
<translation>Nastavení níže by se měla používat opatrně.</translation>
</message>
<message>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;The options below give access to advanced or experimental functions of GDB. Enabling them may negatively impact your debugging experience.&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;Volby níže dávají přístup k pokroÄilým nebo experimentálním funkcím GDB. Jejich povolení může mít záporný dopad na vaÅ¡i ladicí zkuÅ¡enost.&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
<source>Use asynchronous mode to control the inferior</source>
<translation>Použít asynchronní režim k ovládání laděného procesu</translation>
</message>
@@ -4837,20 +5143,20 @@ souboru-.gdbinit pÅ™i spuÅ¡tÄ›ní ladiÄe.</translation>
<message>
<source>This adds common paths to locations of debug information
at debugger startup.</source>
- <translation>Toto pÅ™i spuÅ¡tÄ›ní ladiÄe pÅ™idá spoleÄné cesty do míst s
+ <translation type="obsolete">Toto pÅ™i spuÅ¡tÄ›ní ladiÄe pÅ™idá spoleÄné cesty do míst s
informacemi o ladění.</translation>
</message>
<message>
<source>Stop when a qWarning is issued</source>
- <translation>Zastavit při qWarning</translation>
+ <translation type="obsolete">Zastavit při qWarning</translation>
</message>
<message>
<source>Stop when a qFatal is issued</source>
- <translation>Zastavit při qFatal</translation>
+ <translation type="obsolete">Zastavit při qFatal</translation>
</message>
<message>
<source>Stop when raise() is called</source>
- <translation>Zastavit při vyvolání raise()</translation>
+ <translation type="obsolete">Zastavit při vyvolání raise()</translation>
</message>
<message>
<source>Enable reverse debugging</source>
@@ -4858,11 +5164,11 @@ informacemi o ladění.</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Selecting this enables reverse debugging.&lt;/p&gt;&lt;.p&gt;&lt;b&gt;Note:&lt;/b&gt; This feature is very slow and unstable on the GDB side.It exhibits unpredictable behavior when going backwards over system calls and is very likely to destroy your debugging session.&lt;/p&gt;&lt;body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;VýbÄ›r tohoto povolí obrácené ladÄ›ní.&lt;/p&gt;&lt;.p&gt;&lt;b&gt;Poznámka:&lt;/b&gt; Tato vlastnost je velmi pomalá a na stranÄ› GDB nestálá. Projevuje pÅ™i postupu zpÄ›t systémovými voláními nepÅ™edvídatelné chování a je dost pravdÄ›podobné, že zniÄí vaÅ¡e ladicí sezení.&lt;/p&gt;&lt;body&gt;&lt;/html&gt;</translation>
+ <translation type="obsolete">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;VýbÄ›r tohoto povolí obrácené ladÄ›ní.&lt;/p&gt;&lt;.p&gt;&lt;b&gt;Poznámka:&lt;/b&gt; Tato vlastnost je velmi pomalá a na stranÄ› GDB nestálá. Projevuje pÅ™i postupu zpÄ›t systémovými voláními nepÅ™edvídatelné chování a je dost pravdÄ›podobné, že zniÄí vaÅ¡e ladicí sezení.&lt;/p&gt;&lt;body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Attempt quick start</source>
- <translation type="obsolete">Pokusit se o rychlé spuštění</translation>
+ <translation>Pokusit se o rychlé spuštění</translation>
</message>
<message>
<source>Checking this option will postpone reading debug information as long as possible. This can result in faster startup times at the price of not being able to set breakpoints by file and number.</source>
@@ -4873,6 +5179,10 @@ informacemi o ladění.</translation>
<translation>DodateÄné příkazy pÅ™i spuÅ¡tÄ›ní</translation>
</message>
<message>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;GDB commands entered here will be executed after GDB has been started and the debugging helpers have been initialized.&lt;/p&gt;&lt;p&gt;You can add commands to load further debugging helpers here, or modify existing ones.&lt;/p&gt;&lt;p&gt;To execute arbitrary Python scripts, use &lt;i&gt;python execfile(&apos;/path/to/script.py&apos;)&lt;/i&gt;.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Příkazy GDB zde zadané budou provedeny po spuštění GDB, a když byly pomocné ladicí programy inicializovány.&lt;/p&gt;&lt;p&gt;Příkazy pro nahrání dalších pomocných ladicích programů můžete zadat zde, anebo upravit stávající.&lt;/p&gt;&lt;p&gt;Ke spuštění libovolného Pythonského scriptu použijte &lt;i&gt;python execfile(&apos;/path/to/script.py&apos;)&lt;/i&gt;.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
<source>GDB</source>
<translation>GDB</translation>
</message>
@@ -4885,53 +5195,53 @@ informacemi o ladění.</translation>
<name>Debugger::Internal::ModulesModel</name>
<message>
<source>yes</source>
- <translation>Ano</translation>
+ <translation type="obsolete">Ano</translation>
</message>
<message>
<source>no</source>
- <translation>Ne</translation>
+ <translation type="obsolete">Ne</translation>
</message>
<message>
<source>Module name</source>
- <translation>Název modulu</translation>
+ <translation type="obsolete">Název modulu</translation>
</message>
<message>
<source>Module path</source>
- <translation>Cesta k modulu</translation>
+ <translation type="obsolete">Cesta k modulu</translation>
</message>
<message>
<source>Symbols read</source>
- <translation>Symboly pÅ™eÄteny</translation>
+ <translation type="obsolete">Symboly pÅ™eÄteny</translation>
</message>
<message>
<source>Symbols type</source>
- <translation>Typ symbolu</translation>
+ <translation type="obsolete">Typ symbolu</translation>
</message>
<message>
<source>Start address</source>
- <translation>PoÄáteÄní adresa</translation>
+ <translation type="obsolete">PoÄáteÄní adresa</translation>
</message>
<message>
<source>End address</source>
- <translation>Koncová adresa</translation>
+ <translation type="obsolete">Koncová adresa</translation>
</message>
<message>
<source>unknown</source>
- <translation>Neznámý</translation>
+ <translation type="obsolete">Neznámý</translation>
</message>
<message>
<source>plain</source>
- <translation>Prostá</translation>
+ <translation type="obsolete">Prostá</translation>
</message>
<message>
<source>fast</source>
- <translation>Rychlá</translation>
+ <translation type="obsolete">Rychlá</translation>
</message>
<message>
<source>&lt;unknown&gt;</source>
<comment>address</comment>
<extracomment>End address of loaded module</extracomment>
- <translation>&lt;Neznámá&gt;</translation>
+ <translation type="obsolete">&lt;Neznámá&gt;</translation>
</message>
</context>
<context>
@@ -4986,51 +5296,51 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Update Module List</source>
- <translation>Obnovit seznam modulů</translation>
+ <translation type="obsolete">Obnovit seznam modulů</translation>
</message>
<message>
<source>Show Source Files for Module &quot;%1&quot;</source>
- <translation>Ukázat zdrojové soubory k modulu &quot;%1&quot;</translation>
+ <translation type="obsolete">Ukázat zdrojové soubory k modulu &quot;%1&quot;</translation>
</message>
<message>
<source>Load Symbols for All Modules</source>
- <translation>Nahrát symboly ke všem modulům</translation>
+ <translation type="obsolete">Nahrát symboly ke všem modulům</translation>
</message>
<message>
<source>Examine All Modules</source>
- <translation>Vyšetřit všechny moduly</translation>
+ <translation type="obsolete">Vyšetřit všechny moduly</translation>
</message>
<message>
<source>Load Symbols for Module</source>
- <translation>Nahrát symboly k modulu</translation>
+ <translation type="obsolete">Nahrát symboly k modulu</translation>
</message>
<message>
<source>Edit File</source>
- <translation>Upravit soubor</translation>
+ <translation type="obsolete">Upravit soubor</translation>
</message>
<message>
<source>Show Symbols</source>
- <translation>Ukázat symboly</translation>
+ <translation type="obsolete">Ukázat symboly</translation>
</message>
<message>
<source>Show Dependencies</source>
- <translation>Ukázat závislosti</translation>
+ <translation type="obsolete">Ukázat závislosti</translation>
</message>
<message>
<source>Load Symbols for Module &quot;%1&quot;</source>
- <translation>Nahrát symboly k modulu &quot;%1&quot;</translation>
+ <translation type="obsolete">Nahrát symboly k modulu &quot;%1&quot;</translation>
</message>
<message>
<source>Edit File &quot;%1&quot;</source>
- <translation>Upravit soubor &quot;%1&quot;</translation>
+ <translation type="obsolete">Upravit soubor &quot;%1&quot;</translation>
</message>
<message>
<source>Show Symbols in File &quot;%1&quot;</source>
- <translation>Ukázat symboly v souboru &quot;%1&quot;</translation>
+ <translation type="obsolete">Ukázat symboly v souboru &quot;%1&quot;</translation>
</message>
<message>
<source>Show Dependencies of &quot;%1&quot;</source>
- <translation>Ukázat závislosti &quot;%1&quot;</translation>
+ <translation type="obsolete">Ukázat závislosti &quot;%1&quot;</translation>
</message>
<message>
<source>Adjust Column Widths to Contents</source>
@@ -5103,35 +5413,35 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Reload Register Listing</source>
- <translation>Registry nahrát znovu</translation>
+ <translation type="obsolete">Registry nahrát znovu</translation>
</message>
<message>
<source>Open Disassembler...</source>
- <translation>Otevřít disasembler...</translation>
+ <translation type="obsolete">Otevřít disasembler...</translation>
</message>
<message>
<source>Open Memory Editor at 0x%1</source>
- <translation>Otevřít editor paměti při 0x%1</translation>
+ <translation type="obsolete">Otevřít editor paměti při 0x%1</translation>
</message>
<message>
<source>Open Memory View at Value of Register %1 0x%2</source>
- <translation>Otevřít náhled paměti při hodnotě registru %1 0x%2</translation>
+ <translation type="obsolete">Otevřít náhled paměti při hodnotě registru %1 0x%2</translation>
</message>
<message>
<source>Open Disassembler at 0x%1</source>
- <translation>Otevřít disasembler při %1</translation>
+ <translation type="obsolete">Otevřít disasembler při %1</translation>
</message>
<message>
<source>Open Memory Editor</source>
- <translation>Otevřít editor paměti</translation>
+ <translation type="obsolete">Otevřít editor paměti</translation>
</message>
<message>
<source>Open Memory View at Value of Register</source>
- <translation>Otevřít náhled paměti při hodnotě registru</translation>
+ <translation type="obsolete">Otevřít náhled paměti při hodnotě registru</translation>
</message>
<message>
<source>Open Disassembler</source>
- <translation>Otevřít disasembler</translation>
+ <translation type="obsolete">Otevřít disasembler</translation>
</message>
<message>
<source>Open Memory Editor at %1</source>
@@ -5139,19 +5449,19 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Hexadecimal</source>
- <translation>Šestnáctkový</translation>
+ <translation type="obsolete">Šestnáctkový</translation>
</message>
<message>
<source>Decimal</source>
- <translation>Desítkový</translation>
+ <translation type="obsolete">Desítkový</translation>
</message>
<message>
<source>Octal</source>
- <translation>OsmiÄkový</translation>
+ <translation type="obsolete">OsmiÄkový</translation>
</message>
<message>
<source>Binary</source>
- <translation>Dvojkový</translation>
+ <translation type="obsolete">Dvojkový</translation>
</message>
<message>
<source>Adjust Column Widths to Contents</source>
@@ -5236,15 +5546,15 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Reload Data</source>
- <translation>Data nahrát znovu</translation>
+ <translation type="obsolete">Data nahrát znovu</translation>
</message>
<message>
<source>Open File</source>
- <translation>Otevřít soubor</translation>
+ <translation type="obsolete">Otevřít soubor</translation>
</message>
<message>
<source>Open File &quot;%1&quot;&apos;</source>
- <translation>Otevřít soubor &quot;%1&quot;&apos;</translation>
+ <translation type="obsolete">Otevřít soubor &quot;%1&quot;&apos;</translation>
</message>
<message>
<source>Reload data</source>
@@ -5271,27 +5581,43 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Address:</source>
- <translation type="obsolete">Adresa:</translation>
+ <translation>Adresa:</translation>
</message>
<message>
<source>Function:</source>
- <translation type="obsolete">Funkce:</translation>
+ <translation>Funkce:</translation>
</message>
<message>
<source>File:</source>
- <translation type="obsolete">Soubor:</translation>
+ <translation>Soubor:</translation>
</message>
<message>
<source>Line:</source>
- <translation type="obsolete">Řádek:</translation>
+ <translation>Řádek:</translation>
</message>
<message>
<source>From:</source>
- <translation type="obsolete">Od:</translation>
+ <translation>Od:</translation>
</message>
<message>
<source>To:</source>
- <translation type="obsolete">Do:</translation>
+ <translation>Do:</translation>
+ </message>
+ <message>
+ <source>Note:</source>
+ <translation>Poznámka:</translation>
+ </message>
+ <message>
+ <source>Sources for this frame are available.&lt;br&gt;Double-click on the file name to open an editor.</source>
+ <translation>Zdroje pro tento snímek jsou dostupné.&lt;br&gt;Dvojité klepnutí na název souboru pro otevření editoru.</translation>
+ </message>
+ <message>
+ <source>Binary debug information is not accessible for this frame. This either means the core was not compiled with debug information, or the debug information is not accessible. Note that most distributions ship debug information in separate packages.</source>
+ <translation>Informace o ladÄ›ní spustitelného souboru nejsou pro tento snímek přístupné. To buÄ znamená, že core nebyl sestaven s informacemi o ladÄ›ní, nebo že informace o ladÄ›ní nejsou přístupné. UvÄ›domte si, že vÄ›tÅ¡ina distribucí vede informace o ladÄ›ní v oddÄ›lených balíÄcích. </translation>
+ </message>
+ <message>
+ <source>Binary debug information is accessible for this frame. However, matching sources have not been found. Note that some distributions ship debug sources in separate packages.</source>
+ <translation>Informace o ladÄ›ní spustitelného souboru jsou pro tento snímek přístupné. NicménÄ› odpovídající zdroje nebyly nalezeny. UvÄ›domte si, že vÄ›tÅ¡ina distribucí vede informace o ladÄ›ní v oddÄ›lených balíÄcích.</translation>
</message>
<message>
<source>Level</source>
@@ -5322,31 +5648,31 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Function:</source>
- <translation>Funkce:</translation>
+ <translation type="obsolete">Funkce:</translation>
</message>
<message>
<source>Disassemble Function</source>
- <translation>Rozložit funkci (disassemble)</translation>
+ <translation type="obsolete">Rozložit funkci (disassemble)</translation>
</message>
<message>
<source>Copy Contents to Clipboard</source>
- <translation>Obsah kopírovat do schránky</translation>
+ <translation type="obsolete">Obsah kopírovat do schránky</translation>
</message>
<message>
<source>Open Memory Editor</source>
- <translation>Otevřít editor paměti</translation>
+ <translation type="obsolete">Otevřít editor paměti</translation>
</message>
<message>
<source>Open Memory Editor at 0x%1</source>
- <translation>Otevřít editor paměti při 0x%1</translation>
+ <translation type="obsolete">Otevřít editor paměti při 0x%1</translation>
</message>
<message>
<source>Open Disassembler at Address...</source>
- <translation>Otevřít disasembler na adrese...</translation>
+ <translation type="obsolete">Otevřít disasembler na adrese...</translation>
</message>
<message>
<source>Disassemble Function...</source>
- <translation>Rozložit funkci (disassemble)...</translation>
+ <translation type="obsolete">Rozložit funkci (disassemble)...</translation>
</message>
<message>
<source>Open Disassembler...</source>
@@ -5354,19 +5680,19 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Open Disassembler at 0x%1</source>
- <translation>Otevřít disasembler při %1</translation>
+ <translation type="obsolete">Otevřít disasembler při %1</translation>
</message>
<message>
<source>Try to Load Unknown Symbols</source>
- <translation>Nahrát neznámé symboly</translation>
+ <translation type="obsolete">Nahrát neznámé symboly</translation>
</message>
<message>
<source>Memory at Frame #%1 (%2) 0x%3</source>
- <translation>Paměť při snímku #%1 (%2) 0x%3</translation>
+ <translation type="obsolete">Paměť při snímku #%1 (%2) 0x%3</translation>
</message>
<message>
<source>Frame #%1 (%2)</source>
- <translation>Snímek #%1 (%2)</translation>
+ <translation type="obsolete">Snímek #%1 (%2)</translation>
</message>
<message>
<source>Open Memory Editor at %1</source>
@@ -5374,7 +5700,7 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Open Disassembler</source>
- <translation>Otevřít disasembler</translation>
+ <translation type="obsolete">Otevřít disasembler</translation>
</message>
<message>
<source>Open Disassembler at %1</source>
@@ -5421,11 +5747,11 @@ informacemi o ladění.</translation>
<name>Debugger::Internal::StartExternalDialog</name>
<message>
<source>Select Executable</source>
- <translation>Vybrat spustitelný soubor</translation>
+ <translation type="obsolete">Vybrat spustitelný soubor</translation>
</message>
<message>
<source>Select Working Directory</source>
- <translation>Vyberte pracovní adresář</translation>
+ <translation type="obsolete">Vyberte pracovní adresář</translation>
</message>
<message>
<source>Executable:</source>
@@ -5437,35 +5763,35 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Start Debugger</source>
- <translation>Spustit ladicí program</translation>
+ <translation type="obsolete">Spustit ladicí program</translation>
</message>
<message>
<source>&amp;Executable:</source>
- <translation>&amp;Spustitelný soubor:</translation>
+ <translation type="obsolete">&amp;Spustitelný soubor:</translation>
</message>
<message>
<source>&amp;Arguments:</source>
- <translation>&amp;Argumenty:</translation>
+ <translation type="obsolete">&amp;Argumenty:</translation>
</message>
<message>
<source>Run in &amp;terminal:</source>
- <translation>Spustit v &amp;terminálu:</translation>
+ <translation type="obsolete">Spustit v &amp;terminálu:</translation>
</message>
<message>
<source>&amp;Working directory:</source>
- <translation>&amp;Pracovní adresář:</translation>
+ <translation type="obsolete">&amp;Pracovní adresář:</translation>
</message>
<message>
<source>&amp;Tool chain:</source>
- <translation>Sada &amp;nástrojů:</translation>
+ <translation type="obsolete">Sada &amp;nástrojů:</translation>
</message>
<message>
<source>Break at &apos;&amp;main&apos;:</source>
- <translation>Bod přerušení při &apos;&amp;main&apos;:</translation>
+ <translation type="obsolete">Bod přerušení při &apos;&amp;main&apos;:</translation>
</message>
<message>
<source>&amp;Recent:</source>
- <translation>&amp;Poslední:</translation>
+ <translation type="obsolete">&amp;Poslední:</translation>
</message>
</context>
<context>
@@ -5476,27 +5802,27 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Select Location of Debugging Information</source>
- <translation>Vybrat umístění informací o ladění</translation>
+ <translation type="obsolete">Vybrat umístění informací o ladění</translation>
</message>
<message>
<source>Select Executable</source>
- <translation>Vybrat spustitelný soubor</translation>
+ <translation type="obsolete">Vybrat spustitelný soubor</translation>
</message>
<message>
<source>Select Sysroot</source>
- <translation>Vybrat Sysroot</translation>
+ <translation type="obsolete">Vybrat Sysroot</translation>
</message>
<message>
<source>Select GDB Start Script</source>
- <translation>Vybrat spouštěcí skript GDB</translation>
+ <translation type="obsolete">Vybrat spouštěcí skript GDB</translation>
</message>
<message>
<source>Select Server Start Script</source>
- <translation>Vybrat spouštěcí skript k serveru</translation>
+ <translation type="obsolete">Vybrat spouštěcí skript k serveru</translation>
</message>
<message>
<source>Remote: &quot;%1&quot;</source>
- <translation>Vzdálený: &quot;%1&quot;</translation>
+ <translation type="obsolete">Vzdálený: &quot;%1&quot;</translation>
</message>
<message>
<source>Select Start Script</source>
@@ -5504,47 +5830,47 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Start Debugger</source>
- <translation>Spustit ladicí program</translation>
+ <translation type="obsolete">Spustit ladicí program</translation>
</message>
<message>
<source>Tool &amp;chain:</source>
- <translation>S&amp;ada nástrojů:</translation>
+ <translation type="obsolete">S&amp;ada nástrojů:</translation>
</message>
<message>
<source>Local &amp;executable:</source>
- <translation>&amp;Místní spustitelný soubor:</translation>
+ <translation type="obsolete">&amp;Místní spustitelný soubor:</translation>
</message>
<message>
<source>&amp;Host and port:</source>
- <translation>&amp;Hostitelský poÄítaÄ a Äíslo portu:</translation>
+ <translation type="obsolete">&amp;Hostitelský poÄítaÄ a Äíslo portu:</translation>
</message>
<message>
<source>&amp;Architecture:</source>
- <translation>&amp;Architektura:</translation>
+ <translation type="obsolete">&amp;Architektura:</translation>
</message>
<message>
<source>Sys&amp;root:</source>
- <translation>Sys&amp;root:</translation>
+ <translation type="obsolete">Sys&amp;root:</translation>
</message>
<message>
<source>Location of debugging &amp;information:</source>
- <translation>Umístění &amp;informací o ladění:</translation>
+ <translation type="obsolete">Umístění &amp;informací o ladění:</translation>
</message>
<message>
<source>Override host GDB s&amp;tart script:</source>
- <translation>Přepsat &amp;spouštěcí skript GDB na hostiteli:</translation>
+ <translation type="obsolete">Přepsat &amp;spouštěcí skript GDB na hostiteli:</translation>
</message>
<message>
<source>&amp;Use server start script:</source>
- <translation>&amp;Použít spouštěcí skript k serveru:</translation>
+ <translation type="obsolete">&amp;Použít spouštěcí skript k serveru:</translation>
</message>
<message>
<source>&amp;Server start script:</source>
- <translation>Spouštěcí skript k &amp;serveru:</translation>
+ <translation type="obsolete">Spouštěcí skript k &amp;serveru:</translation>
</message>
<message>
<source>&amp;Recent:</source>
- <translation>&amp;Poslední:</translation>
+ <translation type="obsolete">&amp;Poslední:</translation>
</message>
</context>
<context>
@@ -5630,7 +5956,7 @@ informacemi o ladění.</translation>
<name>Debugger::Internal::ThreadsWindow</name>
<message>
<source>Thread</source>
- <translation>Vlákno</translation>
+ <translation type="obsolete">Vlákno</translation>
</message>
<message>
<source>Adjust Column Widths to Contents</source>
@@ -5650,7 +5976,7 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Threads</source>
- <translation type="obsolete">Vlákna</translation>
+ <translation>Vlákna</translation>
</message>
</context>
<context>
@@ -5698,7 +6024,15 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Static Object Size</source>
- <translation type="obsolete">Velikost statického objektu</translation>
+ <translation>Velikost statického objektu</translation>
+ </message>
+ <message numerus="yes">
+ <source>%n bytes</source>
+ <translation>
+ <numerusform>%1 byt</numerusform>
+ <numerusform>%1 byty</numerusform>
+ <numerusform>%1 bytů</numerusform>
+ </translation>
</message>
<message>
<source>%1 bytes</source>
@@ -5706,7 +6040,7 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Size</source>
- <translation>Velikost</translation>
+ <translation type="obsolete">Velikost</translation>
</message>
<message>
<source>Stored Address</source>
@@ -5718,7 +6052,7 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Generation</source>
- <translation>Vytvoření</translation>
+ <translation type="obsolete">Vytvoření</translation>
</message>
<message>
<source>&lt;Edit&gt;</source>
@@ -5726,19 +6060,19 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Root</source>
- <translation>Kořen (root)</translation>
+ <translation type="obsolete">Kořen (root)</translation>
</message>
<message>
<source>Return Value</source>
- <translation>Návratová hodnota</translation>
+ <translation type="obsolete">Návratová hodnota</translation>
</message>
<message>
<source>Locals</source>
- <translation>Místní proměnné</translation>
+ <translation type="obsolete">Místní proměnné</translation>
</message>
<message>
<source>Tooltip</source>
- <translation>Kontextová nápověda</translation>
+ <translation type="obsolete">Kontextová nápověda</translation>
</message>
<message>
<source>&lt;empty&gt;</source>
@@ -5774,43 +6108,43 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Raw pointer</source>
- <translation>Hodnota ukazatele</translation>
+ <translation type="obsolete">Hodnota ukazatele</translation>
</message>
<message>
<source>Latin1 string</source>
- <translation>Řetězec Latin1</translation>
+ <translation type="obsolete">Řetězec Latin1</translation>
</message>
<message>
<source>UTF8 string</source>
- <translation>Řetězec UTF8</translation>
+ <translation type="obsolete">Řetězec UTF8</translation>
</message>
<message>
<source>Local 8bit string</source>
- <translation>Řetězec znaků v místním 8bitovém kódování</translation>
+ <translation type="obsolete">Řetězec znaků v místním 8bitovém kódování</translation>
</message>
<message>
<source>UTF16 string</source>
- <translation>Řetězec UTF16</translation>
+ <translation type="obsolete">Řetězec UTF16</translation>
</message>
<message>
<source>UCS4 string</source>
- <translation>Řetězec UCS4</translation>
+ <translation type="obsolete">Řetězec UCS4</translation>
</message>
<message>
<source>Decimal</source>
- <translation>Desítkový</translation>
+ <translation type="obsolete">Desítkový</translation>
</message>
<message>
<source>Hexadecimal</source>
- <translation>Šestnáctkový</translation>
+ <translation type="obsolete">Šestnáctkový</translation>
</message>
<message>
<source>Binary</source>
- <translation>Dvojkový</translation>
+ <translation type="obsolete">Dvojkový</translation>
</message>
<message>
<source>Octal</source>
- <translation>OsmiÄkový</translation>
+ <translation type="obsolete">OsmiÄkový</translation>
</message>
<message>
<source>%1 Object at %2</source>
@@ -5830,7 +6164,7 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Watchers</source>
- <translation>Sledované výrazy</translation>
+ <translation type="obsolete">Sledované výrazy</translation>
</message>
<message>
<source>Value</source>
@@ -5870,16 +6204,16 @@ informacemi o ladění.</translation>
<message>
<source>&lt;i&gt;%1&lt;/i&gt; %2 at #%3</source>
<extracomment>HTML tooltip of a variable in the memory editor</extracomment>
- <translation>&lt;i&gt;%1&lt;/i&gt; %2 při #%3</translation>
+ <translation type="obsolete">&lt;i&gt;%1&lt;/i&gt; %2 při #%3</translation>
</message>
<message>
<source>&lt;i&gt;%1&lt;/i&gt; %2</source>
<extracomment>HTML tooltip of a variable in the memory editor</extracomment>
- <translation>&lt;i&gt;%1&lt;/i&gt; %2</translation>
+ <translation type="obsolete">&lt;i&gt;%1&lt;/i&gt; %2</translation>
</message>
<message>
<source>Register &lt;i&gt;%1&lt;/i&gt;</source>
- <translation>Registr &lt;i&gt;%1&lt;/i&gt;</translation>
+ <translation type="obsolete">Registr &lt;i&gt;%1&lt;/i&gt;</translation>
</message>
<message>
<source>Memory Referenced by Pointer &apos;%1&apos; (0x%2)</source>
@@ -5891,23 +6225,23 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Memory Referenced by Pointer &quot;%1&quot; (0x%2)</source>
- <translation>Paměť odkazovaná ukazatelem &quot;%1&quot; (0x%2)</translation>
+ <translation type="obsolete">Paměť odkazovaná ukazatelem &quot;%1&quot; (0x%2)</translation>
</message>
<message>
<source>Memory at Variable &quot;%1&quot; (0x%2)</source>
- <translation>Paměť při proměnné &quot;%1&quot; (0x%2)</translation>
+ <translation type="obsolete">Paměť při proměnné &quot;%1&quot; (0x%2)</translation>
</message>
<message>
<source>Cannot Display Stack Layout</source>
- <translation>Nelze zobrazit rozvržení zásobníku</translation>
+ <translation type="obsolete">Nelze zobrazit rozvržení zásobníku</translation>
</message>
<message>
<source>Could not determine a suitable address range.</source>
- <translation>NepodaÅ™ilo se urÄit žádný vhodný rozsah adresy.</translation>
+ <translation type="obsolete">NepodaÅ™ilo se urÄit žádný vhodný rozsah adresy.</translation>
</message>
<message>
<source>Memory Layout of Local Variables at 0x%1</source>
- <translation>Rozložení paměti místní proměnné při 0x%1</translation>
+ <translation type="obsolete">Rozložení paměti místní proměnné při 0x%1</translation>
</message>
<message>
<source>Locals and Expressions</source>
@@ -5915,19 +6249,19 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Evaluate Expression</source>
- <translation>Vyhodnotit výraz</translation>
+ <translation type="obsolete">Vyhodnotit výraz</translation>
</message>
<message>
<source>Evaluate Expression &quot;%1&quot;</source>
- <translation>Vyhodnotit výraz &quot;%1&quot;</translation>
+ <translation type="obsolete">Vyhodnotit výraz &quot;%1&quot;</translation>
</message>
<message>
<source>Remove Evaluated Expression</source>
- <translation>Odstranit vyhodnocený výraz</translation>
+ <translation type="obsolete">Odstranit vyhodnocený výraz</translation>
</message>
<message>
<source>Remove Evaluated Expression &quot;%1&quot;</source>
- <translation>Odstranit vyhodnocený výraz &quot;%1&quot;</translation>
+ <translation type="obsolete">Odstranit vyhodnocený výraz &quot;%1&quot;</translation>
</message>
<message>
<source>Change Display Format...</source>
@@ -5935,23 +6269,23 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Treat All Characters as Printable</source>
- <translation>Považovat všechny znaky za tisknutelné</translation>
+ <translation type="obsolete">Považovat všechny znaky za tisknutelné</translation>
</message>
<message>
<source>Show Unprintable Characters as Escape Sequences</source>
- <translation>Ukázat netisknutelné znaky jako únikové posloupnosti</translation>
+ <translation type="obsolete">Ukázat netisknutelné znaky jako únikové posloupnosti</translation>
</message>
<message>
<source>Show Unprintable Characters as Octal</source>
- <translation>Ukázat netisknutelné znaky jako osmiÄkové</translation>
+ <translation type="obsolete">Ukázat netisknutelné znaky jako osmiÄkové</translation>
</message>
<message>
<source>Show Unprintable Characters as Hexadecimal</source>
- <translation>Ukázat netisknutelné znaky jako šestnáctkové</translation>
+ <translation type="obsolete">Ukázat netisknutelné znaky jako šestnáctkové</translation>
</message>
<message>
<source>Change Display for Object Named &quot;%1&quot;:</source>
- <translation>Změnit formát zobrazení pro objekt s názvem &quot;%1&quot;:</translation>
+ <translation type="obsolete">Změnit formát zobrazení pro objekt s názvem &quot;%1&quot;:</translation>
</message>
<message>
<source>Use Display Format Based on Type</source>
@@ -5959,55 +6293,55 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Change Display for Type &quot;%1&quot;:</source>
- <translation>Změnit zobrazení pro typ &apos;%1&apos;:</translation>
+ <translation type="obsolete">Změnit zobrazení pro typ &apos;%1&apos;:</translation>
</message>
<message>
<source>Automatic</source>
- <translation>Automaticky</translation>
+ <translation type="obsolete">Automaticky</translation>
</message>
<message>
<source>Change Display for Type or Item...</source>
- <translation>Změnit zobrazení pro typ nebo prvek...</translation>
+ <translation type="obsolete">Změnit zobrazení pro typ nebo prvek...</translation>
</message>
<message>
<source>Add Data Breakpoint...</source>
- <translation>Přidat bod přerušení dat...</translation>
+ <translation type="obsolete">Přidat bod přerušení dat...</translation>
</message>
<message>
<source>Add Data Breakpoint at Object&apos;s Address (0x%1)</source>
- <translation>Přidat bod přerušení dat na adrese objektu (0x%1)</translation>
+ <translation type="obsolete">Přidat bod přerušení dat na adrese objektu (0x%1)</translation>
</message>
<message>
<source>Add Data Breakpoint at Referenced Address (0x%1)</source>
- <translation>Přidat bod přerušení dat na odkazované adrese (0x%1)</translation>
+ <translation type="obsolete">Přidat bod přerušení dat na odkazované adrese (0x%1)</translation>
</message>
<message>
<source>Add Data Breakpoint</source>
- <translation>Přidat bod přerušení dat</translation>
+ <translation type="obsolete">Přidat bod přerušení dat</translation>
</message>
<message>
<source>Setting a data breakpoint on an address will cause the program to stop when the data at the address is modified.</source>
- <translation>Nastavení bodu pÅ™eruÅ¡ení dat na urÄitou adresu způsobí, že program se zastaví, když jsou tam nacházející se data zmÄ›nÄ›na.</translation>
+ <translation type="obsolete">Nastavení bodu pÅ™eruÅ¡ení dat na urÄitou adresu způsobí, že program se zastaví, když jsou tam nacházející se data zmÄ›nÄ›na.</translation>
</message>
<message>
<source>Add Data Breakpoint at Expression &quot;%1&quot;</source>
- <translation>Přidat bod přerušení dat při výrazu &quot;%1&quot;</translation>
+ <translation type="obsolete">Přidat bod přerušení dat při výrazu &quot;%1&quot;</translation>
</message>
<message>
<source>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.</source>
- <translation>Nastavení bodu pÅ™eruÅ¡ení dat na urÄitý výraz způsobí, že program se zastaví, když jsou zmÄ›nÄ›na data nacházející se na adrese dané oním výrazem.</translation>
+ <translation type="obsolete">Nastavení bodu pÅ™eruÅ¡ení dat na urÄitý výraz způsobí, že program se zastaví, když jsou zmÄ›nÄ›na data nacházející se na adrese dané oním výrazem.</translation>
</message>
<message>
<source>Insert New Evaluated Expression</source>
- <translation>Vložit nový vyhodnocený výraz</translation>
+ <translation type="obsolete">Vložit nový vyhodnocený výraz</translation>
</message>
<message>
<source>Select Widget to Watch</source>
- <translation>Vybrat prvek za úÄelem sledování</translation>
+ <translation type="obsolete">Vybrat prvek za úÄelem sledování</translation>
</message>
<message>
<source>Remove All Evaluated Expressions</source>
- <translation>Odstranit všechny vyhodnocené výrazy</translation>
+ <translation type="obsolete">Odstranit všechny vyhodnocené výrazy</translation>
</message>
<message>
<source>Remove All Watch Items</source>
@@ -6015,91 +6349,91 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Change Local Display Format...</source>
- <translation>Změnit místní formát zobrazení...</translation>
+ <translation type="obsolete">Změnit místní formát zobrazení...</translation>
</message>
<message>
<source>Use Format for Type (Currently %1)</source>
- <translation>Použít formát zobrazení na typ (nyní %1)</translation>
+ <translation type="obsolete">Použít formát zobrazení na typ (nyní %1)</translation>
</message>
<message>
<source>Use Display Format Based on Type </source>
- <translation>Použít formát zobrazení založený na typu</translation>
+ <translation type="obsolete">Použít formát zobrazení založený na typu</translation>
</message>
<message>
<source>Add Data Breakpoint at Expression</source>
- <translation>Přidat bod přerušení dat při výrazu</translation>
+ <translation type="obsolete">Přidat bod přerušení dat při výrazu</translation>
</message>
<message>
<source>Change Global Display Formats...</source>
- <translation>Změnit celkové formáty zobrazení...</translation>
+ <translation type="obsolete">Změnit celkové formáty zobrazení...</translation>
</message>
<message>
<source>Open Memory Editor...</source>
- <translation>Otevřít editor paměti...</translation>
+ <translation type="obsolete">Otevřít editor paměti...</translation>
</message>
<message>
<source>Open Memory Editor at Object&apos;s Address (0x%1)</source>
- <translation>Otevřít editor paměti na adrese objektu (0x%1)</translation>
+ <translation type="obsolete">Otevřít editor paměti na adrese objektu (0x%1)</translation>
</message>
<message>
<source>Open Memory View at Object&apos;s Address (0x%1)</source>
- <translation>Otevřít zobrazení paměti na adrese objektu (0x%1)</translation>
+ <translation type="obsolete">Otevřít zobrazení paměti na adrese objektu (0x%1)</translation>
</message>
<message>
<source>Open Memory Editor at Object&apos;s Address</source>
- <translation>Otevřít editor paměti na adrese objektu</translation>
+ <translation type="obsolete">Otevřít editor paměti na adrese objektu</translation>
</message>
<message>
<source>Open Memory View at Object&apos;s Address</source>
- <translation>Otevřít zobrazení paměti na adrese objektu</translation>
+ <translation type="obsolete">Otevřít zobrazení paměti na adrese objektu</translation>
</message>
<message>
<source>Open Memory Editor at Referenced Address (0x%1)</source>
- <translation>Otevřít editor paměti na odkazované adrese (0x%1)</translation>
+ <translation type="obsolete">Otevřít editor paměti na odkazované adrese (0x%1)</translation>
</message>
<message>
<source>Open Memory View at Referenced Address (0x%1)</source>
- <translation>Otevřít zobrazení paměti na odkazované adrese (0x%1)</translation>
+ <translation type="obsolete">Otevřít zobrazení paměti na odkazované adrese (0x%1)</translation>
</message>
<message>
<source>Open Memory Editor at Referenced Address</source>
- <translation>Otevřít editor paměti na odkazované adrese</translation>
+ <translation type="obsolete">Otevřít editor paměti na odkazované adrese</translation>
</message>
<message>
<source>Open Memory View at Referenced Address</source>
- <translation>Otevřít zobrazení paměti na odkazované adrese</translation>
+ <translation type="obsolete">Otevřít zobrazení paměti na odkazované adrese</translation>
</message>
<message>
<source>Open Memory Editor Showing Stack Layout</source>
- <translation>Otevřít editor paměti s ukázáním rozložení zásobníku</translation>
+ <translation type="obsolete">Otevřít editor paměti s ukázáním rozložení zásobníku</translation>
</message>
<message>
<source>Copy Contents to Clipboard</source>
- <translation>Obsah kopírovat do schránky</translation>
+ <translation type="obsolete">Obsah kopírovat do schránky</translation>
</message>
<message>
<source>Copy Value to Clipboard</source>
- <translation>Kopírovat hodnotu do schránky</translation>
+ <translation type="obsolete">Kopírovat hodnotu do schránky</translation>
</message>
<message>
<source>Show View Contents in Editor</source>
- <translation>Ukázat obsah pohledu v editoru</translation>
+ <translation type="obsolete">Ukázat obsah pohledu v editoru</translation>
</message>
<message>
<source>Close Editor Tooltips</source>
- <translation>Zavřít vysvětlivky editoru</translation>
+ <translation type="obsolete">Zavřít vysvětlivky editoru</translation>
</message>
<message>
<source>Enter watch expression</source>
- <translation>Zadat sledovaný výraz</translation>
+ <translation type="obsolete">Zadat sledovaný výraz</translation>
</message>
<message>
<source>Expression:</source>
- <translation>Výraz:</translation>
+ <translation type="obsolete">Výraz:</translation>
</message>
<message>
<source>Locals &amp; Watchers</source>
- <translation>Místní proměnné a sledované výrazy</translation>
+ <translation type="obsolete">Místní proměnné a sledované výrazy</translation>
</message>
<message>
<source>Open Memory Editor at %1</source>
@@ -6107,7 +6441,7 @@ informacemi o ladění.</translation>
</message>
<message>
<source>Refresh Code Model Snapshot</source>
- <translation>Obnovit stav modelu kódu</translation>
+ <translation type="obsolete">Obnovit stav modelu kódu</translation>
</message>
<message>
<source>Adjust Column Widths to Contents</source>
@@ -6270,19 +6604,19 @@ informacemi o ladění.</translation>
<name>Designer</name>
<message>
<source>The file name is empty.</source>
- <translation>Název souboru je prázdný.</translation>
+ <translation type="obsolete">Název souboru je prázdný.</translation>
</message>
<message>
<source>XML error on line %1, col %2: %3</source>
- <translation>Chyba v XML na řádku %1, sloupec %2: %3</translation>
+ <translation type="obsolete">Chyba v XML na řádku %1, sloupec %2: %3</translation>
</message>
<message>
<source>The &lt;RCC&gt; root element is missing.</source>
- <translation>Kořenový prvek (&lt;RCC&gt;) chybí.</translation>
+ <translation type="obsolete">Kořenový prvek (&lt;RCC&gt;) chybí.</translation>
</message>
<message>
<source>Cannot write file. Disk full?</source>
- <translation>Soubor se nepodařilo zapsat. Možná že už na pevném disku není místo pro ukládání?</translation>
+ <translation type="obsolete">Soubor se nepodařilo zapsat. Možná že už na pevném disku není místo pro ukládání?</translation>
</message>
<message>
<source>Xml Editor</source>
@@ -6465,14 +6799,14 @@ Zkuste projekt vytvořit znovu.</translation>
<translation>Upravit pořadí tabulátorů</translation>
</message>
<message>
- <source>Meta+H</source>
- <translation></translation>
- </message>
- <message>
<source>Ctrl+H</source>
<translation>Ctrl+H</translation>
</message>
<message>
+ <source>Meta+Shift+H</source>
+ <translation>Meta+Shift+H</translation>
+ </message>
+ <message>
<source>Meta+L</source>
<translation></translation>
</message>
@@ -6481,14 +6815,14 @@ Zkuste projekt vytvořit znovu.</translation>
<translation>Ctrl+L</translation>
</message>
<message>
- <source>Meta+G</source>
- <translation></translation>
- </message>
- <message>
<source>Ctrl+G</source>
<translation>Ctrl+G</translation>
</message>
<message>
+ <source>Meta+Shift+G</source>
+ <translation>Meta+Shift+G</translation>
+ </message>
+ <message>
<source>Meta+J</source>
<translation></translation>
</message>
@@ -6998,6 +7332,10 @@ Důvod: %3</translation>
<translation>Hledání dosáhlo na zaÄátek, pokraÄuje se na konci</translation>
</message>
<message>
+ <source>Invalid regular expression: %1</source>
+ <translation>Neplatný regulární výraz %1</translation>
+ </message>
+ <message>
<source>Already at oldest change</source>
<translation>Dosažena nejstarší změna</translation>
</message>
@@ -7094,7 +7432,7 @@ Důvod: %3</translation>
</message>
<message>
<source>Backspace:</source>
- <translation>Zpětná klávesa:</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Keyword characters:</source>
@@ -7112,6 +7450,10 @@ Důvod: %3</translation>
<source>Set Plain Style</source>
<translation>Nastavit prostý styl</translation>
</message>
+ <message>
+ <source>Use smartcase</source>
+ <translation type="unfinished">Použít smartcase</translation>
+ </message>
</context>
<context>
<name>FakeVim::Internal::FakeVimPluginPrivate</name>
@@ -7128,10 +7470,26 @@ Důvod: %3</translation>
<translation type="obsolete">UkonÄit FakeVim</translation>
</message>
<message>
+ <source>Meta+V,Meta+V</source>
+ <translation>Meta+V,Meta+V</translation>
+ </message>
+ <message>
+ <source>Alt+V,Alt+V</source>
+ <translation>Alt+V,Alt+V</translation>
+ </message>
+ <message>
<source>Execute User Action #%1</source>
<translation>Provést uživatelský krok #%1</translation>
</message>
<message>
+ <source>Meta+V,%1</source>
+ <translation>Meta+V,%1</translation>
+ </message>
+ <message>
+ <source>Alt+V,%1</source>
+ <translation>Alt+V,%1</translation>
+ </message>
+ <message>
<source>File not saved</source>
<translation>Soubor neuložen</translation>
</message>
@@ -7469,19 +7827,19 @@ Přidat, upravit a odstranit dokumentové filtry, které v režimu nápovědy ur
</message>
<message>
<source>Find Next (Selected)</source>
- <translation type="obsolete">Najít další (vybrané)</translation>
+ <translation>Najít další (vybrané)</translation>
</message>
<message>
<source>Ctrl+F3</source>
- <translation type="obsolete">Ctrl+F3</translation>
+ <translation>Ctrl+F3</translation>
</message>
<message>
<source>Find Previous (Selected)</source>
- <translation type="obsolete">Najít předchozí (vybrané)</translation>
+ <translation>Najít předchozí (vybrané)</translation>
</message>
<message>
<source>Ctrl+Shift+F3</source>
- <translation type="obsolete">Ctrl+Shift+F3</translation>
+ <translation>Ctrl+Shift+F3</translation>
</message>
<message>
<source>Replace</source>
@@ -7825,11 +8183,11 @@ více Äasu, než je nastaveno. V takovém případÄ› by se mÄ›la hodnota zvýš
</message>
<message>
<source>Tool chain:</source>
- <translation>Sada nástrojů:</translation>
+ <translation type="obsolete">Sada nástrojů:</translation>
</message>
<message>
<source>&lt;Invalid tool chain&gt;</source>
- <translation>&lt;Neplatná sada nástrojů&gt;</translation>
+ <translation type="obsolete">&lt;Neplatná sada nástrojů&gt;</translation>
</message>
<message>
<source>Tool Chain:</source>
@@ -7876,11 +8234,11 @@ více Äasu, než je nastaveno. V takovém případÄ› by se mÄ›la hodnota zvýš
</message>
<message>
<source>Import Existing Project</source>
- <translation>Zavést stávající projekt</translation>
+ <translation>Importovat stávající projekt</translation>
</message>
<message>
<source>Imports existing projects that do not use qmake, CMake or Autotools. This allows you to use Qt Creator as a code editor.</source>
- <translation>Zavede stávající projekty, které nepoužívají qmake, CMake nebo Autotools. Toto vám umožní používat Qt Creator jako editor kódu.</translation>
+ <translation>Importuje stávající projekty, které nepoužívají qmake, CMake nebo Autotools. Toto vám umožní používat Qt Creator jako editor kódu.</translation>
</message>
<message>
<source>Imports existing projects that do not use qmake or CMake. This allows you to use Qt Creator as a code editor.</source>
@@ -7899,7 +8257,7 @@ více Äasu, než je nastaveno. V takovém případÄ› by se mÄ›la hodnota zvýš
</message>
<message>
<source>Import Existing Project</source>
- <translation>Zavést stávající projekt</translation>
+ <translation>Importovat stávající projekt</translation>
</message>
<message>
<source>Project Name and Location</source>
@@ -7934,7 +8292,7 @@ více Äasu, než je nastaveno. V takovém případÄ› by se mÄ›la hodnota zvýš
<name>Git::Internal::BranchDialog</name>
<message>
<source>Checkout</source>
- <translation type="obsolete">Přezkoušet (checkout; dostat kopii)</translation>
+ <translation>NaÄíst (checkout)</translation>
</message>
<message>
<source>Delete</source>
@@ -7957,6 +8315,10 @@ více Äasu, než je nastaveno. V takovém případÄ› by se mÄ›la hodnota zvýš
<translation type="obsolete">Smazat...</translation>
</message>
<message>
+ <source>Checkout branch?</source>
+ <translation>NaÄíst (checkout) vÄ›tev?</translation>
+ </message>
+ <message>
<source>Would you like to delete the &lt;b&gt;unmerged&lt;/b&gt; branch &apos;%1&apos;?</source>
<translation>Chcete smazat dosud &lt;b&gt;neslouÄenou&lt;/b&gt; vÄ›tev &apos;%1&apos;?</translation>
</message>
@@ -8297,7 +8659,7 @@ více Äasu, než je nastaveno. V takovém případÄ› by se mÄ›la hodnota zvýš
</message>
<message>
<source>You did not checkout a branch.</source>
- <translation>Není přítomna žádná větev.</translation>
+ <translation type="obsolete">Není přítomna žádná větev.</translation>
</message>
<message numerus="yes">
<source>Committed %n file(s).
@@ -8359,7 +8721,7 @@ více Äasu, než je nastaveno. V takovém případÄ› by se mÄ›la hodnota zvýš
</message>
<message>
<source>Cannot obtain log of &quot;%1&quot;: %2</source>
- <translation type="obsolete">Nelze obdržet záznam pro &quot;%1&quot;: %2</translation>
+ <translation>Nelze obdržet záznam pro &quot;%1&quot;: %2</translation>
</message>
<message numerus="yes">
<source>Cannot add %n file(s) to &quot;%1&quot;: %2</source>
@@ -8606,6 +8968,14 @@ více Äasu, než je nastaveno. V takovém případÄ› by se mÄ›la hodnota zvýš
<translation>Alt+G, Alt+B</translation>
</message>
<message>
+ <source>Meta+G,Meta+Shift+D</source>
+ <translation>Meta+G,Meta+Shift+D</translation>
+ </message>
+ <message>
+ <source>Meta+G,Meta+K</source>
+ <translation>Meta+G,Meta+K</translation>
+ </message>
+ <message>
<source>Diff</source>
<translation>Rozdíly</translation>
</message>
@@ -8646,6 +9016,10 @@ více Äasu, než je nastaveno. V takovém případÄ› by se mÄ›la hodnota zvýš
<translation>Udělat snímek...</translation>
</message>
<message>
+ <source>Meta+G,Meta+C</source>
+ <translation>Meta+G,Meta+C</translation>
+ </message>
+ <message>
<source>Amend Last Commit...</source>
<translation>Poupravit poslední zápis (amend)...</translation>
</message>
@@ -8656,12 +9030,12 @@ více Äasu, než je nastaveno. V takovém případÄ› by se mÄ›la hodnota zvýš
<message>
<source>Undo all pending changes to the repository
%1?</source>
- <translation>Chcete vrátit všechny zbývající změny ve skladišti
+ <translation type="obsolete">Chcete vrátit všechny zbývající změny ve skladišti
%1?</translation>
</message>
<message>
<source>Undo Changes</source>
- <translation>Změny vrátit zpět</translation>
+ <translation type="obsolete">Změny vrátit zpět</translation>
</message>
<message>
<source>Repository Clean</source>
@@ -8688,14 +9062,26 @@ více Äasu, než je nastaveno. V takovém případÄ› by se mÄ›la hodnota zvýš
<translation>Vypsat anotace pro nynější soubor (blame)</translation>
</message>
<message>
+ <source>Meta+G,Meta+B</source>
+ <translation>Meta+G,Meta+B</translation>
+ </message>
+ <message>
<source>Diff of &quot;%1&quot;</source>
<translation>Rozdíly pro &quot;%1&quot;</translation>
</message>
<message>
+ <source>Meta+G,Meta+D</source>
+ <translation>Meta+G,Meta+D</translation>
+ </message>
+ <message>
<source>Log Current File</source>
<translation>Záznamy pro nynější soubor</translation>
</message>
<message>
+ <source>Meta+G,Meta+L</source>
+ <translation>Meta+G,Meta+L</translation>
+ </message>
+ <message>
<source>Stage &quot;%1&quot; for Commit</source>
<translation>Připravit &quot;%1&quot; pro zápis (stage)</translation>
</message>
@@ -8704,6 +9090,10 @@ více Äasu, než je nastaveno. V takovém případÄ› by se mÄ›la hodnota zvýš
<translation>Alt+G, Alt+A</translation>
</message>
<message>
+ <source>Meta+G,Meta+A</source>
+ <translation>Meta+G,Meta+A</translation>
+ </message>
+ <message>
<source>Unstage File from Commit</source>
<translation>Odstranit soubor z přípravky (unstage)</translation>
</message>
@@ -8728,6 +9118,10 @@ více Äasu, než je nastaveno. V takovém případÄ› by se mÄ›la hodnota zvýš
<translation>Nezapsané změny pro &quot;%1&quot; vrátit zpět</translation>
</message>
<message>
+ <source>Meta+G,Meta+U</source>
+ <translation>Meta+G,Meta+U</translation>
+ </message>
+ <message>
<source>Diff Current Project</source>
<translation>Rozdíly pro nynější projekt</translation>
</message>
@@ -8828,6 +9222,10 @@ více Äasu, než je nastaveno. V takovém případÄ› by se mÄ›la hodnota zvýš
<translation>Přiložit (stash pop)</translation>
</message>
<message>
+ <source>Reset...</source>
+ <translation>Nastavit znovu...</translation>
+ </message>
+ <message>
<source>Restores changes saved to the stash list using &quot;Stash&quot;.</source>
<translation>Přiloží změny které byly odloženy do seznamu odložených změn pomocí příkazu &quot;Stash&quot;.</translation>
</message>
@@ -8849,11 +9247,11 @@ více Äasu, než je nastaveno. V takovém případÄ› by se mÄ›la hodnota zvýš
</message>
<message>
<source>Undo Uncommitted Changes...</source>
- <translation>Vzít nezapsané změny zpět...</translation>
+ <translation type="obsolete">Vzít nezapsané změny zpět...</translation>
</message>
<message>
<source>Launch repository browser</source>
- <translation type="obsolete">Spustit prohlížeÄ skladiÅ¡tÄ›</translation>
+ <translation>Spustit prohlížeÄ skladiÅ¡tÄ›</translation>
</message>
<message>
<source>Branches...</source>
@@ -9028,7 +9426,7 @@ více Äasu, než je nastaveno. V takovém případÄ› by se mÄ›la hodnota zvýš
</message>
<message>
<source>By&amp;pass hooks</source>
- <translation type="obsolete">O&amp;bejít podmíněné akce (hooks)</translation>
+ <translation>O&amp;bejít podmíněné akce (hooks)</translation>
</message>
</context>
<context>
@@ -9162,11 +9560,11 @@ více Äasu, než je nastaveno. V takovém případÄ› by se mÄ›la hodnota zvýš
</message>
<message>
<source>Repository browser</source>
- <translation type="obsolete">ProhlížeÄ skladiÅ¡tÄ›</translation>
+ <translation>ProhlížeÄ skladiÅ¡tÄ›</translation>
</message>
<message>
<source>Command:</source>
- <translation type="obsolete">Příkaz:</translation>
+ <translation>Příkaz:</translation>
</message>
</context>
<context>
@@ -9276,6 +9674,22 @@ více Äasu, než je nastaveno. V takovém případÄ› by se mÄ›la hodnota zvýš
<translation>Soubory nápovědy Qt (*.qch)</translation>
</message>
<message>
+ <source>Invalid documentation file:</source>
+ <translation>Neplatný soubor dokumentace:</translation>
+ </message>
+ <message>
+ <source>Namespace already registered:</source>
+ <translation>Jmenný prostor již zapsán:</translation>
+ </message>
+ <message>
+ <source>Registration failed</source>
+ <translation>Zápis se nezdařil</translation>
+ </message>
+ <message>
+ <source>Unable to register documentation.</source>
+ <translation>Nelze zapsat dokumentaci.</translation>
+ </message>
+ <message>
<source>The file %1 is not a valid Qt Help file!</source>
<translation type="obsolete">Soubor %1 není platným souborem nápovědy Qt!</translation>
</message>
@@ -9335,7 +9749,7 @@ více Äasu, než je nastaveno. V takovém případÄ› by se mÄ›la hodnota zvýš
&lt;p&gt;
Add, modify, and remove document filters, which determine the documentation set displayed in the Help mode. The attributes are defined in the documents. Select them to display a set of relevant documentation. Note that some attributes are defined in several documents.
&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;body&gt;
+ <translation type="obsolete">&lt;html&gt;&lt;body&gt;
&lt;p&gt;
PÅ™idat, upravit a odstranit dokumentové filtry, které v režimu nápovÄ›dy urÄují zobrazenou dokumentaci. Vlastnosti jsou popsány v dokumentech. Vyberte filtry, aby se zobrazila sada související dokumentace. VÅ¡imnÄ›te si, že nÄ›které vlastnosti jsou popsány ve více dokumentech.
&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
@@ -9356,6 +9770,16 @@ Přidat, upravit a odstranit dokumentové filtry, které v režimu nápovědy ur
<source>Remove</source>
<translation>Odstranit</translation>
</message>
+ <message>
+ <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;
+Add, modify, and remove document filters, which determine the documentation set displayed in the Help mode. The attributes are defined in the documents. Select them to display a set of relevant documentation. Note that some attributes are defined in several documents.
+&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;
+PÅ™idat, upravit a odstranit dokumentové filtry, které v režimu nápovÄ›dy urÄují zobrazenou dokumentaci. Vlastnosti jsou popsány v dokumentech. Vyberte filtry, aby se zobrazila sada související dokumentace. VÅ¡imnÄ›te si, že nÄ›které vlastnosti jsou popsány ve více dokumentech.
+&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
</context>
<context>
<name>Help::Internal::HelpIndexFilter</name>
@@ -9478,6 +9902,14 @@ Přidat, upravit a odstranit dokumentové filtry, které v režimu nápovědy ur
<translation>Přidat záložku</translation>
</message>
<message>
+ <source>Meta+M</source>
+ <translation>Meta+M</translation>
+ </message>
+ <message>
+ <source>Ctrl+M</source>
+ <translation>Ctrl+M</translation>
+ </message>
+ <message>
<source>Context Help</source>
<translation>Související nápověda</translation>
</message>
@@ -9494,14 +9926,58 @@ Přidat, upravit a odstranit dokumentové filtry, které v režimu nápovědy ur
<translation>Spustit rejstřík v režimu nápovědy</translation>
</message>
<message>
+ <source>Meta+I</source>
+ <translation>Meta+I</translation>
+ </message>
+ <message>
+ <source>Ctrl+Shift+I</source>
+ <translation>Ctrl+Shift+I</translation>
+ </message>
+ <message>
<source>Activate Contents in Help mode</source>
<translation>Spustit obsah v režimu nápovědy</translation>
</message>
<message>
+ <source>Meta+Shift+C</source>
+ <translation>Meta+Shift+C</translation>
+ </message>
+ <message>
+ <source>Ctrl+Shift+C</source>
+ <translation>Ctrl+Shift+C</translation>
+ </message>
+ <message>
<source>Activate Search in Help mode</source>
<translation>Spustit hledání v režimu nápovědy</translation>
</message>
<message>
+ <source>Meta+/</source>
+ <translation>Meta+/</translation>
+ </message>
+ <message>
+ <source>Ctrl+Shift+/</source>
+ <translation>Ctrl+Shift+/</translation>
+ </message>
+ <message>
+ <source>Meta+B</source>
+ <translation>Meta+B</translation>
+ </message>
+ <message>
+ <source>Ctrl+Shift+B</source>
+ <translation>Ctrl+Shift+B</translation>
+ </message>
+ <message>
+ <source>Meta+O</source>
+ <translation>Meta+O</translation>
+ </message>
+ <message>
+ <source>Ctrl+Shift+O</source>
+ <translation>Ctrl+Shift+O</translation>
+ </message>
+ <message>
+ <source>Show Sidebar</source>
+ <translation>Ukázat postranní panel</translation>
+ </message>
+ <message>
<source>Unfiltered</source>
<translation>Žádný filtr</translation>
</message>
@@ -9517,6 +9993,10 @@ Přidat, upravit a odstranit dokumentové filtry, které v režimu nápovědy ur
<source>Filtered by:</source>
<translation>Profiltrováno:</translation>
</message>
+ <message>
+ <source>Hide Sidebar</source>
+ <translation>Skrýt postranní panel</translation>
+ </message>
</context>
<context>
<name>Help::Internal::SearchWidget</name>
@@ -9605,6 +10085,30 @@ Přidat, upravit a odstranit dokumentové filtry, které v režimu nápovědy ur
<source>Open Link in New Tab Ctrl+LMB</source>
<translation type="obsolete">Otevřít odkaz v nové kartě Ctrl+LMB</translation>
</message>
+ <message>
+ <source>Error 404...</source>
+ <translation>Chyba 404...</translation>
+ </message>
+ <message>
+ <source>The page could not be found!</source>
+ <translation>Stranu se nepodařilo nalézt!</translation>
+ </message>
+ <message>
+ <source>&lt;li&gt;Check that you have one or more documentation sets installed.&lt;/li&gt;</source>
+ <translation>&lt;li&gt;Prověřte, že máte nainstalovánu jednu Äi více sad dokumentace.&lt;/li&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;li&gt;Check that you have installed the appropriate browser plug-in to support the file your loading.&lt;/li&gt;</source>
+ <translation>&lt;li&gt;Prověřte, že máte pro prohlížeÄ nainstalován přísluÅ¡ný přídavný modul, který podporuje vámi nahrávaný soubor..&lt;/li&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;li&gt;If you try to access a public URL, make sure to have a network connection.&lt;/li&gt;</source>
+ <translation>&lt;li&gt;Pokud se pokusíte přistoupit k veřejné adrese (URL), ujistěte se, že máte síťové spojení.&lt;/li&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;li&gt;If your computer or network is protected by a firewall or proxy, make sure the application is permitted to access the network.&lt;/li&gt;</source>
+ <translation>&lt;li&gt;Pokud je váš poÄítaÄ nebo síť chránÄ›n firewallem nebo proxy, ujistÄ›te se, že programu je povoleno pÅ™istupovat k síti.&lt;/li&gt;</translation>
+ </message>
</context>
<context>
<name>IndexWindow</name>
@@ -10218,6 +10722,18 @@ ve svém .pro souboru.</translation>
<translation>Proces byl ukonÄen neobvyklým způsobem.</translation>
</message>
<message>
+ <source>Meta+P,Meta+F</source>
+ <translation>Meta+P,Meta+F</translation>
+ </message>
+ <message>
+ <source>Meta+P,Meta+E</source>
+ <translation>Meta+P,Meta+E</translation>
+ </message>
+ <message>
+ <source>Meta+P,Meta+A</source>
+ <translation>Meta+P,Meta+A</translation>
+ </message>
+ <message>
<source>Delete...</source>
<translation>Smazat...</translation>
</message>
@@ -10226,6 +10742,14 @@ ve svém .pro souboru.</translation>
<translation>Smazat &quot;%1&quot;...</translation>
</message>
<message>
+ <source>Meta+P,Meta+R</source>
+ <translation>Meta+P,Meta+R</translation>
+ </message>
+ <message>
+ <source>Meta+P,Meta+D</source>
+ <translation>Meta+P,Meta+D</translation>
+ </message>
+ <message>
<source>Log Project</source>
<translation>Záznamy pro projekt</translation>
</message>
@@ -10238,6 +10762,10 @@ ve svém .pro souboru.</translation>
<translation>Odevzdat projekt &quot;%1&quot; (submit)</translation>
</message>
<message>
+ <source>Meta+P,Meta+S</source>
+ <translation>Meta+P,Meta+S</translation>
+ </message>
+ <message>
<source>Update Current Project</source>
<translation>Aktualizovat nynější projekt</translation>
</message>
@@ -10258,6 +10786,10 @@ ve svém .pro souboru.</translation>
<translation>Vrátit změny v projektu &quot;%1&quot;</translation>
</message>
<message>
+ <source>Meta+P,Meta+O</source>
+ <translation>Meta+P,Meta+O</translation>
+ </message>
+ <message>
<source>Repository Log</source>
<translation>Záznamy skladiště</translation>
</message>
@@ -10796,34 +11328,34 @@ ve svém .pro souboru.</translation>
<name>ProjectExplorer::CustomExecutableRunConfiguration</name>
<message>
<source>Custom Executable</source>
- <translation>Uživatelsky stanovený spustitelný soubor</translation>
+ <translation type="obsolete">Uživatelsky stanovený spustitelný soubor</translation>
</message>
<message>
<source>Could not find the executable, please specify one.</source>
- <translation>Nepodařilo se najít spustitelný soubor; nějaký, prosím, zadejte.</translation>
+ <translation type="obsolete">Nepodařilo se najít spustitelný soubor; nějaký, prosím, zadejte.</translation>
</message>
<message>
<source>Clean Environment</source>
- <translation>VyÄistit prostÅ™edí</translation>
+ <translation type="obsolete">VyÄistit prostÅ™edí</translation>
</message>
<message>
<source>System Environment</source>
- <translation>Prostředí systému</translation>
+ <translation type="obsolete">Prostředí systému</translation>
</message>
<message>
<source>Build Environment</source>
- <translation>Prostředí pro sestavování</translation>
+ <translation type="obsolete">Prostředí pro sestavování</translation>
</message>
<message>
<source>Run %1</source>
- <translation>Spustit %1</translation>
+ <translation type="obsolete">Spustit %1</translation>
</message>
</context>
<context>
<name>ProjectExplorer::CustomExecutableRunConfigurationFactory</name>
<message>
<source>Custom Executable</source>
- <translation>Uživatelsky stanovený spustitelný soubor</translation>
+ <translation type="obsolete">Uživatelsky stanovený spustitelný soubor</translation>
</message>
</context>
<context>
@@ -11186,11 +11718,11 @@ ve svém .pro souboru.</translation>
</message>
<message>
<source>Executable:</source>
- <translation>Spustitelný soubor:</translation>
+ <translation type="obsolete">Spustitelný soubor:</translation>
</message>
<message>
<source>Arguments:</source>
- <translation>Argumenty:</translation>
+ <translation type="obsolete">Argumenty:</translation>
</message>
<message>
<source>Working Directory:</source>
@@ -11198,7 +11730,7 @@ ve svém .pro souboru.</translation>
</message>
<message>
<source>Working directory:</source>
- <translation>Pracovní adresář:</translation>
+ <translation type="obsolete">Pracovní adresář:</translation>
</message>
<message>
<source>Run in &amp;Terminal</source>
@@ -11210,7 +11742,7 @@ ve svém .pro souboru.</translation>
</message>
<message>
<source>Run Environment</source>
- <translation>Prováděcí prostředí</translation>
+ <translation type="obsolete">Prováděcí prostředí</translation>
</message>
<message>
<source>Base environment for this runconfiguration:</source>
@@ -11218,23 +11750,23 @@ ve svém .pro souboru.</translation>
</message>
<message>
<source>Run in &amp;terminal</source>
- <translation>Spustit v &amp;terminálu</translation>
+ <translation type="obsolete">Spustit v &amp;terminálu</translation>
</message>
<message>
<source>Base environment for this run configuration:</source>
- <translation>Základní prostředí pro toto nastavení spuštění:</translation>
+ <translation type="obsolete">Základní prostředí pro toto nastavení spuštění:</translation>
</message>
<message>
<source>Clean Environment</source>
- <translation>Smazat prostředí</translation>
+ <translation type="obsolete">Smazat prostředí</translation>
</message>
<message>
<source>System Environment</source>
- <translation>Prostředí systému</translation>
+ <translation type="obsolete">Prostředí systému</translation>
</message>
<message>
<source>Build Environment</source>
- <translation>Prostředí pro sestavování</translation>
+ <translation type="obsolete">Prostředí pro sestavování</translation>
</message>
<message>
<source>No Executable specified.</source>
@@ -11325,6 +11857,14 @@ ve svém .pro souboru.</translation>
<translation>Souborový systém</translation>
</message>
<message>
+ <source>Meta+Y</source>
+ <translation>Meta+Y</translation>
+ </message>
+ <message>
+ <source>Alt+Y</source>
+ <translation>Alt+Y</translation>
+ </message>
+ <message>
<source>Synchronize with Editor</source>
<translation>Seřídit s editorem</translation>
</message>
@@ -11437,7 +11977,11 @@ ve svém .pro souboru.</translation>
</message>
<message>
<source>Command arguments:</source>
- <translation>Argumenty příkazu:</translation>
+ <translation type="obsolete">Argumenty příkazu:</translation>
+ </message>
+ <message>
+ <source>Arguments:</source>
+ <translation>Argumenty:</translation>
</message>
</context>
<context>
@@ -11463,6 +12007,10 @@ ve svém .pro souboru.</translation>
<translation>Project File Factory</translation>
</message>
<message>
+ <source>Failed to open project</source>
+ <translation>Nepodařilo se otevřít projekt</translation>
+ </message>
+ <message>
<source>All Projects</source>
<translation>VÅ¡echny projekty</translation>
</message>
@@ -11538,6 +12086,14 @@ se projektu &apos;%2&apos; nepodařilo přidat.</translation>
<translation>Projekty</translation>
</message>
<message>
+ <source>Meta+X</source>
+ <translation>Meta+X</translation>
+ </message>
+ <message>
+ <source>Alt+X</source>
+ <translation>Alt+X</translation>
+ </message>
+ <message>
<source>Filter Tree</source>
<translation>Přefiltrovat strom</translation>
</message>
@@ -11588,19 +12144,19 @@ se projektu &apos;%2&apos; nepodařilo přidat.</translation>
<name>ProjectExplorer::Internal::RemoveFileDialog</name>
<message>
<source>Remove File</source>
- <translation>Odstranit soubor</translation>
+ <translation type="obsolete">Odstranit soubor</translation>
</message>
<message>
<source>&amp;Delete file permanently</source>
- <translation>&amp;Smazat soubor natrvalo</translation>
+ <translation type="obsolete">&amp;Smazat soubor natrvalo</translation>
</message>
<message>
<source>&amp;Remove from Version Control</source>
- <translation>&amp;Odstranit ze správy verzí</translation>
+ <translation type="obsolete">&amp;Odstranit ze správy verzí</translation>
</message>
<message>
<source>File to remove:</source>
- <translation>Soubor k odstranění:</translation>
+ <translation type="obsolete">Soubor k odstranění:</translation>
</message>
</context>
<context>
@@ -11896,7 +12452,7 @@ se projektu &apos;%2&apos; nepodařilo přidat.</translation>
</message>
<message>
<source>Close All Projects</source>
- <translation>Zavřít všechny projekty</translation>
+ <translation type="obsolete">Zavřít všechny projekty</translation>
</message>
<message>
<source>Session</source>
@@ -12037,7 +12593,7 @@ se projektu &apos;%2&apos; nepodařilo přidat.</translation>
</message>
<message>
<source>Close All Projects and Editors</source>
- <translation type="obsolete">Zavřít všechny projekty a editory</translation>
+ <translation>Zavřít všechny projekty a editory</translation>
</message>
<message>
<source>Run Without Deployment</source>
@@ -12049,7 +12605,7 @@ se projektu &apos;%2&apos; nepodařilo přidat.</translation>
</message>
<message>
<source>Rebuild</source>
- <translation type="obsolete">Sestavit znovu</translation>
+ <translation>Sestavit znovu</translation>
</message>
<message>
<source>Clean</source>
@@ -12098,7 +12654,7 @@ se projektu &apos;%2&apos; nepodařilo přidat.</translation>
</message>
<message>
<source>Set &quot;%1&quot; as Active Project</source>
- <translation type="obsolete">Nastavit &quot;%1&quot; jako Äinný projekt</translation>
+ <translation>Nastavit &quot;%1&quot; jako Äinný projekt</translation>
</message>
<message>
<source>Collapse All</source>
@@ -12106,7 +12662,7 @@ se projektu &apos;%2&apos; nepodařilo přidat.</translation>
</message>
<message>
<source>Open Build/Run Target Selector...</source>
- <translation>Otevřít voliÄ pro cíl sestavování/spouÅ¡tÄ›ní...</translation>
+ <translation type="obsolete">Otevřít voliÄ pro cíl sestavování/spouÅ¡tÄ›ní...</translation>
</message>
<message>
<source>Quick Switch Target Selector</source>
@@ -12125,6 +12681,10 @@ se projektu &apos;%2&apos; nepodařilo přidat.</translation>
<translation>Úplná cesta hlavního souboru nynějšího projektu vyjma názvu souboru.</translation>
</message>
<message>
+ <source>Full build path of the current project&apos;s active build configuration.</source>
+ <translation>Úplná cesta pro sestavení v nastavení Äinného sestavování nynÄ›jšího projektu.</translation>
+ </message>
+ <message>
<source>Failed to open project</source>
<translation>Nepodařilo se otevřít projekt</translation>
</message>
@@ -12149,6 +12709,18 @@ se projektu &apos;%2&apos; nepodařilo přidat.</translation>
<translation>Chcete zrušit sestavování a každopádně zrušit nahrání projektu?</translation>
</message>
<message>
+ <source>Failed to Open Project</source>
+ <translation>Nepodařilo se otevřít projekt</translation>
+ </message>
+ <message>
+ <source>Unknown error</source>
+ <translation>Neznámá chyba</translation>
+ </message>
+ <message>
+ <source>Could Not Run</source>
+ <translation>Nepodařilo se spustit</translation>
+ </message>
+ <message>
<source>Ignore all errors?</source>
<translation>Přehlížet všechny chyby?</translation>
</message>
@@ -12205,11 +12777,11 @@ Chcete je přehlížet?</translation>
</message>
<message>
<source>Project Editing Failed</source>
- <translation type="obsolete">Úpravy projektu se nepodařily</translation>
+ <translation>Úpravy projektu se nepodařily</translation>
</message>
<message>
<source>The file %1 was renamed to %2, but the project file %3 could not be automatically changed.</source>
- <translation type="obsolete">Soubor %1 byl přejmenován na %2, ale soubor s projektem %3 se automaticky změnit nepodařilo.</translation>
+ <translation>Soubor %1 byl přejmenován na %2, ale soubor s projektem %3 se automaticky změnit nepodařilo.</translation>
</message>
<message>
<source>Currently building the active project</source>
@@ -12224,6 +12796,10 @@ Chcete je přehlížet?</translation>
<translation>Sestavování &apos;%1&apos; je vypnuto: %2&lt;br&gt;</translation>
</message>
<message>
+ <source>Open Build and Run Kit Selector...</source>
+ <translation>Otevřít voliÄ pro sadu pro sestavování/spouÅ¡tÄ›ní...</translation>
+ </message>
+ <message>
<source>A build is in progress</source>
<translation>Právě probíhá sestavování</translation>
</message>
@@ -12283,7 +12859,7 @@ Chcete je přehlížet?</translation>
</message>
<message>
<source>Adding to Version Control Failed</source>
- <translation>Přidání souborů do správy verzí se nezdařilo</translation>
+ <translation type="obsolete">Přidání souborů do správy verzí se nezdařilo</translation>
</message>
<message>
<source>Removing File Failed</source>
@@ -12335,20 +12911,20 @@ Chcete je přehlížet?</translation>
</message>
<message>
<source>Add to Version Control</source>
- <translation>Přidat do správy verzí</translation>
+ <translation type="obsolete">Přidat do správy verzí</translation>
</message>
<message>
<source>Add files
%1
to version control (%2)?</source>
- <translation>Mají se soubory
+ <translation type="obsolete">Mají se soubory
%1
přidat do správy verzí (%2)?</translation>
</message>
<message>
<source>Could not add following files to version control (%1)
</source>
- <translation>Následující soubory se nepodařilo přidat do správy verzí (%1)
+ <translation type="obsolete">Následující soubory se nepodařilo přidat do správy verzí (%1)
</translation>
</message>
<message>
@@ -12674,7 +13250,7 @@ přidat do správy verzí (%2)?</translation>
</message>
<message>
<source>Alias:</source>
- <translation>Přezdívka:</translation>
+ <translation>Alias:</translation>
</message>
</context>
<context>
@@ -12704,6 +13280,10 @@ Vybere pro sestavení programu verzi Qt pro stolní poÄítaÄ, je-li dostupná.
<name>Qt4ProjectManager::Internal::ConsoleAppWizardDialog</name>
<message>
<source>This wizard generates a Qt4 console application project. The application derives from QCoreApplication and does not provide a GUI.</source>
+ <translation type="obsolete">Tento průvodce vytvoří projekt konzolové aplikace v Qt4. Aplikace je odvozena z QCoreApplication a nemá žádné uživatelské rozhraní.</translation>
+ </message>
+ <message>
+ <source>This wizard generates a Qt console application project. The application derives from QCoreApplication and does not provide a GUI.</source>
<translation>Tento průvodce vytvoří projekt konzolové aplikace v Qt4. Aplikace je odvozena z QCoreApplication a nemá žádné uživatelské rozhraní.</translation>
</message>
</context>
@@ -12748,6 +13328,10 @@ Vybere pro sestavení programu verzi Qt pro stolní poÄítaÄ, je-li dostupná.
<name>Qt4ProjectManager::Internal::EmptyProjectWizardDialog</name>
<message>
<source>This wizard generates an empty Qt4 project. Add files to it later on by using the other wizards.</source>
+ <translation type="obsolete">Tento průvodce vytvoří prázdný projekt Qt4. S pomocí ostatních průvodců do něj lze později přidat další soubory.</translation>
+ </message>
+ <message>
+ <source>This wizard generates an empty Qt project. Add files to it later on by using the other wizards.</source>
<translation>Tento průvodce vytvoří prázdný projekt Qt4. S pomocí ostatních průvodců do něj lze později přidat další soubory.</translation>
</message>
</context>
@@ -12804,6 +13388,10 @@ Vybere pro vývoj programu vhodnou verzi Qt, je-li dostupná.</translation>
<name>Qt4ProjectManager::Internal::GuiAppWizardDialog</name>
<message>
<source>This wizard generates a Qt4 GUI application project. The application derives by default from QApplication and includes an empty widget.</source>
+ <translation type="obsolete">Tento průvodce vytvoří projekt programu s uživatelským rozhraním Qt4. Aplikace se odvozuje ve výchozím nastavení od třídy QApplication s obsahuje jeden prázdný prvek.</translation>
+ </message>
+ <message>
+ <source>This wizard generates a Qt GUI application project. The application derives by default from QApplication and includes an empty widget.</source>
<translation>Tento průvodce vytvoří projekt programu s uživatelským rozhraním Qt4. Aplikace se odvozuje ve výchozím nastavení od třídy QApplication s obsahuje jeden prázdný prvek.</translation>
</message>
<message>
@@ -12819,7 +13407,7 @@ Vybere pro vývoj programu vhodnou verzi Qt, je-li dostupná.</translation>
</message>
<message>
<source>Creates a C++ library based on qmake. This can be used to create:&lt;ul&gt;&lt;li&gt;a shared C++ library for use with &lt;tt&gt;QPluginLoader&lt;/tt&gt; and runtime (Plugins)&lt;/li&gt;&lt;li&gt;a shared or static C++ library for use with another project at linktime&lt;/li&gt;&lt;/ul&gt;</source>
- <translation>Vytvoří knihovnu C++ založenou na qmake. Tuto lze použít pro vytvoÅ™ení:&lt;ul&gt;&lt;li&gt;sdílené knihovny C++ pro užití s &lt;tt&gt;QPluginLoader&lt;/tt&gt; a bÄ›hového prostÅ™edí (přídavných modulů)&lt;/li&gt;&lt;li&gt;sdílenou nebo statickou knihovnu C++ pro použití s dalším projektem v Äase zavedení&lt;/li&gt;&lt;/ul&gt;</translation>
+ <translation>Vytvoří knihovnu C++ založenou na qmake. Tuto lze použít pro vytvoÅ™ení:&lt;ul&gt;&lt;li&gt;sdílené knihovny C++ pro užití s &lt;tt&gt;QPluginLoader&lt;/tt&gt; a bÄ›hového prostÅ™edí (přídavných modulů)&lt;/li&gt;&lt;li&gt;sdílenou nebo statickou knihovnu C++ pro použití s dalším projektem v Äase importování&lt;/li&gt;&lt;/ul&gt;</translation>
</message>
<message>
<source>Creates a C++ library based on qmake. This can be used to create:&lt;ul&gt;&lt;li&gt;a shared C++ library for use with &lt;tt&gt;QPluginLoader&lt;/tt&gt; and runtime (Plugins)&lt;/li&gt;&lt;li&gt;a shared or static C++ library for use with another project at linktime&lt;/li&gt;&lt;/ul&gt;.</source>
@@ -12866,7 +13454,7 @@ Vybere pro vývoj programu vhodnou verzi Qt, je-li dostupná.</translation>
</message>
<message>
<source>Symbian Specific</source>
- <translation>Zvláštní pro Symbian</translation>
+ <translation type="obsolete">Zvláštní pro Symbian</translation>
</message>
<message>
<source>Details</source>
@@ -13134,7 +13722,7 @@ Vybere pro vývoj programu vhodnou verzi Qt, je-li dostupná.</translation>
</message>
<message>
<source>&lt;a href=&quot;import&quot;&gt;Import existing build&lt;/a&gt;</source>
- <translation>&lt;a href=&quot;import&quot;&gt;Zavést stávající sestavování.&lt;/a&gt;</translation>
+ <translation type="obsolete">&lt;a href=&quot;import&quot;&gt;Zavést stávající sestavování.&lt;/a&gt;</translation>
</message>
<message>
<source>Shadow Build Directory</source>
@@ -13150,19 +13738,19 @@ Vybere pro vývoj programu vhodnou verzi Qt, je-li dostupná.</translation>
</message>
<message>
<source>using &lt;font color=&quot;#ff0000&quot;&gt;invalid&lt;/font&gt; Qt Version: &lt;b&gt;%1&lt;/b&gt;&lt;br&gt;%2</source>
- <translation>using &lt;font color=&quot;#ff0000&quot;&gt;neplatná&lt;/font&gt; verze Qt: &lt;b&gt;%1&lt;/b&gt;&lt;br&gt;%2</translation>
+ <translation type="obsolete">using &lt;font color=&quot;#ff0000&quot;&gt;neplatná&lt;/font&gt; verze Qt: &lt;b&gt;%1&lt;/b&gt;&lt;br&gt;%2</translation>
</message>
<message>
<source>No Qt Version found.</source>
- <translation>Nenalezena žádná verze Qt.</translation>
+ <translation type="obsolete">Nenalezena žádná verze Qt.</translation>
</message>
<message>
<source>using Qt version: &lt;b&gt;%1&lt;/b&gt;&lt;br&gt;with tool chain &lt;b&gt;%2&lt;/b&gt;&lt;br&gt;building in &lt;b&gt;%3&lt;/b&gt;</source>
- <translation>Používá se verze Qt: &lt;b&gt;%1&lt;/b&gt;&lt;br&gt;se sadou nástrojů &lt;b&gt;%2&lt;/b&gt;&lt;br&gt;sestavuje se v &lt;b&gt;%3&lt;/b&gt;</translation>
+ <translation type="obsolete">Používá se verze Qt: &lt;b&gt;%1&lt;/b&gt;&lt;br&gt;se sadou nástrojů &lt;b&gt;%2&lt;/b&gt;&lt;br&gt;sestavuje se v &lt;b&gt;%3&lt;/b&gt;</translation>
</message>
<message>
<source>&lt;Invalid tool chain&gt;</source>
- <translation>&lt;Neplatná sada nástrojů&gt;</translation>
+ <translation type="obsolete">&lt;Neplatná sada nástrojů&gt;</translation>
</message>
<message>
<source>General</source>
@@ -13170,7 +13758,7 @@ Vybere pro vývoj programu vhodnou verzi Qt, je-li dostupná.</translation>
</message>
<message>
<source>Invalid Qt version</source>
- <translation>Neplatná verze Qt</translation>
+ <translation type="obsolete">Neplatná verze Qt</translation>
</message>
<message>
<source>A build for a different project exists in %1, which will be overwritten.</source>
@@ -13183,6 +13771,18 @@ Vybere pro vývoj programu vhodnou verzi Qt, je-li dostupná.</translation>
<translation type="obsolete">Ve složce %1 již existuje sestavení jiného projektu, který bude přepsán.</translation>
</message>
<message>
+ <source>building in &lt;b&gt;%1&lt;/b&gt;</source>
+ <translation>Sestavení v &lt;b&gt;%1&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <source>This target cannot build this project since it does not define a Qt version.</source>
+ <translation>Tento cíl nemůže sestavit tento projekt, protože nedefinuje verzi Qt.</translation>
+ </message>
+ <message>
+ <source>The Qt version %1 does not support shadow builds, building might fail.</source>
+ <translation>Verze Qt %1 nepodporuje stínová sestavování. Sestavení se nemusí podařit.</translation>
+ </message>
+ <message>
<source>Error:</source>
<translation>Chyba:</translation>
</message>
@@ -13193,16 +13793,16 @@ Vybere pro vývoj programu vhodnou verzi Qt, je-li dostupná.</translation>
<message>
<source>%1 Debug</source>
<extracomment>Name of a debug build configuration to created by a project wizard, %1 being the Qt version name. We recommend not translating it.</extracomment>
- <translation>%1 ladění</translation>
+ <translation type="obsolete">%1 ladění</translation>
</message>
<message>
<source>%1 Release</source>
<extracomment>Name of a release build configuration to created by a project wizard, %1 being the Qt version name. We recommend not translating it.</extracomment>
- <translation>%1 vydání</translation>
+ <translation type="obsolete">%1 vydání</translation>
</message>
<message>
<source>&lt;No tool chain selected&gt;</source>
- <translation>&lt;b&gt;Nevybrána žádna sada nástrojů&lt;/b&gt;</translation>
+ <translation type="obsolete">&lt;b&gt;Nevybrána žádna sada nástrojů&lt;/b&gt;</translation>
</message>
<message>
<source>Building in subdirectories of the source directory is not supported by qmake.</source>
@@ -13227,7 +13827,7 @@ Vybere pro vývoj programu vhodnou verzi Qt, je-li dostupná.</translation>
</message>
<message>
<source>Qt version:</source>
- <translation>Verze Qt:</translation>
+ <translation type="obsolete">Verze Qt:</translation>
</message>
<message>
<source>This Qt version is invalid.</source>
@@ -13235,7 +13835,7 @@ Vybere pro vývoj programu vhodnou verzi Qt, je-li dostupná.</translation>
</message>
<message>
<source>Tool chain:</source>
- <translation>Sada nástrojů:</translation>
+ <translation type="obsolete">Sada nástrojů:</translation>
</message>
<message>
<source>Shadow build:</source>
@@ -13251,7 +13851,7 @@ Vybere pro vývoj programu vhodnou verzi Qt, je-li dostupná.</translation>
</message>
<message>
<source>Manage...</source>
- <translation>Spravovat...</translation>
+ <translation type="obsolete">Spravovat...</translation>
</message>
</context>
<context>
@@ -13266,7 +13866,7 @@ Vybere pro vývoj programu vhodnou verzi Qt, je-li dostupná.</translation>
</message>
<message>
<source>Build &quot;%1&quot;</source>
- <translation type="obsolete">Sestavit &quot;%1&quot;</translation>
+ <translation>Sestavit &quot;%1&quot;</translation>
</message>
<message>
<source>Rebuild</source>
@@ -13278,31 +13878,43 @@ Vybere pro vývoj programu vhodnou verzi Qt, je-li dostupná.</translation>
</message>
<message>
<source>Build Subproject</source>
- <translation type="obsolete">Sestavit dílÄí projekt</translation>
+ <translation>Sestavit dílÄí projekt</translation>
</message>
<message>
<source>Build Subproject &quot;%1&quot;</source>
- <translation type="obsolete">Sestavit dílÄí projekt &quot;%1&quot;</translation>
+ <translation>Sestavit dílÄí projekt &quot;%1&quot;</translation>
</message>
<message>
<source>Rebuild Subproject</source>
- <translation type="obsolete">Sestavit dílÄí projekt znovu</translation>
+ <translation>Sestavit dílÄí projekt znovu</translation>
</message>
<message>
<source>Rebuild Subproject &quot;%1&quot;</source>
- <translation type="obsolete">Sestavit dílÄí projekt &quot;%1&quot; znovu</translation>
+ <translation>Sestavit dílÄí projekt &quot;%1&quot; znovu</translation>
</message>
<message>
<source>Clean Subproject</source>
- <translation type="obsolete">ProÄistit dílÄí projekt</translation>
+ <translation>ProÄistit dílÄí projekt</translation>
</message>
<message>
<source>Clean Subproject &quot;%1&quot;</source>
- <translation type="obsolete">ProÄistit dílÄí projekt &quot;%1&quot;</translation>
+ <translation>ProÄistit dílÄí projekt &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <source>Build File</source>
+ <translation>Sestavit soubor</translation>
+ </message>
+ <message>
+ <source>Build File &quot;%1&quot;</source>
+ <translation>Sestavit soubor &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <source>Ctrl+Alt+B</source>
+ <translation>Ctrl+Alt+B</translation>
</message>
<message>
<source>Jump to File Under Cursor</source>
- <translation>Jít na soubor pod ukazovátkem</translation>
+ <translation type="obsolete">Jít na soubor pod ukazovátkem</translation>
</message>
<message>
<source>Add Library...</source>
@@ -13329,11 +13941,15 @@ Vybere pro vývoj programu vhodnou verzi Qt, je-li dostupná.</translation>
</message>
<message>
<source>The .pro file is currently being parsed.</source>
- <translation>Soubor .pro je právě vyhodnocován.</translation>
+ <translation type="obsolete">Soubor .pro je právě vyhodnocován.</translation>
</message>
<message>
<source>The .pro file could not be parsed.</source>
- <translation>Soubor .pro se nepodařilo vyhodnotit.</translation>
+ <translation type="obsolete">Soubor .pro se nepodařilo vyhodnotit.</translation>
+ </message>
+ <message>
+ <source>The .pro file &apos;%1&apos; is currently being parsed.</source>
+ <translation>Soubor .pro &apos;%1&apos; se právě zpracovává.</translation>
</message>
<message>
<source>Clean Environment</source>
@@ -13348,10 +13964,14 @@ Vybere pro vývoj programu vhodnou verzi Qt, je-li dostupná.</translation>
<translation>Prostředí pro sestavování</translation>
</message>
<message>
- <source>Qt4 Run Configuration</source>
+ <source>Qt Run Configuration</source>
<translation>Nastavení spuštění Qt4</translation>
</message>
<message>
+ <source>Qt4 Run Configuration</source>
+ <translation type="obsolete">Nastavení spuštění Qt4</translation>
+ </message>
+ <message>
<source>Qt4 RunConfiguration</source>
<translation type="obsolete">Nastavení spuštění Qt4</translation>
</message>
@@ -13750,15 +14370,24 @@ p, li { white-space: pre-wrap; }
<message>
<source>Make</source>
<comment>Qt4 MakeStep display name.</comment>
- <translation>Make</translation>
+ <translation type="obsolete">Make</translation>
</message>
<message>
<source>Qt Creator needs a build configuration set up to build. Configure a tool chain in Project mode.</source>
- <translation>Qt Creator potřebuje nastavení sestavování pro sestavení projektu. Nastavte, prosím, sadu nástrojů v projektovém režimu.</translation>
+ <translation type="obsolete">Qt Creator potřebuje nastavení sestavování pro sestavení projektu. Nastavte, prosím, sadu nástrojů v projektovém režimu.</translation>
</message>
<message>
<source>Qt Creator needs a tool chain set up to build. Configure a tool chain in Project mode.</source>
- <translation>Qt Creator potřebuje sadu nástrojů pro sestavení projektu. Nastavte, prosím, sadu nástrojů v projektovém režimu.</translation>
+ <translation type="obsolete">Qt Creator potřebuje sadu nástrojů pro sestavení projektu. Nastavte, prosím, sadu nástrojů v projektovém režimu.</translation>
+ </message>
+ <message>
+ <source>Make</source>
+ <comment>Qt MakeStep display name.</comment>
+ <translation>Make</translation>
+ </message>
+ <message>
+ <source>Qt Creator needs a compiler set up to build. Configure a compiler in the kit options.</source>
+ <translation>Qt Creator potÅ™ebuje nastavení pÅ™ekladaÄe pro sestavení projektu. Nastavte, prosím, pÅ™ekladaÄ ve volbách pro sadu.</translation>
</message>
<message>
<source>Cannot find Makefile. Check your build settings.</source>
@@ -13788,8 +14417,16 @@ p, li { white-space: pre-wrap; }
<translation>Make:</translation>
</message>
<message>
+ <source>&lt;b&gt;Make:&lt;/b&gt; %1</source>
+ <translation>&lt;b&gt;Příkaz Make:&lt;/b&gt; %1</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Make:&lt;/b&gt; No Qt build configuration.</source>
+ <translation>&lt;b&gt;Příkaz Make:&lt;/b&gt; Žádné nastavení sestavování Qt.</translation>
+ </message>
+ <message>
<source>No Qt4 build configuration.</source>
- <translation>Žádné nastavení sestavování Qt4.</translation>
+ <translation type="obsolete">Žádné nastavení sestavování Qt4.</translation>
</message>
<message>
<source>&lt;b&gt;Make:&lt;/b&gt; %1 not found in the environment.</source>
@@ -13885,7 +14522,15 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Full path to the bin directory of the current project&apos;s Qt version.</source>
- <translation>Úplná cesta k adresáři bin nynějším projektem používané verze Qt.</translation>
+ <translation type="obsolete">Úplná cesta k adresáři bin nynějším projektem používané verze Qt.</translation>
+ </message>
+ <message>
+ <source>Full path to the host bin directory of the current project&apos;s Qt version.</source>
+ <translation>Úplná cesta k adresáři bin hostitele verze Qt nynějšího projektu.</translation>
+ </message>
+ <message>
+ <source>Full path to the target bin directory of the current project&apos;s Qt version. You probably want %1 instead.</source>
+ <translation>Úplná cesta k adresáři bin cíle verze Qt nynějšího projektu. Pravděpodobně místo toho chcete %1.</translation>
</message>
<message>
<source>Update of Generated Files</source>
@@ -13976,7 +14621,7 @@ Could not attach to the process. Check the settings of
/proc/sys/kernel/yama/ptrace_scope
For more details, see/etc/sysctl.d/10-ptrace.conf
</source>
- <translation>ptrace: Operace nepovolena.
+ <translation type="obsolete">ptrace: Operace nepovolena.
Nepodařilo se připojit k procesu. Prověřte nastavení
/proc/sys/kernel/yama/ptrace_scope
@@ -13991,7 +14636,7 @@ of the target process, check the settings of
/proc/sys/kernel/yama/ptrace_scope
For more details, see/etc/sysctl.d/10-ptrace.conf
</source>
- <translation>ptrace: Operace nepovolena.
+ <translation type="obsolete">ptrace: Operace nepovolena.
Nepodařilo se připojit k procesu. Pokud vaše UID odpovídá UID
cílového procesu, prověřte nastavení
@@ -14000,6 +14645,40 @@ Více podrobností hledejte v /etc/sysctl.d/10-ptrace.conf
</translation>
</message>
<message>
+ <source>ptrace: Operation not permitted.
+
+Could not attach to the process. Make sure no other debugger traces this process.
+Check the settings of
+/proc/sys/kernel/yama/ptrace_scope
+For more details, see /etc/sysctl.d/10-ptrace.conf
+</source>
+ <translation>ptrace: Operace nepovolena.
+
+NepodaÅ™ilo se pÅ™ipojit k procesu. UjistÄ›te se, že po tomto procesu nejde žádný další ladiÄ.
+Podívejte se na nastavení
+/proc/sys/kernel/yama/ptrace_scope
+Další podrobnosti hledejte v /etc/sysctl.d/10-ptrace.conf
+</translation>
+ </message>
+ <message>
+ <source>ptrace: Operation not permitted.
+
+Could not attach to the process. Make sure no other debugger traces this process.
+If your uid matches the uid
+of the target process, check the settings of
+/proc/sys/kernel/yama/ptrace_scope
+For more details, see /etc/sysctl.d/10-ptrace.conf
+</source>
+ <translation>ptrace: Operace nepovolena.
+
+NepodaÅ™ilo se pÅ™ipojit k procesu. UjistÄ›te se, že po tomto procesu nejde žádný další ladiÄ.
+Pokud se vaše UID shoduje s UID cílového procesu,
+podívejte se na nastavení
+/proc/sys/kernel/yama/ptrace_scope
+Další podrobnosti hledejte v /etc/sysctl.d/10-ptrace.conf
+</translation>
+ </message>
+ <message>
<source>&lt;none&gt;</source>
<translation>&lt;žádný&gt;</translation>
</message>
@@ -14214,14 +14893,30 @@ Více podrobností hledejte v /etc/sysctl.d/10-ptrace.conf
<source>&amp;Redo</source>
<translation>&amp;Znovu</translation>
</message>
+ <message>
+ <source>Recheck existence of referenced files</source>
+ <translation>Znovu ověřit existenci odkazovaných souborů</translation>
+ </message>
</context>
<context>
<name>ResourceEditor::Internal::ResourceEditorW</name>
<message>
+ <source>Open File</source>
+ <translation>Otevřít soubor</translation>
+ </message>
+ <message>
<source>Open With</source>
<translation>Otevřít s</translation>
</message>
<message>
+ <source>Rename File...</source>
+ <translation>Přejmenovat soubor...</translation>
+ </message>
+ <message>
+ <source>Copy Resource Path to Clipboard</source>
+ <translation>Kopírovat cestu k prostředkům do schránky</translation>
+ </message>
+ <message>
<source>untitled</source>
<translation>bez názvu</translation>
</message>
@@ -14256,23 +14951,23 @@ Více podrobností hledejte v /etc/sysctl.d/10-ptrace.conf
<name>SharedTools::QrcEditor</name>
<message>
<source>Add Files</source>
- <translation>Přidat soubory</translation>
+ <translation type="obsolete">Přidat soubory</translation>
</message>
<message>
<source>Add Prefix</source>
- <translation>Přidat předponu</translation>
+ <translation type="obsolete">Přidat předponu</translation>
</message>
<message>
<source>Choose Copy Location</source>
- <translation>Vyberte umístění cíle pro kopírování</translation>
+ <translation type="obsolete">Vyberte umístění cíle pro kopírování</translation>
</message>
<message>
<source>Overwriting Failed</source>
- <translation>Chyba při přepsání</translation>
+ <translation type="obsolete">Chyba při přepsání</translation>
</message>
<message>
<source>Copying Failed</source>
- <translation>Kopírování se nezdařilo</translation>
+ <translation type="obsolete">Kopírování se nezdařilo</translation>
</message>
<message>
<source>Invalid file</source>
@@ -14280,15 +14975,15 @@ Více podrobností hledejte v /etc/sysctl.d/10-ptrace.conf
</message>
<message>
<source>Copy</source>
- <translation>Kopírovat</translation>
+ <translation type="obsolete">Kopírovat</translation>
</message>
<message>
<source>Skip</source>
- <translation>PÅ™eskoÄit</translation>
+ <translation type="obsolete">PÅ™eskoÄit</translation>
</message>
<message>
<source>Abort</source>
- <translation>Zrušit</translation>
+ <translation type="obsolete">Zrušit</translation>
</message>
<message>
<source>The file %1 is not in a subdirectory of the resource file. Continuing will result in an invalid resource file.</source>
@@ -14296,11 +14991,11 @@ Více podrobností hledejte v /etc/sysctl.d/10-ptrace.conf
</message>
<message>
<source>Invalid file location</source>
- <translation>Neplatné umístění souboru</translation>
+ <translation type="obsolete">Neplatné umístění souboru</translation>
</message>
<message>
<source>The file %1 is not in a subdirectory of the resource file. You now have the option to copy this file to a valid location.</source>
- <translation>Soubor %1 se nenachází v podadresáři souboru s prostředky. Nyní máte možnost zkopírovat tento soubor do platného umístění.</translation>
+ <translation type="obsolete">Soubor %1 se nenachází v podadresáři souboru s prostředky. Nyní máte možnost zkopírovat tento soubor do platného umístění.</translation>
</message>
<message>
<source>Choose copy location</source>
@@ -14312,7 +15007,7 @@ Více podrobností hledejte v /etc/sysctl.d/10-ptrace.conf
</message>
<message>
<source>Could not overwrite file %1.</source>
- <translation>Soubor %1 se nepodařilo přepsat.</translation>
+ <translation type="obsolete">Soubor %1 se nepodařilo přepsat.</translation>
</message>
<message>
<source>Copying failed</source>
@@ -14320,7 +15015,7 @@ Více podrobností hledejte v /etc/sysctl.d/10-ptrace.conf
</message>
<message>
<source>Could not copy the file to %1.</source>
- <translation>Soubor se nepodařilo zkopírovat do %1.</translation>
+ <translation type="obsolete">Soubor se nepodařilo zkopírovat do %1.</translation>
</message>
</context>
<context>
@@ -14351,7 +15046,7 @@ Více podrobností hledejte v /etc/sysctl.d/10-ptrace.conf
</message>
<message>
<source>Open File</source>
- <translation>Otevřít soubor</translation>
+ <translation type="obsolete">Otevřít soubor</translation>
</message>
<message>
<source>Input prefix:</source>
@@ -14363,7 +15058,7 @@ Více podrobností hledejte v /etc/sysctl.d/10-ptrace.conf
</message>
<message>
<source>All files (*)</source>
- <translation>VÅ¡echny soubory (*)</translation>
+ <translation type="obsolete">VÅ¡echny soubory (*)</translation>
</message>
<message>
<source>Change Prefix</source>
@@ -14795,6 +15490,18 @@ Více podrobností hledejte v /etc/sysctl.d/10-ptrace.conf
<translation>Smazat...</translation>
</message>
<message>
+ <source>Meta+S,Meta+D</source>
+ <translation>Meta+S,Meta+D</translation>
+ </message>
+ <message>
+ <source>Meta+S,Meta+A</source>
+ <translation>Meta+S,Meta+A</translation>
+ </message>
+ <message>
+ <source>Meta+S,Meta+C</source>
+ <translation>Meta+S,Meta+C</translation>
+ </message>
+ <message>
<source>Delete &quot;%1&quot;...</source>
<translation>Smazat &quot;%1&quot;...</translation>
</message>
@@ -15398,11 +16105,11 @@ Zdá se, že následující kódování odpovídají souboru:</translation>
</message>
<message>
<source>Creates a scratch buffer using a temporary file.</source>
- <translation type="obsolete">Vytvoří narychlo udÄ›lanou vyrovnávací paměť z doÄasného souboru.</translation>
+ <translation>Vytvoří narychlo udÄ›lanou vyrovnávací paměť z doÄasného souboru.</translation>
</message>
<message>
<source>Scratch Buffer</source>
- <translation type="obsolete">Narychlo udělaná vyrovnávací paměť</translation>
+ <translation>Narychlo udělaná vyrovnávací paměť</translation>
</message>
<message>
<source>Triggers a completion in this scope</source>
@@ -15472,10 +16179,26 @@ Zdá se, že následující kódování odpovídají souboru:</translation>
<translation>Ctrl+I</translation>
</message>
<message>
+ <source>Meta+E, R</source>
+ <translation>Meta+E, R</translation>
+ </message>
+ <message>
+ <source>Ctrl+E, R</source>
+ <translation>Ctrl+E, R</translation>
+ </message>
+ <message>
<source>&amp;Visualize Whitespace</source>
<translation>Z&amp;viditelnit prázdné znaky</translation>
</message>
<message>
+ <source>Meta+E, Meta+V</source>
+ <translation>Meta+E, Meta+V</translation>
+ </message>
+ <message>
+ <source>Ctrl+E, Ctrl+V</source>
+ <translation>Ctrl+E, Ctrl+V</translation>
+ </message>
+ <message>
<source>Clean Whitespace</source>
<translation>VyÄistit prázdné znaky</translation>
</message>
@@ -15501,11 +16224,11 @@ Zdá se, že následující kódování odpovídají souboru:</translation>
</message>
<message>
<source>Meta</source>
- <translation>Meta</translation>
+ <translation type="obsolete">Meta</translation>
</message>
<message>
<source>Ctrl</source>
- <translation>Ctrl</translation>
+ <translation type="obsolete">Ctrl</translation>
</message>
<message>
<source>&amp;Rewrap Paragraph</source>
@@ -15513,15 +16236,15 @@ Zdá se, že následující kódování odpovídají souboru:</translation>
</message>
<message>
<source>%1+E, R</source>
- <translation>%1+E, R</translation>
+ <translation type="obsolete">%1+E, R</translation>
</message>
<message>
<source>%1+E, %2+V</source>
- <translation>%1+E, %2+V</translation>
+ <translation type="obsolete">%1+E, %2+V</translation>
</message>
<message>
<source>%1+E, %2+W</source>
- <translation>%1+E, %2+W</translation>
+ <translation type="obsolete">%1+E, %2+W</translation>
</message>
<message>
<source>Cut &amp;Line</source>
@@ -15608,6 +16331,10 @@ Zdá se, že následující kódování odpovídají souboru:</translation>
<translation>Smazat slovo před ukazovátkem (Camel Case)</translation>
</message>
<message>
+ <source>Meta+0</source>
+ <translation>Meta+0</translation>
+ </message>
+ <message>
<source>Go to Block Start with Selection</source>
<translation>OznaÄit po zaÄátek bloku</translation>
</message>
@@ -15664,6 +16391,10 @@ Zdá se, že následující kódování odpovídají souboru:</translation>
<translation>Alt+Shift+U</translation>
</message>
<message>
+ <source>Meta+Shift+U</source>
+ <translation>Meta+Shift+U</translation>
+ </message>
+ <message>
<source>Lowercase Selection</source>
<translation>Změnit výběr na malá písmena</translation>
</message>
@@ -15672,6 +16403,10 @@ Zdá se, že následující kódování odpovídají souboru:</translation>
<translation>Alt+U</translation>
</message>
<message>
+ <source>Meta+U</source>
+ <translation>Meta+U</translation>
+ </message>
+ <message>
<source>Paste from Clipboard History</source>
<translation>Vložit z historie schránky</translation>
</message>
@@ -15689,11 +16424,11 @@ Zdá se, že následující kódování odpovídají souboru:</translation>
</message>
<message>
<source>Follow Symbol Under Cursor</source>
- <translation type="obsolete">Následovat symbol pod ukazovátkem</translation>
+ <translation>Následovat symbol pod ukazovátkem</translation>
</message>
<message>
<source>Jump To File Under Cursor</source>
- <translation type="obsolete">Jít na soubor pod ukazovátkem</translation>
+ <translation>Jít na soubor pod ukazovátkem</translation>
</message>
<message>
<source>Go to Line Start</source>
@@ -15864,6 +16599,14 @@ Zdá se, že následující kódování odpovídají souboru:</translation>
<translation>Jít o jeden řádek nahoru</translation>
</message>
<message>
+ <source>Meta+E, Meta+W</source>
+ <translation>Meta+E, Meta+W</translation>
+ </message>
+ <message>
+ <source>Ctrl+E, Ctrl+W</source>
+ <translation>Ctrl+E, Ctrl+W</translation>
+ </message>
+ <message>
<source>Toggle Comment &amp;Selection</source>
<translation>Zrušit opatření &amp;výběru poznámkou</translation>
</message>
@@ -15963,170 +16706,368 @@ Zdá se, že následující kódování odpovídají souboru:</translation>
<translation>Text</translation>
</message>
<message>
+ <source>Generic text.
+Applied to text, if no other rules matching.</source>
+ <translation>Generický text.
+Použito na text, pokud neodpovídají žádná jiná pravidla.</translation>
+ </message>
+ <message>
<source>Link</source>
<translation>Odkaz</translation>
</message>
<message>
+ <source>Links that follow symbol under cursor.</source>
+ <translation>Odkazy, jež následují symbol pod ukazovátkem.</translation>
+ </message>
+ <message>
<source>Selection</source>
<translation>Výběr</translation>
</message>
<message>
+ <source>Selected text.</source>
+ <translation>Vybraný text.</translation>
+ </message>
+ <message>
<source>Line Number</source>
<translation>Číslo řádku</translation>
</message>
<message>
+ <source>Line numbers located on the left side of the editor.</source>
+ <translation>Čísla řádků umístěná na levé straně editoru.</translation>
+ </message>
+ <message>
<source>Search Result</source>
<translation>Výsledek hledání</translation>
</message>
<message>
+ <source>Highlighted search results inside the editor.</source>
+ <translation>V editoru zvýrazněné výsledky hledání.</translation>
+ </message>
+ <message>
<source>Search Scope</source>
<translation>Oblast hledání</translation>
</message>
<message>
+ <source>Section where the pattern is searched in.</source>
+ <translation>Sekce, v níž je vzor hledán.</translation>
+ </message>
+ <message>
<source>Parentheses</source>
<translation>Závorky</translation>
</message>
<message>
+ <source>Displayed when matching parentheses, square brackets or curly brackets are found.</source>
+ <translation>Zobrazeno, když jsou nalezeny odpovídající kulaté, hranaté nebo složené závorky.</translation>
+ </message>
+ <message>
<source>Current Line</source>
<translation>Nynější řádek</translation>
</message>
<message>
+ <source>Line where the cursor is placed in.</source>
+ <translation>Řádek, na němž je umístěno ukazovátko.</translation>
+ </message>
+ <message>
<source>Current Line Number</source>
<translation>Číslo nynějšího řádku</translation>
</message>
<message>
+ <source>Line number located on the left side of the editor where the cursor is placed in.</source>
+ <translation>Číslo řádku umístěné na levé straně editoru, kde je ukázovátko umístěno.</translation>
+ </message>
+ <message>
<source>Occurrences</source>
<translation>Výskyty</translation>
</message>
<message>
+ <source>Occurrences of the symbol under the cursor.
+(Only the background will be applied.)</source>
+ <translation>Výskyty symbolu pod ukazovátkem.
+(Použije se jen pozadí.)</translation>
+ </message>
+ <message>
<source>Unused Occurrence</source>
- <translation>Nepoužívané výskyty</translation>
+ <translation>Výskyty nepoužívaných</translation>
+ </message>
+ <message>
+ <source>Occurrences of unused variables.</source>
+ <translation>Výskyty nepoužívaných proměnných.</translation>
</message>
<message>
<source>Renaming Occurrence</source>
- <translation>Přejmenování výskytu</translation>
+ <translation>Výskyty symbolu k přejmenování</translation>
+ </message>
+ <message>
+ <source>Occurrences of a symbol that will be renamed.</source>
+ <translation>Výskyty symbolu, jenž bude přejmenován.</translation>
</message>
<message>
<source>Number</source>
<translation>Číslo</translation>
</message>
<message>
+ <source>Number literal.</source>
+ <translation>Číslo literal.</translation>
+ </message>
+ <message>
<source>String</source>
<translation>Řetězec</translation>
</message>
<message>
+ <source>Character and string literals.</source>
+ <translation>Znak a řetězec literal.</translation>
+ </message>
+ <message>
<source>Type</source>
<translation>Typ</translation>
</message>
<message>
+ <source>Name of a type.</source>
+ <translation>Název typu.</translation>
+ </message>
+ <message>
<source>Local</source>
<translation>Místní</translation>
</message>
<message>
+ <source>Local variables.</source>
+ <translation>Místní proměnné.</translation>
+ </message>
+ <message>
<source>Field</source>
<translation>Pole</translation>
</message>
<message>
+ <source>Class&apos; data members.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Enumeration</source>
+ <translation>VýÄet</translation>
+ </message>
+ <message>
+ <source>Applied to Enumeration Items.</source>
+ <translation>Použito na položky výÄtu.</translation>
+ </message>
+ <message>
+ <source>Function</source>
+ <translation>Funkce</translation>
+ </message>
+ <message>
+ <source>Name of a function.</source>
+ <translation>Název funkce.</translation>
+ </message>
+ <message>
+ <source>QML item id within a QML file.</source>
+ <translation>ID položky QML v souboru QML.</translation>
+ </message>
+ <message>
+ <source>QML root Object Property</source>
+ <translation>Vlastnost kořenového objektu QML</translation>
+ </message>
+ <message>
+ <source>QML property of a parent item.</source>
+ <translation>Vlastnost QML rodiÄovské položky.</translation>
+ </message>
+ <message>
+ <source>QML scope Object Property</source>
+ <translation>Vlastnost oborového objektu QML</translation>
+ </message>
+ <message>
+ <source>Property of the same QML item.</source>
+ <translation>Vlastnost stejné položky QML.</translation>
+ </message>
+ <message>
+ <source>Location in the files where the difference is (in diff editor).</source>
+ <translation>Místo v souborech, kde je rozdíl (v editoru rozdílů).</translation>
+ </message>
+ <message>
<source>Static</source>
- <translation>Statický</translation>
+ <translation type="obsolete">Statický</translation>
</message>
<message>
<source>Virtual Method</source>
<translation>Virtuální metoda</translation>
</message>
<message>
+ <source>Name of method declared as virtual.</source>
+ <translation>Název metody deklarované jako virtuální.</translation>
+ </message>
+ <message>
<source>QML Binding</source>
<translation>Vázání QML</translation>
</message>
<message>
+ <source>QML item property, that allows a binding to another property.</source>
+ <translation>Vlastnost položky QML, jež umožňuje svázání s další vlastností.</translation>
+ </message>
+ <message>
<source>QML Local Id</source>
<translation>Místní ID QML</translation>
</message>
<message>
<source>QML Root Object Property</source>
- <translation>Vlastnost kořenového objektu QML</translation>
+ <translation type="obsolete">Vlastnost kořenového objektu QML</translation>
</message>
<message>
<source>QML Scope Object Property</source>
- <translation>Vlastnost oborového objektu QML</translation>
+ <translation type="obsolete">Vlastnost oborového objektu QML</translation>
</message>
<message>
<source>QML State Name</source>
<translation>Název stavu QML</translation>
</message>
<message>
+ <source>Name of a QML state.</source>
+ <translation>Název stavu QML.</translation>
+ </message>
+ <message>
<source>QML Type Name</source>
<translation>Název typu QML</translation>
</message>
<message>
+ <source>Name of a QML type.</source>
+ <translation>Název typu QML.</translation>
+ </message>
+ <message>
<source>QML External Id</source>
<translation>Vnější ID QML</translation>
</message>
<message>
+ <source>QML id defined in another QML file.</source>
+ <translation>ID QML definované v jiném souboru QML.</translation>
+ </message>
+ <message>
<source>QML External Object Property</source>
<translation>Vlastnost vnějšího objektu QML</translation>
</message>
<message>
+ <source>QML property defined in another QML file.</source>
+ <translation>Vlastnost QML definovaná v jiném souboru QML.</translation>
+ </message>
+ <message>
<source>JavaScript Scope Var</source>
<translation>Proměnná oboru JavaScriptu</translation>
</message>
<message>
+ <source>Variables defined inside the JavaScript file.</source>
+ <translation>Proměnné definované v souboru JavaScriptu.</translation>
+ </message>
+ <message>
<source>JavaScript Import</source>
- <translation>Zavedení JavaScriptu</translation>
+ <translation>Importování JavaScriptu</translation>
+ </message>
+ <message>
+ <source>Name of a JavaScript import inside a QML file.</source>
+ <translation>Název importování JavaScriptu v souboru QML.</translation>
</message>
<message>
<source>JavaScript Global Variable</source>
<translation>Globální proměnná JavaScriptu</translation>
</message>
<message>
+ <source>Variables defined outside the script.</source>
+ <translation>Proměnné definované mimo skript.</translation>
+ </message>
+ <message>
<source>Keyword</source>
<translation>KlíÄové slovo</translation>
</message>
<message>
+ <source>Reserved keywords of the programming language.</source>
+ <translation>Rezervovaná klíÄová slova programovacího jazyka.</translation>
+ </message>
+ <message>
<source>Operator</source>
<translation>Operátor</translation>
</message>
<message>
+ <source>Operators. (for example operator++ operator-=)</source>
+ <translation>Operátory. (například operator++ operator-=)</translation>
+ </message>
+ <message>
<source>Preprocessor</source>
<translation>Preprocesor</translation>
</message>
<message>
+ <source>Preprocessor directives.</source>
+ <translation>Příkazy pro preprocesor.</translation>
+ </message>
+ <message>
<source>Label</source>
<translation>Štítek</translation>
</message>
<message>
+ <source>Labels for goto statements.</source>
+ <translation>Štítky pro příkazy Jít na.</translation>
+ </message>
+ <message>
<source>Comment</source>
<translation>Poznámka</translation>
</message>
<message>
+ <source>All style of comments except Doxygen comments.</source>
+ <translation>Všechny styly poznámek kromě poznámek Doxygen.</translation>
+ </message>
+ <message>
<source>Doxygen Comment</source>
<translation>Poznámka Doxygen</translation>
</message>
<message>
+ <source>Doxygen comments.</source>
+ <translation>Poznámky Doxygen.</translation>
+ </message>
+ <message>
<source>Doxygen Tag</source>
<translation>KlíÄové slovo Doxygen</translation>
</message>
<message>
+ <source>Doxygen tags</source>
+ <translation>KlíÄová slova Doxygen</translation>
+ </message>
+ <message>
<source>Visual Whitespace</source>
<translation>Viditelné prázdné znaky</translation>
</message>
<message>
+ <source>Whitespace
+Will not be applied to whitespace in comments and strings.</source>
+ <translation>Prázdný znak
+Nepoužije se na prázdný znak v poznámkách a řetězcích.</translation>
+ </message>
+ <message>
<source>Disabled Code</source>
<translation>Vypnutý kód</translation>
</message>
<message>
+ <source>Code disabled by preprocessor directives.</source>
+ <translation>Kód vypnutý příkazy preprocesoru.</translation>
+ </message>
+ <message>
<source>Added Line</source>
<translation>Přidaný řádek</translation>
</message>
<message>
+ <source>Applied to added lines in differences (in diff editor).</source>
+ <translation>Použito na přidané řádky v rozdílech (v editoru rozdílů).</translation>
+ </message>
+ <message>
<source>Removed Line</source>
<translation>Odstraněný řádek</translation>
</message>
<message>
+ <source>Applied to removed lines in differences (in diff editor).</source>
+ <translation>Použito na odstraněné řádky v rozdílech (v editoru rozdílů).</translation>
+ </message>
+ <message>
<source>Diff File</source>
<translation>Porovnávaný soubor</translation>
</message>
<message>
+ <source>Compared files (in diff editor).</source>
+ <translation>Porovnané soubory (v editoru rozdílů).</translation>
+ </message>
+ <message>
<source>Diff Location</source>
<translation>Porovnávané umístění</translation>
</message>
@@ -16178,11 +17119,11 @@ Zdá se, že následující kódování odpovídají souboru:</translation>
</message>
<message>
<source>General</source>
- <translation type="obsolete">Obecné</translation>
+ <translation>Obecné</translation>
</message>
<message>
<source>Common</source>
- <translation>Obecné</translation>
+ <translation type="obsolete">Obecné</translation>
</message>
<message>
<source>Project from Version Control</source>
@@ -16193,7 +17134,7 @@ Zdá se, že následující kódování odpovídají souboru:</translation>
<name>VcsBase::Internal::NickNameDialog</name>
<message>
<source>Name</source>
- <translation>Název</translation>
+ <translation>Jméno</translation>
</message>
<message>
<source>E-mail</source>
@@ -16201,11 +17142,11 @@ Zdá se, že následující kódování odpovídají souboru:</translation>
</message>
<message>
<source>Alias</source>
- <translation>Přezdívka</translation>
+ <translation>Alias</translation>
</message>
<message>
<source>Alias e-mail</source>
- <translation>Přezdívka e-mailové adresy</translation>
+ <translation>E-mail aliasu</translation>
</message>
<message>
<source>Cannot open &apos;%1&apos;: %2</source>
@@ -16626,7 +17567,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Project:</source>
- <translation type="obsolete">Projekt:</translation>
+ <translation>Projekt:</translation>
</message>
</context>
<context>
@@ -17173,7 +18114,7 @@ Toho se dosáhne vložením této zkratky v zadávacím poli vyhledávaÄe, nás
<name>Locator::Internal::FileSystemFilterOptions</name>
<message>
<source>Filter configuration</source>
- <translation>Nastavení filtru</translation>
+ <translation type="obsolete">Nastavení filtru</translation>
</message>
<message>
<source>Prefix:</source>
@@ -17193,7 +18134,7 @@ Toho se dosáhne vložením této zkratky v zadávacím poli vyhledávaÄe, nás
</message>
<message>
<source>Add Filter Configuration</source>
- <translation type="obsolete">Přidat nastavení filtru</translation>
+ <translation>Přidat nastavení filtru</translation>
</message>
</context>
<context>
@@ -17287,7 +18228,7 @@ Toho se dosáhne vložením této zkratky v zadávacím poli vyhledávaÄe, nás
</message>
<message>
<source>&lt;i&gt;jom&lt;/i&gt; is a drop-in replacement for &lt;i&gt;nmake&lt;/i&gt; which distributes the compilation process to multiple CPU cores. The latest binary is available at &lt;a href=&quot;ftp://ftp.qt.nokia.com/jom/&quot;&gt;ftp://ftp.qt.nokia.com/jom/&lt;/a&gt;. Disable it if you experience problems with your builds.</source>
- <translation>&lt;i&gt;jom&lt;/i&gt; je náhražka za &lt;i&gt;nmake&lt;/i&gt;, která proces sestavování rozděluje mezi více jader CPU. Nejnovější binární soubor je dostupný na &lt;a href=&quot;ftp://ftp.qt.nokia.com/jom/&quot;&gt;ftp://ftp.qt.nokia.com/jom/&lt;/a&gt;. Zakažte jej narazíte-li při vytváření svých programů na potíže.</translation>
+ <translation type="obsolete">&lt;i&gt;jom&lt;/i&gt; je náhražka za &lt;i&gt;nmake&lt;/i&gt;, která proces sestavování rozděluje mezi více jader CPU. Nejnovější binární soubor je dostupný na &lt;a href=&quot;ftp://ftp.qt.nokia.com/jom/&quot;&gt;ftp://ftp.qt.nokia.com/jom/&lt;/a&gt;. Zakažte jej narazíte-li při vytváření svých programů na potíže.</translation>
</message>
<message>
<source>Always build project before deploying it</source>
@@ -17337,6 +18278,10 @@ Toho se dosáhne vložením této zkratky v zadávacím poli vyhledávaÄe, nás
<source>Open application output pane when debugging</source>
<translation>Při ladění programu ukázat výstupní panel</translation>
</message>
+ <message>
+ <source>&lt;i&gt;jom&lt;/i&gt; is a drop-in replacement for &lt;i&gt;nmake&lt;/i&gt; which distributes the compilation process to multiple CPU cores. The latest binary is available at &lt;a href=&quot;http://releases.qt-project.org/jom/&quot;&gt;http://releases.qt-project.org/jom/&lt;/a&gt;. Disable it if you experience problems with your builds.</source>
+ <translation>&lt;i&gt;jom&lt;/i&gt; je náhražka za &lt;i&gt;nmake&lt;/i&gt;, která proces sestavování rozděluje mezi více jader CPU. Nejnovější binární soubor je dostupný na &lt;a href=&quot;http://releases.qt-project.org/jom/&quot;&gt;http://releases.qt-project.org/jom/&lt;/a&gt;. Zakažte jej narazíte-li při vytváření svých programů na potíže.</translation>
+ </message>
</context>
<context>
<name>ProjectExplorer::Internal::ProjectWelcomePageWidget</name>
@@ -18703,6 +19648,10 @@ Toho se dosáhne vložením této zkratky v zadávacím poli vyhledávaÄe, nás
<translation>Nelze najít skladiště pro &apos;%1&apos;</translation>
</message>
<message>
+ <source>Meta+C,Meta+D</source>
+ <translation>Meta+C,Meta+D</translation>
+ </message>
+ <message>
<source>Filelog &quot;%1&quot;</source>
<translation>Záznamy k souboru &quot;%1&quot;</translation>
</message>
@@ -18715,6 +19664,14 @@ Toho se dosáhne vložením této zkratky v zadávacím poli vyhledávaÄe, nás
<translation>Opatřit anotacemi &quot;%1&quot;</translation>
</message>
<message>
+ <source>Meta+C,Meta+A</source>
+ <translation>Meta+C,Meta+A</translation>
+ </message>
+ <message>
+ <source>Meta+C,Meta+C</source>
+ <translation>Meta+C,Meta+C</translation>
+ </message>
+ <message>
<source>Delete...</source>
<translation>Smazat...</translation>
</message>
@@ -19207,26 +20164,26 @@ Chcete jej ukonÄit?</translation>
<message>
<source>The gdb process could not be stopped:
%1</source>
- <translation>Proces Gdb se nepodařilo zastavit:
+ <translation type="obsolete">Proces Gdb se nepodařilo zastavit:
%1</translation>
</message>
<message>
<source>Application process could not be stopped:
%1</source>
- <translation>Proces programu se nepodařilo zastavit:
+ <translation type="obsolete">Proces programu se nepodařilo zastavit:
%1</translation>
</message>
<message>
<source>Application started</source>
- <translation>Program spuštěn</translation>
+ <translation type="obsolete">Program spuštěn</translation>
</message>
<message>
<source>Application running</source>
- <translation>Program běží</translation>
+ <translation type="obsolete">Program běží</translation>
</message>
<message>
<source>Attached to stopped application</source>
- <translation>Ladicí program připojen k zastavenému programu</translation>
+ <translation type="obsolete">Ladicí program připojen k zastavenému programu</translation>
</message>
<message>
<source>Inferior process could not be stopped:
@@ -19249,7 +20206,7 @@ Chcete jej ukonÄit?</translation>
<message>
<source>Connecting to remote server failed:
%1</source>
- <translation>Spojení se vzdáleným serverem se nepodařilo vytvořit:
+ <translation type="obsolete">Spojení se vzdáleným serverem se nepodařilo vytvořit:
%1</translation>
</message>
</context>
@@ -19265,7 +20222,7 @@ Chcete jej ukonÄit?</translation>
</message>
<message>
<source>Symbols found.</source>
- <translation>Symboly byly nalezeny.</translation>
+ <translation type="obsolete">Symboly byly nalezeny.</translation>
</message>
<message>
<source>Loading symbols from &quot;%1&quot; failed:
@@ -19275,7 +20232,7 @@ Chcete jej ukonÄit?</translation>
</message>
<message>
<source>Attached to core temporarily.</source>
- <translation>DoÄasnÄ› pÅ™ipojeno k &apos;core&apos; souboru.</translation>
+ <translation type="obsolete">DoÄasnÄ› pÅ™ipojeno k &apos;core&apos; souboru.</translation>
</message>
<message>
<source>Unable to determine executable from core file.</source>
@@ -19283,36 +20240,36 @@ Chcete jej ukonÄit?</translation>
</message>
<message>
<source>The name of the binary file cannot be extracted from this core file.</source>
- <translation>Název spustitelného souboru nelze urÄit z tohoto &apos;core&apos; souboru.</translation>
+ <translation type="obsolete">Název spustitelného souboru nelze urÄit z tohoto &apos;core&apos; souboru.</translation>
</message>
<message>
<source>Try to specify the binary using the &lt;i&gt;Debug-&gt;Start Debugging-&gt;Attach to Core&lt;/i&gt; dialog.</source>
- <translation>Zadejte, prosím, název spustitelného souboru v dialogu &lt;i&gt;Ladění-&gt;Spustit ladění-&gt;Připojit do core&lt;/i&gt;.</translation>
+ <translation type="obsolete">Zadejte, prosím, název spustitelného souboru v dialogu &lt;i&gt;Ladění-&gt;Spustit ladění-&gt;Připojit do core&lt;/i&gt;.</translation>
</message>
<message>
<source>Loading core file failed</source>
- <translation>Nahrání souboru &apos;core&apos; se nezdařilo</translation>
+ <translation type="obsolete">Nahrání souboru &apos;core&apos; se nezdařilo</translation>
</message>
<message>
<source>Attach to core failed.</source>
- <translation>Připojení ke core se nezdařilo.</translation>
+ <translation type="obsolete">Připojení ke core se nezdařilo.</translation>
</message>
<message>
<source>No symbols found in core file &lt;i&gt;%1&lt;/i&gt;.</source>
- <translation>V souboru &apos;core&apos; nebyly nalezeny žádné symboly &lt;i&gt;%1&lt;/i&gt;.</translation>
+ <translation type="obsolete">V souboru &apos;core&apos; nebyly nalezeny žádné symboly &lt;i&gt;%1&lt;/i&gt;.</translation>
</message>
<message>
<source>This can be caused by a path length limitation in the core file.</source>
- <translation>Možnou příÄinou je omezení délky cesty v souboru core.</translation>
+ <translation type="obsolete">Možnou příÄinou je omezení délky cesty v souboru core.</translation>
</message>
<message>
<source>Attached to core.</source>
- <translation>Připojeno k souboru &apos;core&apos;.</translation>
+ <translation type="obsolete">Připojeno k souboru &apos;core&apos;.</translation>
</message>
<message>
<source>Attach to core &quot;%1&quot; failed:
</source>
- <translation>Ladění souboru &apos;core&apos; &quot;%1&quot; se nezdařilo:</translation>
+ <translation type="obsolete">Ladění souboru &apos;core&apos; &quot;%1&quot; se nezdařilo:</translation>
</message>
</context>
<context>
@@ -19373,7 +20330,7 @@ Chcete jej ukonÄit?</translation>
<name>Debugger::Internal::TermGdbAdapter</name>
<message>
<source>Debugger Error</source>
- <translation>Chyba v ladicím programu</translation>
+ <translation type="obsolete">Chyba v ladicím programu</translation>
</message>
</context>
<context>
@@ -19575,49 +20532,73 @@ Chcete jej ukonÄit?</translation>
</message>
<message>
<source>Raw pointer</source>
- <translation type="obsolete">Hodnota kurzoru</translation>
+ <translation>Hodnota ukazatele</translation>
</message>
<message>
<source>Latin1 string</source>
- <translation type="obsolete">Řetězec Latin1</translation>
+ <translation>Řetězec Latin1</translation>
</message>
<message>
<source>UTF8 string</source>
- <translation type="obsolete">Řetězec UTF8</translation>
+ <translation>Řetězec UTF8</translation>
</message>
<message>
<source>Local 8bit string</source>
- <translation type="obsolete">Řetězec znaků v místním 8bitovém zobrazení</translation>
+ <translation>Řetězec znaků v místním 8bitovém zobrazení</translation>
</message>
<message>
<source>UTF16 string</source>
- <translation type="obsolete">Řetězec UTF16</translation>
+ <translation>Řetězec UTF16</translation>
</message>
<message>
<source>UCS4 string</source>
- <translation type="obsolete">Řetězec UCS4</translation>
+ <translation>Řetězec UCS4</translation>
</message>
<message>
<source>Decimal</source>
- <translation type="obsolete">Desítkový</translation>
+ <translation>Desítkový</translation>
</message>
<message>
<source>Hexadecimal</source>
- <translation type="obsolete">Šestnáctkový</translation>
+ <translation>Šestnáctkový</translation>
</message>
<message>
<source>Binary</source>
- <translation type="obsolete">Dvojkový</translation>
+ <translation>Dvojkový</translation>
</message>
<message>
<source>Octal</source>
- <translation type="obsolete">OsmiÄkový</translation>
+ <translation>OsmiÄkový</translation>
</message>
<message>
<source>returned value</source>
<translation>Návratová hodnota</translation>
</message>
<message>
+ <source>Root</source>
+ <translation>Kořen (root)</translation>
+ </message>
+ <message>
+ <source>Locals</source>
+ <translation>Místní proměnné</translation>
+ </message>
+ <message>
+ <source>Inspector</source>
+ <translation>Inspektor</translation>
+ </message>
+ <message>
+ <source>Expressions</source>
+ <translation>Výrazy</translation>
+ </message>
+ <message>
+ <source>Return Value</source>
+ <translation>Návratová hodnota</translation>
+ </message>
+ <message>
+ <source>Tooltip</source>
+ <translation>Vysvětlivka</translation>
+ </message>
+ <message>
<source>Name</source>
<translation>Název</translation>
</message>
@@ -19766,15 +20747,15 @@ Chcete jej ukonÄit?</translation>
</message>
<message>
<source>General Settings</source>
- <translation>Obecná nastavení</translation>
+ <translation type="obsolete">Obecná nastavení</translation>
</message>
<message>
<source>General</source>
- <translation type="obsolete">Obecné</translation>
+ <translation>Obecné</translation>
</message>
<message>
<source>Import Bookmarks</source>
- <translation>Zavést záložky</translation>
+ <translation>Importovat záložky</translation>
</message>
<message>
<source>Cannot import bookmarks.</source>
@@ -19882,11 +20863,11 @@ Chcete jej ukonÄit?</translation>
</message>
<message>
<source>Import...</source>
- <translation>Zavést...</translation>
+ <translation>Importovat...</translation>
</message>
<message>
<source>Export...</source>
- <translation>Vyvést...</translation>
+ <translation>Exportovat...</translation>
</message>
<message>
<source>Behaviour</source>
@@ -19900,6 +20881,10 @@ Chcete jej ukonÄit?</translation>
<source>Return to editor on closing the last page</source>
<translation>Vrátit se do editoru po zavření poslední stránky s nápovědou</translation>
</message>
+ <message>
+ <source>Note: This setting takes effect only if the HTML file does not use a style sheet.</source>
+ <translation>Poznámka: Toto nastavení se projeví, jen když soubor HTML nepoužívá stylový list.</translation>
+ </message>
</context>
<context>
<name>Help::Internal::XbelReader</name>
@@ -20547,6 +21532,10 @@ Důvod: %2</translation>
<name>Qt4ProjectManager::Internal::CustomWidgetWizardDialog</name>
<message>
<source>This wizard generates a Qt4 Designer Custom Widget or a Qt4 Designer Custom Widget Collection project.</source>
+ <translation type="obsolete">Tento průvodce vytvoří projekt Qt4 s jedním nebo více uživatelsky stanovenými prvky pro Qt4 Designer.</translation>
+ </message>
+ <message>
+ <source>This wizard generates a Qt Designer Custom Widget or a Qt Designer Custom Widget Collection project.</source>
<translation>Tento průvodce vytvoří projekt Qt4 s jedním nebo více uživatelsky stanovenými prvky pro Qt4 Designer.</translation>
</message>
<message>
@@ -20623,7 +21612,7 @@ Důvod: %2</translation>
</message>
<message>
<source>&lt;b&gt;Warning:&lt;/b&gt; The tool chain suggests using another mkspec.</source>
- <translation>&lt;b&gt;Varování:&lt;/b&gt; Řetězec znaků udává použití jiného mkspec.</translation>
+ <translation type="obsolete">&lt;b&gt;Varování:&lt;/b&gt; Řetězec znaků udává použití jiného mkspec.</translation>
</message>
<message>
<source>&lt;b&gt;Warning:&lt;/b&gt; The tool chain suggested &quot;%1&quot; as mkspec.</source>
@@ -20854,21 +21843,21 @@ Prověřte, prosím, zda je telefon připojen a zda běží program Trk.</transl
<message>
<source>Warning: Cannot locate the symbol file belonging to %1.
</source>
- <translation>Varování: Nepodařilo se najít symbolický soubor patřící %1.
+ <translation type="obsolete">Varování: Nepodařilo se najít symbolický soubor patřící %1.
</translation>
</message>
<message>
<source>Launching debugger...
</source>
- <translation>Spouští se ladicí program...</translation>
+ <translation type="obsolete">Spouští se ladicí program...</translation>
</message>
<message>
<source>Debugger for Symbian Platform</source>
- <translation>Ladicí program pro platformu Symbian</translation>
+ <translation type="obsolete">Ladicí program pro platformu Symbian</translation>
</message>
<message>
<source>Debug on Device</source>
- <translation>Ladit na zařízení</translation>
+ <translation type="obsolete">Ladit na zařízení</translation>
</message>
</context>
<context>
@@ -20883,7 +21872,7 @@ Prověřte, prosím, zda je telefon připojen a zda běží program Trk.</transl
</message>
<message>
<source>Arguments:</source>
- <translation>Argumenty:</translation>
+ <translation type="obsolete">Argumenty:</translation>
</message>
<message>
<source>Debugger:</source>
@@ -20988,20 +21977,20 @@ Prověřte, prosím, zda je telefon připojen a zda běží program Trk.</transl
<extracomment>S60 emulator run configuration default display name, %1 is base pro-File name
----------
S60 emulator run configuration default display name, %1 is base pro-File name</extracomment>
- <translation>%1 v emulátoru Symbianu</translation>
+ <translation type="obsolete">%1 v emulátoru Symbianu</translation>
</message>
<message>
<source>Run on Symbian Emulator</source>
<extracomment>S60 emulator run configuration default display name (no pro-file name)</extracomment>
- <translation>Spustit v emulátoru Symbianu</translation>
+ <translation type="obsolete">Spustit v emulátoru Symbianu</translation>
</message>
<message>
<source>The .pro file is currently being parsed.</source>
- <translation>Soubor .pro je právě vyhodnocován.</translation>
+ <translation type="obsolete">Soubor .pro je právě vyhodnocován.</translation>
</message>
<message>
<source>The .pro file could not be parsed.</source>
- <translation>Soubor .pro se nepodařilo vyhodnotit.</translation>
+ <translation type="obsolete">Soubor .pro se nepodařilo vyhodnotit.</translation>
</message>
<message>
<source>Qt Symbian Emulator RunConfiguration</source>
@@ -21024,7 +22013,7 @@ S60 emulator run configuration default display name, %1 is base pro-File name</e
</message>
<message>
<source>Executable:</source>
- <translation>Spustitelný soubor:</translation>
+ <translation type="obsolete">Spustitelný soubor:</translation>
</message>
<message>
<source>Summary: Run %1 in emulator</source>
@@ -21035,7 +22024,7 @@ S60 emulator run configuration default display name, %1 is base pro-File name</e
<name>Qt4ProjectManager::Internal::S60EmulatorRunConfigurationFactory</name>
<message>
<source>%1 in Symbian Emulator</source>
- <translation>%1 v emulátoru Symbianu</translation>
+ <translation type="obsolete">%1 v emulátoru Symbianu</translation>
</message>
</context>
<context>
@@ -21047,17 +22036,17 @@ S60 emulator run configuration default display name, %1 is base pro-File name</e
<message>
<source>Starting %1...
</source>
- <translation>Spouští se %1...
+ <translation type="obsolete">Spouští se %1...
</translation>
</message>
<message>
<source>[Qt Message]</source>
- <translation>[Hlášení Qt]</translation>
+ <translation type="obsolete">[Hlášení Qt]</translation>
</message>
<message>
<source>%1 exited with code %2
</source>
- <translation>%1 ukonÄen. Vrácená hodnota %2
+ <translation type="obsolete">%1 ukonÄen. Vrácená hodnota %2
</translation>
</message>
<message>
@@ -21069,11 +22058,11 @@ S60 emulator run configuration default display name, %1 is base pro-File name</e
<name>Qt4ProjectManager::Internal::S60Manager</name>
<message>
<source>Run in Emulator</source>
- <translation>Spustit v emulátoru</translation>
+ <translation type="obsolete">Spustit v emulátoru</translation>
</message>
<message>
<source>Run on Device</source>
- <translation>Spustit na zařízení</translation>
+ <translation type="obsolete">Spustit na zařízení</translation>
</message>
<message>
<source>Debug on Device</source>
@@ -21088,7 +22077,7 @@ S60 emulator run configuration default display name, %1 is base pro-File name</e
</message>
<message>
<source>Using Qt Version &quot;%1&quot;</source>
- <translation>Používá se verze Qt &quot;%1&quot;</translation>
+ <translation type="obsolete">Používá se verze Qt &quot;%1&quot;</translation>
</message>
<message>
<source>New configuration</source>
@@ -21099,6 +22088,10 @@ S60 emulator run configuration default display name, %1 is base pro-File name</e
<translation type="obsolete">Název nového nastavení:</translation>
</message>
<message>
+ <source>Qmake based build</source>
+ <translation>Sestavení založené na qmake</translation>
+ </message>
+ <message>
<source>New Configuration</source>
<translation>Nové nastavení</translation>
</message>
@@ -21116,6 +22109,16 @@ S60 emulator run configuration default display name, %1 is base pro-File name</e
<extracomment>Release build configuration. We recommend not translating it.</extracomment>
<translation>%1 vydání</translation>
</message>
+ <message>
+ <source>Debug</source>
+ <extracomment>Name of a debug build configuration to created by a project wizard. We recommend not translating it.</extracomment>
+ <translation>Ladění</translation>
+ </message>
+ <message>
+ <source>Release</source>
+ <extracomment>Name of a release build configuration to be created by a project wizard. We recommend not translating it.</extracomment>
+ <translation>Vydání</translation>
+ </message>
</context>
<context>
<name>QApplication</name>
@@ -21133,6 +22136,22 @@ S60 emulator run configuration default display name, %1 is base pro-File name</e
<comment>Previous Open Document in History</comment>
<translation type="obsolete">Předchozí otevřený dokument v historii</translation>
</message>
+ <message>
+ <source>Ninja (%1)</source>
+ <translation>Ninja (%1)</translation>
+ </message>
+ <message>
+ <source>NMake Generator (%1)</source>
+ <translation>Generátor NMake (%1)</translation>
+ </message>
+ <message>
+ <source>MinGW Generator (%1)</source>
+ <translation>Generátor MinGW (%1)</translation>
+ </message>
+ <message>
+ <source>Unix Generator (%1)</source>
+ <translation>Generátor Unix (%1)</translation>
+ </message>
</context>
<context>
<name>Subversion::Internal::CheckoutWizard</name>
@@ -21496,6 +22515,10 @@ S60 emulator run configuration default display name, %1 is base pro-File name</e
<translation>Automake založený Makefile</translation>
</message>
<message>
+ <source>ClearCase submit template</source>
+ <translation>Předloha odeslání (submit) ClearCase</translation>
+ </message>
+ <message>
<source>GLSL Shader file</source>
<translation>Soubor GLSL Shader</translation>
</message>
@@ -21985,6 +23008,14 @@ Můžete si vybrat mezi odložením změn nebo jejich vyhozením.</translation>
<source>TargetSettingsWidget</source>
<translation>TargetSettingsWidget</translation>
</message>
+ <message>
+ <source>Add Kit</source>
+ <translation>Přidat sadu</translation>
+ </message>
+ <message>
+ <source>Manage Kits...</source>
+ <translation>Spravovat sady...</translation>
+ </message>
</context>
<context>
<name>BehaviorDialog</name>
@@ -22951,11 +23982,11 @@ a předpokladem je, že vzdálený spustitelný soubor bude v adresáři zmiňov
</message>
<message>
<source>Self-signed certificate</source>
- <translation>Osobně podepsaný certifikát</translation>
+ <translation type="obsolete">Osobně podepsaný certifikát</translation>
</message>
<message>
<source>Custom certificate:</source>
- <translation>Uživatelsky stanovený certifikát:</translation>
+ <translation type="obsolete">Uživatelsky stanovený certifikát:</translation>
</message>
<message>
<source>Choose certificate file (.cer)</source>
@@ -22963,31 +23994,31 @@ a předpokladem je, že vzdálený spustitelný soubor bude v adresáři zmiňov
</message>
<message>
<source>Key file:</source>
- <translation>Soubor s klíÄem:</translation>
+ <translation type="obsolete">Soubor s klíÄem:</translation>
</message>
<message>
<source>Not signed</source>
- <translation>Nepodepsáno</translation>
+ <translation type="obsolete">Nepodepsáno</translation>
</message>
<message>
<source>Choose certificate file</source>
- <translation>Vybrat soubor s certifikátem</translation>
+ <translation type="obsolete">Vybrat soubor s certifikátem</translation>
</message>
<message>
<source>Create Smart Installer package</source>
- <translation>VytvoÅ™it chytrý instalaÄní balíÄek</translation>
+ <translation type="obsolete">VytvoÅ™it chytrý instalaÄní balíÄek</translation>
</message>
<message>
<source>Resets saved passphrases for all used keys</source>
- <translation>Nastaví znovu uložená hesla vÅ¡ech použitých klíÄů</translation>
+ <translation type="obsolete">Nastaví znovu uložená hesla vÅ¡ech použitých klíÄů</translation>
</message>
<message>
<source>Reset Passphrases</source>
- <translation>Nastavit hesla znovu</translation>
+ <translation type="obsolete">Nastavit hesla znovu</translation>
</message>
<message>
<source>Certificate&apos;s details</source>
- <translation>Podrobnosti certifikátu</translation>
+ <translation type="obsolete">Podrobnosti certifikátu</translation>
</message>
</context>
<context>
@@ -22998,7 +24029,7 @@ a předpokladem je, že vzdálený spustitelný soubor bude v adresáři zmiňov
</message>
<message>
<source>Qt Creator can set up the following targets:</source>
- <translation>Qt Creator může nastavit následující cíle:</translation>
+ <translation type="obsolete">Qt Creator může nastavit následující cíle:</translation>
</message>
<message>
<source>Qt Version</source>
@@ -23060,11 +24091,11 @@ a předpokladem je, že vzdálený spustitelný soubor bude v adresáři zmiňov
</message>
<message>
<source>Set up Targets for Your Project</source>
- <translation>Nastavte cíl pro svůj projekt</translation>
+ <translation type="obsolete">Nastavte cíl pro svůj projekt</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;No valid Qt versions found.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Please add a Qt version in &lt;span style=&quot; font-style:italic;&quot;&gt;Tools &amp;gt; Options &amp;gt; Build &amp;amp; Run&lt;/span&gt; (&lt;span style=&quot; font-style:italic;&quot;&gt;Qt Creator &amp;gt; Preferences &amp;gt; Build &amp;amp; Run&lt;/span&gt; on Mac OS) or via the maintenance tool of the SDK.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Nenalezeny žádné platné verze Qt.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Přidejte, prosím, verzi Qt v &lt;span style=&quot; font-style:italic;&quot;&gt;Nástroje &amp;gt; Volby &amp;gt; Sestavení &amp;amp; Spuštění&lt;/span&gt; (&lt;span style=&quot; font-style:italic;&quot;&gt;Qt Creator &amp;gt; Nastavení &amp;gt; Sestavení &amp;amp; Spuštění&lt;/span&gt; na Mac OS) nebo přes nástroj na správu SDK.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation type="obsolete">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Nenalezeny žádné platné verze Qt.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Přidejte, prosím, verzi Qt v &lt;span style=&quot; font-style:italic;&quot;&gt;Nástroje &amp;gt; Volby &amp;gt; Sestavení &amp;amp; Spuštění&lt;/span&gt; (&lt;span style=&quot; font-style:italic;&quot;&gt;Qt Creator &amp;gt; Nastavení &amp;gt; Sestavení &amp;amp; Spuštění&lt;/span&gt; na Mac OS) nebo přes nástroj na správu SDK.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
</context>
<context>
@@ -23149,9 +24180,17 @@ a předpokladem je, že vzdálený spustitelný soubor bude v adresáři zmiňov
<source>Repository: %1</source>
<translation>Skladiště: %1</translation>
</message>
+ <message numerus="yes">
+ <source>%n bytes, last modified %1</source>
+ <translation>
+ <numerusform>%1 byt, naposledy změněno %2</numerusform>
+ <numerusform>%1 byty, naposledy změněno %2</numerusform>
+ <numerusform>%1 bytů, naposledy změněno %2</numerusform>
+ </translation>
+ </message>
<message>
<source>%1 bytes, last modified %2</source>
- <translation>%1 bytů, naposledy změněno %2</translation>
+ <translation type="obsolete">%1 bytů, naposledy změněno %2</translation>
</message>
<message>
<source>Delete</source>
@@ -24293,6 +25332,10 @@ Desetinná hodnota se znaménkem (velký endian): %4</translation>
<translation>Kopírovat výběr jako šestnáctkové hodnoty</translation>
</message>
<message>
+ <source>Set Data Breakpoint on Selection</source>
+ <translation>Nastavit bod přerušení dat na výběru</translation>
+ </message>
+ <message>
<source>Jump to Address in This Window</source>
<translation>Jít na adresu v tomto okně</translation>
</message>
@@ -24367,6 +25410,14 @@ Desetinná hodnota se znaménkem (velký endian): %4</translation>
<extracomment>Default display name for the cmake make step.</extracomment>
<translation>Make</translation>
</message>
+ <message>
+ <source>Qt Creator needs a compiler set up to build. Configure a compiler in the kit options.</source>
+ <translation>Qt Creator potÅ™ebuje nastavení pÅ™ekladaÄe pro sestavení projektu. Nastavte, prosím, pÅ™ekladaÄ ve volbách pro sadu.</translation>
+ </message>
+ <message>
+ <source>Configuration is faulty. Check the Issues view for details.</source>
+ <translation>Nastavení je chybné. Prověřte, prosím, pohled na potíže kvůli podrobnostem.</translation>
+ </message>
</context>
<context>
<name>CMakeProjectManager::Internal::MakeStepFactory</name>
@@ -24874,6 +25925,26 @@ heslem, jež můžete zadat níže.</translation>
<source>Bazaar Commit Log Editor</source>
<translation>Editor historie změn pro Bazaar</translation>
</message>
+ <message>
+ <source>ClearCase Check In Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>ClearCase Command Log Editor</source>
+ <translation>Editor záznamů o příkazech pro ClearCase</translation>
+ </message>
+ <message>
+ <source>ClearCase File Log Editor</source>
+ <translation>Editor záznamů o souborech pro ClearCase</translation>
+ </message>
+ <message>
+ <source>ClearCase Annotation Editor</source>
+ <translation>Editor poznámek pro ClearCase</translation>
+ </message>
+ <message>
+ <source>ClearCase Diff Editor</source>
+ <translation>Editor rozdílů pro ClearCase</translation>
+ </message>
</context>
<context>
<name>Cvs::Internal::CvsEditor</name>
@@ -25120,11 +26191,11 @@ Proces Pdb po urÄité dobÄ› od úspěšného spuÅ¡tÄ›ní spadl.</translation>
</message>
<message>
<source>Create Snapshot</source>
- <translation>Vytvořit snímek</translation>
+ <translation type="obsolete">Vytvořit snímek</translation>
</message>
<message>
<source>Remove Snapshot</source>
- <translation>Odstranit snímek</translation>
+ <translation type="obsolete">Odstranit snímek</translation>
</message>
<message>
<source>Adjust Column Widths to Contents</source>
@@ -25217,6 +26288,14 @@ Proces Pdb po urÄité dobÄ› od úspěšného spuÅ¡tÄ›ní spadl.</translation>
<translation>Make</translation>
</message>
<message>
+ <source>Qt Creator needs a compiler set up to build. Configure a compiler in the kit options.</source>
+ <translation>Qt Creator potÅ™ebuje nastavení pÅ™ekladaÄe pro sestavení projektu. Nastavte, prosím, pÅ™ekladaÄ ve volbách pro sadu.</translation>
+ </message>
+ <message>
+ <source>Configuration is faulty. Check the Issues view for details.</source>
+ <translation>Nastavení je chybné. Prověřte, prosím, pohled na potíže kvůli podrobnostem.</translation>
+ </message>
+ <message>
<source>Override %1:</source>
<translation>Přepsat %1:</translation>
</message>
@@ -25297,6 +26376,14 @@ Proces Pdb po urÄité dobÄ› od úspěšného spuÅ¡tÄ›ní spadl.</translation>
<source>Reload</source>
<translation>Nahrát znovu</translation>
</message>
+ <message>
+ <source>Error loading: %1</source>
+ <translation>Chyba při nahrávání: %1</translation>
+ </message>
+ <message>
+ <source>Unknown or unsupported Content!</source>
+ <translation>Neznámý nebo nepodporovaný obsah!</translation>
+ </message>
</context>
<context>
<name>Help::Internal::OpenPagesModel</name>
@@ -25446,6 +26533,10 @@ Proces Pdb po urÄité dobÄ› od úspěšného spuÅ¡tÄ›ní spadl.</translation>
<translation>Alt+H,Alt+D</translation>
</message>
<message>
+ <source>Meta+H,Meta+D</source>
+ <translation>Meta+H,Meta+D</translation>
+ </message>
+ <message>
<source>Log Current File</source>
<translation>Záznamy pro nynější soubor</translation>
</message>
@@ -25458,6 +26549,10 @@ Proces Pdb po urÄité dobÄ› od úspěšného spuÅ¡tÄ›ní spadl.</translation>
<translation>Alt+H,Alt+L</translation>
</message>
<message>
+ <source>Meta+H,Meta+L</source>
+ <translation>Meta+H,Meta+L</translation>
+ </message>
+ <message>
<source>Status Current File</source>
<translation>Stav nynějšího souboru</translation>
</message>
@@ -25470,6 +26565,10 @@ Proces Pdb po urÄité dobÄ› od úspěšného spuÅ¡tÄ›ní spadl.</translation>
<translation>Alt+H,Alt+S</translation>
</message>
<message>
+ <source>Meta+H,Meta+S</source>
+ <translation>Meta+H,Meta+S</translation>
+ </message>
+ <message>
<source>Add</source>
<translation>Přidat</translation>
</message>
@@ -25542,6 +26641,10 @@ Proces Pdb po urÄité dobÄ› od úspěšného spuÅ¡tÄ›ní spadl.</translation>
<translation>Alt+H,Alt+C</translation>
</message>
<message>
+ <source>Meta+H,Meta+C</source>
+ <translation>Meta+H,Meta+C</translation>
+ </message>
+ <message>
<source>Create Repository...</source>
<translation>Vytvořit skladiště...</translation>
</message>
@@ -25587,7 +26690,7 @@ Proces Pdb po urÄité dobÄ› od úspěšného spuÅ¡tÄ›ní spadl.</translation>
</message>
<message>
<source>Unable to generate a temporary file for the commit editor.</source>
- <translation>NepodaÅ™ilo se vytvoÅ™it doÄasný soubor pro editor pro zápis.</translation>
+ <translation type="obsolete">NepodaÅ™ilo se vytvoÅ™it doÄasný soubor pro editor pro zápis.</translation>
</message>
<message>
<source>Unable to create an editor for the commit.</source>
@@ -25790,6 +26893,58 @@ Proces Pdb po urÄité dobÄ› od úspěšného spuÅ¡tÄ›ní spadl.</translation>
<translation type="obsolete">Jiný projekt</translation>
</message>
<message>
+ <source>Creates an application descriptor file.</source>
+ <translation>Vytvoří soubor s popisem programu.</translation>
+ </message>
+ <message>
+ <source>Application descriptor</source>
+ <translation>Popis programu</translation>
+ </message>
+ <message>
+ <source>BlackBerry</source>
+ <translation>BlackBerry</translation>
+ </message>
+ <message>
+ <source>Creates a Qt Gui application for BlackBerry.</source>
+ <translation>Vytvoří program s uživatelským rozhraním v Qt pro BlackBerry.</translation>
+ </message>
+ <message>
+ <source>BlackBerry Qt Gui Application</source>
+ <translation>Program s uživatelským rozhraním v Qt pro BlackBerry</translation>
+ </message>
+ <message>
+ <source>Creates an Qt5 application descriptor file.</source>
+ <translation>Vytvoří soubor s popisem programu v Qt5.</translation>
+ </message>
+ <message>
+ <source>Qt5 Application descriptor</source>
+ <translation>Popis programu v Qt5</translation>
+ </message>
+ <message>
+ <source>Creates an experimental Qt5 Gui application for BlackBerry 10. You need an own Qt5 build for BlackBerry 10 since Qt5 is not provided in the current BlackBerry 10 NDK and is not included in DevAlpha devices.</source>
+ <translation>Vytvoří pokusný program s rozhraním v Qt5 pro BlackBerry 10. Potřebujete vlastní sestavení Qt5 pro BlackBerry 10, protože Qt5 není v nynějším BlackBerry 10 NDK poskytováno a není zahrnuto v zařízeních DevAlpha.</translation>
+ </message>
+ <message>
+ <source>BlackBerry Qt5 Gui Application</source>
+ <translation>Program s uživatelským rozhraním v Qt5 pro BlackBerry</translation>
+ </message>
+ <message>
+ <source>Creates an experimental Qt Quick 2 application for BlackBerry 10. You need an own Qt5 build for BlackBerry 10 since Qt5 is not provided in the current BlackBerry 10 NDK and is not included in DevAlpha devices.</source>
+ <translation>Vytvoří pokusný program Qt Quick 2 pro BlackBerry 10. Potřebujete vlastní sestavení Qt5 pro BlackBerry 10, protože Qt5 není v nynějším BlackBerry 10 NDK poskytováno a není zahrnuto v zařízeních DevAlpha.</translation>
+ </message>
+ <message>
+ <source>BlackBerry Qt Quick 2 Application</source>
+ <translation>Program Qt Quick 2 pro BlackBerry</translation>
+ </message>
+ <message>
+ <source>Creates a Qt Quick application for BlackBerry.</source>
+ <translation>Vytvoří program Qt Quick pro BlackBerry.</translation>
+ </message>
+ <message>
+ <source>BlackBerry Qt Quick Application</source>
+ <translation>Program Qt Quick pro BlackBerry</translation>
+ </message>
+ <message>
<source>Creates a plain C project using qmake, not using the Qt library.</source>
<translation>Vytvoří na qmake založený projekt v Äistém C bez použití knihovny Qt.</translation>
</message>
@@ -25925,14 +27080,22 @@ Proces Pdb po urÄité dobÄ› od úspěšného spuÅ¡tÄ›ní spadl.</translation>
<name>EditorSettingsPanelFactory</name>
<message>
<source>Editor Settings</source>
- <translation>Nastavení editoru</translation>
+ <translation type="obsolete">Nastavení editoru</translation>
+ </message>
+ <message>
+ <source>Editor</source>
+ <translation>Editor</translation>
</message>
</context>
<context>
<name>EditorSettingsPanel</name>
<message>
<source>Editor Settings</source>
- <translation>Nastavení editoru</translation>
+ <translation type="obsolete">Nastavení editoru</translation>
+ </message>
+ <message>
+ <source>Editor</source>
+ <translation>Editor</translation>
</message>
</context>
<context>
@@ -26077,13 +27240,17 @@ Proces Pdb po urÄité dobÄ› od úspěšného spuÅ¡tÄ›ní spadl.</translation>
</message>
<message>
<source>Target</source>
- <translation>Cíl</translation>
+ <translation type="obsolete">Cíl</translation>
</message>
<message>
<source>Build</source>
<translation>Sestavování</translation>
</message>
<message>
+ <source>Kit</source>
+ <translation>Sada</translation>
+ </message>
+ <message>
<source>Deploy</source>
<translation>Nasazení</translation>
</message>
@@ -26128,8 +27295,12 @@ Proces Pdb po urÄité dobÄ› od úspěšného spuÅ¡tÄ›ní spadl.</translation>
<translation>Projekt: &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;</translation>
</message>
<message>
+ <source>Kit: &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;</source>
+ <translation>Sada: &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;</translation>
+ </message>
+ <message>
<source>Target: &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;</source>
- <translation>Cíl: &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;</translation>
+ <translation type="obsolete">Cíl: &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;</translation>
</message>
<message>
<source>Build: &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;</source>
@@ -26211,11 +27382,11 @@ Proces Pdb po urÄité dobÄ› od úspěšného spuÅ¡tÄ›ní spadl.</translation>
</message>
<message>
<source>Import Project</source>
- <translation>Zavést projekt</translation>
+ <translation>Importovat projekt</translation>
</message>
<message>
<source>Devices</source>
- <translation type="obsolete">Zařízení</translation>
+ <translation>Zařízení</translation>
</message>
<message>
<source>Qt Application</source>
@@ -26226,7 +27397,11 @@ Proces Pdb po urÄité dobÄ› od úspěšného spuÅ¡tÄ›ní spadl.</translation>
<name>TargetSettingsPanelFactory</name>
<message>
<source>Targets</source>
- <translation>Cíle</translation>
+ <translation type="obsolete">Cíle</translation>
+ </message>
+ <message>
+ <source>Build &amp; Run</source>
+ <translation>Sestavení a spuštění</translation>
</message>
</context>
<context>
@@ -26269,27 +27444,53 @@ Proces Pdb po urÄité dobÄ› od úspěšného spuÅ¡tÄ›ní spadl.</translation>
<name>ProjectExplorer::Internal::TargetSettingsPanelWidget</name>
<message>
<source>No target defined.</source>
- <translation>Není stanoven cíl.</translation>
+ <translation type="obsolete">Není stanoven cíl.</translation>
</message>
<message>
<source>Cancel Build &amp;&amp; Remove Target</source>
- <translation>Zrušit sestavování a odstranit cíl</translation>
+ <translation type="obsolete">Zrušit sestavování a odstranit cíl</translation>
+ </message>
+ <message>
+ <source>No kit defined in this project.</source>
+ <translation>V tomto projektu není stanovena sada.</translation>
+ </message>
+ <message>
+ <source>Cancel Build &amp;&amp; Remove Kit</source>
+ <translation>Zrušit sestavování a odstranit sadu</translation>
</message>
<message>
<source>Do Not Remove</source>
<translation>Neodstraňovat</translation>
</message>
<message>
+ <source>Remove Kit %1?</source>
+ <translation>Odstranit sadu %1?</translation>
+ </message>
+ <message>
+ <source>The kit &lt;b&gt;%1&lt;/b&gt; is currently being built.</source>
+ <translation>Sada &lt;b&gt;%1&lt;/b&gt; se nyní sestavuje.</translation>
+ </message>
+ <message>
+ <source>Do you want to cancel the build process and remove the Kit anyway?</source>
+ <translation>Chcete zrušit proces sestavování a v každém případě odstranit sadu?</translation>
+ </message>
+ <message>
+ <source>Do you really want to remove the
+&quot;%1&quot; kit?</source>
+ <translation>Opravdu chcete odstranit sadu
+&quot;%1&quot;?</translation>
+ </message>
+ <message>
<source>Remove Target %1?</source>
- <translation>Má se odstranit cíl %1?</translation>
+ <translation type="obsolete">Má se odstranit cíl %1?</translation>
</message>
<message>
<source>The target &lt;b&gt;%1&lt;/b&gt; is currently being built.</source>
- <translation>Cíl &lt;b&gt;%1&lt;/b&gt; se nyní sestavuje.</translation>
+ <translation type="obsolete">Cíl &lt;b&gt;%1&lt;/b&gt; se nyní sestavuje.</translation>
</message>
<message>
<source>Do you want to cancel the build process and remove the Target anyway?</source>
- <translation>Chcete zrušit proces sestavování a v každém případě odstranit cíl?</translation>
+ <translation type="obsolete">Chcete zrušit proces sestavování a v každém případě odstranit cíl?</translation>
</message>
<message>
<source>Qt Creator</source>
@@ -26298,7 +27499,7 @@ Proces Pdb po urÄité dobÄ› od úspěšného spuÅ¡tÄ›ní spadl.</translation>
<message>
<source>Do you really want to remove the
&quot;%1&quot; target?</source>
- <translation>Opravdu chcete odstranit cíl
+ <translation type="obsolete">Opravdu chcete odstranit cíl
&quot;%1&quot;?</translation>
</message>
</context>
@@ -26343,12 +27544,12 @@ Proces Pdb po urÄité dobÄ› od úspěšného spuÅ¡tÄ›ní spadl.</translation>
<message>
<source>Symbian Emulator</source>
<comment>Qt4 Symbian Emulator target display name</comment>
- <translation>Emulátor Symbianu</translation>
+ <translation type="obsolete">Emulátor Symbianu</translation>
</message>
<message>
<source>Symbian Device</source>
<comment>Qt4 Symbian Device target display name</comment>
- <translation>Zařízení Symbian</translation>
+ <translation type="obsolete">Zařízení Symbian</translation>
</message>
<message>
<source>Maemo Emulator</source>
@@ -27366,7 +28567,7 @@ Ověřte, prosím, nastavení svého projektu.</translation>
</message>
<message>
<source>Follow Symbol Under Cursor</source>
- <translation>Následovat symbol pod ukazovátkem</translation>
+ <translation type="obsolete">Následovat symbol pod ukazovátkem</translation>
</message>
<message>
<source>Find Usages</source>
@@ -27451,6 +28652,14 @@ Ověřte, prosím, nastavení svého projektu.</translation>
<source>File &apos;%1&apos; does not exist or is not readable.</source>
<translation>Soubor &apos;%1&apos; neexistuje nebo není Äitelný.</translation>
</message>
+ <message>
+ <source>Device type is not desktop.</source>
+ <translation>Typ zařízení není desktop.</translation>
+ </message>
+ <message>
+ <source>No Qt version set in kit.</source>
+ <translation>V sadě není nastavena verze Qt.</translation>
+ </message>
</context>
<context>
<name>QmlProjectManager::Internal::QmlProjectApplicationWizardDialog</name>
@@ -27596,7 +28805,16 @@ Projekty Qt Quick UI není potřeba je sestavovat a lze je spouštět přímo v
<name>QmlProjectManager::QmlProjectRunConfiguration</name>
<message>
<source>No qmlviewer or qmlobserver found.</source>
- <translation>Žádný qmlviewer nebo qmlobserver se nepodařilo najít.</translation>
+ <translation type="obsolete">Žádný qmlviewer nebo qmlobserver se nepodařilo najít.</translation>
+ </message>
+ <message>
+ <source>No qmlviewer or qmlscene found.</source>
+ <translation>Žádný qmlviewer nebo qmlscene se nepodařilo najít.</translation>
+ </message>
+ <message>
+ <source>QML Scene</source>
+ <comment>QMLRunConfiguration display name.</comment>
+ <translation>Scéna QML</translation>
</message>
<message>
<source>QML Viewer</source>
@@ -27635,7 +28853,15 @@ Projekty Qt Quick UI není potřeba je sestavovat a lze je spouštět přímo v
<name>QmlProjectManager::Internal::QmlProjectRunConfigurationFactory</name>
<message>
<source>Run QML Script</source>
- <translation>Spustit skript QML</translation>
+ <translation type="obsolete">Spustit skript QML</translation>
+ </message>
+ <message>
+ <source>QML Viewer</source>
+ <translation>ProhlížeÄ QML</translation>
+ </message>
+ <message>
+ <source>QML Scene</source>
+ <translation>Scéna QML</translation>
</message>
</context>
<context>
@@ -28047,27 +29273,27 @@ Spustil jste Qemu?</translation>
<message>
<source>Create SIS Package</source>
<extracomment>default create SIS package build step display name</extracomment>
- <translation>VytvoÅ™it balíÄek SIS</translation>
+ <translation type="obsolete">VytvoÅ™it balíÄek SIS</translation>
</message>
<message>
<source>Could not find make command &apos;%1&apos; in the build environment</source>
- <translation>Příkaz make: %1 se v prostředí pro sestavování nepodařilo nalézt</translation>
+ <translation type="obsolete">Příkaz make: %1 se v prostředí pro sestavování nepodařilo nalézt</translation>
</message>
<message>
<source>Package Modified</source>
- <translation>BalíÄek zmÄ›nÄ›n</translation>
+ <translation type="obsolete">BalíÄek zmÄ›nÄ›n</translation>
</message>
<message>
<source>&lt;p&gt;Qt modified your package &lt;b&gt;%1&lt;/b&gt;.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Qt zmÄ›nilo váš balíÄek &lt;b&gt;%1&lt;/b&gt;.&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt;Qt zmÄ›nilo váš balíÄek &lt;b&gt;%1&lt;/b&gt;.&lt;/p&gt;</translation>
</message>
<message>
<source>Packages Modified</source>
- <translation>BalíÄky zmÄ›nÄ›ny</translation>
+ <translation type="obsolete">BalíÄky zmÄ›nÄ›ny</translation>
</message>
<message>
<source>&lt;p&gt;Qt modified some of your packages.&lt;/p&gt;</source>
- <translation>&lt;p&gt;Qt zmÄ›nilo nÄ›který z balíÄků.&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt;Qt zmÄ›nilo nÄ›který z balíÄků.&lt;/p&gt;</translation>
</message>
<message>
<source>%1&lt;p&gt;&lt;em&gt;These changes were not part of your build system&lt;/em&gt; but are required to make sure the &lt;em&gt;self-signed&lt;/em&gt; package can be installed successfully on a device.&lt;/p&gt;&lt;p&gt;Check the Build Issues pane for more details on the modifications made.&lt;/p&gt;&lt;p&gt;Please see the &lt;a href=&quot;%2&quot;&gt;documentation&lt;/a&gt; for other signing options which remove the need for this patching.&lt;/p&gt;</source>
@@ -28075,91 +29301,91 @@ Spustil jste Qemu?</translation>
</message>
<message>
<source>%1&lt;p&gt;&lt;em&gt;These changes were not part of your build system&lt;/em&gt; but are required to make sure the &lt;em&gt;self-signed&lt;/em&gt; package can be installed successfully on a device.&lt;/p&gt;&lt;p&gt;Check the Issues pane for more details on the modifications made.&lt;/p&gt;&lt;p&gt;Please see the &lt;a href=&quot;%2&quot;&gt;documentation&lt;/a&gt; for other signing options which remove the need for this patching.&lt;/p&gt;</source>
- <translation>%1&lt;p&gt;&lt;em&gt; Tyto zmÄ›ny nebyly systémem pro sestavování provedeny, &lt;/em&gt;, jsou ale pÅ™edpokladem pro úspěšnou instalaci &lt;em&gt;sebou podepsaným&lt;/em&gt; balíÄkem na zařízení.&lt;/p&gt;&lt;p&gt;Panel Potíže se sestavováním obsahuje podrobné informace vztahující se ke zmÄ›nám.&lt;/p&gt;&lt;p&gt; &lt;a href=&quot;%2&quot;&gt;Dokumentace&lt;/a&gt; obsahuje další možnosti podepsání, které tento krok dÄ›lají zbyteÄným.&lt;/p&gt;</translation>
+ <translation type="obsolete">%1&lt;p&gt;&lt;em&gt; Tyto zmÄ›ny nebyly systémem pro sestavování provedeny, &lt;/em&gt;, jsou ale pÅ™edpokladem pro úspěšnou instalaci &lt;em&gt;sebou podepsaným&lt;/em&gt; balíÄkem na zařízení.&lt;/p&gt;&lt;p&gt;Panel Potíže se sestavováním obsahuje podrobné informace vztahující se ke zmÄ›nám.&lt;/p&gt;&lt;p&gt; &lt;a href=&quot;%2&quot;&gt;Dokumentace&lt;/a&gt; obsahuje další možnosti podepsání, které tento krok dÄ›lají zbyteÄným.&lt;/p&gt;</translation>
</message>
<message>
<source>Ignore patching for this packaging step.</source>
- <translation>PÅ™i tomto kroku balíÄkování neprovádÄ›t žádnou záplatu.</translation>
+ <translation type="obsolete">PÅ™i tomto kroku balíÄkování neprovádÄ›t žádnou záplatu.</translation>
</message>
<message>
<source>Could not start process &quot;%1&quot; in %2</source>
- <translation>Proces &quot;%1&quot; se v %2 nepodařilo spustit</translation>
+ <translation type="obsolete">Proces &quot;%1&quot; se v %2 nepodařilo spustit</translation>
</message>
<message>
<source>Starting: &quot;%1&quot; %2 in %3
</source>
- <translation>Spouští se: &quot;%1&quot; %2 v %3
+ <translation type="obsolete">Spouští se: &quot;%1&quot; %2 v %3
</translation>
</message>
<message>
<source>No certificate file specified. Please specify one in the project settings.</source>
- <translation>Nebyl zadán žádný soubor s certifikátem. Zadejte, prosím, jeden v nastavení projektu.</translation>
+ <translation type="obsolete">Nebyl zadán žádný soubor s certifikátem. Zadejte, prosím, jeden v nastavení projektu.</translation>
</message>
<message>
<source>Certificate file &quot;%1&quot; does not exist. Please specify an existing certificate file in the project settings.</source>
- <translation>Zadaný soubor s certifikátem &quot;%1&quot; neexistuje. Zadejte, prosím, existující soubor s certifikátem v nastavení projektu.</translation>
+ <translation type="obsolete">Zadaný soubor s certifikátem &quot;%1&quot; neexistuje. Zadejte, prosím, existující soubor s certifikátem v nastavení projektu.</translation>
</message>
<message>
<source>No key file specified. Please specify one in the project settings.</source>
- <translation>Nebyl zadán žádný soubor s klíÄem. Zadejte, prosím, jeden v nastavení projektu.</translation>
+ <translation type="obsolete">Nebyl zadán žádný soubor s klíÄem. Zadejte, prosím, jeden v nastavení projektu.</translation>
</message>
<message>
<source>Key file &quot;%1&quot; does not exist. Please specify an existing key file in the project settings.</source>
- <translation>Zadaný soubor s klíÄem &quot;%1&quot; neexistuje. Zadejte, prosím, existující soubor s klíÄem v nastavení projektu.</translation>
+ <translation type="obsolete">Zadaný soubor s klíÄem &quot;%1&quot; neexistuje. Zadejte, prosím, existující soubor s klíÄem v nastavení projektu.</translation>
</message>
<message>
<source>The package created will not install on a device as some of the defined capabilities are not supported by the certificate: %1</source>
- <translation>VytvoÅ™ený balíÄek nelze na mobilním zařízení nainstalovat, neboÅ¥ nÄ›která ze zadaných oprávnÄ›ní nejsou certifikátem podporována: %1</translation>
+ <translation type="obsolete">VytvoÅ™ený balíÄek nelze na mobilním zařízení nainstalovat, neboÅ¥ nÄ›která ze zadaných oprávnÄ›ní nejsou certifikátem podporována: %1</translation>
</message>
<message>
<source>The process &quot;%1&quot; exited normally.</source>
- <translation>Proces &quot;%1&quot; byl ukonÄen obvyklým způsobem.</translation>
+ <translation type="obsolete">Proces &quot;%1&quot; byl ukonÄen obvyklým způsobem.</translation>
</message>
<message>
<source>The process &quot;%1&quot; exited with code %2.</source>
- <translation>Proces &quot;%1&quot; byl ukonÄen. Vrácená hodnota %2.</translation>
+ <translation type="obsolete">Proces &quot;%1&quot; byl ukonÄen. Vrácená hodnota %2.</translation>
</message>
<message>
<source>The process &quot;%1&quot; crashed.</source>
- <translation>Proces %1 spadl.</translation>
+ <translation type="obsolete">Proces %1 spadl.</translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::Internal::S60CreatePackageStepFactory</name>
<message>
<source>Create SIS Package</source>
- <translation>VytvoÅ™it balíÄek SIS</translation>
+ <translation type="obsolete">VytvoÅ™it balíÄek SIS</translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::Internal::S60CreatePackageStepConfigWidget</name>
<message>
<source>Reset Passphrases</source>
- <translation>Nastavit hesla znovu</translation>
+ <translation type="obsolete">Nastavit hesla znovu</translation>
</message>
<message>
<source>Do you want to reset all passphrases saved for keys used?</source>
- <translation>Chcete nastavit vÅ¡echna hesla uložená pro použité klíÄe znovu?</translation>
+ <translation type="obsolete">Chcete nastavit vÅ¡echna hesla uložená pro použité klíÄe znovu?</translation>
</message>
<message>
<source>signed with the certificate &quot;%1&quot; using the key &quot;%2&quot;</source>
- <translation>Podepsáno s certifikátem &quot;%1&quot; za použití klíÄe &quot;%2&quot;</translation>
+ <translation type="obsolete">Podepsáno s certifikátem &quot;%1&quot; za použití klíÄe &quot;%2&quot;</translation>
</message>
<message>
<source>signed with a certificate and a key that need to be specified</source>
- <translation>Podepsáno s certifikátem a klíÄem, které je jeÅ¡tÄ› potÅ™eba zadat</translation>
+ <translation type="obsolete">Podepsáno s certifikátem a klíÄem, které je jeÅ¡tÄ› potÅ™eba zadat</translation>
</message>
<message>
<source>not signed</source>
- <translation>Nepodepsáno</translation>
+ <translation type="obsolete">Nepodepsáno</translation>
</message>
<message>
<source>self-signed</source>
- <translation>Osobně podepsáno</translation>
+ <translation type="obsolete">Osobně podepsáno</translation>
</message>
<message>
<source>&lt;b&gt;Create SIS Package:&lt;/b&gt; %1, using Smart Installer</source>
- <translation>&lt;b&gt;VytvoÅ™it balíÄek SIS:&lt;/b&gt; %1 za použití Smart Installer</translation>
+ <translation type="obsolete">&lt;b&gt;VytvoÅ™it balíÄek SIS:&lt;/b&gt; %1 za použití Smart Installer</translation>
</message>
<message>
<source>signed with certificate %1 and key file %2</source>
@@ -28167,7 +29393,7 @@ Spustil jste Qemu?</translation>
</message>
<message>
<source>&lt;b&gt;Create SIS Package:&lt;/b&gt; %1</source>
- <translation>&lt;b&gt;VytvoÅ™it balíÄek SIS:&lt;/b&gt; %1</translation>
+ <translation type="obsolete">&lt;b&gt;VytvoÅ™it balíÄek SIS:&lt;/b&gt; %1</translation>
</message>
</context>
<context>
@@ -28219,7 +29445,7 @@ Spustil jste Qemu?</translation>
<name>ProjectExplorer::Internal::S60ProjectChecker</name>
<message>
<source>The Symbian SDK and the project sources must reside on the same drive.</source>
- <translation>Symbian SDK a projekt se musí nacházet na stejné diskové jednotce.</translation>
+ <translation type="obsolete">Symbian SDK a projekt se musí nacházet na stejné diskové jednotce.</translation>
</message>
<message>
<source>The Symbian SDK was not found for Qt version %1.</source>
@@ -28235,11 +29461,11 @@ Spustil jste Qemu?</translation>
</message>
<message>
<source>The Symbian tool chain does not handle spaces in the project path &apos;%1&apos;.</source>
- <translation>Mezery v zadání projektové cesty &apos;%1&apos; mohou vést u sady nástrojů pro Symbian k potížím.</translation>
+ <translation type="obsolete">Mezery v zadání projektové cesty &apos;%1&apos; mohou vést u sady nástrojů pro Symbian k potížím.</translation>
</message>
<message>
<source>The Symbian tool chain does not handle special characters in the project name &apos;%1&apos; well.</source>
- <translation>Zvláštní znaky v zadání projektové cesty &apos;%1&apos; mohou vést u sady nástrojů pro Symbian k potížím.</translation>
+ <translation type="obsolete">Zvláštní znaky v zadání projektové cesty &apos;%1&apos; mohou vést u sady nástrojů pro Symbian k potížím.</translation>
</message>
</context>
<context>
@@ -28271,6 +29497,30 @@ Spustil jste Qemu?</translation>
<source>Evaluating</source>
<translation>Vyhodnocení</translation>
</message>
+ <message>
+ <source>No Qt version set in kit.</source>
+ <translation>V sadě není nastavena verze Qt.</translation>
+ </message>
+ <message>
+ <source>The .pro file &apos;%1&apos; does not exist.</source>
+ <translation>Soubor .pro &apos;%1&apos; neexistuje.</translation>
+ </message>
+ <message>
+ <source>The .pro file &apos;%1&apos; is not part of the project.</source>
+ <translation>Soubor .pro &apos;%1&apos; není souÄástí projektu.</translation>
+ </message>
+ <message>
+ <source>The .pro file &apos;%1&apos; could not be parsed.</source>
+ <translation>Soubor .pro &apos;%1&apos; se nepodařilo zpracovat.</translation>
+ </message>
+ <message>
+ <source>Debug</source>
+ <translation>Ladění</translation>
+ </message>
+ <message>
+ <source>Release</source>
+ <translation>Vydání</translation>
+ </message>
</context>
<context>
<name>Qt4ProjectManager</name>
@@ -28296,7 +29546,7 @@ Spustil jste Qemu?</translation>
</message>
<message>
<source>Unconfigured Project</source>
- <translation>Nenastavený projekt</translation>
+ <translation type="obsolete">Nenastavený projekt</translation>
</message>
</context>
<context>
@@ -28374,6 +29624,14 @@ Spustil jste Qemu?</translation>
<translation>Symbolický odkaz k předloze mkspec je poškozen.</translation>
</message>
<message>
+ <source>ABI detection failed: Make sure to use a matching compiler when building.</source>
+ <translation>ABI se nepodaÅ™ilo urÄit. UjistÄ›te se, že pro sestavování používáte odpovídající pÅ™ekladaÄ.</translation>
+ </message>
+ <message>
+ <source>Non-installed -prefix build - for internal development only.</source>
+ <translation>Non-installed -prefix build - pouze pro vnitřní vývoj.</translation>
+ </message>
+ <message>
<source>The Qt Version has no toolchain.</source>
<translation type="obsolete">Tato verze Qt nemá přiřazen žádný řetěz nástrojů.</translation>
</message>
@@ -28388,7 +29646,11 @@ Spustil jste Qemu?</translation>
</message>
<message>
<source>ABI detection failed: Make sure to use a matching tool chain when building.</source>
- <translation>ABI se nepodaÅ™ilo urÄit. UjistÄ›te se, že pro sestavování používáte odpovídající sadu nástrojů.</translation>
+ <translation type="obsolete">ABI se nepodaÅ™ilo urÄit. UjistÄ›te se, že pro sestavování používáte odpovídající sadu nástrojů.</translation>
+ </message>
+ <message>
+ <source>No qmlscene installed.</source>
+ <translation>Nenainstalován žádný qmlscene.</translation>
</message>
<message>
<source>No qmlviewer installed.</source>
@@ -28406,16 +29668,16 @@ Spustil jste Qemu?</translation>
</message>
<message>
<source>The &quot;Open C/C++ plugin&quot; is not installed in the Symbian SDK or the Symbian SDK path is misconfigured</source>
- <translation>Přídavný modul &quot;Open C/C++&quot; není nainstalován v Symbian SDK, nebo je cesta pro Symbian SDK špatně nastavená</translation>
+ <translation type="obsolete">Přídavný modul &quot;Open C/C++&quot; není nainstalován v Symbian SDK, nebo je cesta pro Symbian SDK špatně nastavená</translation>
</message>
<message>
<source>SBS was not found.</source>
- <translation>SBS se nepodařilo nalézt.</translation>
+ <translation type="obsolete">SBS se nepodařilo nalézt.</translation>
</message>
<message>
<source>Symbian</source>
<comment>Qt Version is meant for Symbian</comment>
- <translation>Symbian</translation>
+ <translation type="obsolete">Symbian</translation>
</message>
<message>
<source>Qt for WinCE</source>
@@ -28459,7 +29721,7 @@ Spustil jste Qemu?</translation>
<message>
<source>MeeGo</source>
<comment>Qt Version is meant for MeeGo</comment>
- <translation>Meego</translation>
+ <translation type="obsolete">Meego</translation>
</message>
<message>
<source>Meego</source>
@@ -28494,8 +29756,12 @@ Vybere pro napodobovatele a přenosné cíle vhodné verze Qt, jsou-li dostupné
<translation>Moduly</translation>
</message>
<message>
+ <source>Kits</source>
+ <translation>Sady</translation>
+ </message>
+ <message>
<source>Targets</source>
- <translation>Cíle</translation>
+ <translation type="obsolete">Cíle</translation>
</message>
<message>
<source>Qt Versions</source>
@@ -28869,20 +30135,24 @@ Vybere pro napodobovatele a přenosné cíle vhodné verze Qt, jsou-li dostupné
<translation type="obsolete">Cíl</translation>
</message>
<message>
+ <source>Kit:</source>
+ <translation>Sada:</translation>
+ </message>
+ <message>
<source>Executable:</source>
- <translation type="obsolete">Spustitelný soubor:</translation>
+ <translation>Spustitelný soubor:</translation>
</message>
<message>
<source>Arguments:</source>
- <translation type="obsolete">Argumenty:</translation>
+ <translation>Argumenty:</translation>
</message>
<message>
<source>Working directory:</source>
- <translation type="obsolete">Pracovní adresář:</translation>
+ <translation>Pracovní adresář:</translation>
</message>
<message>
<source>Start Remote Analysis</source>
- <translation type="obsolete">Spustit vzdálený rozbor</translation>
+ <translation>Spustit vzdálený rozbor</translation>
</message>
</context>
<context>
@@ -29616,15 +30886,15 @@ if (a &amp;&amp;
<name>Debugger::Internal::BreakCondition</name>
<message>
<source>&amp;Condition:</source>
- <translation>&amp;Podmínka:</translation>
+ <translation type="obsolete">&amp;Podmínka:</translation>
</message>
<message>
<source>&amp;Ignore count:</source>
- <translation>Zastavit &amp;teprve po:</translation>
+ <translation type="obsolete">Zastavit &amp;teprve po:</translation>
</message>
<message>
<source>&amp;Thread specification:</source>
- <translation>&amp;Vlákno:</translation>
+ <translation type="obsolete">&amp;Vlákno:</translation>
</message>
</context>
<context>
@@ -29674,6 +30944,10 @@ if (a &amp;&amp;
<translation>Jen &amp;stopovací bod:</translation>
</message>
<message>
+ <source>&amp;One shot only:</source>
+ <translation>Jen &amp;jeden zásah:</translation>
+ </message>
+ <message>
<source>Pat&amp;h:</source>
<translation>&amp;Cesta:</translation>
</message>
@@ -29683,7 +30957,7 @@ if (a &amp;&amp;
</message>
<message>
<source>&amp;Command:</source>
- <translation>&amp;Příkaz:</translation>
+ <translation type="obsolete">&amp;Příkaz:</translation>
</message>
<message>
<source>Use Engine Default</source>
@@ -29698,6 +30972,16 @@ if (a &amp;&amp;
<translation>Použít název souboru</translation>
</message>
<message>
+ <source>Debugger commands to be executed when the breakpoint is hit.
+This feature is only available for GDB.</source>
+ <translation>Příkazy pro ladiÄ k provedení pÅ™i dosažení bodu pÅ™eruÅ¡ení.
+Tato funkce je dostupná jen pro GDB.</translation>
+ </message>
+ <message>
+ <source>&amp;Commands:</source>
+ <translation>&amp;Příkazy:</translation>
+ </message>
+ <message>
<source>&amp;Message:</source>
<translation>&amp;Zpráva:</translation>
</message>
@@ -29759,11 +31043,11 @@ if (a &amp;&amp;
</message>
<message>
<source>Break on QML signal emit</source>
- <translation type="obsolete">Přerušit při vyslání signálu QML</translation>
+ <translation>Přerušit při vyslání signálu QML</translation>
</message>
<message>
<source>Break on QML signal handler</source>
- <translation>Přerušit při manipulátoru signálu QML</translation>
+ <translation type="obsolete">Přerušit při manipulátoru signálu QML</translation>
</message>
<message>
<source>Break when JavaScript exception is thrown</source>
@@ -29780,7 +31064,7 @@ pro body pÅ™eruÅ¡ení typu soubor/řádek nebo funkce může znaÄnÄ› zrychlit s
<message>
<source>Debugger command to be executed when the breakpoint is hit.
GDB allows for specifying a sequence of commands separated by the delimiter &apos;\n&apos;.</source>
- <translation>Příkaz pro ladiÄ k provedení pÅ™i spuÅ¡tÄ›ní bodu pÅ™eruÅ¡ení.
+ <translation type="obsolete">Příkaz pro ladiÄ k provedení pÅ™i spuÅ¡tÄ›ní bodu pÅ™eruÅ¡ení.
PÅ™i GDB může být zadána posloupnost příkazů oddÄ›lená oddÄ›lovaÄem &apos;\n&apos;.</translation>
</message>
<message>
@@ -29903,7 +31187,7 @@ PÅ™i GDB může být zadána posloupnost příkazů oddÄ›lená oddÄ›lovaÄem &ap
<name>Help::Internal::RemoteFilterOptions</name>
<message>
<source>Filter configuration</source>
- <translation>Nastavení filtru</translation>
+ <translation type="obsolete">Nastavení filtru</translation>
</message>
<message>
<source>Prefix:</source>
@@ -29927,7 +31211,7 @@ PÅ™i GDB může být zadána posloupnost příkazů oddÄ›lená oddÄ›lovaÄem &ap
</message>
<message>
<source>Edit Filter Configuration</source>
- <translation type="obsolete">Upravit nastavení filtru</translation>
+ <translation>Upravit nastavení filtru</translation>
</message>
</context>
<context>
@@ -30139,19 +31423,19 @@ PÅ™i GDB může být zadána posloupnost příkazů oddÄ›lená oddÄ›lovaÄem &ap
<name>StatusDisplay</name>
<message>
<source>No QML events recorded</source>
- <translation>Nebyly nahrány žádné události QML</translation>
+ <translation type="obsolete">Nebyly nahrány žádné události QML</translation>
</message>
<message>
<source>Profiling application</source>
- <translation>Profiluje se aplikace</translation>
+ <translation type="obsolete">Profiluje se aplikace</translation>
</message>
<message>
<source>Loading data</source>
- <translation>Nahrávají se data</translation>
+ <translation type="obsolete">Nahrávají se data</translation>
</message>
<message>
<source>Application stopped before loading all data</source>
- <translation>Program zastaven před nahráním všech dat</translation>
+ <translation type="obsolete">Program zastaven před nahráním všech dat</translation>
</message>
</context>
<context>
@@ -30236,7 +31520,7 @@ PÅ™i GDB může být zadána posloupnost příkazů oddÄ›lená oddÄ›lovaÄem &ap
</message>
<message>
<source>Symbian</source>
- <translation>Symbian</translation>
+ <translation type="obsolete">Symbian</translation>
</message>
<message>
<source>Linkage:</source>
@@ -30283,27 +31567,27 @@ PÅ™i GDB může být zadána posloupnost příkazů oddÄ›lená oddÄ›lovaÄem &ap
<name>Qt4ProjectManager::Internal::RvctToolChainConfigWidget</name>
<message>
<source>Form</source>
- <translation>Formulář</translation>
+ <translation type="obsolete">Formulář</translation>
</message>
<message>
<source>ARM &amp;version:</source>
- <translation>&amp;Verze ARM:</translation>
+ <translation type="obsolete">&amp;Verze ARM:</translation>
</message>
<message>
<source>Version 5</source>
- <translation>Verze 5</translation>
+ <translation type="obsolete">Verze 5</translation>
</message>
<message>
<source>Version 6</source>
- <translation>Verze 6</translation>
+ <translation type="obsolete">Verze 6</translation>
</message>
<message>
<source>&amp;Compiler path:</source>
- <translation>Cesta k &amp;pÅ™ekladaÄi:</translation>
+ <translation type="obsolete">Cesta k &amp;pÅ™ekladaÄi:</translation>
</message>
<message>
<source>Environment Variables</source>
- <translation>Proměnné prostředí</translation>
+ <translation type="obsolete">Proměnné prostředí</translation>
</message>
</context>
<context>
@@ -30396,19 +31680,19 @@ Předchozí verze Qt mají omezení v sestavování vhodných souborů SIS.</tra
<name>Qt4ProjectManager::Internal::WinscwToolChainConfigWidget</name>
<message>
<source>Dialog</source>
- <translation>Dialog</translation>
+ <translation type="obsolete">Dialog</translation>
</message>
<message>
<source>Compiler path:</source>
- <translation>Cesta k pÅ™ekladaÄi:</translation>
+ <translation type="obsolete">Cesta k pÅ™ekladaÄi:</translation>
</message>
<message>
<source>System include path:</source>
- <translation>Systémová include cesta:</translation>
+ <translation type="obsolete">Systémová include cesta:</translation>
</message>
<message>
<source>System library path:</source>
- <translation>Cesta k systémové knihovně:</translation>
+ <translation type="obsolete">Cesta k systémové knihovně:</translation>
</message>
</context>
<context>
@@ -30656,7 +31940,11 @@ Vyžaduje Qt 4.7.4 nebo novÄ›jší, a soubor souÄástek nainstalovaný pro tuto
</message>
<message>
<source>Tool chain:</source>
- <translation>Sada nástrojů:</translation>
+ <translation type="obsolete">Sada nástrojů:</translation>
+ </message>
+ <message>
+ <source>Compiler:</source>
+ <translation>PÅ™ekladaÄ:</translation>
</message>
</context>
<context>
@@ -31736,7 +33024,7 @@ PÅ™i plné simulaci mezipamÄ›ti budou zapnuta další poÄítadla událostí:
</message>
<message>
<source>Visualisation: Minimum event cost:</source>
- <translation>Vizualizace: Nejmenší událostní náklady:</translation>
+ <translation type="obsolete">Vizualizace: Nejmenší událostní náklady:</translation>
</message>
<message>
<source>Valgrind Command</source>
@@ -31750,6 +33038,10 @@ PÅ™i plné simulaci mezipamÄ›ti budou zapnuta další poÄítadla událostí:
<source>Valgrind Suppression File (*.supp);;All Files (*)</source>
<translation>Soubor vylouÄení Valgrind (*.supp);;VÅ¡echny soubory (*)</translation>
</message>
+ <message>
+ <source>Visualization: Minimum event cost:</source>
+ <translation>Vizualizace: Nejmenší událostní náklady:</translation>
+ </message>
</context>
<context>
<name>VcsBase::VcsConfigurationPage</name>
@@ -31767,7 +33059,7 @@ PÅ™i plné simulaci mezipamÄ›ti budou zapnuta další poÄítadla událostí:
</message>
<message>
<source>Configure...</source>
- <translation type="obsolete">Nastavení...</translation>
+ <translation>Nastavení...</translation>
</message>
</context>
<context>
@@ -32307,7 +33599,7 @@ PÅ™i plné simulaci mezipamÄ›ti budou zapnuta další poÄítadla událostí:
<name>Feedback</name>
<message>
<source>Feedback</source>
- <translation>Vaše reakce</translation>
+ <translation type="obsolete">Vaše reakce</translation>
</message>
<message>
<source>Help us make Qt Creator even better</source>
@@ -32407,7 +33699,7 @@ PÅ™i plné simulaci mezipamÄ›ti budou zapnuta další poÄítadla událostí:
</message>
<message>
<source>package import requires a version number</source>
- <translation>Zavedení balíÄku vyžaduje Äíslo verze</translation>
+ <translation>Importování balíÄku vyžaduje Äíslo verze</translation>
</message>
<message>
<source>file or directory not found</source>
@@ -32595,79 +33887,79 @@ PÅ™i plné simulaci mezipamÄ›ti budou zapnuta další poÄítadla událostí:
<name>Utils::Internal::SftpChannelPrivate</name>
<message>
<source>Server could not start sftp subsystem.</source>
- <translation>Server se nepodařilo spustit subsystém sftp.</translation>
+ <translation type="obsolete">Server se nepodařilo spustit subsystém sftp.</translation>
</message>
<message>
<source>Unexpected packet of type %1.</source>
- <translation>NeoÄekávaný paket typu %1.</translation>
+ <translation type="obsolete">NeoÄekávaný paket typu %1.</translation>
</message>
<message>
<source>Protocol version mismatch: Expected %1, got %2</source>
- <translation>Verze protokolu neodpovídají: OÄekáváno %1, obdrženo %2</translation>
+ <translation type="obsolete">Verze protokolu neodpovídají: OÄekáváno %1, obdrženo %2</translation>
</message>
<message>
<source>Unknown error.</source>
- <translation>Neznámá chyba.</translation>
+ <translation type="obsolete">Neznámá chyba.</translation>
</message>
<message>
<source>Created remote directory &apos;%1&apos;.</source>
- <translation>Byl vytvořen vzdálený adresář &apos;%1&apos;.</translation>
+ <translation type="obsolete">Byl vytvořen vzdálený adresář &apos;%1&apos;.</translation>
</message>
<message>
<source>Remote directory &apos;%1&apos; already exists.</source>
- <translation>Vzdálený adresář &apos;%1&apos; již existuje.</translation>
+ <translation type="obsolete">Vzdálený adresář &apos;%1&apos; již existuje.</translation>
</message>
<message>
<source>Error creating directory &apos;%1&apos;: %2</source>
- <translation>Chyba při vytváření adresáře &apos;%1&apos;: %2</translation>
+ <translation type="obsolete">Chyba při vytváření adresáře &apos;%1&apos;: %2</translation>
</message>
<message>
<source>Could not open local file &apos;%1&apos;: %2</source>
- <translation>Místní soubor &apos;%1&apos; se nepodařilo otevřít: %2</translation>
+ <translation type="obsolete">Místní soubor &apos;%1&apos; se nepodařilo otevřít: %2</translation>
</message>
<message>
<source>Remote directory could not be opened for reading.</source>
- <translation>Vzdálený adresář se nepodaÅ™ilo otevřít pro Ätení.</translation>
+ <translation type="obsolete">Vzdálený adresář se nepodaÅ™ilo otevřít pro Ätení.</translation>
</message>
<message>
<source>Failed to list remote directory contents.</source>
- <translation>NepodaÅ™ilo se urÄit obsah vzdáleného adresáře.</translation>
+ <translation type="obsolete">NepodaÅ™ilo se urÄit obsah vzdáleného adresáře.</translation>
</message>
<message>
<source>Failed to close remote directory.</source>
- <translation>Vzdálený adresář se nepodařilo zavřít.</translation>
+ <translation type="obsolete">Vzdálený adresář se nepodařilo zavřít.</translation>
</message>
<message>
<source>Failed to open remote file for reading.</source>
- <translation>NepodaÅ™ilo se otevřít vzdálený soubor pro Ätení.</translation>
+ <translation type="obsolete">NepodaÅ™ilo se otevřít vzdálený soubor pro Ätení.</translation>
</message>
<message>
<source>Failed retrieve information on the remote file (&apos;stat&apos; failed).</source>
- <translation>Nepodařilo se získat žádné informace o vzdáleném souboru (&apos;stat&apos; se nezdařil).</translation>
+ <translation type="obsolete">Nepodařilo se získat žádné informace o vzdáleném souboru (&apos;stat&apos; se nezdařil).</translation>
</message>
<message>
<source>Failed to read remote file.</source>
- <translation>Vzdálený soubor se nepodaÅ™ilo pÅ™eÄíst.</translation>
+ <translation type="obsolete">Vzdálený soubor se nepodaÅ™ilo pÅ™eÄíst.</translation>
</message>
<message>
<source>Failed to close remote file.</source>
- <translation>Vzdálený soubor se nepodařilo zavřít.</translation>
+ <translation type="obsolete">Vzdálený soubor se nepodařilo zavřít.</translation>
</message>
<message>
<source>Failed to open remote file for writing.</source>
- <translation>Vzdálený soubor se nepodařilo otevřít pro zápis.</translation>
+ <translation type="obsolete">Vzdálený soubor se nepodařilo otevřít pro zápis.</translation>
</message>
<message>
<source>Failed to write remote file.</source>
- <translation>Vzdálený soubor se nepodařilo zapsat.</translation>
+ <translation type="obsolete">Vzdálený soubor se nepodařilo zapsat.</translation>
</message>
<message>
<source>Cannot append to remote file: Server does not support the file size attribute.</source>
- <translation>Ke vzdálenému souboru nelze připojit žádná data, neboť server nepodporuje vlastnost velikost souboru.</translation>
+ <translation type="obsolete">Ke vzdálenému souboru nelze připojit žádná data, neboť server nepodporuje vlastnost velikost souboru.</translation>
</message>
<message>
<source>Server could not start session: %1</source>
- <translation>Serveru se nepodařilo spustit sezení: %1</translation>
+ <translation type="obsolete">Serveru se nepodařilo spustit sezení: %1</translation>
</message>
<message>
<source>Server could not start session.</source>
@@ -32675,7 +33967,7 @@ PÅ™i plné simulaci mezipamÄ›ti budou zapnuta další poÄítadla událostí:
</message>
<message>
<source>Error reading local file: %1</source>
- <translation>Chyba pÅ™i Ätení místního souboru: %1</translation>
+ <translation type="obsolete">Chyba pÅ™i Ätení místního souboru: %1</translation>
</message>
</context>
<context>
@@ -32691,30 +33983,30 @@ Server: %2.</translation>
<name>Utils::Internal::SshChannelManager</name>
<message>
<source>Invalid channel id %1</source>
- <translation>Neplatný identifikátor kanálu %1</translation>
+ <translation type="obsolete">Neplatný identifikátor kanálu %1</translation>
</message>
</context>
<context>
<name>Utils::Internal::SshConnectionPrivate</name>
<message>
<source>SSH Protocol error: %1</source>
- <translation>Chyba v protokolu SSH: %1</translation>
+ <translation type="obsolete">Chyba v protokolu SSH: %1</translation>
</message>
<message>
<source>Botan library exception: %1</source>
- <translation>VýjimeÄná chyba v knihovnÄ› Botan: %1</translation>
+ <translation type="obsolete">VýjimeÄná chyba v knihovnÄ› Botan: %1</translation>
</message>
<message>
<source>Invalid protocol version: Expected &apos;2.0&apos;, got &apos;%1&apos;.</source>
- <translation>Neplatná verze protokolu: OÄekáváno &apos;2.0&apos;, obdrženo %1.</translation>
+ <translation type="obsolete">Neplatná verze protokolu: OÄekáváno &apos;2.0&apos;, obdrženo %1.</translation>
</message>
<message>
<source>Invalid server id &apos;%1&apos;.</source>
- <translation>Neplatný identifikátor serveru &apos;%1&apos;.</translation>
+ <translation type="obsolete">Neplatný identifikátor serveru &apos;%1&apos;.</translation>
</message>
<message>
<source>Unexpected packet of type %1.</source>
- <translation>NeoÄekávaný paket typu %1.</translation>
+ <translation type="obsolete">NeoÄekávaný paket typu %1.</translation>
</message>
<message>
<source>Private key error: %1</source>
@@ -32722,39 +34014,39 @@ Server: %2.</translation>
</message>
<message>
<source>Password expired.</source>
- <translation>Heslo vypršelo.</translation>
+ <translation type="obsolete">Heslo vypršelo.</translation>
</message>
<message>
<source>Server rejected password.</source>
- <translation>Server odmítl heslo.</translation>
+ <translation type="obsolete">Server odmítl heslo.</translation>
</message>
<message>
<source>Server rejected key.</source>
- <translation>Server odmítl klíÄ.</translation>
+ <translation type="obsolete">Server odmítl klíÄ.</translation>
</message>
<message>
<source>The server sent an unexpected SSH packet of type SSH_MSG_UNIMPLEMENTED.</source>
- <translation>Server poslal neoÄekávaný paket SSHtypu SSH_MSG_UNIMPLEMENTED.</translation>
+ <translation type="obsolete">Server poslal neoÄekávaný paket SSHtypu SSH_MSG_UNIMPLEMENTED.</translation>
</message>
<message>
<source>Server closed connection: %1</source>
- <translation>Server zavřel spojení %1</translation>
+ <translation type="obsolete">Server zavřel spojení %1</translation>
</message>
<message>
<source>Connection closed unexpectedly.</source>
- <translation>Spojení bylo náhle zavřeno.</translation>
+ <translation type="obsolete">Spojení bylo náhle zavřeno.</translation>
</message>
<message>
<source>Timeout waiting for reply from server.</source>
- <translation>PÅ™ekroÄení Äasového omezení pÅ™i Äekání na odpovÄ›Ä serveru.</translation>
+ <translation type="obsolete">PÅ™ekroÄení Äasového omezení pÅ™i Äekání na odpovÄ›Ä serveru.</translation>
</message>
<message>
<source>No private key file given.</source>
- <translation>Neudán žádný soubor se soukromým klíÄem.</translation>
+ <translation type="obsolete">Neudán žádný soubor se soukromým klíÄem.</translation>
</message>
<message>
<source>Private key file error: %1</source>
- <translation>Chyba v soukromém klíÄi: %1</translation>
+ <translation type="obsolete">Chyba v soukromém klíÄi: %1</translation>
</message>
</context>
<context>
@@ -32822,6 +34114,10 @@ Server: %2.</translation>
<translation>Nástrojový pruh pro rozbor</translation>
</message>
<message>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;You are trying to run the tool &quot;%1&quot; on an application in %2 mode. The tool is designed to be used in %3 mode.&lt;/p&gt;&lt;p&gt;Debug and Release mode run-time characteristics differ significantly, analytical findings for one mode may or may not be relevant for the other.&lt;/p&gt;&lt;p&gt;Do you want to continue and run the tool in %2 mode?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Pokoušíte se spustit nástroj &quot;%1&quot; na aplikaci v režimu %2. Nástroj je navržen pro použití v režimu %3.&lt;/p&gt;&lt;p&gt;BÄ›hové charakteristiky ladicího a vydavatelského režimu se podstatnÄ› liší, analytical Nálezy pro jeden režim mohou, ale také nemusí být pro druhý relevantní.&lt;/p&gt;&lt;p&gt;Chcete pokraÄovat a spustit nástroj v režimu %2?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;center&gt;&lt;i&gt;%1&lt;/i&gt; is still running. You have to quit the Analyzer before being able to run another instance.&lt;center/&gt;&lt;center&gt;Force it to quit?&lt;/center&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="obsolete">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;center&gt;&lt;i&gt;%1&lt;/i&gt; jeÅ¡tÄ› běží. Nejprve musíte rozbor ukonÄit, pÅ™edtím než budete moci spustit další bÄ›h.&lt;center/&gt;&lt;center&gt;Vynutit ukonÄení?&lt;/center&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
@@ -32851,7 +34147,7 @@ Server: %2.</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;You are trying to run the tool &quot;%1&quot; on an application in %2 mode. The tool is designed to be used in %3 mode.&lt;/p&gt;&lt;p&gt;Do you want to continue and run it in %2 mode?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Pokoušíte se spustit nástroj &apos;%1&apos; s nÄ›jakým programem v režimu %2. Nástroj je navržen pro používání v režimu %3.&lt;/p&gt;&lt;p&gt;Chcete pÅ™esto pokraÄovat a nechat jej spustit v režimu %2?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation type="obsolete">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Pokoušíte se spustit nástroj &apos;%1&apos; s nÄ›jakým programem v režimu %2. Nástroj je navržen pro používání v režimu %3.&lt;/p&gt;&lt;p&gt;Chcete pÅ™esto pokraÄovat a nechat jej spustit v režimu %2?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>&amp;Do not ask again</source>
@@ -32929,7 +34225,11 @@ Server: %2.</translation>
<name>Analyzer::IAnalyzerTool</name>
<message>
<source> (Remote)</source>
- <translation> (vzdálený)</translation>
+ <translation type="obsolete"> (vzdálený)</translation>
+ </message>
+ <message>
+ <source> (External)</source>
+ <translation> (vnější)</translation>
</message>
</context>
<context>
@@ -32988,6 +34288,10 @@ Server: %2.</translation>
<translation>ALT+Z,Alt+D</translation>
</message>
<message>
+ <source>Meta+Z,Meta+D</source>
+ <translation>Meta+Z,Meta+D</translation>
+ </message>
+ <message>
<source>Log Current File</source>
<translation>Záznamy pro nynější soubor</translation>
</message>
@@ -33000,6 +34304,10 @@ Server: %2.</translation>
<translation>ALT+Z,Alt+L</translation>
</message>
<message>
+ <source>Meta+Z,Meta+L</source>
+ <translation>Meta+Z,Meta+L</translation>
+ </message>
+ <message>
<source>Status Current File</source>
<translation>Stav nynějšího souboru</translation>
</message>
@@ -33012,6 +34320,10 @@ Server: %2.</translation>
<translation>ALT+Z,Alt+S</translation>
</message>
<message>
+ <source>Meta+Z,Meta+S</source>
+ <translation>Meta+Z,Meta+S</translation>
+ </message>
+ <message>
<source>Add</source>
<translation>Přidat</translation>
</message>
@@ -33072,6 +34384,10 @@ Server: %2.</translation>
<translation>ALT+Z,Alt+C</translation>
</message>
<message>
+ <source>Meta+Z,Meta+C</source>
+ <translation>Meta+Z,Meta+C</translation>
+ </message>
+ <message>
<source>Create Repository...</source>
<translation>Vytvořit skladiště...</translation>
</message>
@@ -33101,7 +34417,7 @@ Server: %2.</translation>
</message>
<message>
<source>Unable to generate a temporary file for the commit editor.</source>
- <translation>NepodaÅ™ilo se vytvoÅ™it žádný doÄasný soubor pro editor pro zápis.</translation>
+ <translation type="obsolete">NepodaÅ™ilo se vytvoÅ™it žádný doÄasný soubor pro editor pro zápis.</translation>
</message>
<message>
<source>Unable to create an editor for the commit.</source>
@@ -33340,11 +34656,11 @@ Chcete je nechat přepsat?</translation>
<name>Core::Internal::MimeTypeMagicDialog</name>
<message>
<source>Magic Header</source>
- <translation>Kouzelné záhlaví</translation>
+ <translation type="obsolete">Kouzelné záhlaví</translation>
</message>
<message>
<source>Add Magic Header</source>
- <translation type="obsolete">Přidat kouzelné záhlaví</translation>
+ <translation>Přidat kouzelné záhlaví</translation>
</message>
<message>
<source>Error</source>
@@ -33506,6 +34822,46 @@ Note: This might remove the local file.</source>
<translation>Chcete soubor odstranit ze systému správy verzí (%1)?
Poznámka: Podle okolností by mohlo dojít ke smazání místního souboru.</translation>
</message>
+ <message>
+ <source>Add to Version Control</source>
+ <translation>Přidat do správy verzí</translation>
+ </message>
+ <message>
+ <source>Add the file
+%1
+to version control (%2)?</source>
+ <translation>Má se soubor
+%1
+přidat do správy verzí (%2)?</translation>
+ </message>
+ <message>
+ <source>Add the files
+%1
+to version control (%2)?</source>
+ <translation>Mají se soubory
+%1
+přidat do správy verzí (%2)?</translation>
+ </message>
+ <message>
+ <source>Adding to Version Control Failed</source>
+ <translation>Přidání souborů do správy verzí se nezdařilo</translation>
+ </message>
+ <message>
+ <source>Could not add the file
+%1
+to version control (%2)
+</source>
+ <translation>Soubor
+%1
+se nepodařilo přidat do
+správy verzí (%2)</translation>
+ </message>
+ <message>
+ <source>Could not add the following files to version control (%1)
+%2</source>
+ <translation>Následující soubory se nepodařilo přidat do správy verzí (%1)
+%2</translation>
+ </message>
</context>
<context>
<name>CodePaster::PasteBinDotComProtocol</name>
@@ -33566,6 +34922,10 @@ Poznámka: Podle okolností by mohlo dojít ke smazání místního souboru.</tr
<name>CppEditor::Internal::InsertQtPropertyMembers</name>
<message>
<source>Generate missing Q_PROPERTY members...</source>
+ <translation type="obsolete">Doplnit chybějící prvky Q_PROPERTY...</translation>
+ </message>
+ <message>
+ <source>Generate Missing Q_PROPERTY Members...</source>
<translation>Doplnit chybějící prvky Q_PROPERTY...</translation>
</message>
</context>
@@ -33740,28 +35100,40 @@ Příznaky: %3</translation>
<source>Edit Breakpoint Properties</source>
<translation>Upravit vlastnosti bodu přerušení</translation>
</message>
+ <message>
+ <source>&amp;Condition:</source>
+ <translation>&amp;Podmínka:</translation>
+ </message>
+ <message>
+ <source>&amp;Ignore count:</source>
+ <translation>Zastavit &amp;teprve po:</translation>
+ </message>
+ <message>
+ <source>&amp;Thread specification:</source>
+ <translation>&amp;Vlákno:</translation>
+ </message>
</context>
<context>
<name>Debugger::Internal::CdbEngine</name>
<message>
<source>There is no CDB binary available for binaries in format &apos;%1&apos;</source>
- <translation>Pro spustitelný soubor pro &apos;%1&apos; není dostupný žádný spustitelný soubor CDB</translation>
+ <translation type="obsolete">Pro spustitelný soubor pro &apos;%1&apos; není dostupný žádný spustitelný soubor CDB</translation>
</message>
<message>
<source>The CDB debug engine required for %1 is currently disabled.</source>
- <translation>%1 požaduje ladiÄ CDB, který je v souÄasnosti vypnut.</translation>
+ <translation type="obsolete">%1 požaduje ladiÄ CDB, který je v souÄasnosti vypnut.</translation>
</message>
<message>
<source>The CDB engine does not support start mode %1.</source>
- <translation>LadiÄ CDB nepodporuje režim spuÅ¡tÄ›ní %1.</translation>
+ <translation type="obsolete">LadiÄ CDB nepodporuje režim spuÅ¡tÄ›ní %1.</translation>
</message>
<message>
<source>The CDB debug engine does not support the %1 ABI.</source>
- <translation>Ladicí stroj CDB nepodporuje ABI %1.</translation>
+ <translation type="obsolete">Ladicí stroj CDB nepodporuje ABI %1.</translation>
</message>
<message>
<source>The CDB debug engine cannot debug gdb core files.</source>
- <translation>Ladicí stroj CDB nedokáže ladit žádné soubory gdb core.</translation>
+ <translation type="obsolete">Ladicí stroj CDB nedokáže ladit žádné soubory gdb core.</translation>
</message>
<message>
<source>The console process &apos;%1&apos; could not be started.</source>
@@ -33873,6 +35245,10 @@ Příznaky: %3</translation>
<name>Debugger::Internal::StartRemoteCdbDialog</name>
<message>
<source>&lt;html&gt;&lt;body&gt;&lt;p&gt;The remote CDB needs to load the matching Qt Creator CDB extension (&lt;code&gt;%1&lt;/code&gt; or &lt;code&gt;%2&lt;/code&gt;, respectively).&lt;/p&gt;&lt;p&gt;Copy it onto the remote machine and set the environment variable &lt;code&gt;%3&lt;/code&gt; to point to its folder.&lt;/p&gt;&lt;p&gt;Launch the remote CDB as &lt;code&gt;%4 &amp;lt;executable&amp;gt;&lt;/code&gt; to use TCP/IP as communication protocol.&lt;/p&gt;&lt;p&gt;Enter the connection parameters as:&lt;/p&gt;&lt;pre&gt;%5&lt;/pre&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="obsolete">&lt;html&gt;&lt;body&gt;&lt;p&gt;Vzdálený CDB musí nahrát odpovídající rozÅ¡iÅ™ující knihovnu CDB pro Qt Creator (&lt;code&gt;%1&lt;/code&gt; nebo &lt;code&gt;%2&lt;/code&gt;).&lt;/p&gt;&lt;p&gt;Zkopírujte ji na vzdálený poÄítaÄ a promÄ›nnou prostÅ™edí nastavte na &lt;code&gt;%3&lt;/code&gt;, aby ukazovala na její složku.&lt;/p&gt;&lt;p&gt;SpusÅ¥te vzdálený CDB jako &lt;code&gt;%4 &amp;lt;spustitelný soubor&amp;gt;&lt;/code&gt; pro použití TCP/IP jako komunikaÄního protokolu.&lt;/p&gt;&lt;p&gt;Zadejte parametry spojení, jak následuje:&lt;/p&gt;&lt;pre&gt;%5&lt;/pre&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;html&gt;&lt;body&gt;&lt;p&gt;The remote CDB needs to load the matching Qt Creator CDB extension (&lt;code&gt;%1&lt;/code&gt; or &lt;code&gt;%2&lt;/code&gt;, respectively).&lt;/p&gt;&lt;p&gt;Copy it onto the remote machine and set the environment variable &lt;code&gt;%3&lt;/code&gt; to point to its folder.&lt;/p&gt;&lt;p&gt;Launch the remote CDB as &lt;code&gt;%4 &amp;lt;executable&amp;gt;&lt;/code&gt; to use TCP/IP as communication protocol.&lt;/p&gt;&lt;p&gt;Enter the connection parameters as:&lt;/p&gt;&lt;pre&gt;%5&lt;/pre&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;body&gt;&lt;p&gt;Vzdálený CDB musí nahrát odpovídající rozÅ¡iÅ™ující knihovnu CDB pro Qt Creator (&lt;code&gt;%1&lt;/code&gt; nebo &lt;code&gt;%2&lt;/code&gt;).&lt;/p&gt;&lt;p&gt;Zkopírujte ji na vzdálený poÄítaÄ a promÄ›nnou prostÅ™edí nastavte na &lt;code&gt;%3&lt;/code&gt;, aby ukazovala na její složku.&lt;/p&gt;&lt;p&gt;SpusÅ¥te vzdálený CDB jako &lt;code&gt;%4 &amp;lt;spustitelný soubor&amp;gt;&lt;/code&gt; pro použití TCP/IP jako komunikaÄního protokolu.&lt;/p&gt;&lt;p&gt;Zadejte parametry spojení, jak následuje:&lt;/p&gt;&lt;pre&gt;%5&lt;/pre&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
@@ -34060,7 +35436,7 @@ Příznaky: %3</translation>
</message>
<message>
<source>The application requires the debugger engine &apos;%1&apos;, which is disabled.</source>
- <translation>Tato aplikace vyžaduje stroj ladicího programu &apos;%1&apos;, který je nyní vypnut.</translation>
+ <translation type="obsolete">Tato aplikace vyžaduje stroj ladicího programu &apos;%1&apos;, který je nyní vypnut.</translation>
</message>
<message>
<source>Some breakpoints cannot be handled by the debugger languages currently active, and will be ignored.</source>
@@ -34068,31 +35444,35 @@ Příznaky: %3</translation>
</message>
<message>
<source>The debugger engine &apos;%1&apos; is disabled.</source>
- <translation>Stroj ladiÄe &apos;%1&apos; je vypnut.</translation>
+ <translation type="obsolete">Stroj ladiÄe &apos;%1&apos; je vypnut.</translation>
</message>
<message>
<source>The debugger engine &apos;%1&apos; required for debugging binaries of the type &apos;%2&apos; is not configured correctly.</source>
- <translation>K ladÄ›ní spustitelných souborů typu &apos;%2&apos; požadovaný stroj ladiÄe &apos;%1&apos; není nastaven správnÄ›.</translation>
+ <translation type="obsolete">K ladÄ›ní spustitelných souborů typu &apos;%2&apos; požadovaný stroj ladiÄe &apos;%1&apos; není nastaven správnÄ›.</translation>
</message>
<message>
<source>None of the debugger engines &apos;%1&apos; capable of debugging binaries of the type &apos;%2&apos; is configured correctly.</source>
- <translation>Žádný z k ladÄ›ní spustitelných souborů typu &apos;%2&apos; schopných strojů ladiÄe &apos;%1&apos; není nastaven správnÄ›.</translation>
+ <translation type="obsolete">Žádný z k ladÄ›ní spustitelných souborů typu &apos;%2&apos; schopných strojů ladiÄe &apos;%1&apos; není nastaven správnÄ›.</translation>
</message>
<message>
<source>The preferred debugger engine for debugging binaries of type &apos;%1&apos; is not available.
The debugger engine &apos;%2&apos; will be used as a fallback.
Details: %3</source>
- <translation>K ladÄ›ní spustitelných souborů typu &apos;%1&apos; upÅ™ednostňovaný stroj ladiÄe není dostupný.
+ <translation type="obsolete">K ladÄ›ní spustitelných souborů typu &apos;%1&apos; upÅ™ednostňovaný stroj ladiÄe není dostupný.
Místo toho se bude používat stroj ladiÄe &apos;%2&apos;.
Podrobnosti: %3</translation>
</message>
<message>
<source>Warning</source>
- <translation>Varování</translation>
+ <translation type="obsolete">Varování</translation>
</message>
<message>
<source>Install &amp;Debug Information</source>
- <translation type="obsolete">Instalace informací o &amp;ladění</translation>
+ <translation>Instalace informací o &amp;ladění</translation>
+ </message>
+ <message>
+ <source>Tries to install missing debug information.</source>
+ <translation>Toto se pokusí o instalaci chybějících informací o ladění.</translation>
</message>
<message>
<source>This tries to install missing debug information.</source>
@@ -34177,19 +35557,19 @@ Podrobnosti: %3</translation>
</message>
<message>
<source>Debugger attached to %1</source>
- <translation>LadiÄ pÅ™ipojen k %1</translation>
+ <translation type="obsolete">LadiÄ pÅ™ipojen k %1</translation>
</message>
<message>
<source>gdbserver is now listening at %1</source>
- <translation>gdbserver nyní naslouchá na %1</translation>
+ <translation type="obsolete">gdbserver nyní naslouchá na %1</translation>
</message>
<message>
<source>Cannot find local executable for remote process &quot;%1&quot;.</source>
- <translation>Nelze najít místní spustitelný soubor pro vzdálený proces &quot;%1&quot;.</translation>
+ <translation type="obsolete">Nelze najít místní spustitelný soubor pro vzdálený proces &quot;%1&quot;.</translation>
</message>
<message>
<source>Cannot find ABI for remote process &quot;%1&quot;.</source>
- <translation>Nelze najít ABI pro vzdálený proces &quot;%1&quot;.</translation>
+ <translation type="obsolete">Nelze najít ABI pro vzdálený proces &quot;%1&quot;.</translation>
</message>
<message>
<source>Remove Breakpoint %1</source>
@@ -34241,23 +35621,23 @@ Podrobnosti: %3</translation>
</message>
<message>
<source>Open Qt Options</source>
- <translation>Otevřít nastavení pro knihovnu Qt</translation>
+ <translation type="obsolete">Otevřít nastavení pro knihovnu Qt</translation>
</message>
<message>
<source>Turn off Helper Usage</source>
- <translation>Vypnout pomocnou knihovnu pro výstup dat</translation>
+ <translation type="obsolete">Vypnout pomocnou knihovnu pro výstup dat</translation>
</message>
<message>
<source>Continue Anyway</source>
- <translation>PÅ™esto pokraÄovat</translation>
+ <translation type="obsolete">PÅ™esto pokraÄovat</translation>
</message>
<message>
<source>Debugging Helper Missing</source>
- <translation>Pomocný ladicí program nebyl nalezen</translation>
+ <translation type="obsolete">Pomocný ladicí program nebyl nalezen</translation>
</message>
<message>
<source>The debugger could not load the debugging helper library.</source>
- <translation>Ladicí program nemohl nahrát pomocnou ladicí knihovnu.</translation>
+ <translation type="obsolete">Ladicí program nemohl nahrát pomocnou ladicí knihovnu.</translation>
</message>
<message>
<source>The debugging helper is used to nicely format the values of some Qt and Standard Library data types. It must be compiled for each used Qt version separately. On the Qt4 options page, select a Qt installation and click Rebuild.</source>
@@ -34289,7 +35669,7 @@ Podrobnosti: %3</translation>
</message>
<message>
<source>The debugging helper is used to nicely format the values of some Qt and Standard Library data types. It must be compiled for each used Qt version separately. In the Qt Creator Build and Run preferences page, select a Qt version, expand the Details section and click Build All.</source>
- <translation>Pomocný ladicí program slouží k výstupu hodnot některých datových typů z Qt a standardních knihoven. Musí být sestaven pro každou používanou verzi Qt. Na stránce nastavení &apos;Sestavení a spuštění&apos; vyberte verzi Qt, rozbalte Podrobnosti a klepněte na &apos;Sestavit vše&apos;.</translation>
+ <translation type="obsolete">Pomocný ladicí program slouží k výstupu hodnot některých datových typů z Qt a standardních knihoven. Musí být sestaven pro každou používanou verzi Qt. Na stránce nastavení &apos;Sestavení a spuštění&apos; vyberte verzi Qt, rozbalte Podrobnosti a klepněte na &apos;Sestavit vše&apos;.</translation>
</message>
<message>
<source>Starting debugger &quot;%1&quot; for ABI &quot;%2&quot;...</source>
@@ -34301,7 +35681,7 @@ Podrobnosti: %3</translation>
</message>
<message>
<source>Exit Debugger</source>
- <translation>UkonÄit ladicí program</translation>
+ <translation type="obsolete">UkonÄit ladicí program</translation>
</message>
<message>
<source>Interrupt</source>
@@ -34353,7 +35733,7 @@ Podrobnosti: %3</translation>
</message>
<message>
<source>Add to Watch Window</source>
- <translation>Přidat ke sledovaným výrazům</translation>
+ <translation type="obsolete">Přidat ke sledovaným výrazům</translation>
</message>
<message>
<source>Reverse Direction</source>
@@ -34385,11 +35765,11 @@ Podrobnosti: %3</translation>
</message>
<message>
<source>Start and Debug External Application with External Engine...</source>
- <translation>Spustit vnější uživatelský program a provádět u něj ladění s vnějším strojem...</translation>
+ <translation type="obsolete">Spustit vnější uživatelský program a provádět u něj ladění s vnějším strojem...</translation>
</message>
<message>
<source>Attach to Running Local Application...</source>
- <translation>Připojit se k běžícímu místnímu uživatelskému programu...</translation>
+ <translation type="obsolete">Připojit se k běžícímu místnímu uživatelskému programu...</translation>
</message>
<message>
<source>Load Core File...</source>
@@ -34405,7 +35785,7 @@ Podrobnosti: %3</translation>
</message>
<message>
<source>Start and Debug Remote Application...</source>
- <translation>Spustit vzdálený program a provádět u něj ladění...</translation>
+ <translation type="obsolete">Spustit vzdálený program a provádět u něj ladění...</translation>
</message>
<message>
<source>Attach to Remote Debug Server...</source>
@@ -34417,7 +35797,7 @@ Podrobnosti: %3</translation>
</message>
<message>
<source>Attach to Running Remote Process...</source>
- <translation>Ladit vzdálený běžící program...</translation>
+ <translation type="obsolete">Ladit vzdálený běžící program...</translation>
</message>
<message>
<source>Attach to QML Port...</source>
@@ -34441,7 +35821,7 @@ Podrobnosti: %3</translation>
</message>
<message>
<source>Attach to Remote Process</source>
- <translation>Připojit k vzdálenému procesu</translation>
+ <translation type="obsolete">Připojit k vzdálenému procesu</translation>
</message>
<message>
<source>Interrupt Debugger</source>
@@ -34452,10 +35832,104 @@ Podrobnosti: %3</translation>
<translation>Zastavit ladicí program</translation>
</message>
<message>
+ <source>Process Already Under Debugger Control</source>
+ <translation>Proces již pod řízením ladiÄe</translation>
+ </message>
+ <message>
+ <source>The process %1 is already under the control of a debugger.
+Qt Creator cannot attach to it.</source>
+ <translation>Proces %1 je již pod řízením ladiÄe.
+Qt Creator se k němu nemůže připojit.</translation>
+ </message>
+ <message>
+ <source>Ctrl+Y</source>
+ <translation>Ctrl+Y</translation>
+ </message>
+ <message>
+ <source>F5</source>
+ <translation>F5</translation>
+ </message>
+ <message>
+ <source>Add Expression Evaluator</source>
+ <translation>Přidat hodnotitele výrazu</translation>
+ </message>
+ <message>
+ <source>Select</source>
+ <translation>Vybrat</translation>
+ </message>
+ <message>
+ <source>Zoom</source>
+ <translation>Zvětšení</translation>
+ </message>
+ <message>
+ <source>Attach to Running Application...</source>
+ <translation>Připojit se k běžícímu uživatelskému programu...</translation>
+ </message>
+ <message>
+ <source>Attach to Running Application</source>
+ <translation>Připojit se k běžícímu uživatelskému programu</translation>
+ </message>
+ <message>
+ <source>Shift+Ctrl+Y</source>
+ <translation>Shift+Ctrl+Y</translation>
+ </message>
+ <message>
+ <source>Shift+F5</source>
+ <translation>Shift+F5</translation>
+ </message>
+ <message>
<source>Reset Debugger</source>
<translation>Nastavit znovu ladicí program</translation>
</message>
<message>
+ <source>Ctrl+Shift+O</source>
+ <translation>Ctrl+Shift+O</translation>
+ </message>
+ <message>
+ <source>F10</source>
+ <translation>F10</translation>
+ </message>
+ <message>
+ <source>Ctrl+Shift+I</source>
+ <translation>Ctrl+Shift+I</translation>
+ </message>
+ <message>
+ <source>F11</source>
+ <translation>F11</translation>
+ </message>
+ <message>
+ <source>Ctrl+Shift+T</source>
+ <translation>Ctrl+Shift+T</translation>
+ </message>
+ <message>
+ <source>Shift+F11</source>
+ <translation>Shift+F11</translation>
+ </message>
+ <message>
+ <source>Shift+F8</source>
+ <translation>Shift+F8</translation>
+ </message>
+ <message>
+ <source>Ctrl+F10</source>
+ <translation>Ctrl+F10</translation>
+ </message>
+ <message>
+ <source>Ctrl+F6</source>
+ <translation>Ctrl+F6</translation>
+ </message>
+ <message>
+ <source>F12</source>
+ <translation>F12</translation>
+ </message>
+ <message>
+ <source>F8</source>
+ <translation>F8</translation>
+ </message>
+ <message>
+ <source>F9</source>
+ <translation>F9</translation>
+ </message>
+ <message>
<source>Threads:</source>
<translation>Vlákna:</translation>
</message>
@@ -34527,15 +36001,15 @@ Podrobnosti: %3</translation>
<name>DebuggerRunControl</name>
<message>
<source>Debug</source>
- <translation>Ladění</translation>
+ <translation type="obsolete">Ladění</translation>
</message>
<message>
<source>Debugger</source>
- <translation>LadiÄ</translation>
+ <translation type="obsolete">LadiÄ</translation>
</message>
<message>
<source>Unable to create a debugger engine of the type &apos;%1&apos;</source>
- <translation>Nepodařilo se vytvořit žádný ladicí stroj typu &apos;%1&apos;</translation>
+ <translation type="obsolete">Nepodařilo se vytvořit žádný ladicí stroj typu &apos;%1&apos;</translation>
</message>
</context>
<context>
@@ -34605,11 +36079,11 @@ Podrobnosti: %3</translation>
<name>Debugger::Internal::DebuggerToolChainComboBox</name>
<message>
<source>%1 (%2)</source>
- <translation>%1 (%2)</translation>
+ <translation type="obsolete">%1 (%2)</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;ABI:&lt;/td&gt;&lt;td&gt;&lt;i&gt;%1&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Debugger:&lt;/td&gt;&lt;td&gt;%2&lt;/td&gt;&lt;/tr&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;ABI:&lt;/td&gt;&lt;td&gt;&lt;i&gt;%1&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LadiÄ:&lt;/td&gt;&lt;td&gt;%2&lt;/td&gt;&lt;/tr&gt;</translation>
+ <translation type="obsolete">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;ABI:&lt;/td&gt;&lt;td&gt;&lt;i&gt;%1&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LadiÄ:&lt;/td&gt;&lt;td&gt;%2&lt;/td&gt;&lt;/tr&gt;</translation>
</message>
</context>
<context>
@@ -34630,33 +36104,33 @@ Podrobnosti: %3</translation>
<name>Debugger::Internal::CodaGdbAdapter</name>
<message>
<source>Process started, PID: 0x%1, thread id: 0x%2, code segment: 0x%3, data segment: 0x%4.</source>
- <translation>Proces byl spuÅ¡tÄ›n, PID: 0x%1, Vlákno s ID: 0x%2, Část kódu: 0x%3, Datová Äást: 0x%4.</translation>
+ <translation type="obsolete">Proces byl spuÅ¡tÄ›n, PID: 0x%1, Vlákno s ID: 0x%2, Část kódu: 0x%3, Datová Äást: 0x%4.</translation>
</message>
<message>
<source>Connecting to CODA server adapter failed:
</source>
- <translation>Připojení k adaptéru CODA serveru se nezdařilo:
+ <translation type="obsolete">Připojení k adaptéru CODA serveru se nezdařilo:
</translation>
</message>
<message>
<source>Could not obtain device.</source>
- <translation>Nepodařilo se obdržet žádné zařízení.</translation>
+ <translation type="obsolete">Nepodařilo se obdržet žádné zařízení.</translation>
</message>
</context>
<context>
<name>Debugger::Internal::LocalPlainGdbAdapter</name>
<message>
<source>Cannot set up communication with child process: %1</source>
- <translation>Spojení s podřízeným procesem se nepodařilo zřídit: %1</translation>
+ <translation type="obsolete">Spojení s podřízeným procesem se nepodařilo zřídit: %1</translation>
</message>
<message>
<source>Warning</source>
- <translation>Varování</translation>
+ <translation type="obsolete">Varování</translation>
</message>
<message>
<source>This does not seem to be a &quot;Debug&quot; build.
Setting breakpoints by file name and line number may fail.</source>
- <translation>Zdá se, že toto není sestavení &quot;Debug&quot;.
+ <translation type="obsolete">Zdá se, že toto není sestavení &quot;Debug&quot;.
Nastavení bodů pÅ™eruÅ¡ení podle názvů souborů a Äísel řádků může selhat.</translation>
</message>
</context>
@@ -34775,42 +36249,42 @@ Nastavení bodů pÅ™eruÅ¡ení podle názvů souborů a Äísel řádků může s
<name>Debugger::QmlAdapter</name>
<message>
<source>Connecting to debug server on %1</source>
- <translation>Spojuje se s ladicím serverem %1</translation>
+ <translation type="obsolete">Spojuje se s ladicím serverem %1</translation>
</message>
<message>
<source>Connecting to debug server %1:%2</source>
- <translation>Spojuje se s ladicím serverem %1:%2</translation>
+ <translation type="obsolete">Spojuje se s ladicím serverem %1:%2</translation>
</message>
<message>
<source>Error: (%1) %2</source>
<comment>%1=error code, %2=error message</comment>
- <translation>Chyba: (%1) %2</translation>
+ <translation type="obsolete">Chyba: (%1) %2</translation>
</message>
<message>
<source>disconnected.
</source>
- <translation>odpojeno.
+ <translation type="obsolete">odpojeno.
</translation>
</message>
<message>
<source>resolving host...</source>
- <translation>Řeší se název hostitele...</translation>
+ <translation type="obsolete">Řeší se název hostitele...</translation>
</message>
<message>
<source>connecting to debug server...</source>
- <translation>Spojuje se s ladicím serverem...</translation>
+ <translation type="obsolete">Spojuje se s ladicím serverem...</translation>
</message>
<message>
<source>connected.
</source>
- <translation>spojeno.
+ <translation type="obsolete">spojeno.
</translation>
</message>
<message>
<source>closing...</source>
- <translation>Zavírá se spojení...</translation>
+ <translation type="obsolete">Zavírá se spojení...</translation>
</message>
<message>
<source>Status of &apos;%1&apos; Version: %2 changed to &apos;unavailable&apos;.</source>
@@ -34826,15 +36300,15 @@ Nastavení bodů pÅ™eruÅ¡ení podle názvů souborů a Äísel řádků může s
</message>
<message>
<source>Status of &apos;%1&apos; changed to &apos;unavailable&apos;.</source>
- <translation>Stav &apos;%1&apos; se změnil na &apos;nedostupný&apos;.</translation>
+ <translation type="obsolete">Stav &apos;%1&apos; se změnil na &apos;nedostupný&apos;.</translation>
</message>
<message>
<source>Status of &apos;%1&apos; changed to &apos;enabled&apos;.</source>
- <translation>Stav &apos;%1&apos; se změnil na &apos;povolený&apos;.</translation>
+ <translation type="obsolete">Stav &apos;%1&apos; se změnil na &apos;povolený&apos;.</translation>
</message>
<message>
<source>Status of &apos;%1&apos; changed to &apos;not connected&apos;.</source>
- <translation>Stav &apos;%1&apos; se změnil na &apos;nepřipojený&apos;.</translation>
+ <translation type="obsolete">Stav &apos;%1&apos; se změnil na &apos;nepřipojený&apos;.</translation>
</message>
<message>
<source>Debug service &apos;%1&apos; became unavailable.</source>
@@ -34879,6 +36353,10 @@ Nastavení bodů pÅ™eruÅ¡ení podle názvů souborů a Äísel řádků může s
<translation type="obsolete">Vytváří se spojení s ladiÄem QML...</translation>
</message>
<message>
+ <source>No application output received in time</source>
+ <translation>Žádný výstup programu nebyl pÅ™ijat vÄas</translation>
+ </message>
+ <message>
<source>Qt Creator</source>
<translation>Qt Creator</translation>
</message>
@@ -34907,6 +36385,10 @@ Má se to zkusit ještě jednou?</translation>
<translation>Zdroj JS pro %1</translation>
</message>
<message>
+ <source>Run to line %1 (%2) requested...</source>
+ <translation>Požadováno provedení až po řádek %1 (%2)...</translation>
+ </message>
+ <message>
<source>Context: </source>
<translation>Souvislosti:</translation>
</message>
@@ -34941,11 +36423,11 @@ Má se to zkusit ještě jednou?</translation>
</message>
<message>
<source>Run to line %1 (%2) requested...</source>
- <translation>Požadováno provedení až po řádek %1 (%2)...</translation>
+ <translation type="obsolete">Požadováno provedení až po řádek %1 (%2)...</translation>
</message>
<message>
<source>Stopped.</source>
- <translation>Zastaveno.</translation>
+ <translation type="obsolete">Zastaveno.</translation>
</message>
<message>
<source>&lt;p&gt;An uncaught exception occurred:&lt;/p&gt;&lt;p&gt;%1&lt;/p&gt;</source>
@@ -35012,10 +36494,18 @@ Má se to zkusit ještě jednou?</translation>
<name>Debugger::Internal::SourceFilesHandler</name>
<message>
<source>Internal name</source>
- <translation>Vnitřní název</translation>
+ <translation type="obsolete">Vnitřní název</translation>
</message>
<message>
<source>Full name</source>
+ <translation type="obsolete">Úplný název</translation>
+ </message>
+ <message>
+ <source>Internal Name</source>
+ <translation>Vnitřní název</translation>
+ </message>
+ <message>
+ <source>Full Name</source>
<translation>Úplný název</translation>
</message>
</context>
@@ -35023,27 +36513,27 @@ Má se to zkusit ještě jednou?</translation>
<name>StackHandler</name>
<message>
<source>Address:</source>
- <translation>Adresa:</translation>
+ <translation type="obsolete">Adresa:</translation>
</message>
<message>
<source>Function:</source>
- <translation>Funkce:</translation>
+ <translation type="obsolete">Funkce:</translation>
</message>
<message>
<source>File:</source>
- <translation>Soubor:</translation>
+ <translation type="obsolete">Soubor:</translation>
</message>
<message>
<source>Line:</source>
- <translation>Řádek:</translation>
+ <translation type="obsolete">Řádek:</translation>
</message>
<message>
<source>From:</source>
- <translation>Od:</translation>
+ <translation type="obsolete">Od:</translation>
</message>
<message>
<source>To:</source>
- <translation>Do:</translation>
+ <translation type="obsolete">Do:</translation>
</message>
<message>
<source>Note:</source>
@@ -35251,7 +36741,7 @@ když bude zavolán mimo git bash.</translation>
</message>
<message>
<source>Git Repository Browser Command</source>
- <translation type="obsolete">Příkaz pro prohlížeÄ skladiÅ¡tÄ› Git</translation>
+ <translation>Příkaz pro prohlížeÄ skladiÅ¡tÄ› Git</translation>
</message>
</context>
<context>
@@ -35343,6 +36833,14 @@ když bude zavolán mimo git bash.</translation>
<source>Cannot open image file %1.</source>
<translation>Nelze otevřít soubor s obrázkem %1.</translation>
</message>
+ <message>
+ <source>Play Animation</source>
+ <translation>Přehrát animaci</translation>
+ </message>
+ <message>
+ <source>Pause Animation</source>
+ <translation>Pozastavit animaci</translation>
+ </message>
</context>
<context>
<name>ImageViewer::Internal::ImageViewerActionHandler</name>
@@ -35371,6 +36869,10 @@ když bude zavolán mimo git bash.</translation>
<translation>Ctrl+0</translation>
</message>
<message>
+ <source>Meta+0</source>
+ <translation>Meta+0</translation>
+ </message>
+ <message>
<source>Fit To Screen</source>
<translation>Přizpůsobit obrazovce</translation>
</message>
@@ -35394,6 +36896,10 @@ když bude zavolán mimo git bash.</translation>
<source>Ctrl+]</source>
<translation>Ctrl+]</translation>
</message>
+ <message>
+ <source>Toggle Animation</source>
+ <translation>Přepnout animaci</translation>
+ </message>
</context>
<context>
<name>Macros::Internal::MacroLocatorFilter</name>
@@ -35467,6 +36973,10 @@ když bude zavolán mimo git bash.</translation>
<translation>Alt+R</translation>
</message>
<message>
+ <source>Meta+R</source>
+ <translation>Meta+R</translation>
+ </message>
+ <message>
<source>Save Last Macro</source>
<translation>Uložit poslední makro</translation>
</message>
@@ -35583,14 +37093,22 @@ když bude zavolán mimo git bash.</translation>
<name>CodeStyleSettingsPanelFactory</name>
<message>
<source>Code Style Settings</source>
- <translation>Nastavení stylu kódování</translation>
+ <translation type="obsolete">Nastavení stylu kódování</translation>
+ </message>
+ <message>
+ <source>Code Style</source>
+ <translation>Styl kódování</translation>
</message>
</context>
<context>
<name>CodeStyleSettingsPanel</name>
<message>
<source>Code Style Settings</source>
- <translation>Nastavení stylu kódování</translation>
+ <translation type="obsolete">Nastavení stylu kódování</translation>
+ </message>
+ <message>
+ <source>Code Style</source>
+ <translation>Styl kódování</translation>
</message>
</context>
<context>
@@ -35623,9 +37141,14 @@ když bude zavolán mimo git bash.</translation>
<translation>Nasazení</translation>
</message>
<message>
+ <source>Deploy locally</source>
+ <extracomment>Default DeployConfiguration display name</extracomment>
+ <translation>Nasadit místně</translation>
+ </message>
+ <message>
<source>No deployment</source>
<extracomment>Default DeployConfiguration display name</extracomment>
- <translation>Žádné nasazení</translation>
+ <translation type="obsolete">Žádné nasazení</translation>
</message>
</context>
<context>
@@ -35700,15 +37223,15 @@ když bude zavolán mimo git bash.</translation>
<message>
<source>&lt;html&gt;&lt;body&gt;&lt;p&gt;Specify the path to the &lt;a href=&quot;%1&quot;&gt;Windows Console Debugger executable&lt;/a&gt; (%2) here.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<extracomment>Label text for path configuration. %2 is &quot;x-bit version&quot;.</extracomment>
- <translation>&lt;html&gt;&lt;body&gt;&lt;p&gt;Zadejte cestu ke spustitelnému souboru &lt;a href=&quot;%1&quot;&gt;Windows Console Debugger&lt;/a&gt; (%2).&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation type="obsolete">&lt;html&gt;&lt;body&gt;&lt;p&gt;Zadejte cestu ke spustitelnému souboru &lt;a href=&quot;%1&quot;&gt;Windows Console Debugger&lt;/a&gt; (%2).&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>64-bit version</source>
- <translation>64 bitová verze</translation>
+ <translation type="obsolete">64 bitová verze</translation>
</message>
<message>
<source>32-bit version</source>
- <translation>32 bitová verze</translation>
+ <translation type="obsolete">32 bitová verze</translation>
</message>
</context>
<context>
@@ -35719,11 +37242,11 @@ když bude zavolán mimo git bash.</translation>
</message>
<message>
<source>No CDB debugger detected (neither 32bit nor 64bit).</source>
- <translation>NepodaÅ™ilo se najít žádný ladiÄ CDB (ani 32bitový ani 64bitový).</translation>
+ <translation type="obsolete">NepodaÅ™ilo se najít žádný ladiÄ CDB (ani 32bitový ani 64bitový).</translation>
</message>
<message>
<source>No 64bit CDB debugger detected.</source>
- <translation>NepodaÅ™ilo se najít žádný 64bitový ladiÄ CDB.</translation>
+ <translation type="obsolete">NepodaÅ™ilo se najít žádný 64bitový ladiÄ CDB.</translation>
</message>
<message>
<source>The CDB debugger could not be found in %1</source>
@@ -35817,23 +37340,27 @@ když bude zavolán mimo git bash.</translation>
<name>ProjectExplorer::ToolChainConfigWidget</name>
<message>
<source>&amp;Debugger:</source>
- <translation>&amp;LadiÄ:</translation>
+ <translation type="obsolete">&amp;LadiÄ:</translation>
</message>
<message>
<source>Autodetect</source>
- <translation>Zjistit</translation>
+ <translation type="obsolete">Zjistit</translation>
</message>
<message>
<source>mkspec:</source>
- <translation>mkspec:</translation>
+ <translation type="obsolete">mkspec:</translation>
</message>
<message>
<source>All possible mkspecs separated by a semicolon (&apos;;&apos;).</source>
- <translation>Všechny možné mkspecs oddělené středníkem (&apos;;&apos;).</translation>
+ <translation type="obsolete">Všechny možné mkspecs oddělené středníkem (&apos;;&apos;).</translation>
</message>
<message>
<source>Reset</source>
- <translation>Nastavit znovu</translation>
+ <translation type="obsolete">Nastavit znovu</translation>
+ </message>
+ <message>
+ <source>Name:</source>
+ <translation>Název:</translation>
</message>
</context>
<context>
@@ -35863,27 +37390,43 @@ když bude zavolán mimo git bash.</translation>
<translation>Typ</translation>
</message>
<message>
+ <source>Duplicate Compilers Detected</source>
+ <translation>Zdvojené pÅ™ekladaÄe</translation>
+ </message>
+ <message>
+ <source>The following compiler was already configured:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;It was not configured again.</source>
+ <translation>Následující pÅ™ekladaÄ již byl nastaven:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;Nebyl nastaven znovu jeÅ¡tÄ› jednou.</translation>
+ </message>
+ <message>
+ <source>The following compilers were already configured:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;They were not configured again.</source>
+ <translation>Následující pÅ™ekladaÄe již byly nastaveny:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;Nebyly nastaveny znovu jeÅ¡tÄ› jednou.</translation>
+ </message>
+ <message>
<source>Duplicate Tool Chain detected</source>
- <translation>Byla zjištěna zdvojená sada nástrojů</translation>
+ <translation type="obsolete">Byla zjištěna zdvojená sada nástrojů</translation>
</message>
<message>
<source>The following tool chain was already configured:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;It was not configured again.</source>
- <translation>Následující sada nástrojů již byla nastavena:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;Nebyla nastavena znovu ještě jednou.</translation>
+ <translation type="obsolete">Následující sada nástrojů již byla nastavena:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;Nebyla nastavena znovu ještě jednou.</translation>
</message>
<message>
<source>Duplicate Tool Chains detected</source>
- <translation>Zdvojené sady nástrojů</translation>
+ <translation type="obsolete">Zdvojené sady nástrojů</translation>
</message>
<message>
<source>The following tool chains were already configured:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;They were not configured again.</source>
- <translation>Následující sady nástrojů již byly nastaveny:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;Nebyly nastaveny znovu ještě jednou.</translation>
+ <translation type="obsolete">Následující sady nástrojů již byly nastaveny:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;Nebyly nastaveny znovu ještě jednou.</translation>
</message>
</context>
<context>
<name>ProjectExplorer::Internal::ToolChainOptionsPage</name>
<message>
<source>Tool Chains</source>
- <translation>Sady nástrojů</translation>
+ <translation type="obsolete">Sady nástrojů</translation>
+ </message>
+ <message>
+ <source>Compilers</source>
+ <translation>PÅ™ekladaÄe</translation>
</message>
<message>
<source>Add</source>
@@ -35937,7 +37480,7 @@ Chcete přesto soubor s nastavením nahrát?</translation>
</message>
<message>
<source>Deploy to Symbian device</source>
- <translation>Nasazení na zařízení Symbian</translation>
+ <translation type="obsolete">Nasazení na zařízení Symbian</translation>
</message>
</context>
<context>
@@ -36122,7 +37665,11 @@ Chcete přesto soubor s nastavením nahrát?</translation>
<name>QmlDesigner::TextToModelMerger error message</name>
<message>
<source>No import statements found</source>
- <translation>Nepodařilo se najít žádný příkaz k zavedení</translation>
+ <translation>Nepodařilo se najít žádný příkaz k importování</translation>
+ </message>
+ <message>
+ <source>Unsupported QtQuick version</source>
+ <translation>Nepodporovaná verze Qt Quick</translation>
</message>
</context>
<context>
@@ -36142,7 +37689,7 @@ stateless means that a single instance will be shared among
all components. Stateless libraries will not be able to access
QML component instance objects and properties directly.</source>
<translation>Obvykle má každá instance souÄástky QML svoji jedineÄnou kopii
-zavedené knihovny JavaScript. NaznaÄejí, že knihovna je beze stavu,
+importované knihovny JavaScript. NaznaÄují, že knihovna je beze stavu,
znamená, že jedna instance bude sdílena vÅ¡emi souÄástkami.
Knihovny beze stavu nemohou přistupovat na instance objektů
a vlastností souÄástek QML přímo.</translation>
@@ -36159,12 +37706,16 @@ a vlastností souÄástek QML přímo.</translation>
<name>QmlJSEditor::ComponentFromObjectDef</name>
<message>
<source>Move Component into separate file</source>
- <translation>PÅ™esunout souÄástku do oddÄ›leného souboru</translation>
+ <translation type="obsolete">PÅ™esunout souÄástku do oddÄ›leného souboru</translation>
</message>
<message>
<source>Move Component into &apos;%1.qml&apos;</source>
<translation type="obsolete">PÅ™esunout souÄástku do &apos;%1.qml&apos;</translation>
</message>
+ <message>
+ <source>Move Component into Separate File</source>
+ <translation>PÅ™esunout souÄástku do oddÄ›leného souboru</translation>
+ </message>
</context>
<context>
<name>QmlJSEditor::Internal::ComponentNameDialog</name>
@@ -36182,7 +37733,7 @@ a vlastností souÄástek QML přímo.</translation>
</message>
<message>
<source>Move Component into Separate File</source>
- <translation type="obsolete">PÅ™esunout souÄástku do oddÄ›leného souboru</translation>
+ <translation>PÅ™esunout souÄástku do oddÄ›leného souboru</translation>
</message>
<message>
<source>Path:</source>
@@ -36194,11 +37745,11 @@ a vlastností souÄástek QML přímo.</translation>
</message>
<message>
<source>Dialog</source>
- <translation>Dialog</translation>
+ <translation type="obsolete">Dialog</translation>
</message>
<message>
<source>Choose...</source>
- <translation>Vybrat...</translation>
+ <translation type="obsolete">Vybrat...</translation>
</message>
</context>
<context>
@@ -36283,6 +37834,10 @@ a vlastností souÄástek QML přímo.</translation>
<name>QmlJSEditor::QuickFix</name>
<message>
<source>Split initializer</source>
+ <translation type="obsolete">Rozdělit inicializaci</translation>
+ </message>
+ <message>
+ <source>Split Initializer</source>
<translation>Rozdělit inicializaci</translation>
</message>
</context>
@@ -36297,92 +37852,92 @@ a vlastností souÄástek QML přímo.</translation>
<name>QmlJSInspector::Internal::ContextCrumblePath</name>
<message>
<source>[no context]</source>
- <translation>[žádný kontext]</translation>
+ <translation type="obsolete">[žádný kontext]</translation>
</message>
</context>
<context>
<name>QmlJSInspector::Internal::InspectorUi</name>
<message>
<source>Context Path</source>
- <translation>Kontextová cesta</translation>
+ <translation type="obsolete">Kontextová cesta</translation>
</message>
<message>
<source>QML Inspector</source>
- <translation>Ukazatel QML</translation>
+ <translation type="obsolete">Ukazatel QML</translation>
</message>
<message>
<source>Filter properties</source>
- <translation>Filtrovat vlastnosti</translation>
+ <translation type="obsolete">Filtrovat vlastnosti</translation>
</message>
</context>
<context>
<name>QmlJSInspector::Internal::QmlJsInspectorToolBar</name>
<message>
<source>Apply Changes on Save</source>
- <translation>Použít změny při uložení</translation>
+ <translation type="obsolete">Použít změny při uložení</translation>
</message>
<message>
<source>Show application on top</source>
- <translation>Ukázat program v popředí</translation>
+ <translation type="obsolete">Ukázat program v popředí</translation>
</message>
<message>
<source>Play/Pause Animations</source>
- <translation>Přehrát/Pozastavit animace</translation>
+ <translation type="obsolete">Přehrát/Pozastavit animace</translation>
</message>
<message>
<source>Select</source>
- <translation>Vybrat</translation>
+ <translation type="obsolete">Vybrat</translation>
</message>
<message>
<source>Zoom</source>
- <translation>Zvětšení</translation>
+ <translation type="obsolete">Zvětšení</translation>
</message>
<message>
<source>Color Picker</source>
- <translation>VoliÄ barvy</translation>
+ <translation type="obsolete">VoliÄ barvy</translation>
</message>
<message>
<source>1x</source>
- <translation>1x</translation>
+ <translation type="obsolete">1x</translation>
</message>
<message>
<source>0.5x</source>
- <translation>0.5x</translation>
+ <translation type="obsolete">0.5x</translation>
</message>
<message>
<source>0.25x</source>
- <translation>0.25x</translation>
+ <translation type="obsolete">0.25x</translation>
</message>
<message>
<source>0.125x</source>
- <translation>0.125x</translation>
+ <translation type="obsolete">0.125x</translation>
</message>
<message>
<source>0.1x</source>
- <translation>0.1x</translation>
+ <translation type="obsolete">0.1x</translation>
</message>
</context>
<context>
<name>QmlJSInspector::Internal::QmlJSLiveTextPreview</name>
<message>
<source>You changed a QML file in Live Preview mode, which modifies the running QML application. In case of unexpected behavior, please reload the QML application.</source>
- <translation>ZmÄ›nil jste soubor QML v živém náhledovém režimu, což zmÄ›ní běžící program QML. V případÄ› výskytu neoÄekávaného chování nahrajte, prosím, program QML znovu.</translation>
+ <translation type="obsolete">ZmÄ›nil jste soubor QML v živém náhledovém režimu, což zmÄ›ní běžící program QML. V případÄ› výskytu neoÄekávaného chování nahrajte, prosím, program QML znovu.</translation>
</message>
<message>
<source>Disable Live Preview</source>
- <translation>Vypnout režim živého náhledu</translation>
+ <translation type="obsolete">Vypnout režim živého náhledu</translation>
</message>
<message>
<source>The %1 attribute at line %2, column %3 cannot be changed without reloading the QML application. </source>
- <translation>Vlastnost %1 na řádku %2, sloupec %3 nelze změnit bez nového nahrání programu QML.</translation>
+ <translation type="obsolete">Vlastnost %1 na řádku %2, sloupec %3 nelze změnit bez nového nahrání programu QML.</translation>
</message>
<message>
<source>The %1 element at line %2, column %3 cannot be changed without reloading the QML application. </source>
- <translation>Prvek %1 na řádku %2, sloupec %3 nelze změnit bez nového nahrání programu QML.</translation>
+ <translation type="obsolete">Prvek %1 na řádku %2, sloupec %3 nelze změnit bez nového nahrání programu QML.</translation>
</message>
<message>
<source>You can continue debugging, but behavior can be unexpected.</source>
- <translation>Můžete pokraÄovat v ladÄ›ní. může se ale vyskytnout neoÄekávané chování.</translation>
+ <translation type="obsolete">Můžete pokraÄovat v ladÄ›ní. může se ale vyskytnout neoÄekávané chování.</translation>
</message>
</context>
<context>
@@ -36393,26 +37948,26 @@ a vlastností souÄástek QML přímo.</translation>
</message>
<message>
<source>Enter expression</source>
- <translation>Zadat výraz</translation>
+ <translation type="obsolete">Zadat výraz</translation>
</message>
<message>
<source>Choose color</source>
- <translation>Vybrat barvu</translation>
+ <translation type="obsolete">Vybrat barvu</translation>
</message>
<message>
<source>JavaScript expression for %1</source>
- <translation>Výraz JavaScript pro %1</translation>
+ <translation type="obsolete">Výraz JavaScript pro %1</translation>
</message>
<message>
<source>Color selection for %1</source>
- <translation>Výběr barvy pro %1</translation>
+ <translation type="obsolete">Výběr barvy pro %1</translation>
</message>
</context>
<context>
<name>QmlJSInspector::ToolBarColorBox</name>
<message>
<source>Copy Color</source>
- <translation>Kopírovat barvu</translation>
+ <translation type="obsolete">Kopírovat barvu</translation>
</message>
</context>
<context>
@@ -36578,7 +38133,7 @@ VytvoÅ™te, prosím, souÄástky pomocné knihovny pro výstup dat o ladÄ›ní na
<message>
<source>Application finished before loading profiled data.
Please use the stop button instead.</source>
- <translation>Program byl pÅ™ed nahráním profilovaných dat ukonÄen.
+ <translation type="obsolete">Program byl pÅ™ed nahráním profilovaných dat ukonÄen.
Použijte, prosím, místo toho tlaÄítko Zastavit.</translation>
</message>
<message>
@@ -36727,24 +38282,30 @@ Použijte, prosím, místo toho tlaÄítko Zastavit.</translation>
<translation>Uložit výpis volání QML</translation>
</message>
<message>
+ <source>Application finished before loading profiled data.
+Please use the stop button instead.</source>
+ <translation>Program byl pÅ™ed nahráním profilovaných dat ukonÄen.
+Použijte, prosím, místo toho tlaÄítko Zastavit.</translation>
+ </message>
+ <message>
<source>Extended Event Statistics</source>
- <translation>Rozšířená statistika událostí</translation>
+ <translation type="obsolete">Rozšířená statistika událostí</translation>
</message>
<message>
<source>Limit Events Pane to Current Range</source>
- <translation>Omezit tabulku na nynější rozsah</translation>
+ <translation type="obsolete">Omezit tabulku na nynější rozsah</translation>
</message>
<message>
<source>Reset Events Pane</source>
- <translation>Vynulovat tabulku událostí</translation>
+ <translation type="obsolete">Vynulovat tabulku událostí</translation>
</message>
<message>
<source>Reset Zoom</source>
- <translation>Nastavit zvětšení znovu</translation>
+ <translation type="obsolete">Nastavit zvětšení znovu</translation>
</message>
<message>
<source>JavaScript</source>
- <translation>JavaScript</translation>
+ <translation type="obsolete">JavaScript</translation>
</message>
<message>
<source>%1 s</source>
@@ -36766,11 +38327,11 @@ Použijte, prosím, místo toho tlaÄítko Zastavit.</translation>
</message>
<message>
<source>Copy Row</source>
- <translation>Kopírovat řádek</translation>
+ <translation type="obsolete">Kopírovat řádek</translation>
</message>
<message>
<source>Copy Table</source>
- <translation>Kopírovat tabulku</translation>
+ <translation type="obsolete">Kopírovat tabulku</translation>
</message>
<message>
<source>The QML profiler requires Qt 4.7.4 or newer.
@@ -36782,11 +38343,11 @@ Chcete pokraÄovat?</translation>
</message>
<message>
<source>Events</source>
- <translation>Události</translation>
+ <translation type="obsolete">Události</translation>
</message>
<message>
<source>Timeline</source>
- <translation>Časová přímka</translation>
+ <translation type="obsolete">Časová přímka</translation>
</message>
<message>
<source>Callees</source>
@@ -36818,12 +38379,12 @@ Chcete pokraÄovat?</translation>
</message>
<message>
<source>Qt Creator</source>
- <translation>Qt Creator</translation>
+ <translation type="obsolete">Qt Creator</translation>
</message>
<message>
<source>Could not connect to the in-process QML profiler.
Do you want to retry?</source>
- <translation>Qt Creatoru se nepodařilo vytvořit žádné spojení s profilerem QML v procesu.
+ <translation type="obsolete">Qt Creatoru se nepodařilo vytvořit žádné spojení s profilerem QML v procesu.
Má se to zkusit ještě jednou?</translation>
</message>
<message>
@@ -36834,21 +38395,35 @@ Má se to zkusit ještě jednou?</translation>
<context>
<name>QmlProfiler::Internal::RemoteLinuxQmlProfilerRunner</name>
<message>
+ <source>Gathering ports failed: %1</source>
+ <translation>Chyba při ověřování portů: %1</translation>
+ </message>
+ <message>
<source>Not enough free ports on device for analyzing.
</source>
- <translation>Na zařízení není dostatek volných bran pro rozbor.
+ <translation>Na zařízení není dostatek volných portů pro rozbor.
</translation>
</message>
<message>
- <source>Starting remote process ...
+ <source>Starting remote process...
</source>
<translation>Spouští se vzdálený proces...
</translation>
</message>
<message>
+ <source>Failure running remote process.</source>
+ <translation>Selhání při spouštění vzdáleného procesu.</translation>
+ </message>
+ <message>
+ <source>Starting remote process ...
+</source>
+ <translation type="obsolete">Spouští se vzdálený proces...
+</translation>
+ </message>
+ <message>
<source>Finished running remote process. Exit code was %1.
</source>
- <translation>Vzdálený proces byl ukonÄen. Vrácená hodnota %1.
+ <translation type="obsolete">Vzdálený proces byl ukonÄen. Vrácená hodnota %1.
</translation>
</message>
</context>
@@ -36856,23 +38431,23 @@ Má se to zkusit ještě jednou?</translation>
<name>QmlProfiler::Internal::TraceWindow</name>
<message>
<source>Jump to previous event</source>
- <translation>Jít na předchozí událost</translation>
+ <translation type="obsolete">Jít na předchozí událost</translation>
</message>
<message>
<source>Jump to next event</source>
- <translation>Jít na další událost</translation>
+ <translation type="obsolete">Jít na další událost</translation>
</message>
<message>
<source>Show zoom slider</source>
- <translation>Ukázat zvětšovací posuvník</translation>
+ <translation type="obsolete">Ukázat zvětšovací posuvník</translation>
</message>
<message>
<source>Select range</source>
- <translation>Vybrat rozsah</translation>
+ <translation type="obsolete">Vybrat rozsah</translation>
</message>
<message>
<source>View event information on mouseover</source>
- <translation>Ukázat informace o události při přejezdu myši</translation>
+ <translation type="obsolete">Ukázat informace o události při přejezdu myši</translation>
</message>
<message>
<source>Zoom in 10%</source>
@@ -36926,11 +38501,11 @@ Sestavení pozorovatele QML se dÄ›je na stránce pro nastavení Qt pomocí výbÄ
</message>
<message>
<source>Manage Qt versions...</source>
- <translation>Spravovat verze Qt...</translation>
+ <translation type="obsolete">Spravovat verze Qt...</translation>
</message>
<message>
<source>Qt version:</source>
- <translation>Verze Qt:</translation>
+ <translation type="obsolete">Verze Qt:</translation>
</message>
<message>
<source>Arguments:</source>
@@ -36954,7 +38529,7 @@ Sestavení pozorovatele QML se dÄ›je na stránce pro nastavení Qt pomocí výbÄ
</message>
<message>
<source>Invalid Qt version</source>
- <translation>Neplatná verze Qt</translation>
+ <translation type="obsolete">Neplatná verze Qt</translation>
</message>
</context>
<context>
@@ -37125,37 +38700,37 @@ Ani cesta ke knihovnÄ› ani cesta k hlaviÄkovým souborům nebudou pÅ™idány do
<message>
<source>Desktop</source>
<comment>Qt4 Desktop target display name</comment>
- <translation>Stolní poÄítaÄ</translation>
+ <translation type="obsolete">Stolní poÄítaÄ</translation>
</message>
<message>
<source>Qt Simulator</source>
<comment>Qt4 Simulator target display name</comment>
- <translation>Qt Simulator</translation>
+ <translation type="obsolete">Qt Simulator</translation>
</message>
<message>
<source>Symbian Emulator</source>
<comment>Qt4 Symbian Emulator target display name</comment>
- <translation>Emulátor Symbianu</translation>
+ <translation type="obsolete">Emulátor Symbianu</translation>
</message>
<message>
<source>Symbian Device</source>
<comment>Qt4 Symbian Device target display name</comment>
- <translation>Zařízení Symbian</translation>
+ <translation type="obsolete">Zařízení Symbian</translation>
</message>
<message>
<source>Maemo5</source>
<comment>Qt4 Maemo5 target display name</comment>
- <translation>Maemo5</translation>
+ <translation type="obsolete">Maemo5</translation>
</message>
<message>
<source>Harmattan</source>
<comment>Qt4 Harmattan target display name</comment>
- <translation>Harmattan</translation>
+ <translation type="obsolete">Harmattan</translation>
</message>
<message>
<source>MeeGo</source>
<comment>Qt4 MeeGo target display name</comment>
- <translation>Meego</translation>
+ <translation type="obsolete">Meego</translation>
</message>
<message>
<source>Meego</source>
@@ -37173,105 +38748,105 @@ Ani cesta ke knihovnÄ› ani cesta k hlaviÄkovým souborům nebudou pÅ™idány do
<message>
<source>No device is connected. Please connect a device and try again.
</source>
- <translation>Není připojeno žádné zařízení. Připojte, prosím, zařízení a zkuste to znovu.
+ <translation type="obsolete">Není připojeno žádné zařízení. Připojte, prosím, zařízení a zkuste to znovu.
</translation>
</message>
<message>
<source>Executable file: %1
</source>
- <translation>Spustitelný soubor: %1
+ <translation type="obsolete">Spustitelný soubor: %1
</translation>
</message>
<message>
<source>Connecting to &apos;%1&apos;...
</source>
- <translation>Připojuje se k &apos;%1&apos;...
+ <translation type="obsolete">Připojuje se k &apos;%1&apos;...
</translation>
</message>
<message>
<source>Unable to create CODA connection. Please try again.
</source>
- <translation>Nepodařilo se vytvořit žádné spojení s CODA. Zkuste to, prosím, znovu.
+ <translation type="obsolete">Nepodařilo se vytvořit žádné spojení s CODA. Zkuste to, prosím, znovu.
</translation>
</message>
<message>
<source>Could not open serial device: %1
</source>
- <translation>Sériové zařízení se nepodařilo otevřít: %1
+ <translation type="obsolete">Sériové zařízení se nepodařilo otevřít: %1
</translation>
</message>
<message>
<source>Connecting to %1:%2...
</source>
- <translation>Připojuje se k %1:%2...
+ <translation type="obsolete">Připojuje se k %1:%2...
</translation>
</message>
<message>
<source>Error: %1
</source>
- <translation>Chyba: %1
+ <translation type="obsolete">Chyba: %1
</translation>
</message>
<message>
<source>Connected.
</source>
- <translation>spojeno.
+ <translation type="obsolete">spojeno.
</translation>
</message>
<message>
<source>Thread has crashed: %1
</source>
- <translation>Vlákno spadlo: %1
+ <translation type="obsolete">Vlákno spadlo: %1
</translation>
</message>
<message>
<source>Process has finished.
</source>
- <translation>Proces byl ukonÄen.
+ <translation type="obsolete">Proces byl ukonÄen.
</translation>
</message>
<message>
<source>The process is already running on the device. Please first close it.
</source>
- <translation>Proces již na mobilním zařízení běží. Nejprve jej ukonÄete.
+ <translation type="obsolete">Proces již na mobilním zařízení běží. Nejprve jej ukonÄete.
</translation>
</message>
<message>
<source>Launching: %1
</source>
- <translation>Spouští se: %1
+ <translation type="obsolete">Spouští se: %1
</translation>
</message>
<message>
<source>Launched.
</source>
- <translation>Spuštěno.
+ <translation type="obsolete">Spuštěno.
</translation>
</message>
<message>
<source>Launch failed: %1
</source>
- <translation>Spuštění se nezdařilo: %1
+ <translation type="obsolete">Spuštění se nezdařilo: %1
</translation>
</message>
<message>
<source>Waiting for CODA</source>
- <translation>Čeká se na CODA</translation>
+ <translation type="obsolete">Čeká se na CODA</translation>
</message>
<message>
<source>Qt Creator is waiting for the CODA application to connect.&lt;br&gt;Please make sure the application is running on your mobile phone and the right IP address and/or port are configured in the project settings.</source>
- <translation>Qt Creator Äeká na spojení s programem CODA.&lt;br&gt;SpusÅ¥te, prosím, program na svém mobilním telefonu a prověřte nastavení IP adresy a portu v nastavení projektu.</translation>
+ <translation type="obsolete">Qt Creator Äeká na spojení s programem CODA.&lt;br&gt;SpusÅ¥te, prosím, program na svém mobilním telefonu a prověřte nastavení IP adresy a portu v nastavení projektu.</translation>
</message>
<message>
<source>Canceled.
</source>
- <translation>Zrušeno.
+ <translation type="obsolete">Zrušeno.
</translation>
</message>
<message>
<source>The device &apos;%1&apos; has been disconnected.
</source>
- <translation>Zařízení &apos;%1&apos; bylo odpojeno.
+ <translation type="obsolete">Zařízení &apos;%1&apos; bylo odpojeno.
</translation>
</message>
</context>
@@ -37279,73 +38854,73 @@ Ani cesta ke knihovnÄ› ani cesta k hlaviÄkovým souborům nebudou pÅ™idány do
<name>Qt4ProjectManager::Internal::GcceToolChainFactory</name>
<message>
<source>GCCE</source>
- <translation>GCCE</translation>
+ <translation type="obsolete">GCCE</translation>
</message>
<message>
<source>GCCE from Qt version</source>
- <translation>GCCE z verze Qt</translation>
+ <translation type="obsolete">GCCE z verze Qt</translation>
</message>
<message>
<source>GCCE (%1)</source>
- <translation>GCCE (%1)</translation>
+ <translation type="obsolete">GCCE (%1)</translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::PassphraseForKeyDialog</name>
<message>
<source>Passphrase:</source>
- <translation>Heslo:</translation>
+ <translation type="obsolete">Heslo:</translation>
</message>
<message>
<source>Save passphrase</source>
- <translation>Uložit heslo</translation>
+ <translation type="obsolete">Uložit heslo</translation>
</message>
<message>
<source>This is an insecure option. The password will be saved as plain text.</source>
- <translation>Tato volba je nebezpeÄná. Heslo je uloženo jako prostý text.</translation>
+ <translation type="obsolete">Tato volba je nebezpeÄná. Heslo je uloženo jako prostý text.</translation>
</message>
<message>
<source>Passphrase for %1</source>
- <translation>Heslo pro %1</translation>
+ <translation type="obsolete">Heslo pro %1</translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::Internal::Qt4SymbianTarget</name>
<message>
<source>&lt;b&gt;Device:&lt;/b&gt; Not connected</source>
- <translation>&lt;b&gt;Zařízení:&lt;/b&gt; Nepřipojeno</translation>
+ <translation type="obsolete">&lt;b&gt;Zařízení:&lt;/b&gt; Nepřipojeno</translation>
</message>
<message>
<source>&lt;b&gt;Device:&lt;/b&gt; %1</source>
- <translation>&lt;b&gt;Zařízení:&lt;/b&gt; %1</translation>
+ <translation type="obsolete">&lt;b&gt;Zařízení:&lt;/b&gt; %1</translation>
</message>
<message>
<source>&lt;b&gt;Device:&lt;/b&gt; %1, %2</source>
- <translation>&lt;b&gt;Zařízení:&lt;/b&gt; %1, %2</translation>
+ <translation type="obsolete">&lt;b&gt;Zařízení:&lt;/b&gt; %1, %2</translation>
</message>
<message>
<source>&lt;b&gt;IP address:&lt;/b&gt; %1:%2</source>
- <translation>&lt;b&gt;IP adresa:&lt;/b&gt; %1:%2</translation>
+ <translation type="obsolete">&lt;b&gt;IP adresa:&lt;/b&gt; %1:%2</translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::Internal::RvctToolChainFactory</name>
<message>
<source>ARMv5</source>
- <translation>ARMv5</translation>
+ <translation type="obsolete">ARMv5</translation>
</message>
<message>
<source>ARMv6</source>
- <translation>ARMv6</translation>
+ <translation type="obsolete">ARMv6</translation>
</message>
<message>
<source>RVCT</source>
- <translation>RVCT</translation>
+ <translation type="obsolete">RVCT</translation>
</message>
<message>
<source>RVCT (%1 %2.%3 Build %4)</source>
<extracomment>%1 arm version, %2 major version, %3 minor version, %4 build number</extracomment>
- <translation>RVCT (%1 %2.%3 Sestavení %4)</translation>
+ <translation type="obsolete">RVCT (%1 %2.%3 Sestavení %4)</translation>
</message>
</context>
<context>
@@ -37353,54 +38928,54 @@ Ani cesta ke knihovnÄ› ani cesta k hlaviÄkovým souborům nebudou pÅ™idány do
<message>
<source>The certificate &quot;%1&quot; has already expired and cannot be used.
Expiration date: %2.</source>
- <translation>Certifikát &quot;%1&quot; již vypršel a proto jej nelze používat.
+ <translation type="obsolete">Certifikát &quot;%1&quot; již vypršel a proto jej nelze používat.
Datum vypršení platnosti: %2.</translation>
</message>
<message>
<source>The certificate &quot;%1&quot; is not yet valid.
Valid from: %2.</source>
- <translation>Certifikát &quot;%1&quot; ještě není platný.
+ <translation type="obsolete">Certifikát &quot;%1&quot; ještě není platný.
Platí od: %2.</translation>
</message>
<message>
<source>The certificate &quot;%1&quot; is not a valid X.509 certificate.</source>
- <translation>Certifikát &quot;%1&quot; není platným osvÄ›dÄením X.509.</translation>
+ <translation type="obsolete">Certifikát &quot;%1&quot; není platným osvÄ›dÄením X.509.</translation>
</message>
<message>
<source>Type: </source>
- <translation>Typ:</translation>
+ <translation type="obsolete">Typ:</translation>
</message>
<message>
<source>Developer certificate</source>
- <translation>Vývojářský certifikát</translation>
+ <translation type="obsolete">Vývojářský certifikát</translation>
</message>
<message>
<source>Self signed certificate</source>
- <translation>Osobně podepsaný certifikát</translation>
+ <translation type="obsolete">Osobně podepsaný certifikát</translation>
</message>
<message>
<source>Issued by: </source>
- <translation>Vystaveno od: </translation>
+ <translation type="obsolete">Vystaveno od: </translation>
</message>
<message>
<source>Issued to: </source>
- <translation>Vystaveno pro: </translation>
+ <translation type="obsolete">Vystaveno pro: </translation>
</message>
<message>
<source>Valid from: </source>
- <translation>Platné od:</translation>
+ <translation type="obsolete">Platné od:</translation>
</message>
<message>
<source>Valid to: </source>
- <translation>Platné do:</translation>
+ <translation type="obsolete">Platné do:</translation>
</message>
<message>
<source>Capabilities: </source>
- <translation>Oprávnění:</translation>
+ <translation type="obsolete">Oprávnění:</translation>
</message>
<message numerus="yes">
<source>Supporting %n device(s): </source>
- <translation>
+ <translation type="obsolete">
<numerusform>Podporuje jedno zařízení: </numerusform>
<numerusform>Podporuje %n zařízení: </numerusform>
<numerusform>Podporuje %n zařízení: </numerusform>
@@ -37414,177 +38989,177 @@ Platí od: %2.</translation>
%2
Use a developer certificate or any other signing option to prevent this patching from happening.</source>
<extracomment>%1 package name, %2 will be replaced by a list of patching lines.</extracomment>
- <translation>OsobnÄ› podepsaný balíÄek &apos;%1&apos; byl zmÄ›nÄ›n, aby byla umožnÄ›na jeho instalace.
+ <translation type="obsolete">OsobnÄ› podepsaný balíÄek &apos;%1&apos; byl zmÄ›nÄ›n, aby byla umožnÄ›na jeho instalace.
%2
Použitím vývojářského certifikátu nebo jakékoliv jiné podoby podpisu se těmto změnám vyhnete.</translation>
</message>
<message>
<source>Cannot create Smart Installer package as the Smart Installer&apos;s base file is missing. Please ensure that it is located in the SDK.</source>
- <translation>Nelze vytvoÅ™it balíÄek Smart Installer, neboÅ¥ základní soubor pro Smart Installer chybí. UjistÄ›te se, prosím, že je přítomen v SDK.</translation>
+ <translation type="obsolete">Nelze vytvoÅ™it balíÄek Smart Installer, neboÅ¥ základní soubor pro Smart Installer chybí. UjistÄ›te se, prosím, že je přítomen v SDK.</translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::S60DeployConfiguration</name>
<message>
<source>Deploy %1 to Symbian device</source>
- <translation>Nasazení %1 na zařízení Symbian</translation>
+ <translation type="obsolete">Nasazení %1 na zařízení Symbian</translation>
</message>
<message>
<source>Deploy to Symbian device</source>
- <translation>Nasazení na zařízení Symbian</translation>
+ <translation type="obsolete">Nasazení na zařízení Symbian</translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::S60DeployConfigurationFactory</name>
<message>
<source>%1 on Symbian Device</source>
- <translation>%1 na zařízení Symbian</translation>
+ <translation type="obsolete">%1 na zařízení Symbian</translation>
</message>
<message>
<source>Deploy to Symbian device</source>
- <translation>Nasazení na zařízení Symbian</translation>
+ <translation type="obsolete">Nasazení na zařízení Symbian</translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::Internal::S60DeployConfigurationWidget</name>
<message>
<source>Device:</source>
- <translation>Zařízení:</translation>
+ <translation type="obsolete">Zařízení:</translation>
</message>
<message>
<source>Silent installation</source>
- <translation>Tichá instalace</translation>
+ <translation type="obsolete">Tichá instalace</translation>
</message>
<message>
<source>Serial:</source>
- <translation>Sériová:</translation>
+ <translation type="obsolete">Sériová:</translation>
</message>
<message>
<source>WLAN:</source>
- <translation>WLAN:</translation>
+ <translation type="obsolete">WLAN:</translation>
</message>
<message>
<source>Installation file:</source>
- <translation>InstalaÄní soubor:</translation>
+ <translation type="obsolete">InstalaÄní soubor:</translation>
</message>
<message>
<source>Silent installation is an installation mode that does not require user&apos;s intervention. In case it fails the non silent installation is launched.</source>
- <translation>V režimu &apos;Tichá instalace&apos; se nevyžaduje žádný zásah uživatele na mobilním zařízení. Pokud toto selže, spustí se běžná, ne-tichá instalace.</translation>
+ <translation type="obsolete">V režimu &apos;Tichá instalace&apos; se nevyžaduje žádný zásah uživatele na mobilním zařízení. Pokud toto selže, spustí se běžná, ne-tichá instalace.</translation>
</message>
<message>
<source>Installation drive:</source>
- <translation>InstalaÄní disková jednotka:</translation>
+ <translation type="obsolete">InstalaÄní disková jednotka:</translation>
</message>
<message>
<source>Queries the device for information</source>
- <translation>Vyvolává informace ze zařízení</translation>
+ <translation type="obsolete">Vyvolává informace ze zařízení</translation>
</message>
<message>
<source>Serial port:</source>
- <translation>Sériová přípojka:</translation>
+ <translation type="obsolete">Sériová přípojka:</translation>
</message>
<message>
<source>Communication Channel</source>
- <translation>KomunikaÄní protokol</translation>
+ <translation type="obsolete">KomunikaÄní protokol</translation>
</message>
<message>
<source>Address:</source>
- <translation>Adresa:</translation>
+ <translation type="obsolete">Adresa:</translation>
</message>
<message>
<source>Connecting</source>
- <translation>Připojuje se</translation>
+ <translation type="obsolete">Připojuje se</translation>
</message>
<message>
<source>Unable to create CODA connection. Please try again.</source>
- <translation>Nepodařilo se vytvořit žádné spojení s CODA. Zkuste to, prosím, znovu.</translation>
+ <translation type="obsolete">Nepodařilo se vytvořit žádné spojení s CODA. Zkuste to, prosím, znovu.</translation>
</message>
<message>
<source>Currently there is no information about the device for this connection type.</source>
- <translation>Pro tento typ spojení nejsou nyní dostupné žádné informace o zařízení.</translation>
+ <translation type="obsolete">Pro tento typ spojení nejsou nyní dostupné žádné informace o zařízení.</translation>
</message>
<message>
<source>No device information available</source>
- <translation>Nejsou dostupné žádné informace o zařízení</translation>
+ <translation type="obsolete">Nejsou dostupné žádné informace o zařízení</translation>
</message>
<message>
<source>Qt version: </source>
- <translation>Verze Qt: </translation>
+ <translation type="obsolete">Verze Qt: </translation>
</message>
<message>
<source>Not installed on device</source>
- <translation>Neinstalováno na zařízení</translation>
+ <translation type="obsolete">Neinstalováno na zařízení</translation>
</message>
<message>
<source>Qt version:</source>
- <translation>Verze Qt:</translation>
+ <translation type="obsolete">Verze Qt:</translation>
</message>
<message>
<source>Unrecognised Symbian version 0x%1</source>
- <translation>Nerozpoznaná verze Symbianu 0x%1</translation>
+ <translation type="obsolete">Nerozpoznaná verze Symbianu 0x%1</translation>
</message>
<message>
<source>Unrecognised S60 version 0x%1</source>
- <translation>Nerozpoznaná verze S60 0x%1</translation>
+ <translation type="obsolete">Nerozpoznaná verze S60 0x%1</translation>
</message>
<message>
<source>OS version:</source>
- <translation>Verze operaÄního systému:</translation>
+ <translation type="obsolete">Verze operaÄního systému:</translation>
</message>
<message>
<source>unknown</source>
- <translation>Neznámý</translation>
+ <translation type="obsolete">Neznámý</translation>
</message>
<message>
<source>ROM version:</source>
- <translation>Verze ROM:</translation>
+ <translation type="obsolete">Verze ROM:</translation>
</message>
<message>
<source>Release:</source>
- <translation>Vydání:</translation>
+ <translation type="obsolete">Vydání:</translation>
</message>
<message>
<source>CODA version: </source>
- <translation>Verze CODA: </translation>
+ <translation type="obsolete">Verze CODA: </translation>
</message>
<message>
<source>Error reading CODA version</source>
- <translation>Chyba pÅ™i Ätení verze CODA</translation>
+ <translation type="obsolete">Chyba pÅ™i Ätení verze CODA</translation>
</message>
<message>
<source>Qt Mobility version: </source>
- <translation>Verze Qt Mobility: </translation>
+ <translation type="obsolete">Verze Qt Mobility: </translation>
</message>
<message>
<source>Error reading Qt Mobility version</source>
- <translation>Chyba pÅ™i Ätení verze Qt Mobility</translation>
+ <translation type="obsolete">Chyba pÅ™i Ätení verze Qt Mobility</translation>
</message>
<message>
<source>Qt Quick components version: </source>
- <translation>Verze souÄásti Qt Quick: </translation>
+ <translation type="obsolete">Verze souÄásti Qt Quick: </translation>
</message>
<message>
<source>Not installed</source>
- <translation>Neinstalováno</translation>
+ <translation type="obsolete">Neinstalováno</translation>
</message>
<message>
<source>QML Viewer version: </source>
- <translation>Verze prohlížeÄe QML: </translation>
+ <translation type="obsolete">Verze prohlížeÄe QML: </translation>
</message>
<message>
<source>Screen size:</source>
- <translation>Velikost obrazovky:</translation>
+ <translation type="obsolete">Velikost obrazovky:</translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::Internal::S60DeployStep</name>
<message>
<source>Unable to remove existing file &apos;%1&apos;: %2</source>
- <translation>Stávající soubor &apos;%1&apos; se nepodařilo odstranit: %2</translation>
+ <translation type="obsolete">Stávající soubor &apos;%1&apos; se nepodařilo odstranit: %2</translation>
</message>
<message>
<source>Unable to rename file &apos;%1&apos; to &apos;%2&apos;: %3</source>
- <translation>Soubor &apos;%1&apos; se nepodařilo přejmenovat na &apos;%2&apos;: %3</translation>
+ <translation type="obsolete">Soubor &apos;%1&apos; se nepodařilo přejmenovat na &apos;%2&apos;: %3</translation>
</message>
<message>
<source>Deploy</source>
@@ -37594,115 +39169,115 @@ Použitím vývojářského certifikátu nebo jakékoliv jiné podoby podpisu se
<message>
<source>Deploy SIS Package</source>
<extracomment>Qt4 Deploystep display name</extracomment>
- <translation>Nasazení balíÄku SIS</translation>
+ <translation type="obsolete">Nasazení balíÄku SIS</translation>
</message>
<message>
<source>No package has been found. Specify at least one installation package.</source>
- <translation>NepodaÅ™ilo se najít žádný instalaÄní balíÄek. Zadejte, prosím, alespoň jeden.</translation>
+ <translation type="obsolete">NepodaÅ™ilo se najít žádný instalaÄní balíÄek. Zadejte, prosím, alespoň jeden.</translation>
</message>
<message>
<source>Renaming new package &apos;%1&apos; to &apos;%2&apos;</source>
- <translation>PÅ™ejmenovává se nový balíÄek &apos;%1&apos; na &apos;%2&apos;</translation>
+ <translation type="obsolete">PÅ™ejmenovává se nový balíÄek &apos;%1&apos; na &apos;%2&apos;</translation>
</message>
<message>
<source>Removing old package &apos;%1&apos;</source>
- <translation>Odstraňuje se starý balíÄek &apos;%1&apos;</translation>
+ <translation type="obsolete">Odstraňuje se starý balíÄek &apos;%1&apos;</translation>
</message>
<message>
<source>&apos;%1&apos;: Package file not found</source>
- <translation>&apos;%1&apos;: Soubor s balíÄkem nenalezen</translation>
+ <translation type="obsolete">&apos;%1&apos;: Soubor s balíÄkem nenalezen</translation>
</message>
<message>
<source>No device is connected. Connect a device and try again.</source>
- <translation>Není připojeno žádné zařízení. Připojte, prosím, zařízení a zkuste to znovu.</translation>
+ <translation type="obsolete">Není připojeno žádné zařízení. Připojte, prosím, zařízení a zkuste to znovu.</translation>
</message>
<message>
<source>No address for a device has been defined. Define an address and try again.</source>
- <translation>Nebyla zadána žádná adresa pro zařízení. Zadejte, prosím, adresu pro zařízení a zkuste to znovu.</translation>
+ <translation type="obsolete">Nebyla zadána žádná adresa pro zařízení. Zadejte, prosím, adresu pro zařízení a zkuste to znovu.</translation>
</message>
<message>
<source>Failed to find package %1</source>
- <translation>NepodaÅ™ilo se najít balíÄek %1</translation>
+ <translation type="obsolete">NepodaÅ™ilo se najít balíÄek %1</translation>
</message>
<message>
<source>Deploying application to &apos;%1&apos;...</source>
- <translation>Nasazení programu na &apos;%1&apos;...</translation>
+ <translation type="obsolete">Nasazení programu na &apos;%1&apos;...</translation>
</message>
<message>
<source>No such port</source>
- <translation>Port neexistuje</translation>
+ <translation type="obsolete">Port neexistuje</translation>
</message>
<message>
<source>Could not open serial device: %1</source>
- <translation>Sériové zařízení se nepodařilo otevřít: %1</translation>
+ <translation type="obsolete">Sériové zařízení se nepodařilo otevřít: %1</translation>
</message>
<message>
<source>Connecting to %1:%2...</source>
- <translation>Spojuje se s %1:%2...</translation>
+ <translation type="obsolete">Spojuje se s %1:%2...</translation>
</message>
<message>
<source>Error: %1</source>
- <translation>Chyba: %1</translation>
+ <translation type="obsolete">Chyba: %1</translation>
</message>
<message>
<source>Copying &quot;%1&quot;...</source>
- <translation>Kopíruje se &quot;%1&quot;...</translation>
+ <translation type="obsolete">Kopíruje se &quot;%1&quot;...</translation>
</message>
<message>
<source>Installing package &quot;%1&quot; on drive %2:...</source>
- <translation>Instaluje se balíÄek &quot;%1&quot; na disk %2:...</translation>
+ <translation type="obsolete">Instaluje se balíÄek &quot;%1&quot; na disk %2:...</translation>
</message>
<message>
<source>Continue the installation on your device.</source>
- <translation>PokraÄujte, prosím, v instalaci na vaÅ¡em zařízení.</translation>
+ <translation type="obsolete">PokraÄujte, prosím, v instalaci na vaÅ¡em zařízení.</translation>
</message>
<message>
<source>Could not open remote file: %1</source>
- <translation>Vzdálený soubor se nepodařilo otevřít: %1</translation>
+ <translation type="obsolete">Vzdálený soubor se nepodařilo otevřít: %1</translation>
</message>
<message>
<source>Internal error: No filehandle obtained</source>
- <translation>Vnitřní chyba: Nepodařilo se obdržet žádný soubor Handle</translation>
+ <translation type="obsolete">Vnitřní chyba: Nepodařilo se obdržet žádný soubor Handle</translation>
</message>
<message>
<source>Could not open local file %1: %2</source>
- <translation>Místní soubor %1 se nepodařilo otevřít: %2</translation>
+ <translation type="obsolete">Místní soubor %1 se nepodařilo otevřít: %2</translation>
</message>
<message>
<source>Installation has finished</source>
- <translation>Instalace dokonÄena</translation>
+ <translation type="obsolete">Instalace dokonÄena</translation>
</message>
<message>
<source>Installation failed: %1; see %2 for descriptions of the error codes</source>
- <translation>Instalace se nezdařila: %1; podívejte se na %2 pro popis chybových kódů</translation>
+ <translation type="obsolete">Instalace se nezdařila: %1; podívejte se na %2 pro popis chybových kódů</translation>
</message>
<message>
<source>Could not write to file %1 on device: %2</source>
- <translation>Do souboru %1 se nepodařilo zapisovat na zařízení: %2</translation>
+ <translation type="obsolete">Do souboru %1 se nepodařilo zapisovat na zařízení: %2</translation>
</message>
<message>
<source>Failed to close the remote file: %1</source>
- <translation>Vzdálený soubor se nepodařilo zavřít: %1</translation>
+ <translation type="obsolete">Vzdálený soubor se nepodařilo zavřít: %1</translation>
</message>
<message>
<source>Installation</source>
- <translation>Instalace</translation>
+ <translation type="obsolete">Instalace</translation>
</message>
<message>
<source>Deployment has been cancelled.</source>
- <translation>Nasazení bylo zrušeno.</translation>
+ <translation type="obsolete">Nasazení bylo zrušeno.</translation>
</message>
<message>
<source>The device &apos;%1&apos; has been disconnected</source>
- <translation>Zařízení &apos;%1&apos; bylo odpojeno</translation>
+ <translation type="obsolete">Zařízení &apos;%1&apos; bylo odpojeno</translation>
</message>
<message>
<source>Copy progress: %1%</source>
- <translation>Kopíruje se: %1%</translation>
+ <translation type="obsolete">Kopíruje se: %1%</translation>
</message>
<message>
<source>A timeout while deploying has occurred. CODA might not be responding. Try reconnecting the device.</source>
- <translation>PÅ™i nasazování bylo pÅ™ekroÄeno Äasové omezení. CODA možná neodpovídá. Pokuste se znovu vytvoÅ™it spojení se zařízením.</translation>
+ <translation type="obsolete">PÅ™i nasazování bylo pÅ™ekroÄeno Äasové omezení. CODA možná neodpovídá. Pokuste se znovu vytvoÅ™it spojení se zařízením.</translation>
</message>
</context>
<context>
@@ -37716,7 +39291,7 @@ Použitím vývojářského certifikátu nebo jakékoliv jiné podoby podpisu se
<name>Qt4ProjectManager::Internal::S60DeployStepFactory</name>
<message>
<source>Deploy SIS Package</source>
- <translation>Nasazení balíÄku SIS</translation>
+ <translation type="obsolete">Nasazení balíÄku SIS</translation>
</message>
</context>
<context>
@@ -37724,79 +39299,79 @@ Použitím vývojářského certifikátu nebo jakékoliv jiné podoby podpisu se
<message>
<source>%1 on Symbian Device</source>
<extracomment>S60 device runconfiguration default display name, %1 is base pro-File name</extracomment>
- <translation>%1 na zařízení Symbian</translation>
+ <translation type="obsolete">%1 na zařízení Symbian</translation>
</message>
<message>
<source>Run on Symbian device</source>
<extracomment>S60 device runconfiguration default display name (no profile set)</extracomment>
- <translation>Spustit na zařízení Symbian</translation>
+ <translation type="obsolete">Spustit na zařízení Symbian</translation>
</message>
<message>
<source>The .pro file is currently being parsed.</source>
- <translation>Soubor .pro je právě vyhodnocován.</translation>
+ <translation type="obsolete">Soubor .pro je právě vyhodnocován.</translation>
</message>
<message>
<source>The .pro file could not be parsed.</source>
- <translation>Soubor .pro se nepodařilo vyhodnotit.</translation>
+ <translation type="obsolete">Soubor .pro se nepodařilo vyhodnotit.</translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::S60DeviceRunConfigurationFactory</name>
<message>
<source>%1 on Symbian Device</source>
- <translation>%1 na zařízení Symbian</translation>
+ <translation type="obsolete">%1 na zařízení Symbian</translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::Internal::S60PublisherOvi</name>
<message>
<source>Clean</source>
- <translation>ProÄistit</translation>
+ <translation type="obsolete">ProÄistit</translation>
</message>
<message>
<source>qmake</source>
- <translation>qmake</translation>
+ <translation type="obsolete">qmake</translation>
</message>
<message>
<source>Build</source>
- <translation>Sestavení</translation>
+ <translation type="obsolete">Sestavení</translation>
</message>
<message>
<source>Freeze</source>
- <translation>Znehybnění</translation>
+ <translation type="obsolete">Znehybnění</translation>
</message>
<message>
<source>Secondary clean</source>
- <translation>Druhotný úklid</translation>
+ <translation type="obsolete">Druhotný úklid</translation>
</message>
<message>
<source>Secondary qmake</source>
- <translation>Druhotný QMake</translation>
+ <translation type="obsolete">Druhotný QMake</translation>
</message>
<message>
<source>Secondary build</source>
- <translation>Druhotné sestavení</translation>
+ <translation type="obsolete">Druhotné sestavení</translation>
</message>
<message>
<source>Making SIS file</source>
- <translation>Vytvoření souboru SIS</translation>
+ <translation type="obsolete">Vytvoření souboru SIS</translation>
</message>
<message>
<source>Done.
</source>
- <translation>Hotovo.
+ <translation type="obsolete">Hotovo.
</translation>
</message>
<message>
<source>SIS file not created due to previous errors.
</source>
- <translation>Vytvoření souboru SIS se nezdařilo kvůli předchozím chybám.
+ <translation type="obsolete">Vytvoření souboru SIS se nezdařilo kvůli předchozím chybám.
</translation>
</message>
<message>
<source>Created %1.
</source>
- <translation>%1 byl vytvořen.
+ <translation type="obsolete">%1 byl vytvořen.
</translation>
</message>
</context>
@@ -37805,35 +39380,35 @@ Použitím vývojářského certifikátu nebo jakékoliv jiné podoby podpisu se
<message>
<source>Running %1</source>
<extracomment>%1 is a name of the Publish Step i.e. Clean Step</extracomment>
- <translation>Provádí se %1</translation>
+ <translation type="obsolete">Provádí se %1</translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::Internal::S60PublishingBuildSettingsPageOvi</name>
<message>
<source>No valid Qt version has been detected.&lt;br&gt;Define a correct Qt version in &quot;Options &gt; Qt4&quot;</source>
- <translation>Nepodařilo se najít žádnou platnou verzi Qt &lt;br&gt; Zadejte, prosím, správnou verzi Qt v &quot;Nastavení &gt; Qt 4&quot;</translation>
+ <translation type="obsolete">Nepodařilo se najít žádnou platnou verzi Qt &lt;br&gt; Zadejte, prosím, správnou verzi Qt v &quot;Nastavení &gt; Qt 4&quot;</translation>
</message>
<message>
<source>No valid tool chain has been detected.&lt;br&gt;Define a correct tool chain in &quot;Options &gt; Tool Chains&quot;</source>
- <translation>Nepodařilo se najít žádnou platnou sadu nástrojů.&lt;br&gt; Zadejte, prosím, správnou sadu nástrojů v &quot;Nastavení &gt; Sady nástrojů&quot;</translation>
+ <translation type="obsolete">Nepodařilo se najít žádnou platnou sadu nástrojů.&lt;br&gt; Zadejte, prosím, správnou sadu nástrojů v &quot;Nastavení &gt; Sady nástrojů&quot;</translation>
</message>
<message>
<source>Form</source>
- <translation>Formulář</translation>
+ <translation type="obsolete">Formulář</translation>
</message>
<message>
<source>Choose a build configuration:</source>
- <translation>Vybrat nastavení sestavování:</translation>
+ <translation type="obsolete">Vybrat nastavení sestavování:</translation>
</message>
<message>
<source>Choose a tool chain:</source>
- <translation>Vybrat sadu nástrojů:</translation>
+ <translation type="obsolete">Vybrat sadu nástrojů:</translation>
</message>
<message>
<source>Only Qt versions above 4.6.3 are made available in this wizard.
Previous Qt versions have limitations in building suitable SIS files.</source>
- <translation>Tento průvodce ukáže jen verze Qt po verzi 4.6.3.
+ <translation type="obsolete">Tento průvodce ukáže jen verze Qt po verzi 4.6.3.
Předchozí verze Qt mají omezení v sestavování vhodných souborů SIS.</translation>
</message>
</context>
@@ -37841,26 +39416,26 @@ Předchozí verze Qt mají omezení v sestavování vhodných souborů SIS.</tra
<name>Qt4ProjectManager::Internal::S60PublishingResultsPageOvi</name>
<message>
<source>Open Containing Folder</source>
- <translation>Otevřít obsahující složku</translation>
+ <translation type="obsolete">Otevřít obsahující složku</translation>
</message>
<message>
<source>Close</source>
- <translation>Zavřít</translation>
+ <translation type="obsolete">Zavřít</translation>
</message>
<message>
<source>Form</source>
- <translation>Formulář</translation>
+ <translation type="obsolete">Formulář</translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::Internal::S60PublishingSisSettingsPageOvi</name>
<message>
<source>This should be application&apos;s display name. &lt;br&gt;It cannot be empty.&lt;br&gt;</source>
- <translation>Zobrazený název programu. &lt;br&gt;Nesmí být prázdný.&lt;br&gt;</translation>
+ <translation type="obsolete">Zobrazený název programu. &lt;br&gt;Nesmí být prázdný.&lt;br&gt;</translation>
</message>
<message>
<source>The display name is quite long.&lt;br&gt;It might not be fully visible in the phone&apos;s menu.&lt;br&gt;</source>
- <translation>Zobrazený název je velmi dlouhý. &lt;br&gt;Je možné, že se v nabídce telefonu nezobrazí celý.&lt;br&gt;</translation>
+ <translation type="obsolete">Zobrazený název je velmi dlouhý. &lt;br&gt;Je možné, že se v nabídce telefonu nezobrazí celý.&lt;br&gt;</translation>
</message>
<message>
<source>&quot;%1&quot; is a default vendor name used for testing and development. &lt;br&gt;The Vendor_Name field cannot contain the name &apos;Nokia&apos;. &lt;br&gt;You are advised against using the default names &apos;Vendor&apos; and &apos;Vendor-EN&apos;. &lt;br&gt;You should also not leave the entry blank. &lt;br&gt;see &lt;a href=&quot;http://www.forum.nokia.com/Distribute/Packaging_and_signing.xhtml&quot;&gt;Packaging and Signing&lt;/a&gt; for guidelines.&lt;br&gt;</source>
@@ -37868,11 +39443,11 @@ Předchozí verze Qt mají omezení v sestavování vhodných souborů SIS.</tra
</message>
<message>
<source>%1 is a default vendor name used for testing and development.</source>
- <translation>%1 je výchozí název prodejce používaný pro zkoušení a vývoj.</translation>
+ <translation type="obsolete">%1 je výchozí název prodejce používaný pro zkoušení a vývoj.</translation>
</message>
<message>
<source>%1 are default vendor names used for testing and development.</source>
- <translation>%1 jsou výchozí názvy prodejce používaný pro zkoušení a vývoj.</translation>
+ <translation type="obsolete">%1 jsou výchozí názvy prodejce používaný pro zkoušení a vývoj.</translation>
</message>
<message>
<source>%1 &lt;br&gt;The Vendor_Name field cannot contain the name &apos;Nokia&apos;. &lt;br&gt;You are advised against using the default names &apos;Vendor&apos; and &apos;Vendor-EN&apos;. &lt;br&gt;You should also not leave the entry blank. &lt;br&gt;See &lt;a href=&quot;http://www.forum.nokia.com/Distribute/Packaging_and_signing.xhtml&quot;&gt;Packaging and Signing&lt;/a&gt; for guidelines.&lt;br&gt;</source>
@@ -37892,51 +39467,51 @@ Předchozí verze Qt mají omezení v sestavování vhodných souborů SIS.</tra
</message>
<message>
<source>&quot;%1&quot; is a default vendor name used for testing and development. &lt;br&gt;The Vendor_Name field cannot contain the name &apos;Nokia&apos;. &lt;br&gt;You are advised against using the default names &apos;Vendor&apos; and &apos;Vendor-EN&apos;. &lt;br&gt;You should also not leave the entry blank. &lt;br&gt;see &lt;a href=&quot;http://www.developer.nokia.com/Distribute/Packaging_and_signing.xhtml&quot;&gt;Packaging and Signing&lt;/a&gt; for guidelines.&lt;br&gt;</source>
- <translation>&quot;%1&quot; je výchozí název prodejce používaný pro zkouÅ¡ení a vývoj. &lt;br&gt;Pole Vendor_Name nesmí obsahovat název &apos;Nokia&apos;.&lt;br&gt;Radí se vám, abyste nepoužívali jako výchozí názvy &apos;Vendor&apos; nebo &apos;Vendor-EN&apos;.&lt;br&gt;Pole by také nemÄ›lo zůstat ponecháno prázdné.&lt;br&gt;Podívejte se na &lt;a href=&quot;http://www.developer.nokia.com/Distribute/Packaging_and_signing.xhtml&quot;&gt;zásady pro balíÄkování a podepsání&lt;/a&gt;.&lt;br&gt;</translation>
+ <translation type="obsolete">&quot;%1&quot; je výchozí název prodejce používaný pro zkouÅ¡ení a vývoj. &lt;br&gt;Pole Vendor_Name nesmí obsahovat název &apos;Nokia&apos;.&lt;br&gt;Radí se vám, abyste nepoužívali jako výchozí názvy &apos;Vendor&apos; nebo &apos;Vendor-EN&apos;.&lt;br&gt;Pole by také nemÄ›lo zůstat ponecháno prázdné.&lt;br&gt;Podívejte se na &lt;a href=&quot;http://www.developer.nokia.com/Distribute/Packaging_and_signing.xhtml&quot;&gt;zásady pro balíÄkování a podepsání&lt;/a&gt;.&lt;br&gt;</translation>
</message>
<message>
<source>%1 &lt;br&gt;The Vendor_Name field cannot contain the name &apos;Nokia&apos;. &lt;br&gt;You are advised against using the default names &apos;Vendor&apos; and &apos;Vendor-EN&apos;. &lt;br&gt;You should also not leave the entry blank. &lt;br&gt;See &lt;a href=&quot;http://www.developer.nokia.com/Distribute/Packaging_and_signing.xhtml&quot;&gt;Packaging and Signing&lt;/a&gt; for guidelines.&lt;br&gt;</source>
- <translation>%1 &lt;br&gt;Pole Vendor_Name nesmí obsahovat název &apos;Nokia&apos;.&lt;br&gt;Radí se vám, abyste nepoužívali jako výchozí názvy &apos;Vendor&apos; nebo &apos;Vendor-EN&apos;.&lt;br&gt;Pole by také nemÄ›lo zůstat ponecháno prázdné.&lt;br&gt;Podívejte se na &lt;a href=&quot;http://www.developer.nokia.com/Distribute/Packaging_and_signing.xhtml&quot;&gt;zásady pro balíÄkování a podepsání&lt;/a&gt;.&lt;br&gt;</translation>
+ <translation type="obsolete">%1 &lt;br&gt;Pole Vendor_Name nesmí obsahovat název &apos;Nokia&apos;.&lt;br&gt;Radí se vám, abyste nepoužívali jako výchozí názvy &apos;Vendor&apos; nebo &apos;Vendor-EN&apos;.&lt;br&gt;Pole by také nemÄ›lo zůstat ponecháno prázdné.&lt;br&gt;Podívejte se na &lt;a href=&quot;http://www.developer.nokia.com/Distribute/Packaging_and_signing.xhtml&quot;&gt;zásady pro balíÄkování a podepsání&lt;/a&gt;.&lt;br&gt;</translation>
</message>
<message>
<source>The application UID %1 is only for testing and development.&lt;br&gt;SIS packages built with it cannot be distributed via the Nokia Store.&lt;br&gt;</source>
- <translation>UID programu %1 lze používat jen ke zkouÅ¡ení a vývoji.&lt;br&gt;S tímto vytvoÅ™ené balíÄky SIS nelze rozÅ¡iÅ™ovat pÅ™es Nokia Store.&lt;br&gt;</translation>
+ <translation type="obsolete">UID programu %1 lze používat jen ke zkouÅ¡ení a vývoji.&lt;br&gt;S tímto vytvoÅ™ené balíÄky SIS nelze rozÅ¡iÅ™ovat pÅ™es Nokia Store.&lt;br&gt;</translation>
</message>
<message>
<source>The application UID %1 is a symbiansigned.com UID. &lt;br&gt;Applications with this UID will be rejected by Application Signing Services for Nokia Store.&lt;br&gt;If you want to continue with a symbiansigned.com UID, sign your application on symbiansigned.com and upload the signed application to Nokia Publish.&lt;br&gt;</source>
- <translation>UID programu %1 pochází z symbiansigned.com.&lt;br&gt;Programy s tímto UID budou Application Signing Services Nokia Store odmítnuty.&lt;br&gt;Když chcete použít UID pocházející z symbiansigned.com stammende UID, nechte, prosím, svoji aplikaci podepsat od symbiansigned.com a nahrajte podepsanou aplikaci do Nokia Publish.&lt;br&gt;</translation>
+ <translation type="obsolete">UID programu %1 pochází z symbiansigned.com.&lt;br&gt;Programy s tímto UID budou Application Signing Services Nokia Store odmítnuty.&lt;br&gt;Když chcete použít UID pocházející z symbiansigned.com stammende UID, nechte, prosím, svoji aplikaci podepsat od symbiansigned.com a nahrajte podepsanou aplikaci do Nokia Publish.&lt;br&gt;</translation>
</message>
<message>
<source>The application UID %1 is not an acceptable UID.&lt;br&gt;SIS packages built with it cannot be signed by Application Signing Services for Nokia Store.&lt;br&gt;</source>
- <translation>UID programu %1 je neplatné.&lt;br&gt;S tímto vytvoÅ™ené balíÄky SIS nemohou být podepsány Application Signing Services Nokia Store.&lt;br&gt;</translation>
+ <translation type="obsolete">UID programu %1 je neplatné.&lt;br&gt;S tímto vytvoÅ™ené balíÄky SIS nemohou být podepsány Application Signing Services Nokia Store.&lt;br&gt;</translation>
</message>
<message>
<source>The application UID is a global unique indentifier of the SIS package.&lt;br&gt;</source>
- <translation>UID programu je celosvÄ›tovÄ› jedineÄný identifikátor balíÄku SIS.&lt;br&gt;</translation>
+ <translation type="obsolete">UID programu je celosvÄ›tovÄ› jedineÄný identifikátor balíÄku SIS.&lt;br&gt;</translation>
</message>
<message>
<source>To get a unique application UID for your package file,&lt;br&gt;please register at &lt;a href=&quot;http://info.publish.ovi.com/&quot;&gt;publish.ovi.com&lt;/a&gt;</source>
- <translation>Abyste dostal jedineÄné UID programu pro svůj soubor balíÄku,&lt;br&gt;pÅ™ihlaÅ¡te se, prosím, u &lt;a href=&quot;http://info.publish.ovi.com/&quot;&gt;publish.ovi.com&lt;/a&gt;</translation>
+ <translation type="obsolete">Abyste dostal jedineÄné UID programu pro svůj soubor balíÄku,&lt;br&gt;pÅ™ihlaÅ¡te se, prosím, u &lt;a href=&quot;http://info.publish.ovi.com/&quot;&gt;publish.ovi.com&lt;/a&gt;</translation>
</message>
<message>
<source>If this UID is from symbiansigned.com, It will be rejected by Application Signing Services for Nokia Store.&lt;br&gt;If you want to continue with a symbiansigned.com UID, sign your application on symbiansigned.com and upload the signed application to Nokia Publish.&lt;br&gt;It is, however, recommended that you obtain a UID from &lt;a href=&quot;http://info.publish.ovi.com/&quot;&gt;publish.ovi.com&lt;/a&gt;</source>
- <translation>Pokud je toto UID z symbiansigned.com, bude odmítnuto Application Signing Services pro Nokia Store.&lt;br&gt;Pokud chcete pokraÄovat s symbiansigned.com UID, pÅ™ihlaste svůj program na symbiansigned.com a podepsaný program nahrajte do Nokia Publish.&lt;br&gt;NicménÄ› se doporuÄuje, abyste obdrželi UID z &lt;a href=&quot;http://info.publish.ovi.com/&quot;&gt;publish.ovi.com&lt;/a&gt;</translation>
+ <translation type="obsolete">Pokud je toto UID z symbiansigned.com, bude odmítnuto Application Signing Services pro Nokia Store.&lt;br&gt;Pokud chcete pokraÄovat s symbiansigned.com UID, pÅ™ihlaste svůj program na symbiansigned.com a podepsaný program nahrajte do Nokia Publish.&lt;br&gt;NicménÄ› se doporuÄuje, abyste obdrželi UID z &lt;a href=&quot;http://info.publish.ovi.com/&quot;&gt;publish.ovi.com&lt;/a&gt;</translation>
</message>
<message>
<source>%1 need(s) to be certified signed. Please go to &lt;a href=&quot;symbiansigned.com&quot;&gt;symbiansigned.com&lt;/a&gt; for guidance.</source>
- <translation>%1 musí mít certifikát a být podepsán. Obraťte se, prosím, pro další vedení na &lt;a href=&quot;symbiansigned.com&quot;&gt;symbiansigned.com&lt;/a&gt; .</translation>
+ <translation type="obsolete">%1 musí mít certifikát a být podepsán. Obraťte se, prosím, pro další vedení na &lt;a href=&quot;symbiansigned.com&quot;&gt;symbiansigned.com&lt;/a&gt; .</translation>
</message>
<message>
<source>&lt;br&gt;%1 need(s) manufacturer approval.&lt;br&gt;</source>
- <translation>&lt;br&gt;%1 potřebuje schválení výrobce.&lt;br&gt;</translation>
+ <translation type="obsolete">&lt;br&gt;%1 potřebuje schválení výrobce.&lt;br&gt;</translation>
</message>
<message>
<source>Some capabilities might require a special kind of signing or approval from the manufacturer.&lt;br&gt;</source>
- <translation>Některá oprávnění možná potřebují zvláštní podepsání nebo schválení výrobce.&lt;br&gt;</translation>
+ <translation type="obsolete">Některá oprávnění možná potřebují zvláštní podepsání nebo schválení výrobce.&lt;br&gt;</translation>
</message>
<message>
<source>Please verify that you have a released version of Qt. &lt;br&gt;&lt;a href=&quot;http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian&quot;&gt;Qt Packages Distributed by Smart Installer&lt;/a&gt; has a list of released Qt versions.</source>
- <translation>Ujistěte se, prosím, že používáte vydanou verzi Qt. &lt;br&gt;&lt;a href=&quot;http://wiki.developer.nokia.com/index.php/Nokia_Smart_Installer_for_Symbian&quot;&gt;Qt Packages Distributed by Smart Installer&lt;/a&gt; má seznam uvolněných verzí.</translation>
+ <translation type="obsolete">Ujistěte se, prosím, že používáte vydanou verzi Qt. &lt;br&gt;&lt;a href=&quot;http://wiki.developer.nokia.com/index.php/Nokia_Smart_Installer_for_Symbian&quot;&gt;Qt Packages Distributed by Smart Installer&lt;/a&gt; má seznam uvolněných verzí.</translation>
</message>
<message>
<source>Please verify that you have a released version of Qt. &lt;br&gt;&lt;a href=&quot;http://wiki.forum.nokia.com/index.php/Nokia_Smart_Installer_for_Symbian&quot;&gt;Qt Packages Distributed by Smart Installer&lt;/a&gt; has a list of released Qt versions.</source>
@@ -37944,51 +39519,51 @@ Předchozí verze Qt mají omezení v sestavování vhodných souborů SIS.</tra
</message>
<message>
<source>Form</source>
- <translation>Formulář</translation>
+ <translation type="obsolete">Formulář</translation>
</message>
<message>
<source>Localised Vendor Names</source>
- <translation>Lokalizovaný název prodejce</translation>
+ <translation type="obsolete">Lokalizovaný název prodejce</translation>
</message>
<message>
<source>Current Global Vendor Name</source>
- <translation>NynÄ›jší jednoznaÄný název prodejce</translation>
+ <translation type="obsolete">NynÄ›jší jednoznaÄný název prodejce</translation>
</message>
<message>
<source>Display name:</source>
- <translation>Název k zobrazení:</translation>
+ <translation type="obsolete">Název k zobrazení:</translation>
</message>
<message>
<source>Localised vendor names:</source>
- <translation>Lokalizovaný název prodejce:</translation>
+ <translation type="obsolete">Lokalizovaný název prodejce:</translation>
</message>
<message>
<source>Capabilities:</source>
- <translation>Oprávnění:</translation>
+ <translation type="obsolete">Oprávnění:</translation>
</message>
<message>
<source>Current UID3</source>
- <translation>Nynější UID3</translation>
+ <translation type="obsolete">Nynější UID3</translation>
</message>
<message>
<source>Application UID:</source>
- <translation>UID programu:</translation>
+ <translation type="obsolete">UID programu:</translation>
</message>
<message>
<source>Current Qt Version</source>
- <translation>Nynější verze Qt</translation>
+ <translation type="obsolete">Nynější verze Qt</translation>
</message>
<message>
<source>Qt version used in builds:</source>
- <translation>Při sestavování používaná verze Qt:</translation>
+ <translation type="obsolete">Při sestavování používaná verze Qt:</translation>
</message>
<message>
<source>Current set of capabilities</source>
- <translation>Nynější oprávnění</translation>
+ <translation type="obsolete">Nynější oprávnění</translation>
</message>
<message>
<source>Global vendor name:</source>
- <translation>JednoznaÄný název prodejce:</translation>
+ <translation type="obsolete">JednoznaÄný název prodejce:</translation>
</message>
</context>
<context>
@@ -38021,7 +39596,7 @@ Váš program bude také odmítnut v případě, že si vyberete nějakou neuvol
</message>
<message>
<source>Publish Qt Symbian Applications to Nokia Store</source>
- <translation>Zveřejnit jako program Qt Symbian v Nokia Store</translation>
+ <translation type="obsolete">Zveřejnit jako program Qt Symbian v Nokia Store</translation>
</message>
<message>
<source>This wizard checks your project file to make sure it complies with Nokia Store submission criteria.
@@ -38034,7 +39609,7 @@ You cannot use it for the Certified Signed and Manufacturer level capabilities:
NetworkControl, MultimediaDD, CommDD, DiskAdmin, AllFiles, DRM and TCB.
Your application will also be rejected by Nokia Store QA if you choose an unreleased Qt version on the next page.</source>
- <translation>Tento průvodce přezkouší váš projektový soubor kvůli ujištění, že odpovídá měřítkům Nokia Store.
+ <translation type="obsolete">Tento průvodce přezkouší váš projektový soubor kvůli ujištění, že odpovídá měřítkům Nokia Store.
Tento průvodce vytvoří soubory s balíÄky SIS, které mohou být odeslány ke zveÅ™ejnÄ›ní na Nokia.
@@ -38054,53 +39629,53 @@ Váš program bude Nokia Store QA také odmítnut v případě, že si vyberete
</message>
<message>
<source>Publishing to Nokia Store</source>
- <translation>Zveřejnit na Nokia Store</translation>
+ <translation type="obsolete">Zveřejnit na Nokia Store</translation>
</message>
<message>
<source>Build Configuration</source>
- <translation>Nastavení sestavování</translation>
+ <translation type="obsolete">Nastavení sestavování</translation>
</message>
<message>
<source>Project File Checks</source>
- <translation>Na projektovém souboru provedená přezkoušení</translation>
+ <translation type="obsolete">Na projektovém souboru provedená přezkoušení</translation>
</message>
<message>
<source>Creating an Uploadable SIS File</source>
- <translation>Vytváří se nahrávatelný soubor SIS</translation>
+ <translation type="obsolete">Vytváří se nahrávatelný soubor SIS</translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::S60RunControlBase</name>
<message>
<source>Launching</source>
- <translation>Spouští se</translation>
+ <translation type="obsolete">Spouští se</translation>
</message>
<message>
<source>Please finalise the installation on your device.
</source>
- <translation>UkonÄete, prosím, instalaci na vaÅ¡em zařízení.
+ <translation type="obsolete">UkonÄete, prosím, instalaci na vaÅ¡em zařízení.
</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;center&gt;&lt;i&gt;%1&lt;/i&gt; is still running on the device.&lt;/center&gt;&lt;center&gt;Terminating it can leave the target in an inconsistent state.&lt;/center&gt;&lt;center&gt;Would you still like to terminate it?&lt;/center&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;center&gt;&lt;i&gt;%1&lt;/i&gt; jeÅ¡tÄ› běží na mobilním zařízení.&lt;center/&gt;&lt;center&gt;UkonÄení může vést k nesoudržnému stavu cíle.&lt;/center&gt;&lt;center&gt;Chcete jej pÅ™ece jen ukonÄit?&lt;/center&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation type="obsolete">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;center&gt;&lt;i&gt;%1&lt;/i&gt; jeÅ¡tÄ› běží na mobilním zařízení.&lt;center/&gt;&lt;center&gt;UkonÄení může vést k nesoudržnému stavu cíle.&lt;/center&gt;&lt;center&gt;Chcete jej pÅ™ece jen ukonÄit?&lt;/center&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Application Still Running</source>
- <translation>Program stále běží</translation>
+ <translation type="obsolete">Program stále běží</translation>
</message>
<message>
<source>Force Quit</source>
- <translation>UkonÄit</translation>
+ <translation type="obsolete">UkonÄit</translation>
</message>
<message>
<source>Keep Running</source>
- <translation>PokraÄovat</translation>
+ <translation type="obsolete">PokraÄovat</translation>
</message>
<message>
<source>Finished.
</source>
- <translation>DokonÄeno.
+ <translation type="obsolete">DokonÄeno.
</translation>
</message>
</context>
@@ -38108,44 +39683,44 @@ Váš program bude Nokia Store QA také odmítnut v případě, že si vyberete
<name>Qt4ProjectManager::SbsV2Parser</name>
<message>
<source>SBSv2 build log</source>
- <translation>Záznam o sestavování SBSv2</translation>
+ <translation type="obsolete">Záznam o sestavování SBSv2</translation>
</message>
<message>
<source>The file &apos;%1&apos; is not a SBSv2 log file.</source>
- <translation>Soubor &apos;%1; není záznam o sestavování SBSv2.</translation>
+ <translation type="obsolete">Soubor &apos;%1; není záznam o sestavování SBSv2.</translation>
</message>
<message>
<source>Running command: %1
</source>
- <translation>Provádí se příkaz: %1
+ <translation type="obsolete">Provádí se příkaz: %1
</translation>
</message>
<message>
<source>Recipe %1 failed with exit code %2.</source>
<extracomment>%1 is the SBSv2 build recipe name, %2 the return code of the failed command</extracomment>
- <translation>Recipe %1 selhalo. Vrácená hodnota %2.</translation>
+ <translation type="obsolete">Recipe %1 selhalo. Vrácená hodnota %2.</translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::Internal::SymbianQtConfigWidget</name>
<message>
<source>S60 SDK:</source>
- <translation>S60 SDK:</translation>
+ <translation type="obsolete">S60 SDK:</translation>
</message>
<message>
<source>SBS v2 directory:</source>
- <translation>Adresář SBS-v2:</translation>
+ <translation type="obsolete">Adresář SBS-v2:</translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::Internal::WinscwToolChainFactory</name>
<message>
<source>WINSCW</source>
- <translation>WINSCW</translation>
+ <translation type="obsolete">WINSCW</translation>
</message>
<message>
<source>WINSCW from Qt version</source>
- <translation>WINSCW z verze Qt</translation>
+ <translation type="obsolete">WINSCW z verze Qt</translation>
</message>
</context>
<context>
@@ -38171,12 +39746,12 @@ Váš program bude Nokia Store QA také odmítnut v případě, že si vyberete
<message>
<source>%1 Debug</source>
<extracomment>Name of a debug build configuration to created by a project wizard, %1 being the Qt version name. We recommend not translating it.</extracomment>
- <translation>%1 ladění</translation>
+ <translation type="obsolete">%1 ladění</translation>
</message>
<message>
<source>%1 Release</source>
<extracomment>Name of a release build configuration to be created by a project wizard, %1 being the Qt version name. We recommend not translating it.</extracomment>
- <translation>%1 vydání</translation>
+ <translation type="obsolete">%1 vydání</translation>
</message>
</context>
<context>
@@ -38184,23 +39759,23 @@ Váš program bude Nokia Store QA také odmítnut v případě, že si vyberete
<message>
<source>&lt;b&gt;Error:&lt;/b&gt; </source>
<comment>Severity is Task::Error</comment>
- <translation>&lt;b&gt;Chyba:&lt;/b&gt; </translation>
+ <translation type="obsolete">&lt;b&gt;Chyba:&lt;/b&gt; </translation>
</message>
<message>
<source>&lt;b&gt;Warning:&lt;/b&gt; </source>
<comment>Severity is Task::Warning</comment>
- <translation>&lt;b&gt;Varování:&lt;/b&gt; </translation>
+ <translation type="obsolete">&lt;b&gt;Varování:&lt;/b&gt; </translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::Qt4DefaultTargetSetupWidget</name>
<message>
<source>Add build from:</source>
- <translation>Přidat sestavování z:</translation>
+ <translation type="obsolete">Přidat sestavování z:</translation>
</message>
<message>
<source>Add Build</source>
- <translation>Přidat sestavování</translation>
+ <translation type="obsolete">Přidat sestavování</translation>
</message>
<message>
<source>Create Build Configurations:</source>
@@ -38208,55 +39783,55 @@ Váš program bude Nokia Store QA také odmítnut v případě, že si vyberete
</message>
<message>
<source>Create build configurations:</source>
- <translation>Vytvořit nastavení sestavování:</translation>
+ <translation type="obsolete">Vytvořit nastavení sestavování:</translation>
</message>
<message>
<source>For Each Qt Version One Debug And One Release</source>
- <translation>Pro každou verzi Qt vždy Ladění a Vydání</translation>
+ <translation type="obsolete">Pro každou verzi Qt vždy Ladění a Vydání</translation>
</message>
<message>
<source>For One Qt Version One Debug And One Release</source>
- <translation>Pro jednu verzi Qt vždy Ladění a Vydání</translation>
+ <translation type="obsolete">Pro jednu verzi Qt vždy Ladění a Vydání</translation>
</message>
<message>
<source>Manually</source>
- <translation>RuÄní</translation>
+ <translation type="obsolete">RuÄní</translation>
</message>
<message>
<source>None</source>
- <translation>Žádný</translation>
+ <translation type="obsolete">Žádný</translation>
</message>
<message>
<source>Shadow build</source>
- <translation>Stínové sestavování</translation>
+ <translation type="obsolete">Stínové sestavování</translation>
</message>
<message>
<source>Qt version:</source>
- <translation>Verze Qt:</translation>
+ <translation type="obsolete">Verze Qt:</translation>
</message>
<message>
<source>No Build Found</source>
- <translation>Žádná sestavení nebyla nalezena</translation>
+ <translation type="obsolete">Žádná sestavení nebyla nalezena</translation>
</message>
<message>
<source>Incompatible Build Found</source>
- <translation>Nalezeno nesluÄitelné sestavování</translation>
+ <translation type="obsolete">Nalezeno nesluÄitelné sestavování</translation>
</message>
<message>
<source>The build found in %1 is incompatible with this target.</source>
- <translation>Sestavení nalezené ve složce %1 není sluÄitelné s tímto cílem.</translation>
+ <translation type="obsolete">Sestavení nalezené ve složce %1 není sluÄitelné s tímto cílem.</translation>
</message>
<message>
<source>Already Imported Build</source>
- <translation>Již zavedené sestavení</translation>
+ <translation type="obsolete">Již zavedené sestavení</translation>
</message>
<message>
<source>The build found in %1 is already imported.</source>
- <translation>Sestavení nalezené v %1 je již zavedeno.</translation>
+ <translation type="obsolete">Sestavení nalezené v %1 je již zavedeno.</translation>
</message>
<message>
<source>Import build from %1.</source>
- <translation>Zavést sestavení z %1.</translation>
+ <translation type="obsolete">Zavést sestavení z %1.</translation>
</message>
<message>
<source>Use Shadow Building</source>
@@ -38269,12 +39844,12 @@ Váš program bude Nokia Store QA také odmítnut v případě, že si vyberete
<message>
<source>debug</source>
<extracomment>Debug build</extracomment>
- <translation>Ladění</translation>
+ <translation type="obsolete">Ladění</translation>
</message>
<message>
<source>release</source>
<extracomment>release build</extracomment>
- <translation>Vydání</translation>
+ <translation type="obsolete">Vydání</translation>
</message>
<message>
<source>No build found</source>
@@ -38282,7 +39857,7 @@ Váš program bude Nokia Store QA také odmítnut v případě, že si vyberete
</message>
<message>
<source>No build found in %1 matching project %2.</source>
- <translation>V %1 nebylo nalezeno žádné sestavení odpovídající projektu %2.</translation>
+ <translation type="obsolete">V %1 nebylo nalezeno žádné sestavení odpovídající projektu %2.</translation>
</message>
<message>
<source>Incompatible build found</source>
@@ -38299,19 +39874,23 @@ Váš program bude Nokia Store QA také odmítnut v případě, že si vyberete
<message>
<source>&lt;b&gt;Error:&lt;/b&gt; </source>
<comment>Severity is Task::Error</comment>
- <translation>&lt;b&gt;Chyba:&lt;/b&gt; </translation>
+ <translation type="obsolete">&lt;b&gt;Chyba:&lt;/b&gt; </translation>
</message>
<message>
<source>&lt;b&gt;Warning:&lt;/b&gt; </source>
<comment>Severity is Task::Warning</comment>
- <translation>&lt;b&gt;Varování:&lt;/b&gt; </translation>
+ <translation type="obsolete">&lt;b&gt;Varování:&lt;/b&gt; </translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::AbstractMobileAppWizardDialog</name>
<message>
<source>Qt Versions</source>
- <translation>Verze Qt</translation>
+ <translation type="obsolete">Verze Qt</translation>
+ </message>
+ <message>
+ <source>Targets</source>
+ <translation>Cíle</translation>
</message>
<message>
<source>Mobile Options</source>
@@ -38319,7 +39898,7 @@ Váš program bude Nokia Store QA také odmítnut v případě, že si vyberete
</message>
<message>
<source>Symbian Specific</source>
- <translation>Zvláštní pro Symbian</translation>
+ <translation type="obsolete">Zvláštní pro Symbian</translation>
</message>
<message>
<source>Maemo5 And MeeGo Specific</source>
@@ -38365,9 +39944,17 @@ Váš program bude Nokia Store QA také odmítnut v případě, že si vyberete
<message>
<source>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. For example, you can create signed Symbian Installation System (SIS) packages for this type of projects.</source>
+You can build the application and deploy it on desktop and mobile target platforms.</source>
<translation>Vytvoří projekt HTML5, který obsahuje kód HTML5 a C++ a na zobrazování používá WebKit.
+Můžete tuto aplikaci sestavit a nasadit jak na stolním poÄítaÄi tak na mobilních zařízeních.</translation>
+ </message>
+ <message>
+ <source>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. For example, you can create signed Symbian Installation System (SIS) packages for this type of projects.</source>
+ <translation type="obsolete">Vytvoří projekt HTML5, který obsahuje kód HTML5 a C++ a na zobrazování používá WebKit.
+
Můžete tuto aplikaci sestavit a nasadit jak na stolním poÄítaÄi tak na mobilních zařízeních. Tento typ projektu například umožní vytvoÅ™ení podepsaného balíÄku Symbian Installation System (SIS).</translation>
</message>
</context>
@@ -38439,7 +40026,7 @@ Vybere verze Qt pro Simulator a mobilní cíle, pokud jsou dostupné.</translati
<name>Qt4ProjectManager::Internal::QtQuickApp</name>
<message>
<source>The QML import path &apos;%1&apos; cannot be found.</source>
- <translation>Cestu pro zavedení QML &apos;%1 se nepodařilo najít.</translation>
+ <translation>Cestu pro importování QML &apos;%1 se nepodařilo najít.</translation>
</message>
<message>
<source>The QML module &apos;%1&apos; cannot be found.</source>
@@ -38509,29 +40096,57 @@ Můžete tuto aplikaci sestavit a nasadit jak na stolním poÄítaÄi tak na mob
</message>
<message>
<source>Qt Quick Application (Built-in Elements)</source>
- <translation>Program Qt Quick (jen vestavěné prvky)</translation>
+ <translation type="obsolete">Program Qt Quick (jen vestavěné prvky)</translation>
</message>
<message>
<source>The built-in elements in the QtQuick namespace allow you to write cross-platform applications with a custom look and feel.
Requires &lt;b&gt;Qt 4.7.0&lt;/b&gt; or newer.</source>
- <translation>Vestavěné prvky ve jmenném prostoru QtQuick dovolují psát víceplatformní programy s uživatelsky stanoveným vzhledem.
+ <translation type="obsolete">Vestavěné prvky ve jmenném prostoru QtQuick dovolují psát víceplatformní programy s uživatelsky stanoveným vzhledem.
Vyžaduje Qt 4.7.0 nebo novější.</translation>
</message>
<message>
<source>Qt Quick Application for Symbian</source>
- <translation>Program Qt Quick pro Symbian</translation>
+ <translation type="obsolete">Program Qt Quick pro Symbian</translation>
</message>
<message>
<source>The Qt Quick Components for Symbian are a set of ready-made components that are designed with specific native appearance for the Symbian platform.
Requires &lt;b&gt;Qt 4.7.4&lt;/b&gt; or newer, and the component set installed for your Qt version.</source>
- <translation>SouÄástky Qt Quick pro Symbian jsou souborem pÅ™edpÅ™ipravených souÄástek, který jsou navrženy s původním vzhledem pro Symbian.
+ <translation type="obsolete">SouÄástky Qt Quick pro Symbian jsou souborem pÅ™edpÅ™ipravených souÄástek, který jsou navrženy s původním vzhledem pro Symbian.
Vyžaduje &lt;b&gt;Qt 4.7.4&lt;/b&gt; nebo novÄ›jší a soubor souÄástek nainstalovaný pro tuto verzi Qt.</translation>
</message>
<message>
+ <source>Qt Quick 1 Application (Built-in Elements)</source>
+ <translation>Program Qt Quick 1 (jen vestavěné prvky)</translation>
+ </message>
+ <message>
+ <source>The built-in elements in the QtQuick 1 namespace allow you to write cross-platform applications with a custom look and feel.
+
+Requires &lt;b&gt;Qt 4.7.0&lt;/b&gt; or newer.</source>
+ <translation>Vestavěné prvky ve jmenném prostoru QtQuick 1 dovolují psát víceplatformní programy s uživatelsky stanoveným vzhledem.
+
+Vyžaduje &lt;b&gt;Qt 4.7.0&lt;/b&gt; nebo novější.</translation>
+ </message>
+ <message>
+ <source>Qt Quick 2 Application (Built-in Elements)</source>
+ <translation>Program Qt Quick 2 (jen vestavěné prvky)</translation>
+ </message>
+ <message>
+ <source>Creates a Qt Quick application project that can contain both QML and C++ code and includes a QQuickView.
+
+The built-in elements in the QtQuick 2 namespace allow you to write cross-platform applications with a custom look and feel.
+
+Requires &lt;b&gt;Qt 5.0&lt;/b&gt; or newer.</source>
+ <translation>Vytvoří projekt programu Qt Quick, který může obsahovat jak kód QML tak C++ a zahrnuje QQuickView.
+
+Vestavěné prvky ve jmenném prostoru QtQuick 2 dovolují psát víceplatformní programy s uživatelsky stanoveným vzhledem.
+
+Vyžaduje &lt;b&gt;Qt 5.0&lt;/b&gt; nebo novější.</translation>
+ </message>
+ <message>
<source>Qt Quick Application for MeeGo Harmattan</source>
<translation>Program Qt Quick pro Meego Harmattan</translation>
</message>
@@ -38603,24 +40218,65 @@ Vyžaduje &lt;b&gt;Qt 4.7.0&lt;/b&gt; nebo novější.</translation>
<name>Qt4ProjectManager::Internal::SubdirsProjectWizardDialog</name>
<message>
<source>This wizard generates a Qt4 subdirs project. Add subprojects to it later on by using the other wizards.</source>
- <translation>Tento průvodce vytvoří projekt Qt4 s podadresáři. DílÄí projekty lze pozdÄ›ji pÅ™idat s pomocí dalších průvodců.</translation>
+ <translation type="obsolete">Tento průvodce vytvoří projekt Qt4 s podadresáři. DílÄí projekty lze pozdÄ›ji pÅ™idat s pomocí dalších průvodců.</translation>
+ </message>
+ <message>
+ <source>This wizard generates a Qt subdirs project. Add subprojects to it later on by using the other wizards.</source>
+ <translation>Tento průvodce vytvoří projekt Qt s podadresáři. DílÄí projekty lze pozdÄ›ji pÅ™idat s pomocí dalších průvodců.</translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::TargetSetupPage</name>
<message>
<source>Target Setup</source>
- <translation>Nastavení cíle</translation>
+ <translation type="obsolete">Nastavení cíle</translation>
</message>
<message>
<source>Qt Creator can set up the following targets for project &lt;b&gt;%1&lt;/b&gt;:</source>
<comment>%1: Project name</comment>
- <translation>Qt Creator může pro projekt &lt;b&gt;%1&lt;/b&gt; nastavit následující cíle:</translation>
+ <translation type="obsolete">Qt Creator může pro projekt &lt;b&gt;%1&lt;/b&gt; nastavit následující cíle:</translation>
+ </message>
+ <message>
+ <source>&lt;span style=&quot; font-weight:600;&quot;&gt;No valid kits found.&lt;/span&gt;</source>
+ <translation>&lt;span style=&quot; font-weight:600;&quot;&gt;Nenalezeny žádné platné sady.&lt;/span&gt;</translation>
+ </message>
+ <message>
+ <source>Please add a kit in the &lt;a href=&quot;buildandrun&quot;&gt;options&lt;/a&gt; or via the maintenance tool of the SDK.</source>
+ <translation>Přidejte, prosím, sadu do &lt;a href=&quot;buildandrun&quot;&gt;voleb&lt;/a&gt; nebo přes nástroj údržby SDK.</translation>
+ </message>
+ <message>
+ <source>Select Kits for Your Project</source>
+ <translation>Vyberte sady pro svůj projekt</translation>
+ </message>
+ <message>
+ <source>Kit Selection</source>
+ <translation>Výběr sady</translation>
+ </message>
+ <message>
+ <source>%1 - temporary</source>
+ <translation>%1 - doÄasný</translation>
+ </message>
+ <message>
+ <source>Qt Creator can use the following kits for project &lt;b&gt;%1&lt;/b&gt;:</source>
+ <comment>%1: Project name</comment>
+ <translation>Qt Creator může pro projekt &lt;b&gt;%1&lt;/b&gt; použít následující sady:</translation>
+ </message>
+ <message>
+ <source>No Build Found</source>
+ <translation>Žádná sestavení nebyla nalezena</translation>
+ </message>
+ <message>
+ <source>No build found in %1 matching project %2.</source>
+ <translation>V %1 nebylo nalezeno žádné sestavení odpovídající projektu %2.</translation>
</message>
</context>
<context>
<name>BaseQtVersion</name>
<message>
+ <source>The compiler &apos;%1&apos; (%2) cannot produce code for the Qt version &apos;%3&apos; (%4).</source>
+ <translation>PÅ™ekladaÄ &apos;%1&apos; (%2) nemůže vytvoÅ™it kód pro Qt ve verzi &apos;%3&apos; (%4).</translation>
+ </message>
+ <message>
<source>Name:</source>
<translation>Název:</translation>
</message>
@@ -38824,7 +40480,7 @@ Důvod: %2</translation>
</message>
<message>
<source>Remove invalid Qt Versions</source>
- <translation>Odstranit neplatné verze Qt</translation>
+ <translation type="obsolete">Odstranit neplatné verze Qt</translation>
</message>
<message>
<source>Do you want to remove all invalid Qt Versions?&lt;br&gt;&lt;ul&gt;&lt;li&gt;%1&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;will be removed.</source>
@@ -38836,11 +40492,11 @@ Důvod: %2</translation>
</message>
<message>
<source>No tool chain can produce code for this Qt version. Please define one or more tool chains.</source>
- <translation>Žádná sada nástrojů nemůže vytvářet kód pro tuto verzi Qt. Stanovte, prosím, jednu Äi více sad nástrojů.</translation>
+ <translation type="obsolete">Žádná sada nástrojů nemůže vytvářet kód pro tuto verzi Qt. Stanovte, prosím, jednu Äi více sad nástrojů.</translation>
</message>
<message>
<source>Not all possible target environments can be supported due to missing tool chains.</source>
- <translation>Ne všechna cílová prostředí mohou být podporována, neboť chybí některé sady nástrojů.</translation>
+ <translation type="obsolete">Ne všechna cílová prostředí mohou být podporována, neboť chybí některé sady nástrojů.</translation>
</message>
<message>
<source>The following ABIs are currently not supported:&lt;ul&gt;&lt;li&gt;%1&lt;/li&gt;&lt;/ul&gt;</source>
@@ -38860,10 +40516,38 @@ Důvod: %2</translation>
</message>
<message>
<source>Qt versions incompatible</source>
- <translation>NesluÄitelné verze Qt</translation>
+ <translation type="obsolete">NesluÄitelné verze Qt</translation>
</message>
<message>
<source>The qt version selected must be for the same target.</source>
+ <translation type="obsolete">Vybraná verze Qt musí být pro stejný cíl.</translation>
+ </message>
+ <message>
+ <source>Remove Invalid Qt Versions</source>
+ <translation>Odstranit neplatné verze Qt</translation>
+ </message>
+ <message>
+ <source>No compiler can produce code for this Qt version. Please define one or more compilers.</source>
+ <translation>Žádný pÅ™ekladaÄ nemůže vytvářet kód pro tuto verzi Qt. Stanovte, prosím, jeden Äi více pÅ™ekladaÄů.</translation>
+ </message>
+ <message>
+ <source>Not all possible target environments can be supported due to missing compilers.</source>
+ <translation>Ne vÅ¡echna cílová prostÅ™edí mohou být podporována, neboÅ¥ chybí nÄ›které pÅ™ekladaÄe.</translation>
+ </message>
+ <message>
+ <source>Qt known</source>
+ <translation>Qt známo</translation>
+ </message>
+ <message>
+ <source>This Qt version was already registered as &quot;%1&quot;.</source>
+ <translation>Tato verze Qt již byla přihlášena jako &quot;%1&quot;.</translation>
+ </message>
+ <message>
+ <source>Incompatible Qt Versions</source>
+ <translation>NesluÄitelné verze Qt</translation>
+ </message>
+ <message>
+ <source>The Qt version selected must be for the same target.</source>
<translation>Vybraná verze Qt musí být pro stejný cíl.</translation>
</message>
<message>
@@ -38889,18 +40573,18 @@ Důvod: %2</translation>
</message>
<message>
<source>S60 SDK:</source>
- <translation>S60 SDK:</translation>
+ <translation type="obsolete">S60 SDK:</translation>
</message>
<message>
<source>SBS v2 directory:</source>
- <translation>Adresář SBS-v2:</translation>
+ <translation type="obsolete">Adresář SBS-v2:</translation>
</message>
</context>
<context>
<name>QtSupport::QtVersionManager</name>
<message>
<source>MinGW from %1</source>
- <translation>MinGW z %1</translation>
+ <translation type="obsolete">MinGW z %1</translation>
</message>
</context>
<context>
@@ -38953,7 +40637,7 @@ Důvod: %2</translation>
<name>RemoteLinux::DeployableFilesPerProFile</name>
<message>
<source>&lt;no target path set&gt;</source>
- <translation>&lt;Není nastavena žádná cílová cesta&gt;</translation>
+ <translation type="obsolete">&lt;Není nastavena žádná cílová cesta&gt;</translation>
</message>
<message>
<source>Local File Path</source>
@@ -39029,15 +40713,15 @@ DodateÄnÄ› bude vyzkouÅ¡eno spojení se zařízením.</translation>
<name>RemoteLinux::Internal::LinuxDeviceFactorySelectionDialog</name>
<message>
<source>Start Wizard</source>
- <translation>Spustit průvodce</translation>
+ <translation type="obsolete">Spustit průvodce</translation>
</message>
<message>
<source>Device Configuration Wizard Selection</source>
- <translation>Zřízení nového nastavení zařízení</translation>
+ <translation type="obsolete">Zřízení nového nastavení zařízení</translation>
</message>
<message>
<source>Available device types:</source>
- <translation>Dostupné typy zařízení:</translation>
+ <translation type="obsolete">Dostupné typy zařízení:</translation>
</message>
</context>
<context>
@@ -39518,7 +41202,7 @@ ale pÅ™esto se pokraÄuje dál.</translation>
</message>
<message>
<source>Create RPM Package</source>
- <translation>VytvoÅ™it soubor balíÄku RPM</translation>
+ <translation type="obsolete">VytvoÅ™it soubor balíÄku RPM</translation>
</message>
<message>
<source>Create tarball</source>
@@ -40526,41 +42210,45 @@ Chcete je přidat do projektu?&lt;/html&gt;</translation>
<message>
<source>Preparing remote side...
</source>
- <translation>Připravuje se vzdálená strana...
+ <translation type="obsolete">Připravuje se vzdálená strana...
</translation>
</message>
<message>
<source>Remote application failed with exit code %1.</source>
- <translation>Vzdálený program byl ukonÄen. Vrácená hodnota %1.</translation>
+ <translation type="obsolete">Vzdálený program byl ukonÄen. Vrácená hodnota %1.</translation>
</message>
<message>
<source>The gdbserver process closed unexpectedly.</source>
- <translation>Proces Gdb serveru byl neoÄekávanÄ› ukonÄen.</translation>
+ <translation type="obsolete">Proces Gdb serveru byl neoÄekávanÄ› ukonÄen.</translation>
</message>
<message>
<source>Initial setup failed: %1</source>
- <translation>PoÄáteÄní nastavení se nezdaÅ™ilo: %1</translation>
+ <translation type="obsolete">PoÄáteÄní nastavení se nezdaÅ™ilo: %1</translation>
</message>
<message>
<source>Not enough free ports on device for debugging.</source>
- <translation>Na zařízení není dostatek volných přípojek pro ladění.</translation>
+ <translation type="obsolete">Na zařízení není dostatek volných přípojek pro ladění.</translation>
</message>
</context>
<context>
<name>RemoteLinux::RemoteLinuxRunConfiguration</name>
<message>
<source>The .pro file is being parsed.</source>
- <translation>Soubor .pro je právě vyhodnocován.</translation>
+ <translation type="obsolete">Soubor .pro je právě vyhodnocován.</translation>
</message>
<message>
<source>The .pro file could not be parsed.</source>
- <translation>Soubor .pro se nepodařilo vyhodnotit.</translation>
+ <translation type="obsolete">Soubor .pro se nepodařilo vyhodnotit.</translation>
</message>
<message>
<source>No device configuration set.</source>
<translation type="obsolete">Nebylo zadáno žádné nastavení zařízení.</translation>
</message>
<message>
+ <source>The .pro file &apos;%1&apos; is being parsed.</source>
+ <translation>Soubor .pro &apos;%1&apos; se právě zpracovává.</translation>
+ </message>
+ <message>
<source>No active build configuration.</source>
<translation>Není žádné Äinné nastavení sestavování.</translation>
</message>
@@ -40607,15 +42295,15 @@ Chcete je přidat do projektu?&lt;/html&gt;</translation>
</message>
<message>
<source>&lt;a href=&quot;%1&quot;&gt;Manage device configurations&lt;/a&gt;</source>
- <translation>&lt;a href=&quot;%1&quot;&gt;Spravovat nastavení zařízení&lt;/a&gt;</translation>
+ <translation type="obsolete">&lt;a href=&quot;%1&quot;&gt;Spravovat nastavení zařízení&lt;/a&gt;</translation>
</message>
<message>
<source>&lt;a href=&quot;%1&quot;&gt;Set Debugger&lt;/a&gt;</source>
- <translation>&lt;a href=&quot;%1&quot;&gt;Nastavit ladicí program&lt;/a&gt;</translation>
+ <translation type="obsolete">&lt;a href=&quot;%1&quot;&gt;Nastavit ladicí program&lt;/a&gt;</translation>
</message>
<message>
<source>Device configuration:</source>
- <translation>Nastavení zařízení:</translation>
+ <translation type="obsolete">Nastavení zařízení:</translation>
</message>
<message>
<source>Executable on host:</source>
@@ -40701,13 +42389,13 @@ Chcete je přidat do projektu?&lt;/html&gt;</translation>
<message>
<source>Starting remote process...
</source>
- <translation>Spouští se vzdálený proces...
+ <translation type="obsolete">Spouští se vzdálený proces...
</translation>
</message>
<message>
<source>Finished running remote process. Exit code was %1.
</source>
- <translation>Vzdálený proces byl ukonÄen. Vrácená hodnota %1.
+ <translation type="obsolete">Vzdálený proces byl ukonÄen. Vrácená hodnota %1.
</translation>
</message>
</context>
@@ -40787,11 +42475,11 @@ Chcete je přidat do projektu?&lt;/html&gt;</translation>
</message>
<message>
<source>Delete UTF-8 BOM on Save</source>
- <translation type="obsolete">Smazat UTF-8 BOM při uložení</translation>
+ <translation>Smazat UTF-8 BOM při uložení</translation>
</message>
<message>
<source>Add UTF-8 BOM on Save</source>
- <translation type="obsolete">Přidat UTF-8 BOM při uložení</translation>
+ <translation>Přidat UTF-8 BOM při uložení</translation>
</message>
</context>
<context>
@@ -41129,13 +42817,17 @@ Prověřte, prosím, oprávnění pro přístup k adresáři.</translation>
</message>
<message>
<source>Cycle Detection</source>
- <translation>Rozpoznání smyÄek</translation>
+ <translation type="obsolete">Rozpoznání smyÄek</translation>
</message>
<message>
<source>Enable cycle detection to properly handle recursive or circular function calls.</source>
<translation>ZapnÄ›te rozpoznání smyÄek, aby se správnÄ› zacházelo s rekurzivními nebo cyklickými voláními funkcí.</translation>
</message>
<message>
+ <source>This removes template parameter lists when displaying function names.</source>
+ <translation>Toto při zobrazení názvů funkcí odstraní seznamy parametrů předlohy.</translation>
+ </message>
+ <message>
<source>Show Project Costs Only</source>
<translation>Ukázat pouze náklady projektu</translation>
</message>
@@ -41495,19 +43187,19 @@ Prověřte, prosím, oprávnění pro přístup k adresáři.</translation>
<name>Valgrind::Memcheck::MemcheckRunner</name>
<message>
<source>No network interface found for remote analysis.</source>
- <translation>Nebylo nalezeno žádné síťové rozhraní pro dálkově řízený rozbor.</translation>
+ <translation type="obsolete">Nebylo nalezeno žádné síťové rozhraní pro dálkově řízený rozbor.</translation>
</message>
<message>
<source>Select Network Interface</source>
- <translation>Výběr síťového rozhraní</translation>
+ <translation type="obsolete">Výběr síťového rozhraní</translation>
</message>
<message>
<source>More than one network interface was found on your machine. Please select which one you want to use for remote analysis.</source>
- <translation>Bylo nalezeno více síťových rozhraní. Vyberte, prosím, to, které chcete používat pro dálkově řízený rozbor.</translation>
+ <translation type="obsolete">Bylo nalezeno více síťových rozhraní. Vyberte, prosím, to, které chcete používat pro dálkově řízený rozbor.</translation>
</message>
<message>
<source>No Network Interface was chosen for remote analysis</source>
- <translation>Nebylo vybráno žádné síťové rozhraní pro dálkově řízený rozbor</translation>
+ <translation type="obsolete">Nebylo vybráno žádné síťové rozhraní pro dálkově řízený rozbor</translation>
</message>
</context>
<context>
@@ -41826,93 +43518,93 @@ Prověřte, prosím, oprávnění pro přístup k adresáři.</translation>
<message>
<source>CPU: v%1.%2%3%4</source>
<extracomment>CPU description of an S60 device %1 major verison, %2 minor version %3 real name of major verison, %4 real name of minor version</extracomment>
- <translation>CPU: v%1.%2%3%4</translation>
+ <translation type="obsolete">CPU: v%1.%2%3%4</translation>
</message>
<message>
<source>CODA: v%1.%2 CODA protocol: v%3.%4</source>
- <translation>CODA: v%1.%2 protokol CODA: v%3.%4</translation>
+ <translation type="obsolete">CODA: v%1.%2 protokol CODA: v%3.%4</translation>
</message>
<message>
<source>%1, %2%3%4, %5</source>
<extracomment>s60description description of an S60 device %1 CPU description, %2 endianness %3 default type size (if any), %4 float size (if any) %5 Coda version</extracomment>
- <translation>%1, %2%3%4, %5</translation>
+ <translation type="obsolete">%1, %2%3%4, %5</translation>
</message>
<message>
<source>big endian</source>
- <translation>velký endian</translation>
+ <translation type="obsolete">velký endian</translation>
</message>
<message>
<source>little endian</source>
- <translation>malý endian</translation>
+ <translation type="obsolete">malý endian</translation>
</message>
<message>
<source>, type size: %1</source>
<extracomment>will be inserted into s60description</extracomment>
- <translation>, velikost typu: %1</translation>
+ <translation type="obsolete">, velikost typu: %1</translation>
</message>
<message>
<source>, float size: %1</source>
<extracomment>will be inserted into s60description</extracomment>
- <translation>, plovoucí velikost: %1</translation>
+ <translation type="obsolete">, plovoucí velikost: %1</translation>
</message>
</context>
<context>
<name>SymbianUtils::VirtualSerialDevice</name>
<message>
<source>The port %1 could not be opened: %2 (POSIX error %3)</source>
- <translation>Port %1 se nepodařilo otevřít: %2 (Chyba POSIX %3)</translation>
+ <translation type="obsolete">Port %1 se nepodařilo otevřít: %2 (Chyba POSIX %3)</translation>
</message>
<message>
<source>Unable to retrieve terminal settings of port %1: %2 (POSIX error %3)</source>
- <translation>Terminálová nastavení portu %1 se nepodařilo získat: %2 (Chyba POSIX %3)</translation>
+ <translation type="obsolete">Terminálová nastavení portu %1 se nepodařilo získat: %2 (Chyba POSIX %3)</translation>
</message>
<message>
<source>Unable to apply terminal settings to port %1: %2 (POSIX error %3)</source>
- <translation>Terminálová nastavení se na port %1 nepodařilo použít: %2 (Chyba POSIX %3)</translation>
+ <translation type="obsolete">Terminálová nastavení se na port %1 nepodařilo použít: %2 (Chyba POSIX %3)</translation>
</message>
<message>
<source>Cannot write to port %1: %2 (POSIX error %3)</source>
- <translation>Nelze zapisovat na port %1: %2 (Chyba POSIX %3)</translation>
+ <translation type="obsolete">Nelze zapisovat na port %1: %2 (Chyba POSIX %3)</translation>
</message>
<message>
<source>The function select() returned an error on port %1: %2 (POSIX error %3)</source>
- <translation>U portu %1 vrátila funkce select() chybu: %2 (Chyba POSIX %3)</translation>
+ <translation type="obsolete">U portu %1 vrátila funkce select() chybu: %2 (Chyba POSIX %3)</translation>
</message>
<message>
<source>Port not found</source>
- <translation>Port nenalezen</translation>
+ <translation type="obsolete">Port nenalezen</translation>
</message>
<message>
<source>Port in use</source>
- <translation>Port se už používá</translation>
+ <translation type="obsolete">Port se už používá</translation>
</message>
<message>
<source>Timed out</source>
- <translation>ÄŒasové omezení pÅ™ekroÄeno</translation>
+ <translation type="obsolete">ÄŒasové omezení pÅ™ekroÄeno</translation>
</message>
<message>
<source>Port unreachable</source>
- <translation>Port je nedosažitelný</translation>
+ <translation type="obsolete">Port je nedosažitelný</translation>
</message>
<message>
<source>The port %1 could not be opened: %2</source>
- <translation>Port %1 se nepodařilo otevřít: %2</translation>
+ <translation type="obsolete">Port %1 se nepodařilo otevřít: %2</translation>
</message>
<message>
<source>An error occurred while waiting for read notifications from %1: %2</source>
- <translation>PÅ™i Äekání na Ätení oznámení od %1 se vyskytla chyba: %2</translation>
+ <translation type="obsolete">PÅ™i Äekání na Ätení oznámení od %1 se vyskytla chyba: %2</translation>
</message>
<message>
<source>An error occurred while reading from %1: %2</source>
- <translation>PÅ™i Ätení %1 se vyskytla chyba: %2</translation>
+ <translation type="obsolete">PÅ™i Ätení %1 se vyskytla chyba: %2</translation>
</message>
<message>
<source>An error occurred while writing to %1: %2</source>
- <translation>Při zápisu do %1 se vyskytla chyba: %2</translation>
+ <translation type="obsolete">Při zápisu do %1 se vyskytla chyba: %2</translation>
</message>
<message>
<source>An error occurred while syncing on waitForBytesWritten for %1: %2</source>
- <translation>Při seřizování waitForBytesWritten pro %1 se vyskytla chyba: %2</translation>
+ <translation type="obsolete">Při seřizování waitForBytesWritten pro %1 se vyskytla chyba: %2</translation>
</message>
</context>
<context>
@@ -42367,19 +44059,23 @@ Prověřte, prosím, oprávnění pro přístup k adresáři.</translation>
</message>
<message>
<source>Import Code Style</source>
- <translation>Zavést styl kódování</translation>
+ <translation>Importovat styl kódování</translation>
</message>
<message>
<source>Code styles (*.xml);;All files (*)</source>
<translation>Styly kódování (*.xml);;Všechny soubory (*)</translation>
</message>
<message>
+ <source>Cannot import code style from %1</source>
+ <translation>Nelze importovat styl kódování z %1</translation>
+ </message>
+ <message>
<source>Cannot import code style</source>
- <translation>Nelze zavést styl kódování</translation>
+ <translation type="obsolete">Nelze zavést styl kódování</translation>
</message>
<message>
<source>Export Code Style</source>
- <translation>Vyvést styl kódování</translation>
+ <translation>Exportovat styl kódování</translation>
</message>
<message>
<source>%1 [proxy: %2]</source>
@@ -42408,62 +44104,62 @@ Prověřte, prosím, oprávnění pro přístup k adresáři.</translation>
<name>QmlJsDebugClient::QmlProfilerEventList</name>
<message>
<source>&lt;bytecode&gt;</source>
- <translation>&lt;bytecode&gt;</translation>
+ <translation type="obsolete">&lt;bytecode&gt;</translation>
</message>
<message>
<source>Source code not available</source>
- <translation>Není dostupný žádný zdrojový kód</translation>
+ <translation type="obsolete">Není dostupný žádný zdrojový kód</translation>
</message>
<message>
<source>&lt;program&gt;</source>
- <translation>&lt;program&gt;</translation>
+ <translation type="obsolete">&lt;program&gt;</translation>
</message>
<message>
<source>Main Program</source>
- <translation>Hlavní program</translation>
+ <translation type="obsolete">Hlavní program</translation>
</message>
<message>
<source>Animation Timer Update</source>
- <translation>Aktualizace ÄasovaÄe animace</translation>
+ <translation type="obsolete">Aktualizace ÄasovaÄe animace</translation>
</message>
<message>
<source>&lt;Animation Update&gt;</source>
- <translation>&lt;aktualizace animace&gt;</translation>
+ <translation type="obsolete">&lt;aktualizace animace&gt;</translation>
</message>
<message>
<source>No data to save</source>
- <translation>Nejsou přítomna žádná data k uložení</translation>
+ <translation type="obsolete">Nejsou přítomna žádná data k uložení</translation>
</message>
<message>
<source>Could not open %1 for writing</source>
- <translation>Soubor &apos;%1&apos; se nepodařilo otevřít pro zápis</translation>
+ <translation type="obsolete">Soubor &apos;%1&apos; se nepodařilo otevřít pro zápis</translation>
</message>
<message>
<source>Could not open %1 for reading</source>
- <translation>Soubor &apos;%1&apos; se nepodaÅ™ilo otevřít pro Ätení</translation>
+ <translation type="obsolete">Soubor &apos;%1&apos; se nepodaÅ™ilo otevřít pro Ätení</translation>
</message>
<message>
<source>Error while parsing %1</source>
- <translation>Chyba při zpracování %1</translation>
+ <translation type="obsolete">Chyba při zpracování %1</translation>
</message>
<message>
<source>Invalid version of QML Trace file.</source>
- <translation>Neplatná verze souboru QML Trace.</translation>
+ <translation type="obsolete">Neplatná verze souboru QML Trace.</translation>
</message>
<message>
<source>%1 animations at %2 FPS</source>
- <translation>%1 animace při %2 FPS</translation>
+ <translation type="obsolete">%1 animace při %2 FPS</translation>
</message>
</context>
<context>
<name>Utils::Ssh</name>
<message>
<source>Password Required</source>
- <translation>Heslo vyžadováno</translation>
+ <translation type="obsolete">Heslo vyžadováno</translation>
</message>
<message>
<source>Please enter the password for your private key.</source>
- <translation>Zadejte, prosím, heslo pro svůj soukromý klíÄ.</translation>
+ <translation type="obsolete">Zadejte, prosím, heslo pro svůj soukromý klíÄ.</translation>
</message>
</context>
<context>
@@ -42579,6 +44275,14 @@ Prověřte, prosím, oprávnění pro přístup k adresáři.</translation>
<translation>Otevřít terminál zde</translation>
</message>
<message>
+ <source>Deleting File Failed</source>
+ <translation>Soubor se nepodařilo smazat</translation>
+ </message>
+ <message>
+ <source>Could not delete file %1.</source>
+ <translation>Soubor %1 se nepodařilo smazat.</translation>
+ </message>
+ <message>
<source>Show in Explorer...</source>
<translation type="obsolete">Ukázat v průzkumníku...</translation>
</message>
@@ -42610,26 +44314,26 @@ Prověřte, prosím, oprávnění pro přístup k adresáři.</translation>
<name>FunctionDeclDefLink</name>
<message>
<source>Target file was changed, could not apply changes</source>
- <translation>Změny se nepodařilo použít, protože cílový soubor byl změněn</translation>
+ <translation type="obsolete">Změny se nepodařilo použít, protože cílový soubor byl změněn</translation>
</message>
<message>
<source>Apply changes to definition</source>
- <translation>Použít změny definice</translation>
+ <translation type="obsolete">Použít změny definice</translation>
</message>
<message>
<source>Apply changes to declaration</source>
- <translation>Použít změny deklarace</translation>
+ <translation type="obsolete">Použít změny deklarace</translation>
</message>
<message>
<source>Apply function signature changes</source>
- <translation>Použít změny podpisu funkce</translation>
+ <translation type="obsolete">Použít změny podpisu funkce</translation>
</message>
</context>
<context>
<name>Debugger::Internal::BaseWindow</name>
<message>
<source>Adjust Column Widths to Contents</source>
- <translation>Přizpůsobit šířku sloupců obsahu</translation>
+ <translation type="obsolete">Přizpůsobit šířku sloupců obsahu</translation>
</message>
</context>
<context>
@@ -42664,7 +44368,7 @@ Prověřte, prosím, oprávnění pro přístup k adresáři.</translation>
<message>
<source>Starting executable failed:
</source>
- <translation>Nepodařilo se spustit spustitelný soubor:
+ <translation type="obsolete">Nepodařilo se spustit spustitelný soubor:
</translation>
</message>
</context>
@@ -42672,52 +44376,52 @@ Prověřte, prosím, oprávnění pro přístup k adresáři.</translation>
<name>Debugger::Internal::AttachGdbAdapter</name>
<message>
<source>Attached to process %1.</source>
- <translation>Připojeno k procesu %1.</translation>
+ <translation type="obsolete">Připojeno k procesu %1.</translation>
</message>
</context>
<context>
<name>Debugger::Internal::RemoteGdbServerAdapter</name>
<message>
<source>The upload process failed to start. Shell missing?</source>
- <translation>Nahrání procesu se nepodaÅ™ilo spustit. Možnou příÄinou by mohl být chybÄ›jící shellový program?</translation>
+ <translation type="obsolete">Nahrání procesu se nepodaÅ™ilo spustit. Možnou příÄinou by mohl být chybÄ›jící shellový program?</translation>
</message>
<message>
<source>The upload process crashed some time after starting successfully.</source>
- <translation>Proces nahrávání po urÄité dobÄ› od úspěšného spuÅ¡tÄ›ní spadl.</translation>
+ <translation type="obsolete">Proces nahrávání po urÄité dobÄ› od úspěšného spuÅ¡tÄ›ní spadl.</translation>
</message>
<message>
<source>The last waitFor...() function timed out. The state of QProcess is unchanged, and you can try calling waitFor...() again.</source>
- <translation>DoÅ¡lo k pÅ™ekroÄení Äasu u poslední funkce waitFor...(). Stav QProcess je nezmÄ›nÄ›n, a tak se můžete pokusit zavolat waitFor...() jeÅ¡tÄ› jednou.</translation>
+ <translation type="obsolete">DoÅ¡lo k pÅ™ekroÄení Äasu u poslední funkce waitFor...(). Stav QProcess je nezmÄ›nÄ›n, a tak se můžete pokusit zavolat waitFor...() jeÅ¡tÄ› jednou.</translation>
</message>
<message>
<source>An error occurred when attempting to write to the upload process. For example, the process may not be running, or it may have closed its input channel.</source>
- <translation>Při pokusu o zápis do procesu nahrávání se vyskytla chyba. Pravděpodobně proces neběží, nebo zavřel svůj vstupní kanál.</translation>
+ <translation type="obsolete">Při pokusu o zápis do procesu nahrávání se vyskytla chyba. Pravděpodobně proces neběží, nebo zavřel svůj vstupní kanál.</translation>
</message>
<message>
<source>An error occurred when attempting to read from the upload process. For example, the process may not be running.</source>
- <translation>PÅ™i pokusu o Ätení z procesu nahrávání se vyskytla chyba. PravdÄ›podobnÄ› proces neběží.</translation>
+ <translation type="obsolete">PÅ™i pokusu o Ätení z procesu nahrávání se vyskytla chyba. PravdÄ›podobnÄ› proces neběží.</translation>
</message>
<message>
<source>An unknown error in the upload process occurred. This is the default return value of error().</source>
- <translation>V procesu nahrávání se vyskytla neznámá chyba. Je to výchozí zpětná hodnota error().</translation>
+ <translation type="obsolete">V procesu nahrávání se vyskytla neznámá chyba. Je to výchozí zpětná hodnota error().</translation>
</message>
<message>
<source>Error</source>
- <translation>Chyba</translation>
+ <translation type="obsolete">Chyba</translation>
</message>
<message>
<source>No symbol file given.</source>
- <translation>Nebyl zadán žádný symbolický soubor.</translation>
+ <translation type="obsolete">Nebyl zadán žádný symbolický soubor.</translation>
</message>
<message>
<source>Reading debug information failed:
</source>
- <translation>Čtení informací o ladění se nezdařilo:
+ <translation type="obsolete">Čtení informací o ladění se nezdařilo:
</translation>
</message>
<message>
<source>Interrupting not possible</source>
- <translation>Přerušení není možné</translation>
+ <translation type="obsolete">Přerušení není možné</translation>
</message>
</context>
<context>
@@ -42731,6 +44435,10 @@ Prověřte, prosím, oprávnění pro přístup k adresáři.</translation>
<translation>&lt;p&gt;V &lt;i&gt;%1&lt;/i&gt; se vyskytla nezpracovaná výjimka:&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;</translation>
</message>
<message>
+ <source>No Local Variables</source>
+ <translation>Žádné místní proměnné</translation>
+ </message>
+ <message>
<source>&lt;p&gt;An uncaught exception occurred in &lt;i&gt;%1&lt;/i&gt;:&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;</source>
<translation type="obsolete">&lt;p&gt;V &lt;i&gt;%1&lt;/i&gt; se vyskytla nezpracovaná výjimka:&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;</translation>
</message>
@@ -42769,6 +44477,10 @@ Prověřte, prosím, oprávnění pro přístup k adresáři.</translation>
<context>
<name>Find::Internal::SearchResultWidget</name>
<message>
+ <source>Search was canceled.</source>
+ <translation>Hledání bylo zrušeno.</translation>
+ </message>
+ <message>
<source>Cancel</source>
<translation>Zrušit</translation>
</message>
@@ -42800,6 +44512,18 @@ Prověřte, prosím, oprávnění pro přístup k adresáři.</translation>
<source>Do not warn again</source>
<translation>Nevarovat znovu</translation>
</message>
+ <message numerus="yes">
+ <source>The search resulted in more than %n items, do you still want to continue?</source>
+ <translation>
+ <numerusform>Výsledkem hledání je více než %n položka. Stále jeÅ¡tÄ› chcete pokraÄovat?</numerusform>
+ <numerusform>Výsledkem hledání je více než %n položky. Stále jeÅ¡tÄ› chcete pokraÄovat?</numerusform>
+ <numerusform>Výsledkem hledání je více než %n položek. Stále jeÅ¡tÄ› chcete pokraÄovat?</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Continue</source>
+ <translation>PokraÄovat</translation>
+ </message>
<message>
<source>No matches found.</source>
<translation>Nebyly nalezeny žádné odpovídající shody.</translation>
@@ -42817,31 +44541,31 @@ Prověřte, prosím, oprávnění pro přístup k adresáři.</translation>
<name>Madde::Internal::MaddeDeviceConfigurationFactory</name>
<message>
<source>Device with MADDE support (Fremantle, Harmattan, MeeGo)</source>
- <translation>Zařízení s podporou pro MADDE-(Fremantle, Harmattan, MeeGo)</translation>
+ <translation type="obsolete">Zařízení s podporou pro MADDE-(Fremantle, Harmattan, MeeGo)</translation>
</message>
<message>
<source>Maemo5/Fremantle</source>
- <translation>Maemo 5/Fremantle</translation>
+ <translation type="obsolete">Maemo 5/Fremantle</translation>
</message>
<message>
<source>MeeGo 1.2 Harmattan</source>
- <translation>MeeGo 1.2 Harmattan</translation>
+ <translation type="obsolete">MeeGo 1.2 Harmattan</translation>
</message>
<message>
<source>Other MeeGo OS</source>
- <translation>Jiné MeeGo OS</translation>
+ <translation type="obsolete">Jiné MeeGo OS</translation>
</message>
<message>
<source>Test</source>
- <translation>Zkouška</translation>
+ <translation type="obsolete">Zkouška</translation>
</message>
<message>
<source>Remote Processes...</source>
- <translation>Procesy na zařízení...</translation>
+ <translation type="obsolete">Procesy na zařízení...</translation>
</message>
<message>
<source>Deploy Public Key...</source>
- <translation>Poslat veÅ™ejný klíÄ...</translation>
+ <translation type="obsolete">Poslat veÅ™ejný klíÄ...</translation>
</message>
</context>
<context>
@@ -42933,11 +44657,11 @@ Prověřte, prosím, oprávnění pro přístup k adresáři.</translation>
<name>Madde::Internal::AbstractMaddeUploadAndInstallPackageAction</name>
<message>
<source>Cannot deploy: Qemu was not running. It has now been started up for you, but it will take a bit of time until it is ready. Please try again then.</source>
- <translation>Nasazení se nezdaÅ™ilo, neboÅ¥ Qemu neběželo. Bylo nyní spuÅ¡tÄ›no, ale bude jeÅ¡tÄ› potÅ™ebovat nÄ›jaký Äas, než bude pÅ™ipraveno. Pak to, prosím, zkuste znovu.</translation>
+ <translation type="obsolete">Nasazení se nezdaÅ™ilo, neboÅ¥ Qemu neběželo. Bylo nyní spuÅ¡tÄ›no, ale bude jeÅ¡tÄ› potÅ™ebovat nÄ›jaký Äas, než bude pÅ™ipraveno. Pak to, prosím, zkuste znovu.</translation>
</message>
<message>
<source>Cannot deploy: You want to deploy to Qemu, but it is not enabled for this Qt version.</source>
- <translation>Nasazení Qemu se nezdařilo, neboť Qemu není pro tuto verzi Qt dostupné.</translation>
+ <translation type="obsolete">Nasazení Qemu se nezdařilo, neboť Qemu není pro tuto verzi Qt dostupné.</translation>
</message>
</context>
<context>
@@ -42955,22 +44679,22 @@ Prověřte, prosím, oprávnění pro přístup k adresáři.</translation>
<name>Madde::Internal::MeegoUploadAndInstallPackageStep</name>
<message>
<source>No RPM package creation step found.</source>
- <translation>NepodaÅ™ilo se najít žádný odpovídající krok vytvoÅ™ení balíÄku RPM.</translation>
+ <translation type="obsolete">NepodaÅ™ilo se najít žádný odpovídající krok vytvoÅ™ení balíÄku RPM.</translation>
</message>
<message>
<source>Deploy RPM package via SFTP upload</source>
- <translation>Nasazení balíÄku RPM prostÅ™ednictvím nahrání SFTP</translation>
+ <translation type="obsolete">Nasazení balíÄku RPM prostÅ™ednictvím nahrání SFTP</translation>
</message>
</context>
<context>
<name>Madde::Internal::AbstractMaemoDeployByMountService</name>
<message>
<source>Cannot deploy: Qemu was not running. It has now been started up for you, but it will take a bit of time until it is ready. Please try again then.</source>
- <translation>Nasazení se nezdaÅ™ilo, neboÅ¥ Qemu neběželo. Bylo nyní spuÅ¡tÄ›no, ale bude jeÅ¡tÄ› potÅ™ebovat nÄ›jaký Äas, než bude pÅ™ipraveno. Pak to, prosím, zkuste znovu.</translation>
+ <translation type="obsolete">Nasazení se nezdaÅ™ilo, neboÅ¥ Qemu neběželo. Bylo nyní spuÅ¡tÄ›no, ale bude jeÅ¡tÄ› potÅ™ebovat nÄ›jaký Äas, než bude pÅ™ipraveno. Pak to, prosím, zkuste znovu.</translation>
</message>
<message>
<source>Cannot deploy: You want to deploy to Qemu, but it is not enabled for this Qt version.</source>
- <translation>Nasazení Qemu se nezdařilo, neboť Qemu není pro tuto verzi Qt dostupné.</translation>
+ <translation type="obsolete">Nasazení Qemu se nezdařilo, neboť Qemu není pro tuto verzi Qt dostupné.</translation>
</message>
<message>
<source>Missing build configuration.</source>
@@ -43070,6 +44794,10 @@ Prověřte, prosím, oprávnění pro přístup k adresáři.</translation>
<translation>Zařízení MeeGo</translation>
</message>
<message>
+ <source>%1 Device</source>
+ <translation>Zařízení %1</translation>
+ </message>
+ <message>
<source>WizardPage</source>
<translation>WizardPage</translation>
</message>
@@ -43079,7 +44807,7 @@ Prověřte, prosím, oprávnění pro přístup k adresáři.</translation>
</message>
<message>
<source>The system running on the device:</source>
- <translation>Na mobilním zařízení běžící systém:</translation>
+ <translation type="obsolete">Na mobilním zařízení běžící systém:</translation>
</message>
<message>
<source>The kind of device:</source>
@@ -43159,10 +44887,14 @@ Prověřte, prosím, oprávnění pro přístup k adresáři.</translation>
<translation>Zadaný adresář buÄ neexistuje nebo jej nelze vytvoÅ™it.</translation>
</message>
<message>
- <source>Creating keys... </source>
+ <source>Creating keys...</source>
<translation>Vytváří se klíÄe...</translation>
</message>
<message>
+ <source>Creating keys... </source>
+ <translation type="obsolete">Vytváří se klíÄe...</translation>
+ </message>
+ <message>
<source>Creating keys ... </source>
<translation type="obsolete">Vytváří se klíÄe...</translation>
</message>
@@ -43203,6 +44935,10 @@ Prověřte, prosím, oprávnění pro přístup k adresáři.</translation>
</message>
<message>
<source>Deploying... </source>
+ <translation type="obsolete">Posílá se klíÄ...</translation>
+ </message>
+ <message>
+ <source>Deploying...</source>
<translation>Posílá se klíÄ...</translation>
</message>
<message>
@@ -43281,7 +45017,7 @@ Prověřte, prosím, oprávnění pro přístup k adresáři.</translation>
<name>Madde::Internal::AbstractMaemoInstallPackageToSysrootStep</name>
<message>
<source>Cannot install to sysroot without build configuration.</source>
- <translation>Bez nastavení sestavování nelze provést žádnou instalaci na sysroot.</translation>
+ <translation type="obsolete">Bez nastavení sestavování nelze provést žádnou instalaci na sysroot.</translation>
</message>
<message>
<source>Cannot install package to sysroot without packaging step.</source>
@@ -43315,7 +45051,7 @@ Prověřte, prosím, oprávnění pro přístup k adresáři.</translation>
<name>Madde::Internal::MaemoInstallRpmPackageToSysrootStep</name>
<message>
<source>Install RPM package to sysroot</source>
- <translation>Instalovat balíÄek RPM na sysroot</translation>
+ <translation type="obsolete">Instalovat balíÄek RPM na sysroot</translation>
</message>
</context>
<context>
@@ -43374,7 +45110,11 @@ ale pÅ™esto se pokraÄuje dál.</translation>
</message>
<message>
<source>No Qt4 build configuration</source>
- <translation>Žádné nastavení sestavování Qt4</translation>
+ <translation type="obsolete">Žádné nastavení sestavování Qt4</translation>
+ </message>
+ <message>
+ <source>No Qt build configuration</source>
+ <translation>Žádné nastavení sestavování Qt</translation>
</message>
<message>
<source>Creating package file...</source>
@@ -43437,11 +45177,11 @@ Dojde k pokusu o vytvoÅ™ení balíÄku, mohou se ale vyskytnout potíže.</trans
</message>
<message>
<source>Could not read manifest file &apos;%1&apos;: %2.</source>
- <translation>Soubor s provoláním (manifest) se nepodaÅ™ilo pÅ™eÄíst &apos;%1&apos;: %2.</translation>
+ <translation>Soubor s manifestem se nepodaÅ™ilo pÅ™eÄíst &apos;%1&apos;: %2.</translation>
</message>
<message>
<source>Could not write manifest file &apos;%1&apos;: %2.</source>
- <translation>Soubor s provoláním (manifest) se nepodařilo zapsat &apos;%1&apos;: %2.</translation>
+ <translation>Soubor s manifestem se nepodařilo zapsat &apos;%1&apos;: %2.</translation>
</message>
<message>
<source>Could not copy file &apos;%1&apos; to &apos;%2&apos;.</source>
@@ -43456,11 +45196,11 @@ Dojde k pokusu o vytvoÅ™ení balíÄku, mohou se ale vyskytnout potíže.</trans
<name>Madde::Internal::MaemoRpmPackageCreationStep</name>
<message>
<source>Create RPM Package</source>
- <translation>VytvoÅ™it soubor balíÄku RPM</translation>
+ <translation type="obsolete">VytvoÅ™it soubor balíÄku RPM</translation>
</message>
<message>
<source>Packaging failed: Could not move package file from %1 to %2.</source>
- <translation>Chyba pÅ™i vytváření balíÄku: Soubor s balíÄkem se nepodaÅ™ilo pÅ™esunout z %1 do %2.</translation>
+ <translation type="obsolete">Chyba pÅ™i vytváření balíÄku: Soubor s balíÄkem se nepodaÅ™ilo pÅ™esunout z %1 do %2.</translation>
</message>
</context>
<context>
@@ -43663,6 +45403,10 @@ Dojde k pokusu o vytvoÅ™ení balíÄku, mohou se ale vyskytnout potíže.</trans
<translation>Soubor &apos;%1&apos; se nepodařilo zkopírovat do &apos;%2&apos;: %3.</translation>
</message>
<message>
+ <source>Make distclean failed: %1</source>
+ <translation>Make distclean se nezdařilo: %1</translation>
+ </message>
+ <message>
<source>Error: Failed to start dpkg-buildpackage.</source>
<translation>Chyba: dpkg-buildpackage se nepodařilo spustit.</translation>
</message>
@@ -43902,7 +45646,7 @@ Chybový výstup byl: &apos;%1&apos;</translation>
</message>
<message>
<source>Error: Not enough free ports on device to fulfill all mount requests.</source>
- <translation>Chyba: Na zařízení není dostatek volných přípojek pro splnění všech požadavků na připojení.</translation>
+ <translation>Chyba: Na zařízení není dostatek volných portů pro splnění všech požadavků na připojení.</translation>
</message>
<message>
<source>Starting remote UTFS clients...</source>
@@ -43950,7 +45694,7 @@ Chybový výstup byl: &apos;%1&apos;</translation>
<name>Madde::Internal::MaemoRunConfiguration</name>
<message>
<source>Not enough free ports on the device.</source>
- <translation>Na zařízení není dostatek volných přípojek.</translation>
+ <translation>Na zařízení není dostatek volných portů.</translation>
</message>
</context>
<context>
@@ -44034,45 +45778,45 @@ Chybový výstup byl: &apos;%1&apos;</translation>
<name>Madde::Internal::MaemoSshRunner</name>
<message>
<source>Qemu was not running. It has now been started up for you, but it will take a bit of time until it is ready. Please try again then.</source>
- <translation>Nasazení se nezdaÅ™ilo, neboÅ¥ Qemu neběželo. Bylo nyní spuÅ¡tÄ›no, ale bude jeÅ¡tÄ› potÅ™ebovat nÄ›jaký Äas, než bude pÅ™ipraveno. Pak to, prosím, zkuste znovu.</translation>
+ <translation type="obsolete">Nasazení se nezdaÅ™ilo, neboÅ¥ Qemu neběželo. Bylo nyní spuÅ¡tÄ›no, ale bude jeÅ¡tÄ› potÅ™ebovat nÄ›jaký Äas, než bude pÅ™ipraveno. Pak to, prosím, zkuste znovu.</translation>
</message>
<message>
<source>You want to run on Qemu, but it is not enabled for this Qt version.</source>
- <translation>Nasazení Qemu se nezdařilo, neboť Qemu není pro tuto verzi Qt dostupné.</translation>
+ <translation type="obsolete">Nasazení Qemu se nezdařilo, neboť Qemu není pro tuto verzi Qt dostupné.</translation>
</message>
<message>
<source>Mounting host directories...</source>
- <translation>Připojují se hostitelské adresáře...</translation>
+ <translation type="obsolete">Připojují se hostitelské adresáře...</translation>
</message>
<message>
<source>Potentially unmounting left-over host directory mounts...</source>
- <translation>Odpojuje se zbývající hostitelský adresář...</translation>
+ <translation type="obsolete">Odpojuje se zbývající hostitelský adresář...</translation>
</message>
<message>
<source>Unmounting host directories...</source>
- <translation>Odpojují se hostitelské adresáře...</translation>
+ <translation type="obsolete">Odpojují se hostitelské adresáře...</translation>
</message>
</context>
<context>
<name>Madde::Internal::MaemoToolChainFactory</name>
<message>
<source>Maemo GCC</source>
- <translation>Maemo GCC</translation>
+ <translation type="obsolete">Maemo GCC</translation>
</message>
<message>
<source>Maemo GCC for %1</source>
- <translation>Maemo GCC pro %1</translation>
+ <translation type="obsolete">Maemo GCC pro %1</translation>
</message>
<message>
<source>%1 GCC (%2)</source>
- <translation>%1 GCC (%2)</translation>
+ <translation type="obsolete">%1 GCC (%2)</translation>
</message>
</context>
<context>
<name>Madde::Internal::MaemoToolChainConfigWidget</name>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Path to MADDE:&lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Path to MADDE target:&lt;/td&gt;&lt;td&gt;%2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Debugger:&lt;/td/&gt;&lt;td&gt;%3&lt;/td&gt;&lt;/tr&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Cesta k MADDE:&lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Cesta k cíli MADDE:&lt;/td&gt;&lt;td&gt;%2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LadiÄ:&lt;/td/&gt;&lt;td&gt;%3&lt;/td&gt;&lt;/tr&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation type="obsolete">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Cesta k MADDE:&lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Cesta k cíli MADDE:&lt;/td&gt;&lt;td&gt;%2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;LadiÄ:&lt;/td/&gt;&lt;td&gt;%3&lt;/td&gt;&lt;/tr&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
</context>
<context>
@@ -44091,34 +45835,34 @@ Chybový výstup byl: &apos;%1&apos;</translation>
</message>
<message>
<source>Build RPM Package and Install to MeeGo Device</source>
- <translation>VytvoÅ™it balíÄek RPM a nainstalovat na zařízení Meego</translation>
+ <translation type="obsolete">VytvoÅ™it balíÄek RPM a nainstalovat na zařízení Meego</translation>
</message>
</context>
<context>
<name>Madde::Internal::AbstractQt4MaemoTarget</name>
<message>
<source>Cannot open file &apos;%1&apos;: %2</source>
- <translation>Soubor &apos;%1&apos; nelze otevřít: %2</translation>
+ <translation type="obsolete">Soubor &apos;%1&apos; nelze otevřít: %2</translation>
</message>
<message>
<source>Add Packaging Files to Project</source>
- <translation>PÅ™idat soubory s balíÄky do projektu</translation>
+ <translation type="obsolete">PÅ™idat soubory s balíÄky do projektu</translation>
</message>
<message>
<source>&lt;html&gt;Qt Creator has set up the following files to enable packaging:
%1
Do you want to add them to the project?&lt;/html&gt;</source>
- <translation>&lt;html&gt;Qt Creator pÅ™iložil následující soubory k umožnÄ›ní balíÄkování:
+ <translation type="obsolete">&lt;html&gt;Qt Creator pÅ™iložil následující soubory k umožnÄ›ní balíÄkování:
%1
Chcete je přidat do projektu?&lt;/html&gt;</translation>
</message>
<message>
<source>Qt Creator</source>
- <translation>Qt Creator</translation>
+ <translation type="obsolete">Qt Creator</translation>
</message>
<message>
<source>Do you want to remove the packaging files associated with the target &apos;%1&apos;?</source>
- <translation>Chcete smazat soubory s balíÄky, které patří k cíli &apos;%1&apos;?</translation>
+ <translation type="obsolete">Chcete smazat soubory s balíÄky, které patří k cíli &apos;%1&apos;?</translation>
</message>
<message>
<source>Do you want to remove the packaging file(s) associated with the target &apos;%1&apos;?</source>
@@ -44126,50 +45870,50 @@ Chcete je přidat do projektu?&lt;/html&gt;</translation>
</message>
<message>
<source>Error creating packaging directory &apos;%1&apos;.</source>
- <translation>Chyba pÅ™i vytváření adresáře s balíÄky &apos;%1&apos;.</translation>
+ <translation type="obsolete">Chyba pÅ™i vytváření adresáře s balíÄky &apos;%1&apos;.</translation>
</message>
<message>
<source>Error creating MeeGo templates</source>
- <translation>Chyba při vytváření předloh MeeGo</translation>
+ <translation type="obsolete">Chyba při vytváření předloh MeeGo</translation>
</message>
</context>
<context>
<name>Madde::Internal::AbstractDebBasedQt4MaemoTarget</name>
<message>
<source>Debian changelog file &apos;%1&apos; has unexpected format.</source>
- <translation>Soubor se záznamem změn Debian &apos;%1&apos; je v nějakém neznámém formátu.</translation>
+ <translation type="obsolete">Soubor se záznamem změn Debian &apos;%1&apos; je v nějakém neznámém formátu.</translation>
</message>
<message>
<source>Refusing to update changelog file: Already contains version &apos;%1&apos;.</source>
- <translation>Odmítnutí aktualizace souboru se záznamem změn: Již obsahuje verzi &apos;%1&apos;.</translation>
+ <translation type="obsolete">Odmítnutí aktualizace souboru se záznamem změn: Již obsahuje verzi &apos;%1&apos;.</translation>
</message>
<message>
<source>Cannot update changelog: Invalid format (no maintainer entry found).</source>
- <translation>Soubor se záznamem změn nelze aktualizovat: Neplatný formát (nenalezen žádný záznam o údržbáři).</translation>
+ <translation type="obsolete">Soubor se záznamem změn nelze aktualizovat: Neplatný formát (nenalezen žádný záznam o údržbáři).</translation>
</message>
<message>
<source>Invalid icon data in Debian control file.</source>
- <translation>Kontrolní soubor pro Debian obsahuje neplatná data k ikoně.</translation>
+ <translation type="obsolete">Kontrolní soubor pro Debian obsahuje neplatná data k ikoně.</translation>
</message>
<message>
<source>Could not read image file &apos;%1&apos;.</source>
- <translation>Soubor s obrázkem &apos;%1&apos; se nepodaÅ™ilo pÅ™eÄíst.</translation>
+ <translation type="obsolete">Soubor s obrázkem &apos;%1&apos; se nepodaÅ™ilo pÅ™eÄíst.</translation>
</message>
<message>
<source>Could not export image file &apos;%1&apos;.</source>
- <translation>Soubor s obrázkem &apos;%1&apos; se nepodařilo vyvést.</translation>
+ <translation type="obsolete">Soubor s obrázkem &apos;%1&apos; se nepodařilo vyvést.</translation>
</message>
<message>
<source>Unable to create Debian templates: No Qt version set.</source>
- <translation>Nepodařilo se vytvořit žádné předlohy pro Debian. Není nastavena žádná verze Qt.</translation>
+ <translation type="obsolete">Nepodařilo se vytvořit žádné předlohy pro Debian. Není nastavena žádná verze Qt.</translation>
</message>
<message>
<source>Unable to create Debian templates: dh_make failed (%1).</source>
- <translation>Nepodařilo se vytvořit žádné soubory předloh pro Debian: dh_make selhal (%1).</translation>
+ <translation type="obsolete">Nepodařilo se vytvořit žádné soubory předloh pro Debian: dh_make selhal (%1).</translation>
</message>
<message>
<source>Unable to create debian templates: dh_make failed (%1).</source>
- <translation>Nepodařilo se vytvořit žádné soubory předloh pro Debian: dh_make selhal (%1).</translation>
+ <translation type="obsolete">Nepodařilo se vytvořit žádné soubory předloh pro Debian: dh_make selhal (%1).</translation>
</message>
<message>
<source>Unable to create Debian templates: No Qt version set</source>
@@ -44185,7 +45929,7 @@ Chcete je přidat do projektu?&lt;/html&gt;</translation>
</message>
<message>
<source>Unable to move new debian directory to &apos;%1&apos;.</source>
- <translation>Nový adresář pro Debian se nepodařilo přesunout do %1.</translation>
+ <translation type="obsolete">Nový adresář pro Debian se nepodařilo přesunout do %1.</translation>
</message>
</context>
<context>
@@ -44242,19 +45986,19 @@ Pokud zvolíte nepokraÄovat, Qt Creator se soubor .shared nahrát nepokusí.</t
<name>FindExportedCppTypes</name>
<message>
<source>The type will only be available in Qt Creator&apos;s QML editors when the type name is a string literal</source>
- <translation>Tento typ bude v editoru QML Qt Creatoru viditelný jen tehdy, když je název typu řetězec znaků tvořený písmeny (literal)</translation>
+ <translation type="obsolete">Tento typ bude v editoru QML Qt Creatoru viditelný jen tehdy, když je název typu řetězec znaků tvořený písmeny (literal)</translation>
</message>
<message>
<source>The module URI cannot be determined by static analysis. The type will be available
globally in the QML editor. You can add a &quot;// @uri My.Module.Uri&quot; annotation to let
Qt Creator know about a likely URI.</source>
- <translation>URI modulu nelze urÄit statickou analýzou. Typ bude celkovÄ› dostupný v editoru QML.
+ <translation type="obsolete">URI modulu nelze urÄit statickou analýzou. Typ bude celkovÄ› dostupný v editoru QML.
Můžete přidat poznámku ve tvaru &quot;// @uri My.Module.Uri&quot;, abyste dal Qt Creatoru vědět
o pravděpodobném URI.</translation>
</message>
<message>
<source>must be a string literal to be available in the QML editor</source>
- <translation>musí být řetězec znaků tvořený písmeny (literal), aby byl dostupný v editoru QML</translation>
+ <translation type="obsolete">musí být řetězec znaků tvořený písmeny (literal), aby byl dostupný v editoru QML</translation>
</message>
</context>
<context>
@@ -44412,6 +46156,10 @@ Je zařízení připojeno a nastaveno pro síťový přístup?</translation>
<translation>Nahrání souboru &apos;%1&apos; se nezdařilo.</translation>
</message>
<message>
+ <source>Failed to set executable flag.</source>
+ <translation>Nepodařilo se nastavit žádný spustitelný příznak.</translation>
+ </message>
+ <message>
<source>Failed to upload file &apos;%1&apos;: Could not open for reading.</source>
<translation>Nahrání souboru &apos;%1&apos; se nezdaÅ™ilo: NepodaÅ™ilo se jej otevřít pro Ätení.</translation>
</message>
@@ -44454,26 +46202,26 @@ Je zařízení připojeno a nastaveno pro síťový přístup?</translation>
</message>
<message>
<source>Generic Linux</source>
- <translation>Obecný Linux</translation>
+ <translation type="obsolete">Obecný Linux</translation>
</message>
<message>
<source>Test</source>
- <translation>Zkouška</translation>
+ <translation type="obsolete">Zkouška</translation>
</message>
<message>
<source>Remote Processes...</source>
- <translation>Procesy na zařízení...</translation>
+ <translation type="obsolete">Procesy na zařízení...</translation>
</message>
<message>
<source>Deploy Public Key...</source>
- <translation>Poslat veÅ™ejný klíÄ...</translation>
+ <translation type="obsolete">Poslat veÅ™ejný klíÄ...</translation>
</message>
</context>
<context>
<name>RemoteLinux::LinuxDeviceConfigurations</name>
<message>
<source>(default for %1)</source>
- <translation>(výchozí pro %1)</translation>
+ <translation type="obsolete">(výchozí pro %1)</translation>
</message>
</context>
<context>
@@ -44484,59 +46232,59 @@ Je zařízení připojeno a nastaveno pro síťový přístup?</translation>
</message>
<message>
<source>Physical Device</source>
- <translation>Fyzické zařízení</translation>
+ <translation type="obsolete">Fyzické zařízení</translation>
</message>
<message>
<source>Emulator</source>
- <translation>Emulátor</translation>
+ <translation type="obsolete">Emulátor</translation>
</message>
<message>
<source>Linux Device Configurations</source>
- <translation>Nastavení linuxového zařízení</translation>
+ <translation type="obsolete">Nastavení linuxového zařízení</translation>
</message>
<message>
<source>&amp;Configuration:</source>
- <translation>&amp;Nastavení:</translation>
+ <translation type="obsolete">&amp;Nastavení:</translation>
</message>
<message>
<source>General</source>
- <translation>Obecné</translation>
+ <translation type="obsolete">Obecné</translation>
</message>
<message>
<source>&amp;Name:</source>
- <translation>&amp;Název:</translation>
+ <translation type="obsolete">&amp;Název:</translation>
</message>
<message>
<source>OS type:</source>
- <translation>Typ operaÄního systému:</translation>
+ <translation type="obsolete">Typ operaÄního systému:</translation>
</message>
<message>
<source>Device type:</source>
- <translation>Typ zařízení:</translation>
+ <translation type="obsolete">Typ zařízení:</translation>
</message>
<message>
<source>OS Type Specific</source>
- <translation>Zvláštní pro typ operaÄního systému</translation>
+ <translation type="obsolete">Zvláštní pro typ operaÄního systému</translation>
</message>
<message>
<source>&amp;Add...</source>
- <translation>&amp;Přidat...</translation>
+ <translation type="obsolete">&amp;Přidat...</translation>
</message>
<message>
<source>&amp;Remove</source>
- <translation>&amp;Odstranit</translation>
+ <translation type="obsolete">&amp;Odstranit</translation>
</message>
<message>
<source>Set As Default</source>
- <translation>Nastavit jako výchozí</translation>
+ <translation type="obsolete">Nastavit jako výchozí</translation>
</message>
<message>
<source>Click here if you do not have an SSH key yet.</source>
- <translation>KlepnÄ›te sem, pokud jeÅ¡tÄ› nemáte nÄ›jaký klÃ­Ä SSH.</translation>
+ <translation type="obsolete">KlepnÄ›te sem, pokud jeÅ¡tÄ› nemáte nÄ›jaký klÃ­Ä SSH.</translation>
</message>
<message>
<source>&amp;Generate SSH Key...</source>
- <translation>&amp;VytvoÅ™it klÃ­Ä SSH...</translation>
+ <translation type="obsolete">&amp;VytvoÅ™it klÃ­Ä SSH...</translation>
</message>
</context>
<context>
@@ -44579,18 +46327,18 @@ Je zařízení připojeno a nastaveno pro síťový přístup?</translation>
</message>
<message>
<source>Checking if specified ports are available...</source>
- <translation>Ověřuje se, zda jsou zadané přípojky (porty) dostupné...</translation>
+ <translation>Ověřuje se, zda jsou zadané porty dostupné...</translation>
</message>
<message>
<source>Error gathering ports: %1
</source>
- <translation>Chyba při ověřování přípojek: %1
+ <translation>Chyba při ověřování portů: %1
</translation>
</message>
<message>
<source>The following specified ports are currently in use: %1
</source>
- <translation>Následující zadané přípojky (porty) se na zařízení používají: %1
+ <translation>Následující zadané porty se na zařízení používají: %1
</translation>
</message>
</context>
@@ -44644,49 +46392,49 @@ Je zařízení připojeno a nastaveno pro síťový přístup?</translation>
<name>RemoteLinux::AbstractRemoteLinuxApplicationRunner</name>
<message>
<source>Cannot run: %1</source>
- <translation>Chyba při spuštění: %1</translation>
+ <translation type="obsolete">Chyba při spuštění: %1</translation>
</message>
<message>
<source>Could not connect to host: %1</source>
- <translation>NepodaÅ™ilo se spojit s hostitelským poÄítaÄem: %1</translation>
+ <translation type="obsolete">NepodaÅ™ilo se spojit s hostitelským poÄítaÄem: %1</translation>
</message>
<message>
<source>Connection error: %1</source>
- <translation>Chyba ve spojení: %1</translation>
+ <translation type="obsolete">Chyba ve spojení: %1</translation>
</message>
<message>
<source>Killing remote process(es)...</source>
- <translation>Zastavuje se vzdálený proces...</translation>
+ <translation type="obsolete">Zastavuje se vzdálený proces...</translation>
</message>
<message>
<source>Initial cleanup failed: %1</source>
- <translation>PoÄáteÄní úklid se nezdaÅ™il: %1</translation>
+ <translation type="obsolete">PoÄáteÄní úklid se nezdaÅ™il: %1</translation>
</message>
<message>
<source>Remote process started.</source>
- <translation>Vzdálený proces byl spuštěn.</translation>
+ <translation type="obsolete">Vzdálený proces byl spuštěn.</translation>
</message>
<message>
<source>Gathering ports failed: %1
Continuing anyway.</source>
- <translation>Chyba při ověřování přípojek: %1
+ <translation type="obsolete">Chyba při ověřování přípojek: %1
KaždopádnÄ› se pokraÄuje.</translation>
</message>
<message>
<source>No remote executable set.</source>
- <translation>Nebyl zadán žádný spustitelný soubor.</translation>
+ <translation type="obsolete">Nebyl zadán žádný spustitelný soubor.</translation>
</message>
<message>
<source>No device configuration set.</source>
- <translation>Nebylo zadáno žádné nastavení zařízení.</translation>
+ <translation type="obsolete">Nebylo zadáno žádné nastavení zařízení.</translation>
</message>
<message>
<source>Connecting to device...</source>
- <translation>Připojuje se k zařízení...</translation>
+ <translation type="obsolete">Připojuje se k zařízení...</translation>
</message>
<message>
<source>Error running remote process: %1</source>
- <translation>Chyba při spouštění vzdáleného procesu na zařízení: %1</translation>
+ <translation type="obsolete">Chyba při spouštění vzdáleného procesu na zařízení: %1</translation>
</message>
</context>
<context>
@@ -44731,15 +46479,15 @@ KaždopádnÄ› se pokraÄuje.</translation>
</message>
<message>
<source>Linux Devices</source>
- <translation>Linuxová zařízení</translation>
+ <translation type="obsolete">Linuxová zařízení</translation>
</message>
<message>
<source>Unknown OS</source>
- <translation>Neznámý operaÄní systém</translation>
+ <translation type="obsolete">Neznámý operaÄní systém</translation>
</message>
<message>
<source>(No device)</source>
- <translation>(Žádné zařízení)</translation>
+ <translation type="obsolete">(Žádné zařízení)</translation>
</message>
</context>
<context>
@@ -44792,39 +46540,39 @@ Vzdálený chybový výstup byl: &apos;%1&apos;</translation>
<name>RemoteLinux::RemoteLinuxProcessesDialog</name>
<message>
<source>Remote Error</source>
- <translation>Vzdálená chyba</translation>
+ <translation type="obsolete">Vzdálená chyba</translation>
</message>
</context>
<context>
<name>RemoteLinux::AbstractRemoteLinuxProcessList</name>
<message>
<source>PID</source>
- <translation>PID</translation>
+ <translation type="obsolete">PID</translation>
</message>
<message>
<source>Command Line</source>
- <translation>Příkazový řádek</translation>
+ <translation type="obsolete">Příkazový řádek</translation>
</message>
<message>
<source>Connection failure: %1</source>
- <translation>Chyba při vytváření spojení: %1</translation>
+ <translation type="obsolete">Chyba při vytváření spojení: %1</translation>
</message>
<message>
<source>Error: Remote process failed to start: %1</source>
- <translation>Chyba: Vzdálený proces se nepodařilo spustit: %1</translation>
+ <translation type="obsolete">Chyba: Vzdálený proces se nepodařilo spustit: %1</translation>
</message>
<message>
<source>Error: Remote process crashed: %1</source>
- <translation>Chyba: Vzdálený proces spadl: %1</translation>
+ <translation type="obsolete">Chyba: Vzdálený proces spadl: %1</translation>
</message>
<message>
<source>Remote process failed.</source>
- <translation>Vzdálený proces se nezdařil.</translation>
+ <translation type="obsolete">Vzdálený proces se nezdařil.</translation>
</message>
<message>
<source>
Remote stderr was: %1</source>
- <translation>
+ <translation type="obsolete">
Vzdálený chybový výstup byl: &apos;%1&apos;</translation>
</message>
</context>
@@ -44832,31 +46580,31 @@ Vzdálený chybový výstup byl: &apos;%1&apos;</translation>
<name>RemoteLinux::Internal::LinuxDeviceConfigurationsSettingsPage</name>
<message>
<source>Device Configurations</source>
- <translation>Nastavení zařízení</translation>
+ <translation type="obsolete">Nastavení zařízení</translation>
</message>
</context>
<context>
<name>RemoteLinux::RemoteLinuxUsedPortsGatherer</name>
<message>
<source>Connection error: %1</source>
- <translation>Chyba ve spojení: %1</translation>
+ <translation type="obsolete">Chyba ve spojení: %1</translation>
</message>
<message>
<source>Could not start remote process: %1</source>
- <translation>Vzdálený proces se nepodařilo spustit: %1</translation>
+ <translation type="obsolete">Vzdálený proces se nepodařilo spustit: %1</translation>
</message>
<message>
<source>Remote process crashed: %1</source>
- <translation>Vzdálený proces spadl: %1</translation>
+ <translation type="obsolete">Vzdálený proces spadl: %1</translation>
</message>
<message>
<source>Remote process failed; exit code was %1.</source>
- <translation>Vzdálený proces se nezdařil. Vrácená hodnota %1.</translation>
+ <translation type="obsolete">Vzdálený proces se nezdařil. Vrácená hodnota %1.</translation>
</message>
<message>
<source>
Remote error output was: %1</source>
- <translation>
+ <translation type="obsolete">
Vzdálený chybový výstup byl: %1</translation>
</message>
</context>
@@ -44872,55 +46620,55 @@ Vzdálený chybový výstup byl: %1</translation>
</message>
<message>
<source>SSH Key Configuration</source>
- <translation>Nastavení klíÄe SSH</translation>
+ <translation type="obsolete">Nastavení klíÄe SSH</translation>
</message>
<message>
<source>Options</source>
- <translation>Volby</translation>
+ <translation type="obsolete">Volby</translation>
</message>
<message>
<source>Key algorithm:</source>
- <translation>Algoritmus klíÄe:</translation>
+ <translation type="obsolete">Algoritmus klíÄe:</translation>
</message>
<message>
<source>&amp;RSA</source>
- <translation>&amp;RSA</translation>
+ <translation type="obsolete">&amp;RSA</translation>
</message>
<message>
<source>&amp;DSA</source>
- <translation>&amp;DSA</translation>
+ <translation type="obsolete">&amp;DSA</translation>
</message>
<message>
<source>Key &amp;size:</source>
- <translation>&amp;Velikost klíÄe:</translation>
+ <translation type="obsolete">&amp;Velikost klíÄe:</translation>
</message>
<message>
<source>Private key file:</source>
- <translation>Soubor se soukromým klíÄem:</translation>
+ <translation type="obsolete">Soubor se soukromým klíÄem:</translation>
</message>
<message>
<source>Public key file:</source>
- <translation>Soubor s veÅ™ejným klíÄem:</translation>
+ <translation type="obsolete">Soubor s veÅ™ejným klíÄem:</translation>
</message>
<message>
<source>&amp;Generate And Save Key Pair</source>
- <translation>&amp;VytvoÅ™it a uložit dvojici klíÄů</translation>
+ <translation type="obsolete">&amp;VytvoÅ™it a uložit dvojici klíÄů</translation>
</message>
<message>
<source>&amp;Cancel</source>
- <translation>&amp;Zrušit</translation>
+ <translation type="obsolete">&amp;Zrušit</translation>
</message>
<message>
<source>Key Generation Failed</source>
- <translation>Chyba pÅ™i vytváření klíÄe</translation>
+ <translation type="obsolete">Chyba pÅ™i vytváření klíÄe</translation>
</message>
<message>
<source>Failure To Save Key File</source>
- <translation>Chyba pÅ™i ukládání souboru s klíÄem</translation>
+ <translation type="obsolete">Chyba pÅ™i ukládání souboru s klíÄem</translation>
</message>
<message>
<source>Failed to create directory: &apos;%1&apos;.</source>
- <translation>Adresář &apos;%1&apos; se nepodařilo vytvořit.</translation>
+ <translation type="obsolete">Adresář &apos;%1&apos; se nepodařilo vytvořit.</translation>
</message>
</context>
<context>
@@ -44942,23 +46690,23 @@ Vzdálený chybový výstup byl: %1</translation>
<name>RemoteLinux::StartGdbServerDialog</name>
<message>
<source>Select Sysroot</source>
- <translation>Vybrat Sysroot</translation>
+ <translation type="obsolete">Vybrat Sysroot</translation>
</message>
<message>
<source>&amp;Attach to Selected Process</source>
- <translation>&amp;Připojit vybranému procesu</translation>
+ <translation type="obsolete">&amp;Připojit vybranému procesu</translation>
</message>
<message>
<source>Close</source>
- <translation>Zavřít</translation>
+ <translation type="obsolete">Zavřít</translation>
</message>
<message>
<source>Device:</source>
- <translation>Zařízení:</translation>
+ <translation type="obsolete">Zařízení:</translation>
</message>
<message>
<source>Sysroot:</source>
- <translation>Sysroot:</translation>
+ <translation type="obsolete">Sysroot:</translation>
</message>
<message>
<source>&amp;Filter entries:</source>
@@ -44966,47 +46714,47 @@ Vzdálený chybový výstup byl: %1</translation>
</message>
<message>
<source>&amp;Filter by process name:</source>
- <translation>&amp;Filtrovat podle názvu procesu:</translation>
+ <translation type="obsolete">&amp;Filtrovat podle názvu procesu:</translation>
</message>
<message>
<source>List of Remote Processes</source>
- <translation>Seznam vzdálených procesů</translation>
+ <translation type="obsolete">Seznam vzdálených procesů</translation>
</message>
<message>
<source>Remote Error</source>
- <translation>Vzdálená chyba</translation>
+ <translation type="obsolete">Vzdálená chyba</translation>
</message>
<message>
<source>Process aborted</source>
- <translation>Proces zrušen</translation>
+ <translation type="obsolete">Proces zrušen</translation>
</message>
<message>
<source>Could not retrieve list of free ports:</source>
- <translation>NepodaÅ™ilo se urÄit seznam volných přípojek:</translation>
+ <translation type="obsolete">NepodaÅ™ilo se urÄit seznam volných přípojek:</translation>
</message>
<message>
<source>Connection error: %1</source>
- <translation>Chyba ve spojení: %1</translation>
+ <translation type="obsolete">Chyba ve spojení: %1</translation>
</message>
<message>
<source>Starting gdbserver...</source>
- <translation>Spouští se gdbserver...</translation>
+ <translation type="obsolete">Spouští se gdbserver...</translation>
</message>
<message>
<source>Port %1 is now accessible.</source>
- <translation>Port %1 je nyní dostupný.</translation>
+ <translation type="obsolete">Port %1 je nyní dostupný.</translation>
</message>
<message>
<source>Server started on %1</source>
- <translation>Server spuštěn na %1</translation>
+ <translation type="obsolete">Server spuštěn na %1</translation>
</message>
<message>
<source>Process gdbserver finished. Status: %1</source>
- <translation>Proces gdbserver ukonÄen. Stav: %1</translation>
+ <translation type="obsolete">Proces gdbserver ukonÄen. Stav: %1</translation>
</message>
<message>
<source>Running command: %1</source>
- <translation>Provádí se příkaz: %1</translation>
+ <translation type="obsolete">Provádí se příkaz: %1</translation>
</message>
</context>
<context>
@@ -45065,11 +46813,11 @@ Vzdálený chybový výstup byl: %1</translation>
<name>RemoteLinux::Internal::TypeSpecificDeviceConfigurationListModel</name>
<message>
<source>(default)</source>
- <translation>(výchozí)</translation>
+ <translation type="obsolete">(výchozí)</translation>
</message>
<message>
<source>%1 (default)</source>
- <translation type="obsolete">%1 (výchozí)</translation>
+ <translation>%1 (výchozí)</translation>
</message>
</context>
<context>
@@ -45257,62 +47005,62 @@ Filtr: %2
<name>Analyzer::Internal::StartRemoteDialog</name>
<message>
<source>Start Remote Analysis</source>
- <translation>Spustit vzdálený rozbor</translation>
+ <translation type="obsolete">Spustit vzdálený rozbor</translation>
</message>
<message>
<source>Remote</source>
- <translation>Vzdálený</translation>
+ <translation type="obsolete">Vzdálený</translation>
</message>
<message>
<source>Host:</source>
- <translation>Hostitelský poÄítaÄ:</translation>
+ <translation type="obsolete">Hostitelský poÄítaÄ:</translation>
</message>
<message>
<source>User:</source>
- <translation>Uživatel:</translation>
+ <translation type="obsolete">Uživatel:</translation>
</message>
<message>
<source>Port:</source>
- <translation>Port:</translation>
+ <translation type="obsolete">Port:</translation>
</message>
<message>
<source>You need to pass either a password or an SSH key.</source>
- <translation>PotÅ™ebujete buÄ heslo nebo klÃ­Ä SSH.</translation>
+ <translation type="obsolete">PotÅ™ebujete buÄ heslo nebo klÃ­Ä SSH.</translation>
</message>
<message>
<source>Password:</source>
- <translation>Heslo:</translation>
+ <translation type="obsolete">Heslo:</translation>
</message>
<message>
<source>Private key:</source>
- <translation>Soukromý klíÄ:</translation>
+ <translation type="obsolete">Soukromý klíÄ:</translation>
</message>
<message>
<source>Target</source>
- <translation>Cíl</translation>
+ <translation type="obsolete">Cíl</translation>
</message>
<message>
<source>Executable:</source>
- <translation>Spustitelný soubor:</translation>
+ <translation type="obsolete">Spustitelný soubor:</translation>
</message>
<message>
<source>Arguments:</source>
- <translation>Argumenty:</translation>
+ <translation type="obsolete">Argumenty:</translation>
</message>
<message>
<source>Working directory:</source>
- <translation>Pracovní adresář:</translation>
+ <translation type="obsolete">Pracovní adresář:</translation>
</message>
</context>
<context>
<name>AddNewAVDDialog</name>
<message>
<source>Create new AVD</source>
- <translation type="obsolete">Vytvořit nový AVD</translation>
+ <translation>Vytvořit nový AVD</translation>
</message>
<message>
<source>Name:</source>
- <translation type="obsolete">Název:</translation>
+ <translation>Název:</translation>
</message>
<message>
<source>Target:</source>
@@ -45320,11 +47068,15 @@ Filtr: %2
</message>
<message>
<source>SD card size:</source>
- <translation type="obsolete">Velikost karty SD:</translation>
+ <translation>Velikost karty SD:</translation>
</message>
<message>
<source> MiB</source>
- <translation type="obsolete"> MiB</translation>
+ <translation> MiB</translation>
+ </message>
+ <message>
+ <source>Kit:</source>
+ <translation>Sada:</translation>
</message>
</context>
<context>
@@ -45335,43 +47087,43 @@ Filtr: %2
</message>
<message>
<source>Keystore</source>
- <translation type="obsolete">ÚložiÅ¡tÄ› pro klíÄ</translation>
+ <translation>ÚložiÅ¡tÄ› pro klíÄ</translation>
</message>
<message>
<source>Password:</source>
- <translation type="obsolete">Heslo:</translation>
+ <translation>Heslo:</translation>
</message>
<message>
<source>Retype password:</source>
- <translation type="obsolete">Nypsat heslo znovu:</translation>
+ <translation>Napsat heslo znovu:</translation>
</message>
<message>
<source>Show password</source>
- <translation type="obsolete">Ukázat heslo</translation>
+ <translation>Ukázat heslo</translation>
</message>
<message>
<source>&lt;span style=&quot; color:#ff0000;&quot;&gt;Password is too short&lt;/span&gt;</source>
- <translation type="obsolete">&lt;span style=&quot; color:#ff0000;&quot;&gt;Heslo je příliš krátké&lt;/span&gt;</translation>
+ <translation>&lt;span style=&quot; color:#ff0000;&quot;&gt;Heslo je příliš krátké&lt;/span&gt;</translation>
</message>
<message>
<source>Certificate</source>
- <translation type="obsolete">Certifikát</translation>
+ <translation>Certifikát</translation>
</message>
<message>
<source>Alias name:</source>
- <translation type="obsolete">Název přezdívky:</translation>
+ <translation>Název aliasu:</translation>
</message>
<message>
<source>Aaaaaaaa; </source>
- <translation type="obsolete">Aaaaaaaa; </translation>
+ <translation>Aaaaaaaa; </translation>
</message>
<message>
<source>Keysize:</source>
- <translation type="obsolete">Velikost klíÄe:</translation>
+ <translation>Velikost klíÄe:</translation>
</message>
<message>
<source>Validity (days):</source>
- <translation type="obsolete">Platnost (dny):</translation>
+ <translation>Platnost (dny):</translation>
</message>
<message>
<source>Certificate Distinguished Names</source>
@@ -45379,15 +47131,15 @@ Filtr: %2
</message>
<message>
<source>First and last name:</source>
- <translation type="obsolete">První a poslední název:</translation>
+ <translation>Jméno a příjmení:</translation>
</message>
<message>
<source>Organizational unit (e.g. Necessitas):</source>
- <translation type="obsolete">OrganizaÄní jednotka (napÅ™. Necessitas):</translation>
+ <translation>OrganizaÄní jednotka (napÅ™. Necessitas):</translation>
</message>
<message>
<source>Organization (e.g. KDE):</source>
- <translation type="obsolete">Organizace (napÅ™. KDE):</translation>
+ <translation>Organizace (napÅ™. KDE):</translation>
</message>
<message>
<source>City or Locality:</source>
@@ -45399,18 +47151,34 @@ Filtr: %2
</message>
<message>
<source>Two-letter country code for this unit (e.g. RO):</source>
- <translation type="obsolete">Kód země tvořený dvěma písmeny této jednotky (např. RO):</translation>
+ <translation>Dvoupísmenný kód země pro tuto jednotku (např. RO):</translation>
</message>
<message>
<source>&gt;AA; </source>
- <translation type="obsolete">&gt;AA; </translation>
+ <translation>&gt;AA; </translation>
+ </message>
+ <message>
+ <source>Create a keystore and a certificate</source>
+ <translation>VytvoÅ™it úložiÅ¡tÄ› pro klÃ­Ä a certifikát</translation>
+ </message>
+ <message>
+ <source>Certificate Distinguished Names</source>
+ <translation>Odlišené názvy certifikátu</translation>
+ </message>
+ <message>
+ <source>City or locality:</source>
+ <translation>Město nebo místo:</translation>
+ </message>
+ <message>
+ <source>State or province:</source>
+ <translation>Stát nebo územní jednotka:</translation>
</message>
</context>
<context>
<name>AndroidDeployStepWidget</name>
<message>
<source>Form</source>
- <translation type="obsolete">Formulář</translation>
+ <translation>Formulář</translation>
</message>
<message>
<source>Use devices qt libs</source>
@@ -45452,12 +47220,52 @@ Tato volba je užiteÄná, když chcete svůj program vyzkouÅ¡et na zařízeníc
<source>Choose apk</source>
<translation type="obsolete">Vybrat apk</translation>
</message>
+ <message>
+ <source>Use Qt libraries from device</source>
+ <translation>Použít knihovny qt ze zařízení</translation>
+ </message>
+ <message>
+ <source>Push local Qt libraries to device.
+You must have Qt libraries compiled for that platform</source>
+ <translation>Odeslat místní knihovny qt do zařízení.
+Musíte mít pro ten systém sestaveny knihovny qt</translation>
+ </message>
+ <message>
+ <source>Deploy local Qt libraries</source>
+ <translation>Nasadit místní knihovny qt</translation>
+ </message>
+ <message>
+ <source>Check this option to force the application to use local Qt libraries instead of system libraries.</source>
+ <translation>Zaškrtněte tuto volbu pro vynucení místních knihoven qt namísto systémových knihoven v programu.</translation>
+ </message>
+ <message>
+ <source>Use local Qt libraries</source>
+ <translation>Použít místní knihovny qt</translation>
+ </message>
+ <message>
+ <source>Edit Rules File</source>
+ <translation>Upravit soubor s pravidly</translation>
+ </message>
+ <message>
+ <source>Choose and install Ministro system wide Qt shared libraries.
+This option is useful when you want to try your application on devices which don&apos;t have Android Market (e.g. Android Emulator).</source>
+ <translation>Vybrat a nainstalovat systémové sdílené knihovny qt Ministro.
+Tato volba je užiteÄná, když chcete svůj program vyzkouÅ¡et na zařízeních, která nemájí Android Market (napÅ™. Android Emulator).</translation>
+ </message>
+ <message>
+ <source>Install Ministro, system-wide Qt shared libraries installer</source>
+ <translation>Nainstalovat Ministro, instalátor systémových sdílených knihoven qt</translation>
+ </message>
+ <message>
+ <source>Choose APK</source>
+ <translation>Vybrat APK</translation>
+ </message>
</context>
<context>
<name>AndroidPackageCreationWidget</name>
<message>
<source>Manifest</source>
- <translation type="obsolete">Provolání (manifest)</translation>
+ <translation>Manifest</translation>
</message>
<message>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@@ -45563,11 +47371,11 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>1.0.0</source>
- <translation type="obsolete">1.0.0</translation>
+ <translation>1.0.0</translation>
</message>
<message>
<source>Application</source>
- <translation type="obsolete">Program</translation>
+ <translation>Program</translation>
</message>
<message>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@@ -45625,39 +47433,39 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Select low dpi icon</source>
- <translation type="obsolete">Vybrat ikonu s nízkým dpi</translation>
+ <translation>Vybrat ikonu s nízkým dpi</translation>
</message>
<message>
<source>Select medium dpi icon</source>
- <translation type="obsolete">Vybrat ikonu se středním dpi</translation>
+ <translation>Vybrat ikonu se středním dpi</translation>
</message>
<message>
<source>Select high dpi icon</source>
- <translation type="obsolete">Vybrat ikonu s vysokým dpi</translation>
+ <translation>Vybrat ikonu s vysokým dpi</translation>
</message>
<message>
<source>Permissions</source>
- <translation type="obsolete">Oprávnění</translation>
+ <translation>Oprávnění</translation>
</message>
<message>
<source>Add</source>
- <translation type="obsolete">Přidat</translation>
+ <translation>Přidat</translation>
</message>
<message>
<source>Remove</source>
- <translation type="obsolete">Odstranit</translation>
+ <translation>Odstranit</translation>
</message>
<message>
<source>Save</source>
- <translation type="obsolete">Uložit</translation>
+ <translation>Uložit</translation>
</message>
<message>
<source>Discard</source>
- <translation type="obsolete">Odmítnout</translation>
+ <translation>Zahodit</translation>
</message>
<message>
<source>Name:</source>
- <translation type="obsolete">Název:</translation>
+ <translation>Název:</translation>
</message>
<message>
<source>android.permission.ACCESS_CHECKIN_PROPERTIES</source>
@@ -46133,19 +47941,19 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Libraries</source>
- <translation type="obsolete">Knihovny</translation>
+ <translation>Knihovny</translation>
</message>
<message>
<source>Automatically check required Qt libraries from compiled application</source>
- <translation type="obsolete">Automaticky ověřit požadované knihovny Qt ze sestaveného programu</translation>
+ <translation>Automaticky ověřit požadované knihovny Qt ze sestaveného programu</translation>
</message>
<message>
<source>Read information from application (must be compiled)</source>
- <translation type="obsolete">Číst informace z programu (musí být sestaven)</translation>
+ <translation>Číst informace z programu (musí být sestaven)</translation>
</message>
<message>
<source>Required Qt libraries</source>
- <translation type="obsolete">Požadované knihovny Qt</translation>
+ <translation>Požadované knihovny Qt</translation>
</message>
<message>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
@@ -46169,54 +47977,98 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Up</source>
- <translation type="obsolete">Nahoru</translation>
+ <translation>Nahoru</translation>
</message>
<message>
<source>Down</source>
- <translation type="obsolete">Dolů</translation>
+ <translation>Dolů</translation>
</message>
<message>
<source>Sign package</source>
- <translation type="obsolete">Podepsat balíÄek</translation>
+ <translation>Podepsat balíÄek</translation>
</message>
<message>
<source>Keystore:</source>
- <translation type="obsolete">ÚložiÅ¡tÄ› pro klíÄ:</translation>
+ <translation>ÚložiÅ¡tÄ› pro klíÄ:</translation>
</message>
<message>
<source>Create</source>
- <translation type="obsolete">Vytvořit</translation>
+ <translation>Vytvořit</translation>
</message>
<message>
<source>Browse</source>
- <translation type="obsolete">Procházet</translation>
+ <translation>Procházet</translation>
</message>
<message>
<source>Open package location after is complete</source>
- <translation type="obsolete">Otevřít umístÄ›ní balíÄku, když je hotový</translation>
+ <translation>Otevřít umístÄ›ní balíÄku, když je hotový</translation>
</message>
<message>
<source>Certificate alias:</source>
- <translation type="obsolete">OsvÄ›dÄit pÅ™ezdívku:</translation>
+ <translation>Alias certifikátu:</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Android target SDK:&lt;/b&gt;</source>
+ <translation>&lt;b&gt;SDK pro Android:&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Package name:&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Název balíÄku:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <source>&lt;p align=&quot;justify&quot;&gt;Please choose a valid package name for your application (e.g. &quot;org.example.myapplication&quot;).&lt;/p&gt;
+&lt;p align=&quot;justify&quot;&gt;Packages are usually defined using a hierarchical naming pattern, with levels in the hierarchy separated by periods (.) (pronounced &quot;dot&quot;).&lt;/p&gt;
+&lt;p align=&quot;justify&quot;&gt;In general, a package name begins with the top level domain name of the organization and then the organization&apos;s domain and then any subdomains listed in reverse order. The organization can then choose a specific name for their package. Package names should be all lowercase characters whenever possible.&lt;/p&gt;
+&lt;p align=&quot;justify&quot;&gt;Complete conventions for disambiguating package names and rules for naming packages when the Internet domain name cannot be directly used as a package name are described in section 7.7 of the Java Language Specification.&lt;/p&gt;</source>
+ <translation>&lt;p align=&quot;justify&quot;&gt;Vyberte, prosím, pro svůj program platný název balíÄku (napÅ™. &quot;org.example.myapplication&quot;).&lt;/p&gt;
+&lt;p align=&quot;justify&quot;&gt;BalíÄky jsou obvykle stanoveny hierarchickým pojmenovávacím vzorem, s úrovnÄ›mi hierarchie oddÄ›lenými teÄkami (.) (vysloveno &quot;teÄka&quot;).&lt;/p&gt;
+&lt;p align=&quot;justify&quot;&gt;ObecnÄ› zaÄíná název balíÄku vrcholovým názvem domény organizace, a potom pokraÄuje doménou organizace, a pak jakoukoli podřízenou doménou, uvedeno v obráceném poÅ™adí. Organizace pak pro svůj balíÄek může zvolit zvláštní název. Názvy balíÄků by mÄ›ly být, když je to možné, tvoÅ™eny malými písmeny&lt;/p&gt;
+&lt;p align=&quot;justify&quot;&gt;Zvyklosti pro nedvojznaÄné názvy balíÄků a pravidla pro pojmenovávání balíÄků, když za název balíÄku nelze použít přímo název internetové domény jsou popsány v oddíle 7.7 specifikace jazyka Java (Java Language Specification).&lt;/p&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Version code:&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Kód verze:&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Version name:&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Název verze:&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Application name:&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Název programu:&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Run:&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Spuštění:&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Application icon:&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Ikona programu:&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;center&gt;Prebundled libraries&lt;/center&gt;
+&lt;p align=&quot;justify&quot;&gt;Please be aware that the order is very important: If library &lt;i&gt;A&lt;/i&gt; depends on library &lt;i&gt;B&lt;/i&gt;, &lt;i&gt;B&lt;/i&gt; &lt;b&gt;must&lt;/b&gt; go before &lt;i&gt;A&lt;/i&gt;.&lt;/p&gt;</source>
+ <translation type="unfinished">&lt;center&gt;Prebundled knihovny&lt;/center&gt;
+&lt;p align=&quot;justify&quot;&gt;Uvědomte si, prosím, dobře, že pořadí je velmi důležité: Jestliže knihovna &lt;i&gt;A&lt;/i&gt; závisí na knihovně &lt;i&gt;B&lt;/i&gt;, &lt;i&gt;B&lt;/i&gt; &lt;b&gt;musí&lt;/b&gt; jít před &lt;i&gt;A&lt;/i&gt;.&lt;/p&gt;</translation>
</message>
</context>
<context>
<name>AndroidSettingsWidget</name>
<message>
<source>Android Configuration</source>
- <translation type="obsolete">Nastavení pro Android</translation>
+ <translation>Nastavení pro Android</translation>
</message>
<message>
<source>Android SDK location:</source>
- <translation type="obsolete">Umístění SDK pro Android:</translation>
+ <translation>Umístění SDK pro Android:</translation>
</message>
<message>
<source>Browse</source>
- <translation type="obsolete">Procházet</translation>
+ <translation>Procházet</translation>
</message>
<message>
<source>Android NDK location:</source>
- <translation type="obsolete">Umístění NDK pro Android:</translation>
+ <translation>Umístění NDK pro Android:</translation>
</message>
<message>
<source>Android NDK toolchain version:</source>
@@ -46224,7 +48076,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Ant location:</source>
- <translation type="obsolete">Umístění Ant:</translation>
+ <translation>Umístění Ant:</translation>
</message>
<message>
<source>arm GDB location:</source>
@@ -46236,7 +48088,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>x86 GDB location:</source>
- <translation type="obsolete">Umístění GDB x86:</translation>
+ <translation>Umístění GDB x86:</translation>
</message>
<message>
<source>x86 GDBserver location:</source>
@@ -46244,35 +48096,51 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>OpenJDK location:</source>
- <translation type="obsolete">Umístění OpenJDK:</translation>
+ <translation>Umístění OpenJDK:</translation>
</message>
<message>
<source>Start</source>
- <translation type="obsolete">Spustit</translation>
+ <translation>Spustit</translation>
</message>
<message>
<source>AVD Manager</source>
- <translation type="obsolete">Správce AVD</translation>
+ <translation>Správce AVD</translation>
</message>
<message>
<source>System/data partition size:</source>
- <translation type="obsolete">Velikost oddílu se systémem/daty:</translation>
+ <translation>Velikost oddílu se systémem/daty:</translation>
</message>
<message>
<source> Mb</source>
- <translation type="obsolete"> MiB</translation>
+ <translation> MiB</translation>
</message>
<message>
<source>Start Android AVD Manager</source>
- <translation type="obsolete">Spustit správce AVD Android</translation>
+ <translation>Spustit správce AVD Android</translation>
</message>
<message>
<source>Add</source>
- <translation type="obsolete">Přidat</translation>
+ <translation>Přidat</translation>
</message>
<message>
<source>Remove</source>
- <translation type="obsolete">Odstranit</translation>
+ <translation>Odstranit</translation>
+ </message>
+ <message>
+ <source>Android NDK tool chain version:</source>
+ <translation>Verze sady nástrojů NDK pro Android:</translation>
+ </message>
+ <message>
+ <source>ARM GDB location:</source>
+ <translation>Umístění GDB ARM:</translation>
+ </message>
+ <message>
+ <source>ARM GDB server location:</source>
+ <translation>Umístění serveru GDB ARM:</translation>
+ </message>
+ <message>
+ <source>x86 GDB server location:</source>
+ <translation>Umístění serveru GDB x86:</translation>
</message>
</context>
<context>
@@ -46303,11 +48171,11 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Import...</source>
- <translation>Zavést...</translation>
+ <translation>Importovat...</translation>
</message>
<message>
<source>Export...</source>
- <translation>Vyvést...</translation>
+ <translation>Exportovat...</translation>
</message>
<message>
<source>Target Identifier</source>
@@ -46541,8 +48409,12 @@ p, li { white-space: pre-wrap; }
<translation>Spustit ladicí program</translation>
</message>
<message>
+ <source>Kit:</source>
+ <translation>Sada:</translation>
+ </message>
+ <message>
<source>&amp;Host:</source>
- <translation>&amp;Hostitel:</translation>
+ <translation type="obsolete">&amp;Hostitel:</translation>
</message>
<message>
<source>&amp;Port:</source>
@@ -46550,7 +48422,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Sys&amp;root:</source>
- <translation>Sys&amp;root:</translation>
+ <translation type="obsolete">Sys&amp;root:</translation>
</message>
</context>
<context>
@@ -46609,7 +48481,31 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Bring Qt Creator to foreground when application interrupts</source>
- <translation type="obsolete">Přivést Qt Creator do popředí, když dojde k přerušení programu</translation>
+ <translation>Přivést Qt Creator do popředí, když dojde k přerušení programu</translation>
+ </message>
+ <message>
+ <source>Show QML object tree in Locals &amp; Expressions when connected and not stepping.</source>
+ <translation>Ukázat strom objektu QML v místních proměnných a výrazech, když je připojen a nezasahuje.</translation>
+ </message>
+ <message>
+ <source>Show QML object tree</source>
+ <translation>Ukázat strom objektu QML</translation>
+ </message>
+ <message>
+ <source>Enable a full file path in breakpoints by default also for the GDB</source>
+ <translation>Povolit úplnou souborovou cestu k bodu přerušení ve výchozím nastavení i pro GDB</translation>
+ </message>
+ <message>
+ <source>Breakpoints full path by default</source>
+ <translation>Úplná cesta k bodu přerušení jako výchozí</translation>
+ </message>
+ <message>
+ <source>Stop when %1() is called</source>
+ <translation>Zastavit při vyvolání %1()</translation>
+ </message>
+ <message>
+ <source>Always add a breakpoint on the &lt;i&gt;%1()&lt;/i&gt; function.</source>
+ <translation>Vždy přidat bod přerušení při funkci &lt;i&gt;%1()&lt;/i&gt;.</translation>
</message>
</context>
<context>
@@ -46746,58 +48642,58 @@ p, li { white-space: pre-wrap; }
<name>ProjectExplorer::Internal::DeviceFactorySelectionDialog</name>
<message>
<source>Device Configuration Wizard Selection</source>
- <translation type="obsolete">Zřízení nového nastavení zařízení</translation>
+ <translation>Výběr průvodce pro nastavení zařízení</translation>
</message>
<message>
<source>Available device types:</source>
- <translation type="obsolete">Dostupné typy zařízení:</translation>
+ <translation>Dostupné typy zařízení:</translation>
</message>
<message>
<source>Start Wizard</source>
- <translation type="obsolete">Spustit průvodce</translation>
+ <translation>Spustit průvodce</translation>
</message>
</context>
<context>
<name>ProjectExplorer::Internal::DeviceSettingsWidget</name>
<message>
<source>Linux Device Configurations</source>
- <translation type="obsolete">Nastavení linuxového zařízení</translation>
+ <translation>Nastavení linuxového zařízení</translation>
</message>
<message>
<source>&amp;Device:</source>
- <translation type="obsolete">&amp;Zařízení:</translation>
+ <translation>&amp;Zařízení:</translation>
</message>
<message>
<source>General</source>
- <translation type="obsolete">Obecné</translation>
+ <translation>Obecné</translation>
</message>
<message>
<source>Type:</source>
- <translation type="obsolete">Typ:</translation>
+ <translation>Typ:</translation>
</message>
<message>
<source>&amp;Name:</source>
- <translation type="obsolete">&amp;Název:</translation>
+ <translation>&amp;Název:</translation>
</message>
<message>
<source>Auto-detected:</source>
- <translation type="obsolete">Automaticky zjištěno:</translation>
+ <translation>Automaticky zjištěno:</translation>
</message>
<message>
<source>Type Specific</source>
- <translation type="obsolete">Typově zvláštní</translation>
+ <translation>Specifický pro typ</translation>
</message>
<message>
<source>&amp;Add...</source>
- <translation type="obsolete">&amp;Přidat...</translation>
+ <translation>&amp;Přidat...</translation>
</message>
<message>
<source>&amp;Remove</source>
- <translation type="obsolete">&amp;Odstranit</translation>
+ <translation>&amp;Odstranit</translation>
</message>
<message>
<source>Set As Default</source>
- <translation type="obsolete">Nastavit jako výchozí</translation>
+ <translation>Nastavit jako výchozí</translation>
</message>
<message>
<source>Yes (fingerprint is &apos;%1&apos;)</source>
@@ -46805,7 +48701,19 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>No</source>
- <translation type="obsolete">Ne</translation>
+ <translation>Ne</translation>
+ </message>
+ <message>
+ <source>Yes (id is &quot;%1&quot;)</source>
+ <translation>Ano (ID je &quot;%1&quot;)</translation>
+ </message>
+ <message>
+ <source>Remote Processes</source>
+ <translation>Procesy na zařízení</translation>
+ </message>
+ <message>
+ <source>Current state:</source>
+ <translation>SouÄasný stav:</translation>
</message>
</context>
<context>
@@ -46928,7 +48836,7 @@ p, li { white-space: pre-wrap; }
<name>Qt4ProjectManager::Internal::S60CertificateDetailsDialog</name>
<message>
<source>Details of Certificate</source>
- <translation>Podrobnosti k certifikátu</translation>
+ <translation type="obsolete">Podrobnosti k certifikátu</translation>
</message>
</context>
<context>
@@ -46947,7 +48855,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Import an existing .html file</source>
- <translation>Zavést existující soubor .html</translation>
+ <translation>Importovat existující soubor .html</translation>
</message>
<message>
<source>Load a URL</source>
@@ -47008,19 +48916,19 @@ p, li { white-space: pre-wrap; }
<name>Qt4ProjectManager::Internal::MobileAppWizardSymbianOptionsPage</name>
<message>
<source>WizardPage</source>
- <translation>WizardPage</translation>
+ <translation type="obsolete">WizardPage</translation>
</message>
<message>
<source>Application icon (.svg):</source>
- <translation>Ikona programu (.svg):</translation>
+ <translation type="obsolete">Ikona programu (.svg):</translation>
</message>
<message>
<source>Target UID3:</source>
- <translation>Cílové UID3:</translation>
+ <translation type="obsolete">Cílové UID3:</translation>
</message>
<message>
<source>Enable network access</source>
- <translation>Povolit přístup k síti</translation>
+ <translation type="obsolete">Povolit přístup k síti</translation>
</message>
</context>
<context>
@@ -47031,7 +48939,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Target UID3:</source>
- <translation>Cílové UID3:</translation>
+ <translation type="obsolete">Cílové UID3:</translation>
</message>
<message>
<source>Plugin&apos;s directory name:</source>
@@ -47039,7 +48947,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Enable network access</source>
- <translation>Povolit přístup k síti</translation>
+ <translation type="obsolete">Povolit přístup k síti</translation>
</message>
</context>
<context>
@@ -47081,7 +48989,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Free ports:</source>
- <translation>Volné přípojky (porty):</translation>
+ <translation>Volné porty:</translation>
</message>
<message>
<source>You can enter lists and ranges like this: 1024,1026-1028,1030</source>
@@ -47113,19 +49021,19 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Create New...</source>
- <translation type="obsolete">Vytvořit nový...</translation>
+ <translation>Vytvořit nový...</translation>
</message>
<message>
<source>Machine type:</source>
- <translation type="obsolete">Typ stroje:</translation>
+ <translation>Typ stroje:</translation>
</message>
<message>
<source>Physical Device</source>
- <translation type="obsolete">Fyzické zařízení</translation>
+ <translation>Fyzické zařízení</translation>
</message>
<message>
<source>Emulator</source>
- <translation type="obsolete">Emulátor</translation>
+ <translation>Emulátor</translation>
</message>
<message>
<source>You will need at least one port.</source>
@@ -47133,7 +49041,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Set as Default</source>
- <translation>Nastavit jako výchozí</translation>
+ <translation type="obsolete">Nastavit jako výchozí</translation>
</message>
</context>
<context>
@@ -47190,11 +49098,11 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Device configuration:</source>
- <translation>Nastavení zařízení:</translation>
+ <translation type="obsolete">Nastavení zařízení:</translation>
</message>
<message>
<source>&lt;a href=&quot;irrelevant&quot;&gt;Manage device configurations&lt;/a&gt;</source>
- <translation>&lt;a href=&quot;irrelevant&quot;&gt;Spravovat nastavení zařízení&lt;/a&gt;</translation>
+ <translation type="obsolete">&lt;a href=&quot;irrelevant&quot;&gt;Spravovat nastavení zařízení&lt;/a&gt;</translation>
</message>
<message>
<source>These show the INSTALLS settings from the project file(s).</source>
@@ -47209,7 +49117,7 @@ p, li { white-space: pre-wrap; }
<name>RemoteLinux::Internal::RemoteLinuxProcessesDialog</name>
<message>
<source>List of Remote Processes</source>
- <translation>Seznam vzdálených procesů</translation>
+ <translation type="obsolete">Seznam vzdálených procesů</translation>
</message>
<message>
<source>&amp;Filter entries:</source>
@@ -47217,15 +49125,15 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>&amp;Update List</source>
- <translation>&amp;Obnovit seznam</translation>
+ <translation type="obsolete">&amp;Obnovit seznam</translation>
</message>
<message>
<source>&amp;Kill Selected Process</source>
- <translation>&amp;UkonÄit vybraný proces</translation>
+ <translation type="obsolete">&amp;UkonÄit vybraný proces</translation>
</message>
<message>
<source>&amp;Filter by process name:</source>
- <translation>&amp;Filtrovat podle názvu procesu:</translation>
+ <translation type="obsolete">&amp;Filtrovat podle názvu procesu:</translation>
</message>
</context>
<context>
@@ -47448,11 +49356,11 @@ UrÄuje, jak se chová zpÄ›tná klávesa (backspace) co se týÄe odsazování.
</message>
<message>
<source>Export...</source>
- <translation>Vyvést...</translation>
+ <translation>Exportovat...</translation>
</message>
<message>
<source>Import...</source>
- <translation>Zavést...</translation>
+ <translation>Importovat...</translation>
</message>
</context>
<context>
@@ -47689,27 +49597,31 @@ UrÄuje chování odsazení se zÅ™etelem k navazujícím řádkům.
<name>Todo::Internal::KeywordDialog</name>
<message>
<source>Keyword</source>
- <translation type="obsolete">KlíÄové slovo</translation>
+ <translation>KlíÄové slovo</translation>
</message>
<message>
<source>Icon</source>
- <translation type="obsolete">Ikona</translation>
+ <translation>Ikona</translation>
</message>
<message>
<source>Color</source>
- <translation type="obsolete">Barva</translation>
+ <translation>Barva</translation>
</message>
<message>
<source>errorLabel</source>
- <translation type="obsolete">chybaŠtítek</translation>
+ <translation>errorLabel</translation>
</message>
<message>
<source>Keyword cannot be empty, contain spaces or colons.</source>
<translation type="obsolete">KlíÄové slovo nemůže být prázdné, nemůže obsahovat mezery nebo dvojteÄky.</translation>
</message>
<message>
+ <source>Keyword cannot be empty, contain spaces, colons, slashes or asterisks.</source>
+ <translation>KlíÄové slovo nemůže být prázdné, obsahovat mezery, dvojteÄky, lomítka nebo hvÄ›zdiÄky.</translation>
+ </message>
+ <message>
<source>There is already a keyword with this name.</source>
- <translation type="obsolete">KlíÄové slovo s tímto názvem již existuje.</translation>
+ <translation>KlíÄové slovo s tímto názvem již existuje.</translation>
</message>
</context>
<context>
@@ -47831,11 +49743,11 @@ UrÄuje chování odsazení se zÅ™etelem k navazujícím řádkům.
<source>A file listing user names and email addresses in a 4-column mailmap format:
name &lt;email&gt; alias &lt;email&gt;</source>
<translation>Soubor, který obsahuje jména uživatelů a e-mailové adresy ve ÄtyÅ™sloupcovém &quot;mailmap&quot; formátu:
-Jméno &lt;E-mail&gt; Přezdívka &lt;E-mail&gt;</translation>
+Jméno &lt;E-mail&gt; alias &lt;E-mail&gt;</translation>
</message>
<message>
<source>User/&amp;alias configuration file:</source>
- <translation>Soubor s nastavením uživatele/&amp;přezdívky:</translation>
+ <translation>Soubor s nastavením uživatele/&amp;aliasu:</translation>
</message>
<message>
<source>A simple file containing lines with field names like &quot;Reviewed-By:&quot; which will be added below the submit editor.</source>
@@ -47864,7 +49776,7 @@ should a repository require SSH-authentication (see documentation on SSH and the
<name>VcsBase::Internal::VcsConfigurationPage</name>
<message>
<source>Configure...</source>
- <translation>Nastavení...</translation>
+ <translation type="obsolete">Nastavení...</translation>
</message>
</context>
<context>
@@ -47928,12 +49840,24 @@ should a repository require SSH-authentication (see documentation on SSH and the
<translation>Přehled vývojového prostředí</translation>
</message>
<message>
- <source>To find out what kind of integrated enviroment (IDE) Qt Creator is.</source>
+ <source>To find out what kind of integrated environment (IDE) Qt Creator is.</source>
<translation>Pro bližší seznámení s jednotným vývojovým prostředím (IDE) Qt Creator.</translation>
</message>
<message>
+ <source>To become familiar with the parts of the Qt Creator user interface and to learn how to use them.</source>
+ <translation>Obeznámit se s jednotlivými Äástmi uživatelského rozhraní Qt Creator a nauÄit se, jak je používat.</translation>
+ </message>
+ <message>
+ <source>Blogs</source>
+ <translation>Blogy</translation>
+ </message>
+ <message>
+ <source>To find out what kind of integrated enviroment (IDE) Qt Creator is.</source>
+ <translation type="obsolete">Pro bližší seznámení s jednotným vývojovým prostředím (IDE) Qt Creator.</translation>
+ </message>
+ <message>
<source>To become familar with the parts of the Qt Creator user interface and to learn how to use them.</source>
- <translation>Obeznámit se s jednotlivými Äástmi uživatelského rozhraní Qt Creator a nauÄit se jak je používat.</translation>
+ <translation type="obsolete">Obeznámit se s jednotlivými Äástmi uživatelského rozhraní Qt Creator a nauÄit se jak je používat.</translation>
</message>
<message>
<source>User Interface</source>
@@ -47949,7 +49873,7 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message>
<message>
<source>Labs</source>
- <translation>Laboratoře</translation>
+ <translation type="obsolete">Laboratoře</translation>
</message>
</context>
<context>
@@ -48020,12 +49944,12 @@ should a repository require SSH-authentication (see documentation on SSH and the
<message>
<source>The port seems to be in use.</source>
<extracomment>Error message shown after &apos;Could not connect ... debugger:&quot;</extracomment>
- <translation type="obsolete">Port se už používá.</translation>
+ <translation>Port se už používá.</translation>
</message>
<message>
<source>The application is not set up for QML/JS debugging.</source>
<extracomment>Error message shown after &apos;Could not connect ... debugger:&quot;</extracomment>
- <translation type="obsolete">Tento program není nastaven pro ladění QML/JS.</translation>
+ <translation>Tento program není nastaven pro ladění QML/JS.</translation>
</message>
</context>
<context>
@@ -48291,7 +50215,7 @@ should a repository require SSH-authentication (see documentation on SSH and the
<name>Utils::BaseTreeView</name>
<message>
<source>Adjust Column Widths to Contents</source>
- <translation type="obsolete">Přizpůsobit šířku sloupců obsahu</translation>
+ <translation>Přizpůsobit šířku sloupců obsahu</translation>
</message>
</context>
<context>
@@ -48325,61 +50249,85 @@ should a repository require SSH-authentication (see documentation on SSH and the
<name>Utils::SftpFileSystemModel</name>
<message>
<source>File Type</source>
- <translation>Typ souboru</translation>
+ <translation type="obsolete">Typ souboru</translation>
</message>
<message>
<source>File Name</source>
- <translation>Název souboru</translation>
+ <translation type="obsolete">Název souboru</translation>
</message>
<message>
<source>Error getting &apos;stat&apos; info about &apos;%1&apos;: %2</source>
- <translation>Chyba při získávání &apos;stat&apos; informací o &apos;%1&apos;: %2</translation>
+ <translation type="obsolete">Chyba při získávání &apos;stat&apos; informací o &apos;%1&apos;: %2</translation>
</message>
<message>
<source>Error listing contents of directory &apos;%1&apos;: %2</source>
- <translation>Chyba při vypisování obsahu adresáře &apos;%1&apos;: %2</translation>
+ <translation type="obsolete">Chyba při vypisování obsahu adresáře &apos;%1&apos;: %2</translation>
</message>
</context>
<context>
<name>Utils::Internal::SshRemoteProcessPrivate</name>
<message>
<source>Process killed by signal</source>
- <translation>Proces ukonÄen signálem</translation>
+ <translation type="obsolete">Proces ukonÄen signálem</translation>
</message>
<message>
<source>Server sent invalid signal &apos;%1&apos;</source>
- <translation>Server poslal neplatný signál &apos;%1&apos;</translation>
+ <translation type="obsolete">Server poslal neplatný signál &apos;%1&apos;</translation>
</message>
</context>
<context>
<name>ZeroConf::Internal::ZConfLib</name>
<message>
<source>AvahiZConfLib could not load the native library &apos;%1&apos;: %2</source>
- <translation>AvahiZConfLib se nepodařilo nahrát rodilou knihovnu &apos;%1&apos;: %2</translation>
+ <translation>AvahiZConfLib se nepodařilo nahrát nativní knihovnu &apos;%1&apos;: %2</translation>
+ </message>
+ <message>
+ <source>%1 cannot create a client. The daemon is probably not running.</source>
+ <translation>%1 se nepodařilo vytvořit klienta (pravděpodobně neběží démon).</translation>
+ </message>
+ <message>
+ <source>cAvahiClient, server collision.</source>
+ <translation>cAvahiClient, střet serveru.</translation>
+ </message>
+ <message>
+ <source>cAvahiClient, an error occurred on the client side.</source>
+ <translation>cAvahiClient, na klientské straně se přihodil nějaký druh chyby.</translation>
+ </message>
+ <message>
+ <source>cAvahiClient, still connecting, no server available.</source>
+ <translation>cAvahiClient, stále se připojuje, není dostupný žádný server.</translation>
+ </message>
+ <message>
+ <source>Unexpected state %1 in cAvahiClientReply.</source>
+ <translation>NeoÄekávaný stav %1 v cAvahiClientReply.</translation>
+ </message>
+ <message>
+ <source>Unexpected state %1 in cAvahiBrowseReply.</source>
+ <translation>NeoÄekávaný stav %1 v cAvahiBrowseReply.</translation>
</message>
<message>
<source>%1 could not create a client (probably the daemon is not running)</source>
- <translation>%1 se nepodařilo vytvořit klienta (pravděpodobně neběží démon)</translation>
+ <translation type="obsolete">%1 se nepodařilo vytvořit klienta (pravděpodobně neběží démon)</translation>
</message>
<message>
<source>cAvahiClient, server collision</source>
- <translation>cAvahiClient, střet serveru</translation>
+ <translation type="obsolete">cAvahiClient, střet serveru</translation>
</message>
<message>
<source>cAvahiClient, some kind of error happened on the client side</source>
- <translation>cAvahiClient, na klientské straně se přihodil nějaký druh chyby</translation>
+ <translation type="obsolete">cAvahiClient, na klientské straně se přihodil nějaký druh chyby</translation>
</message>
<message>
<source>cAvahiClient, still connecting, no server available</source>
- <translation>cAvahiClient, stále se připojuje, není dostupný žádný server</translation>
+ <translation type="obsolete">cAvahiClient, stále se připojuje, není dostupný žádný server</translation>
</message>
<message>
<source>Error: unexpected state %1 in cAvahiClientReply, ignoring it</source>
- <translation>Chyba: neoÄekávaný stav %1 v cAvahiClientReply, pÅ™ehlíží se</translation>
+ <translation type="obsolete">Chyba: neoÄekávaný stav %1 v cAvahiClientReply, pÅ™ehlíží se</translation>
</message>
<message>
<source>Error: unexpected state %1 in cAvahiBrowseReply, ignoring it</source>
- <translation>Chyba: neoÄekávaný stav %1 v cAvahiBrowseReply, pÅ™ehlíží se</translation>
+ <translation type="obsolete">Chyba: neoÄekávaný stav %1 v cAvahiBrowseReply, pÅ™ehlíží se</translation>
</message>
<message>
<source>zeroconf failed to kill other daemons with &apos;%1&apos;</source>
@@ -48387,14 +50335,32 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message>
<message>
<source>%1 failed starting embedded daemon at %2</source>
- <translation>%1 se nepodařilo spustit vloženého démona na %2</translation>
+ <translation type="obsolete">%1 se nepodařilo spustit vloženého démona na %2</translation>
+ </message>
+ <message>
+ <source>%1 failed to kill other daemons with &apos;%2&apos;.</source>
+ <translation>%1 se nepodařilo zabít další démony s &apos;%2&apos;.</translation>
+ </message>
+ <message>
+ <source>%1 detected a file at /tmp/mdnsd, daemon startup will probably fail.</source>
+ <translation>%1 zjistil soubor v /tmp/mdnsd, démona se pravděpodobně nepodaří spustit.</translation>
+ </message>
+ <message>
+ <source>%1: log of previous daemon run is: &apos;%2&apos;.
+</source>
+ <translation>%1: zápis předchozího spuštění démona je: &apos;%2&apos;.
+</translation>
+ </message>
+ <message>
+ <source>%1 failed starting embedded daemon at %2.</source>
+ <translation>%1 se nepodařilo spustit vloženého démona na %2.</translation>
</message>
</context>
<context>
<name>ZeroConf</name>
<message>
<source>DnsSdZConfLib could not load native library</source>
- <translation>DnsSdZConfLib se nepodařilo nahrát rodilou knihovnu</translation>
+ <translation type="obsolete">DnsSdZConfLib se nepodařilo nahrát rodilou knihovnu</translation>
</message>
<message>
<source>DnsSdZConfLib skipping over avahi compatibility lib (or obsolete mdnsd)</source>
@@ -48406,35 +50372,35 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message>
<message>
<source>MainConnection giving up on non Ok lib %1 (%2)</source>
- <translation>Hlavní spojení bylo vzdáno na základě chybové knihovny %1 (%2)</translation>
+ <translation type="obsolete">Hlavní spojení bylo vzdáno na základě chybové knihovny %1 (%2)</translation>
</message>
<message>
<source>MainConnection has no valid library, aborting connection</source>
- <translation>Přerušení hlavního spojení na základě chyby platné knihovny</translation>
+ <translation type="obsolete">Přerušení hlavního spojení na základě chyby platné knihovny</translation>
</message>
<message>
<source>MainConnection giving up on lib %1, switching to lib %2</source>
- <translation>Hlavní spojení se s knihovnou %1 nepodařilo vytvořit, nový pokus s knihovnou %2</translation>
+ <translation type="obsolete">Hlavní spojení se s knihovnou %1 nepodařilo vytvořit, nový pokus s knihovnou %2</translation>
</message>
<message>
<source>MainConnection giving up on lib %1, no fallback provided, aborting connection</source>
- <translation>Hlavní spojení se s knihovnou %1 nepodařilo vytvořit. Následuje přerušení spojení, neboť nebyla poskytnuta žádná záloha</translation>
+ <translation type="obsolete">Hlavní spojení se s knihovnou %1 nepodařilo vytvořit. Následuje přerušení spojení, neboť nebyla poskytnuta žádná záloha</translation>
</message>
<message>
<source>MainConnection using lib %1 failed the initialization of mainRef with error %2</source>
- <translation>Hlavní spojení se s knihovnou %1 nepodařilo vytvořit, protože se nepodařila inicializace mainRef (chyba %2)</translation>
+ <translation type="obsolete">Hlavní spojení se s knihovnou %1 nepodařilo vytvořit, protože se nepodařila inicializace mainRef (chyba %2)</translation>
</message>
<message>
<source>MainConnection using lib %1 failed because no daemon is running</source>
- <translation>Hlavní spojení se při použití knihovny %1 nepodařilo vytvořit, protože neběží žádný proces na pozadí (démon)</translation>
+ <translation type="obsolete">Hlavní spojení se při použití knihovny %1 nepodařilo vytvořit, protože neběží žádný proces na pozadí (démon)</translation>
</message>
<message>
<source>MainConnection using lib %1 daemon starting seem successful, continuing</source>
- <translation>Hlavní spojení pÅ™i použití knihovny %1: proces na pozadí (démon) byl spuÅ¡tÄ›n. PokraÄuje se</translation>
+ <translation type="obsolete">Hlavní spojení pÅ™i použití knihovny %1: proces na pozadí (démon) byl spuÅ¡tÄ›n. PokraÄuje se</translation>
</message>
<message>
<source>MainConnection using lib %1 failed getProperty call with error %2</source>
- <translation>Hlavní spojení se při použití knihovny %1 nepodařilo vytvořit, protože se nepodařilo vyvolat getProperty (chyba %2)</translation>
+ <translation type="obsolete">Hlavní spojení se při použití knihovny %1 nepodařilo vytvořit, protože se nepodařilo vyvolat getProperty (chyba %2)</translation>
</message>
<message>
<source>MainConnection could successfully create a connection using lib %1</source>
@@ -48442,15 +50408,91 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message>
<message>
<source>MainConnection::handleEvents called with m_status != Starting, aborting</source>
- <translation>MainConnection::handleEvents bylo vyvoláno s m_status != Starting , přerušení</translation>
+ <translation type="obsolete">MainConnection::handleEvents bylo vyvoláno s m_status != Starting , přerušení</translation>
</message>
<message>
<source>MainConnection::handleEvents unexpected return status of handleEvent</source>
- <translation>MainConnection::handleEvents: neoÄekávaný vrácený stav handleEvent</translation>
+ <translation type="obsolete">MainConnection::handleEvents: neoÄekávaný vrácený stav handleEvent</translation>
</message>
<message>
<source>MainConnection for [%1] accumulated %2 consecutive errors, aborting</source>
- <translation>Hlavní spojení pro [%1] nahromadilo %2 po sobě jdoucích chyb, přerušení</translation>
+ <translation type="obsolete">Hlavní spojení pro [%1] nahromadilo %2 po sobě jdoucích chyb, přerušení</translation>
+ </message>
+ <message>
+ <source>could not load native library</source>
+ <translation>Nepodařilo se nahrát nativní knihovnu</translation>
+ </message>
+ <message>
+ <source>skipping over avahi compatibility lib (or obsolete mdnsd)</source>
+ <translation>Přeskakuje knihovnu kompatibility avahi (nebo zastaralé mdnsd)</translation>
+ </message>
+ <message>
+ <source>*WARNING* detected an obsolete version of Apple Bonjour, either disable/uninstall it or upgrade it, otherwise zeroconf will fail</source>
+ <translation>*VAROVÃNÃ* ZjiÅ¡tÄ›na zastaralá verze Apple Bonjour. BuÄ ji zakažte/odinstalujte, nebo ji aktualizujte na verzi vyšší. Jinak zeroconf spadne</translation>
+ </message>
+ <message>
+ <source>Zeroconf could not load a valid library, failing.</source>
+ <translation>Zeroconf se nepodařilo nahrát platnou knihovnu.</translation>
+ </message>
+ <message>
+ <source>Zeroconf giving up on non working %1 (%2).</source>
+ <translation>Zeroconf se vzdává při nepracující %1 (%2).</translation>
+ </message>
+ <message>
+ <source>Zeroconf has no valid library, aborting connection.</source>
+ <translation>Přerušení spojení, Zeroconf nemá žádnou platnou knihovnu.</translation>
+ </message>
+ <message>
+ <source>Zeroconf giving up on %1, switching to %2.</source>
+ <translation>Zeroconf se vzdává při %1, přepíná se do %2.</translation>
+ </message>
+ <message>
+ <source>Zeroconf giving up on %1, no fallback provided, aborting connection.</source>
+ <translation>Zeroconf se vzdává při %1. Následuje přerušení spojení, neboť nebyla poskytnuta žádná záloha.</translation>
+ </message>
+ <message>
+ <source>Trying %1...</source>
+ <translation>Zkouší se %1...</translation>
+ </message>
+ <message>
+ <source>Zeroconf using %1 failed the initialization of the main library connection with error %2.</source>
+ <translation>Zeroconf při použití %1 se nepodařila inicializace spojení hlavní knihovny s chybou %2.</translation>
+ </message>
+ <message>
+ <source>Zeroconf using %1 failed because no daemon is running.</source>
+ <translation>Zeroconf při použití %1 selhal, protože neběží žádný démon.</translation>
+ </message>
+ <message>
+ <source>Starting the Zeroconf daemon using %1 seems successful, continuing.</source>
+ <translation>SpuÅ¡tÄ›ní démoba Zeroconf pÅ™i použití knihovny %1 se zdá probÄ›hnout úspěšnÄ›. PokraÄuje se.</translation>
+ </message>
+ <message>
+ <source>Zeroconf using %1 failed getProperty call with error %2.</source>
+ <translation>Zeroconf při použití %1 se nepodařilo zavolat getProperty s chybou %2.</translation>
+ </message>
+ <message>
+ <source>Succeeded using %1.</source>
+ <translation>Mělo úspěch při použití %1.</translation>
+ </message>
+ <message>
+ <source>MainConnection could successfully create a connection using %1.</source>
+ <translation>MainConnection by mohlo úspěšně vytvořit spojení pomocí %1.</translation>
+ </message>
+ <message>
+ <source>Zeroconf, unexpected start status, aborting.</source>
+ <translation>Zeroconf, neoÄekávaný stav spuÅ¡tÄ›ní, ruší se.</translation>
+ </message>
+ <message>
+ <source>Zeroconf detected an unexpected return status of handleEvent.</source>
+ <translation>Zeroconf zjistil neoÄekávaný návratový stav handleEvent.</translation>
+ </message>
+ <message numerus="yes">
+ <source>Zeroconf for [%1] accumulated %n consecutive errors, aborting.</source>
+ <translation>
+ <numerusform>Zeroconf pro [%1] nahromadilo %2 po sobě jdoucích chyb, přerušení.</numerusform>
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ </translation>
</message>
</context>
<context>
@@ -48477,6 +50519,10 @@ should a repository require SSH-authentication (see documentation on SSH and the
<source>Analyzer</source>
<translation>Rozbor</translation>
</message>
+ <message>
+ <source>No analyzer tool selected</source>
+ <translation>Nevybrán žádný nástroj pro rozbor</translation>
+ </message>
</context>
<context>
<name>Analyzer::AnalyzerRunConfigurationAspect</name>
@@ -48497,19 +50543,29 @@ Please install one SDK with api version &gt;=%1</source>
<translation type="obsolete">Nelze vytvořit nové AVD, není dostupný dostatek SDK pro Android
Nainstalujte, prosím, jedno SDK s API verze &gt;=%1</translation>
</message>
+ <message>
+ <source>Error Creating AVD</source>
+ <translation>Chyba při vytváření AVD</translation>
+ </message>
+ <message>
+ <source>Cannot create a new AVD. No sufficiently recent Android SDK available.
+Please install an SDK of at least API version %1.</source>
+ <translation>Nelze vytvoÅ™it nové AVD. Není dostupné dostaÄnÄ› nedávné SDK pro Android.
+Nainstalujte, prosím, jedno SDK s API verze alespoň %1.</translation>
+ </message>
</context>
<context>
<name>Android</name>
<message>
<source>Android</source>
- <translation type="obsolete">Android</translation>
+ <translation>Android</translation>
</message>
</context>
<context>
<name>QtSupport</name>
<message>
<source>Android</source>
- <translation type="obsolete">Android</translation>
+ <translation>Android</translation>
</message>
<message>
<source>MeeGo/Harmattan</source>
@@ -48517,7 +50573,11 @@ Nainstalujte, prosím, jedno SDK s API verze &gt;=%1</translation>
</message>
<message>
<source>Symbian</source>
- <translation>Symbian</translation>
+ <translation type="obsolete">Symbian</translation>
+ </message>
+ <message>
+ <source>Maemo/Fremantle</source>
+ <translation>Maemo/Fremantle</translation>
</message>
<message>
<source>Desktop</source>
@@ -48536,41 +50596,41 @@ Nainstalujte, prosím, jedno SDK s API verze &gt;=%1</translation>
<name>Android::Internal::AndroidCreateKeystoreCertificate</name>
<message>
<source>&lt;span style=&quot; color:#ff0000;&quot;&gt;Password is too short&lt;/span&gt;</source>
- <translation type="obsolete">&lt;span style=&quot; color:#ff0000;&quot;&gt;Heslo je příliš krátké&lt;/span&gt;</translation>
+ <translation>&lt;span style=&quot; color:#ff0000;&quot;&gt;Heslo je příliš krátké&lt;/span&gt;</translation>
</message>
<message>
<source>&lt;span style=&quot; color:#ff0000;&quot;&gt;Passwords don&apos;t match&lt;/span&gt;</source>
- <translation type="obsolete">&lt;span style=&quot; color:#ff0000;&quot;&gt;Heslo neodpovídá&lt;/span&gt;</translation>
+ <translation>&lt;span style=&quot; color:#ff0000;&quot;&gt;Heslo neodpovídá&lt;/span&gt;</translation>
</message>
<message>
<source>&lt;span style=&quot; color:#00ff00;&quot;&gt;Password is ok&lt;/span&gt;</source>
- <translation type="obsolete">&lt;span style=&quot; color:#ff0000;&quot;&gt;Heslo je OK&lt;/span&gt;</translation>
+ <translation>&lt;span style=&quot; color:#ff0000;&quot;&gt;Heslo je OK&lt;/span&gt;</translation>
</message>
<message>
<source>Keystore file name</source>
- <translation type="obsolete">Název souboru úložiÅ¡tÄ› klíÄe</translation>
+ <translation>Název souboru úložiÅ¡tÄ› klíÄe</translation>
</message>
<message>
<source>Keystore files (*.keystore *.jks)</source>
- <translation type="obsolete">Soubory úložiÅ¡tÄ› klíÄe (*.keystore *.jks)</translation>
+ <translation>Soubory úložiÅ¡tÄ› klíÄe (*.keystore *.jks)</translation>
</message>
<message>
<source>Error</source>
- <translation type="obsolete">Chyba</translation>
+ <translation>Chyba</translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidDeployConfiguration</name>
<message>
<source>Deploy to Android device</source>
- <translation type="obsolete">Poslat na zařízení Android</translation>
+ <translation>Poslat na zařízení Android</translation>
</message>
</context>
<context>
<name>Android::Internal::AndroidDeployConfigurationFactory</name>
<message>
<source>Deploy on Android</source>
- <translation type="obsolete">Poslat na Android</translation>
+ <translation>Poslat na Android</translation>
</message>
</context>
<context>
@@ -48578,7 +50638,7 @@ Nainstalujte, prosím, jedno SDK s API verze &gt;=%1</translation>
<message>
<source>Deploy to Android device</source>
<extracomment>AndroidDeployStep default display name</extracomment>
- <translation type="obsolete">Poslat na zařízení Android</translation>
+ <translation>Poslat na zařízení Android</translation>
</message>
<message>
<source>Cannot deploy: current target is not android.</source>
@@ -48586,31 +50646,51 @@ Nainstalujte, prosím, jedno SDK s API verze &gt;=%1</translation>
</message>
<message>
<source>Please wait, searching for a suitable device for target:%1.</source>
- <translation type="obsolete">PoÄkejte, prosím, hledá se vhodné zařízení pro cíl %1.</translation>
+ <translation>PoÄkejte, prosím, hledá se vhodné zařízení pro cíl: %1.</translation>
</message>
<message>
<source>Cannot deploy: no devices or emulators found for your package.</source>
- <translation type="obsolete">Nelze nasadit: Pro váš balíÄek nebyla nalezena žádná zařízení nebo emulátory.</translation>
+ <translation>Nelze nasadit: Pro váš balíÄek nebyla nalezena žádná zařízení nebo emulátory.</translation>
</message>
<message>
<source>Package deploy: Running command &apos;%1 %2&apos;.</source>
- <translation type="obsolete">Nasazení balíÄku: SpouÅ¡tí se příkaz &apos;%1 %2&apos;.</translation>
+ <translation>Nasazení balíÄku: SpouÅ¡tí se příkaz &apos;%1 %2&apos;.</translation>
</message>
<message>
<source>Packaging error: Could not start command &apos;%1 %2&apos;. Reason: %3</source>
- <translation type="obsolete">Chyba pÅ™i vytváření balíÄku: NepodaÅ™ilo se spustit příkaz &apos;%1 %2&apos;: Důvod %3</translation>
+ <translation>Chyba pÅ™i vytváření balíÄku: NepodaÅ™ilo se spustit příkaz &apos;%1 %2&apos;: Důvod %3</translation>
</message>
<message>
<source>Packaging Error: Command &apos;%1 %2&apos; failed.</source>
- <translation type="obsolete">Chyba pÅ™i vytváření balíÄku: Příkaz &apos;%1 %2&apos; se nepodaÅ™ilo provést.</translation>
+ <translation>Chyba pÅ™i vytváření balíÄku: Příkaz &apos;%1 %2&apos; se nepodaÅ™ilo provést.</translation>
</message>
<message>
<source> Reason: %1</source>
- <translation type="obsolete">Důvod: %1</translation>
+ <translation>Důvod: %1</translation>
</message>
<message>
<source>Exit code: %1</source>
- <translation type="obsolete">Kód ukonÄení: %1</translation>
+ <translation>Kód ukonÄení: %1</translation>
+ </message>
+ <message>
+ <source>Clean old Qt libraries</source>
+ <translation>ProÄistit staré knihovny qt</translation>
+ </message>
+ <message>
+ <source>Deploy Qt libraries. This may take some time, please wait.</source>
+ <translation>Nasadit knihovny qt. To může nÄ›jakou dobu trvat. PoÄkejte, prosím.</translation>
+ </message>
+ <message>
+ <source>Qt Android smart installer installation failed</source>
+ <translation>Instalace chytrého Qt instalátoru pro Android se nezdařila</translation>
+ </message>
+ <message>
+ <source>Package installation failed.</source>
+ <translation>Instalace balíÄku se nezdaÅ™ila.</translation>
+ </message>
+ <message>
+ <source>Pulling files necessary for debugging.</source>
+ <translation>Nahrávají se soubory nezbytné pro ladění.</translation>
</message>
<message>
<source>Clean old qt libs</source>
@@ -48626,7 +50706,7 @@ Nainstalujte, prosím, jedno SDK s API verze &gt;=%1</translation>
</message>
<message>
<source>Installing package onto %1.</source>
- <translation type="obsolete">Instalace balíÄku do %1.</translation>
+ <translation>Instalace balíÄku do %1.</translation>
</message>
<message>
<source>Package instalation failed</source>
@@ -48648,7 +50728,11 @@ Nainstalujte, prosím, jedno SDK s API verze &gt;=%1</translation>
<name>Android::Internal::AndroidDeployStepWidget</name>
<message>
<source>&lt;b&gt;Deploy configurations&lt;/b&gt;</source>
- <translation type="obsolete">&lt;b&gt;Nastavení nasazení&lt;/b&gt;</translation>
+ <translation>&lt;b&gt;Nastavení nasazení&lt;/b&gt;</translation>
+ </message>
+ <message>
+ <source>Qt Android Smart Installer</source>
+ <translation>Chytrý instalátor pro Qt Android</translation>
</message>
<message>
<source>Qt Android smart installer</source>
@@ -48656,7 +50740,7 @@ Nainstalujte, prosím, jedno SDK s API verze &gt;=%1</translation>
</message>
<message>
<source>Android package (*.apk)</source>
- <translation type="obsolete">BalíÄek pro Android (*.apk)</translation>
+ <translation>BalíÄek pro Android (*.apk)</translation>
</message>
</context>
<context>
@@ -48670,7 +50754,7 @@ Nainstalujte, prosím, jedno SDK s API verze &gt;=%1</translation>
<name>Android::Internal::AndroidPackageCreationStep</name>
<message>
<source>Packaging for Android</source>
- <translation type="obsolete">VytvoÅ™ení balíÄku pro Android</translation>
+ <translation>VytvoÅ™ení balíÄku pro Android</translation>
</message>
<message>
<source>Cannot create android package: current target is not android.</source>
@@ -48687,84 +50771,98 @@ Please make sure your application is built successfully and is selected in Appli
Ujistěte se, prosím, že váš program je sestaven úspěšně a je vybrán na kartě s programy (&apos;Volba pro spuštění&apos;) </translation>
</message>
<message>
+ <source>Cannot create Android package: current build configuration is not Qt 4.</source>
+ <translation>Nelze vytvoÅ™it balíÄek pro Android: nynÄ›jší nastavení sestavování není Qt 4.</translation>
+ </message>
+ <message>
+ <source>Cannot find ELF information</source>
+ <translation>Nelze najít informaci ELF</translation>
+ </message>
+ <message>
+ <source>Cannot find &apos;%1&apos;.
+Please make sure your application is built successfully and is selected in Application tab (&apos;Run option&apos;).</source>
+ <translation>Nelze najít &apos;%1&apos;.
+Ujistěte se, prosím, že váš program je sestaven úspěšně a je vybrán na kartě s programy (&apos;Volba pro spuštění&apos;).</translation>
+ </message>
+ <message>
<source>Error</source>
- <translation type="obsolete">Chyba</translation>
+ <translation>Chyba</translation>
</message>
<message>
<source>Failed to run keytool</source>
- <translation type="obsolete">NepodaÅ™ilo se spustit nástroj klíÄe</translation>
+ <translation>NepodaÅ™ilo se spustit nástroj klíÄe</translation>
</message>
<message>
<source>Invalid password</source>
- <translation type="obsolete">Neplatné heslo</translation>
+ <translation>Neplatné heslo</translation>
</message>
<message>
<source>Copy Qt app &amp; libs to Android package ...</source>
- <translation type="obsolete">Kopírovat programy &amp; knihovny Qt do balíÄku Android...</translation>
+ <translation>Kopírovat programy &amp; knihovny Qt do balíÄku Android...</translation>
</message>
<message>
<source>Can&apos;t copy gdbserver from &apos;%1&apos; to &apos;%2&apos;</source>
- <translation type="obsolete">Nelze kopírovat gdbserver z &apos;%1&apos; do &apos;%2&apos;</translation>
+ <translation>Nelze kopírovat gdbserver z &apos;%1&apos; do &apos;%2&apos;</translation>
</message>
<message>
<source>Creating package file ...</source>
- <translation type="obsolete">Vytváří se soubor s balíÄkem...</translation>
+ <translation>Vytváří se soubor s balíÄkem...</translation>
</message>
<message>
<source>Signing package ...</source>
- <translation type="obsolete">Podepisuje se balíÄek...</translation>
+ <translation>Podepisuje se balíÄek...</translation>
</message>
<message>
<source>Failed, try again</source>
- <translation type="obsolete">Nepodařilo se. Zkuste to znovu</translation>
+ <translation>Nepodařilo se. Zkuste to znovu</translation>
</message>
<message>
<source>Release signed package created to %1</source>
- <translation type="obsolete">Vydat podepsaný vytvoÅ™ený soubor s balíÄkem do %1</translation>
+ <translation>Vydat podepsaný vytvoÅ™ený soubor s balíÄkem do %1</translation>
</message>
<message>
<source>Package created.</source>
- <translation type="obsolete">Soubor s balíÄkem byl vytvoÅ™en.</translation>
+ <translation>Soubor s balíÄkem byl vytvoÅ™en.</translation>
</message>
<message>
<source>Package deploy: Running command &apos;%1 %2&apos;.</source>
- <translation type="obsolete">Nasazení balíÄku: SpouÅ¡tí se příkaz &apos;%1 %2&apos;.</translation>
+ <translation>Nasazení balíÄku: SpouÅ¡tí se příkaz &apos;%1 %2&apos;.</translation>
</message>
<message>
<source>Packaging failed.</source>
- <translation type="obsolete">VytvoÅ™ení balíÄku se nezdaÅ™ilo.</translation>
+ <translation>VytvoÅ™ení balíÄku se nezdaÅ™ilo.</translation>
</message>
<message>
<source>Packaging error: Could not start command &apos;%1 %2&apos;. Reason: %3</source>
- <translation type="obsolete">Chyba pÅ™i vytváření balíÄku: NepodaÅ™ilo se spustit příkaz &apos;%1 %2&apos;: Důvod %3</translation>
+ <translation>Chyba pÅ™i vytváření balíÄku: NepodaÅ™ilo se spustit příkaz &apos;%1 %2&apos;: Důvod %3</translation>
</message>
<message>
<source>Packaging Error: Command &apos;%1 %2&apos; failed.</source>
- <translation type="obsolete">Chyba pÅ™i vytváření balíÄku: Příkaz &apos;%1 %2&apos; se nepodaÅ™ilo provést.</translation>
+ <translation>Chyba pÅ™i vytváření balíÄku: Příkaz &apos;%1 %2&apos; se nepodaÅ™ilo provést.</translation>
</message>
<message>
<source> Reason: %1</source>
- <translation type="obsolete">Důvod: %1</translation>
+ <translation>Důvod: %1</translation>
</message>
<message>
<source>Exit code: %1</source>
- <translation type="obsolete">Kód ukonÄení: %1</translation>
+ <translation>Kód ukonÄení: %1</translation>
</message>
<message>
<source>Keystore</source>
- <translation type="obsolete">ÚložiÅ¡tÄ› pro klíÄ</translation>
+ <translation>ÚložiÅ¡tÄ› pro klíÄ</translation>
</message>
<message>
<source>Keystore password:</source>
- <translation type="obsolete">Heslo pro úložiÅ¡tÄ› klíÄe:</translation>
+ <translation>Heslo pro úložiÅ¡tÄ› klíÄe:</translation>
</message>
<message>
<source>Certificate</source>
- <translation type="obsolete">Certifikát</translation>
+ <translation>Certifikát</translation>
</message>
<message>
<source>Certificate password (%1):</source>
- <translation type="obsolete">Heslo k certifikátu (%1):</translation>
+ <translation>Heslo k certifikátu (%1):</translation>
</message>
</context>
<context>
@@ -48776,12 +50874,12 @@ Ujistěte se, prosím, že váš program je sestaven úspěšně a je vybrán na
<message>
<source>The package name &apos;%1&apos; is not valid.
Please choose a valid package name for your application (e.g. &quot;org.example.myapplication&quot;).</source>
- <translation type="obsolete">Název balíÄku &apos;%1&apos; není platný.
+ <translation>Název balíÄku &apos;%1&apos; není platný.
Vyberte, prosím, platný název balíÄku pro váš program (napÅ™. &quot;org.example.myapplication&quot;).</translation>
</message>
<message>
<source>Choose High DPI Icon</source>
- <translation type="obsolete">Vybrat ikonu s vysokým dpi</translation>
+ <translation>Vybrat ikonu s vysokým dpi</translation>
</message>
<message>
<source>png images (*.png)</source>
@@ -48789,27 +50887,39 @@ Vyberte, prosím, platný název balíÄku pro váš program (napÅ™. &quot;org.e
</message>
<message>
<source>Choose Medium DPI Icon</source>
- <translation type="obsolete">Vybrat ikonu se středním dpi</translation>
+ <translation>Vybrat ikonu se středním dpi</translation>
</message>
<message>
<source>Choose Low DPI Icon</source>
- <translation type="obsolete">Vybrat ikonu s nízkým dpi</translation>
+ <translation>Vybrat ikonu s nízkým dpi</translation>
</message>
<message>
<source>&lt; type or choose a permission &gt;</source>
<translation type="obsolete">&lt; napište nebo vyberte oprávnění &gt;</translation>
</message>
<message>
+ <source>Invalid Package Name</source>
+ <translation>Neplatný název balíÄku</translation>
+ </message>
+ <message>
+ <source>PNG images (*.png)</source>
+ <translation>Soubory s obrázky PNG (*.png)</translation>
+ </message>
+ <message>
+ <source>&lt; Type or choose a permission &gt;</source>
+ <translation>&lt; Napište nebo vyberte oprávnění &gt;</translation>
+ </message>
+ <message>
<source>&lt;b&gt;Package configurations&lt;/b&gt;</source>
- <translation type="obsolete">&lt;b&gt;Nastavení balíÄků&lt;/b&gt;</translation>
+ <translation>&lt;b&gt;Nastavení balíÄků&lt;/b&gt;</translation>
</message>
<message>
<source>Select keystore file</source>
- <translation type="obsolete">Vybrat soubor úložiÅ¡tÄ› klíÄe</translation>
+ <translation>Vybrat soubor úložiÅ¡tÄ› klíÄe</translation>
</message>
<message>
<source>Keystore files (*.keystore *.jks)</source>
- <translation type="obsolete">Soubory úložiÅ¡tÄ› klíÄe (*.keystore *.jks)</translation>
+ <translation>Soubory úložiÅ¡tÄ› klíÄe (*.keystore *.jks)</translation>
</message>
</context>
<context>
@@ -48823,7 +50933,7 @@ Vyberte, prosím, platný název balíÄku pro váš program (napÅ™. &quot;org.e
<name>Android::Internal::AndroidPackageInstallationStep</name>
<message>
<source>Copy application data</source>
- <translation type="obsolete">Kopírovat data programu</translation>
+ <translation>Kopírovat data programu</translation>
</message>
<message>
<source>Current target is not an android target</source>
@@ -48834,7 +50944,7 @@ Vyberte, prosím, platný název balíÄku pro váš program (napÅ™. &quot;org.e
<name>Android::Internal::AndroidRunConfiguration</name>
<message>
<source>Run on Android device</source>
- <translation type="obsolete">Spustit na zařízení Android</translation>
+ <translation>Spustit na zařízení Android</translation>
</message>
</context>
<context>
@@ -48843,6 +50953,10 @@ Vyberte, prosím, platný název balíÄku pro váš program (napÅ™. &quot;org.e
<source>Starting remote process ...</source>
<translation type="obsolete">Spouští se vzdálený proces...</translation>
</message>
+ <message>
+ <source>Starting remote process.</source>
+ <translation>Spouští se vzdálený proces.</translation>
+ </message>
</context>
<context>
<name>Android::Internal::AndroidRunControlFactory</name>
@@ -48850,6 +50964,10 @@ Vyberte, prosím, platný název balíÄku pro váš program (napÅ™. &quot;org.e
<source>Run on Android device/emulator</source>
<translation type="obsolete">Spustit na zařízení/emulátor Android</translation>
</message>
+ <message>
+ <source>Run on Android device or emulator.</source>
+ <translation>Spustit na zařízení nebo emulátoru Androida.</translation>
+ </message>
</context>
<context>
<name>Android::Internal::AndroidRunner</name>
@@ -48889,12 +51007,56 @@ Vyberte, prosím, platný název balíÄku pro váš program (napÅ™. &quot;org.e
&apos;%1&apos; ukonÄen</translation>
</message>
+ <message>
+ <source>
+
+&apos;%1&apos; died.</source>
+ <translation>
+
+&apos;%1&apos; zemřel.</translation>
+ </message>
+ <message>
+ <source>Failed to forward C++ debugging ports. Reason: %1.</source>
+ <translation>Nepodařilo se přeposlat porty pro ladění C++. Důvod: %1.</translation>
+ </message>
+ <message>
+ <source>Failed to forward C++ debugging ports.</source>
+ <translation>Nepodařilo se přeposlat porty pro ladění C++.</translation>
+ </message>
+ <message>
+ <source>Failed to forward QML debugging ports. Reason: %1.</source>
+ <translation>Nepodařilo se přeposlat porty pro ladění QML. Důvod: %1.</translation>
+ </message>
+ <message>
+ <source>Failed to forward QML debugging ports.</source>
+ <translation>Nepodařilo se přeposlat porty pro ladění QML.</translation>
+ </message>
+ <message>
+ <source>Failed to start the activity. Reason: %1.</source>
+ <translation>NepodaÅ™ilo se spustit Äinnost. Důvod: %1.</translation>
+ </message>
+ <message>
+ <source>Unable to start &apos;%1&apos;.</source>
+ <translation>Nelze spustit &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <source>Cannot find %1 process.</source>
+ <translation>Nelze najít proces %1.</translation>
+ </message>
+ <message>
+ <source>
+
+&apos;%1&apos; killed.</source>
+ <translation>
+
+&apos;%1&apos; ukonÄen.</translation>
+ </message>
</context>
<context>
<name>Android::Internal::AndroidSettingsPage</name>
<message>
<source>Android Configurations</source>
- <translation type="obsolete">Nastavení pro Android</translation>
+ <translation>Nastavení pro Android</translation>
</message>
</context>
<context>
@@ -48916,7 +51078,7 @@ Vyberte, prosím, platný název balíÄku pro váš program (napÅ™. &quot;org.e
<name>Android::Internal::AndroidSettingsWidget</name>
<message>
<source>Android SDK Folder</source>
- <translation type="obsolete">Složka SDK pro Android</translation>
+ <translation>Složka SDK pro Android</translation>
</message>
<message>
<source>&quot;%1&quot; doesn&apos;t seem to be an Android SDK top folder</source>
@@ -48927,12 +51089,36 @@ Vyberte, prosím, platný název balíÄku pro váš program (napÅ™. &quot;org.e
<translation type="obsolete">&quot;%1&quot; se nezdá být hlavní složkou NDK pro Android</translation>
</message>
<message>
+ <source>&quot;%1&quot; does not seem to be an Android SDK top folder.</source>
+ <translation>&quot;%1&quot; se nezdá být hlavní složkou SDK pro Android.</translation>
+ </message>
+ <message>
+ <source>&quot;%1&quot; does not seem to be an Android NDK top folder.</source>
+ <translation>&quot;%1&quot; se nezdá být hlavní složkou NDK pro Android.</translation>
+ </message>
+ <message>
<source>Select Android SDK folder</source>
- <translation type="obsolete">Vybrat složku SDK pro Android</translation>
+ <translation>Vybrat složku SDK pro Android</translation>
</message>
<message>
<source>Select Android NDK folder</source>
- <translation type="obsolete">Vybrat složku NDK pro Android</translation>
+ <translation>Vybrat složku NDK pro Android</translation>
+ </message>
+ <message>
+ <source>Select ant Script</source>
+ <translation>Vybrat skript ant</translation>
+ </message>
+ <message>
+ <source>Select GDB Executable</source>
+ <translation>Vybrat spustitelný soubor GDB</translation>
+ </message>
+ <message>
+ <source>Select GDB Server Android Executable</source>
+ <translation>Vybrat spustitelný soubor Android Server GDB</translation>
+ </message>
+ <message>
+ <source>Select OpenJDK Path</source>
+ <translation>Vybrat cestu pro OpenJDK</translation>
</message>
<message>
<source>Select ant script</source>
@@ -48999,7 +51185,11 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
<name>Android::Internal::AndroidToolChainFactory</name>
<message>
<source>Android GCC</source>
- <translation type="obsolete">GCC Android</translation>
+ <translation>GCC Android</translation>
+ </message>
+ <message>
+ <source>Android GCC for %1</source>
+ <translation>GCC Android pro %1</translation>
</message>
<message>
<source>Android Gcc for %1</source>
@@ -49007,7 +51197,7 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
</message>
<message>
<source>Android GCC (%1-%2)</source>
- <translation type="obsolete">GCC Android (%1-%2)</translation>
+ <translation>GCC Android (%1-%2)</translation>
</message>
</context>
<context>
@@ -49016,6 +51206,10 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
<source>NDK Root: %1</source>
<translation type="obsolete">Kořen (root) NDK: %1</translation>
</message>
+ <message>
+ <source>NDK Root:</source>
+ <translation>Kořen (root) NDK:</translation>
+ </message>
</context>
<context>
<name>AutotoolsProjectManager::Internal::AutogenStepFactory</name>
@@ -49102,11 +51296,11 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
</message>
<message>
<source>Tool chain:</source>
- <translation>Sada nástrojů:</translation>
+ <translation type="obsolete">Sada nástrojů:</translation>
</message>
<message>
<source>&lt;Invalid tool chain&gt;</source>
- <translation>&lt;Neplatná sada nástrojů&gt;</translation>
+ <translation type="obsolete">&lt;Neplatná sada nástrojů&gt;</translation>
</message>
</context>
<context>
@@ -49147,7 +51341,7 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
<message>
<source>Desktop</source>
<comment>Autotools Default target display name</comment>
- <translation>Stolní poÄítaÄ</translation>
+ <translation type="obsolete">Stolní poÄítaÄ</translation>
</message>
</context>
<context>
@@ -49213,6 +51407,14 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
<source>Make</source>
<translation>Make</translation>
</message>
+ <message>
+ <source>Qt Creator needs a compiler set up to build. Configure a compiler in the kit options.</source>
+ <translation>Qt Creator potÅ™ebuje nastavení pÅ™ekladaÄe pro sestavení projektu. Nastavte, prosím, pÅ™ekladaÄ ve volbách pro sadu.</translation>
+ </message>
+ <message>
+ <source>Configuration is faulty. Check the Issues view for details.</source>
+ <translation>Nastavení je chybné. Prověřte, prosím, pohled na potíže kvůli podrobnostem.</translation>
+ </message>
</context>
<context>
<name>AutotoolsProjectManager::Internal::MakeStepConfigWidget</name>
@@ -49227,12 +51429,16 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
</message>
<message>
<source>&lt;b&gt;Unknown tool chain&lt;/b&gt;</source>
- <translation>&lt;b&gt;Neznámá sada nástrojů&lt;/b&gt;</translation>
+ <translation type="obsolete">&lt;b&gt;Neznámá sada nástrojů&lt;/b&gt;</translation>
</message>
</context>
<context>
<name>BinEditorDocument</name>
<message>
+ <source>The Binary Editor cannot open empty files.</source>
+ <translation>Binární editor nemůže otevřít prázdné soubory.</translation>
+ </message>
+ <message>
<source>Cannot open %1: %2</source>
<translation>Nelze otevřít soubor &apos;%1&apos;: %2</translation>
</message>
@@ -49283,16 +51489,24 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
<translation>Soubor &lt;i&gt;%1&lt;/i&gt; je pouze pro Ätení.</translation>
</message>
<message>
+ <source>Make &amp;Writable</source>
+ <translation>Udělat &amp;zapisovatelným</translation>
+ </message>
+ <message>
+ <source>&amp;Save As...</source>
+ <translation>&amp;Uložit jako...</translation>
+ </message>
+ <message>
<source>Open with VCS (%1)</source>
- <translation>Otevřít s pomocí systému na ověřování verzí (VCS) (%1)</translation>
+ <translation type="obsolete">Otevřít s pomocí systému na ověřování verzí (VCS) (%1)</translation>
</message>
<message>
<source>Make Writable</source>
- <translation>Udělat zapisovatelným</translation>
+ <translation type="obsolete">Udělat zapisovatelným</translation>
</message>
<message>
<source>Save As...</source>
- <translation>Uložit jako...</translation>
+ <translation type="obsolete">Uložit jako...</translation>
</message>
<message>
<source>Cannot reload %1</source>
@@ -49303,6 +51517,10 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
<name>Core::IDocument</name>
<message>
<source>File was restored from auto-saved copy. Use &lt;i&gt;Save&lt;/i&gt; to confirm, or &lt;i&gt;Revert to Saved&lt;/i&gt; to discard changes.</source>
+ <translation type="obsolete">Soubor byl obnoven z automaticky uložené záložní kopie. Vyberte &lt;i&gt;Uložit&lt;/i&gt; pro potvrzení nebo &lt;i&gt;Obnovit&lt;/i&gt; pro zahození změn.</translation>
+ </message>
+ <message>
+ <source>File was restored from auto-saved copy. Select Save to confirm or Revert to Saved to discard changes.</source>
<translation>Soubor byl obnoven z automaticky uložené záložní kopie. Vyberte &lt;i&gt;Uložit&lt;/i&gt; pro potvrzení nebo &lt;i&gt;Obnovit&lt;/i&gt; pro zahození změn.</translation>
</message>
</context>
@@ -49336,63 +51554,63 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
<name>Debugger::Internal::BreakTreeView</name>
<message>
<source>Delete Breakpoint</source>
- <translation type="obsolete">Smazat bod přerušení</translation>
+ <translation>Smazat bod přerušení</translation>
</message>
<message>
<source>Delete All Breakpoints</source>
- <translation type="obsolete">Smazat všechny body přerušení</translation>
+ <translation>Smazat všechny body přerušení</translation>
</message>
<message>
<source>Delete Breakpoints of &quot;%1&quot;</source>
- <translation type="obsolete">Smazat body přerušení v &quot;%1&quot;</translation>
+ <translation>Smazat body přerušení v &quot;%1&quot;</translation>
</message>
<message>
<source>Delete Breakpoints of File</source>
- <translation type="obsolete">Smazat body přerušení v souboru</translation>
+ <translation>Smazat body přerušení v souboru</translation>
</message>
<message>
<source>Adjust Column Widths to Contents</source>
- <translation type="obsolete">Přizpůsobit šířku sloupců obsahu</translation>
+ <translation>Přizpůsobit šířku sloupců obsahu</translation>
</message>
<message>
<source>Edit Breakpoint...</source>
- <translation type="obsolete">Upravit bod přerušení...</translation>
+ <translation>Upravit bod přerušení...</translation>
</message>
<message>
<source>Associate Breakpoint With All Threads</source>
- <translation type="obsolete">Dát bod přerušení pro všechna vlákna</translation>
+ <translation>Dát bod přerušení pro všechna vlákna</translation>
</message>
<message>
<source>Associate Breakpoint With Thread %1</source>
- <translation type="obsolete">Dát bod přerušení pro vlákno %1</translation>
+ <translation>Dát bod přerušení pro vlákno %1</translation>
</message>
<message>
<source>Synchronize Breakpoints</source>
- <translation type="obsolete">Seřídit body přerušení</translation>
+ <translation>Seřídit body přerušení</translation>
</message>
<message>
<source>Disable Selected Breakpoints</source>
- <translation type="obsolete">Vypnout vybrané body přerušení</translation>
+ <translation>Vypnout vybrané body přerušení</translation>
</message>
<message>
<source>Enable Selected Breakpoints</source>
- <translation type="obsolete">Zapnout vybrané body přerušení</translation>
+ <translation>Zapnout vybrané body přerušení</translation>
</message>
<message>
<source>Disable Breakpoint</source>
- <translation type="obsolete">Vypnout bod přerušení</translation>
+ <translation>Vypnout bod přerušení</translation>
</message>
<message>
<source>Enable Breakpoint</source>
- <translation type="obsolete">Zapnout bod přerušení</translation>
+ <translation>Zapnout bod přerušení</translation>
</message>
<message>
<source>Add Breakpoint...</source>
- <translation type="obsolete">Přidat bod přerušení...</translation>
+ <translation>Přidat bod přerušení...</translation>
</message>
<message>
<source>Add Breakpoint</source>
- <translation type="obsolete">Přidat bod přerušení</translation>
+ <translation>Přidat bod přerušení</translation>
</message>
</context>
<context>
@@ -49426,7 +51644,7 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
</message>
<message>
<source>Debug Information</source>
- <translation type="obsolete">Informace o ladění</translation>
+ <translation>Informace o ladění</translation>
</message>
<message>
<source>Debugger Test</source>
@@ -49457,14 +51675,14 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
</message>
<message>
<source>Enable Debugging of Subprocesses</source>
- <translation type="obsolete">Povolit ladění podřízených procesů</translation>
+ <translation>Povolit ladění podřízených procesů</translation>
</message>
</context>
<context>
<name>DebuggerPlugin</name>
<message>
<source>Debug</source>
- <translation type="obsolete">Ladění</translation>
+ <translation>Ladění</translation>
</message>
<message>
<source>Debugger</source>
@@ -49472,64 +51690,68 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
</message>
<message>
<source>Unable to create a debugger engine of the type &apos;%1&apos;</source>
- <translation type="obsolete">Nepodařilo se vytvořit žádný ladicí stroj typu &apos;%1&apos;</translation>
+ <translation>Nepodařilo se vytvořit žádný ladicí stroj typu &apos;%1&apos;</translation>
</message>
</context>
<context>
<name>Debugger::Internal::ModulesTreeView</name>
<message>
<source>Update Module List</source>
- <translation type="obsolete">Obnovit seznam modulů</translation>
+ <translation>Obnovit seznam modulů</translation>
</message>
<message>
<source>Show Source Files for Module &quot;%1&quot;</source>
- <translation type="obsolete">Ukázat zdrojové soubory k modulu &quot;%1&quot;</translation>
+ <translation>Ukázat zdrojové soubory k modulu &quot;%1&quot;</translation>
</message>
<message>
<source>Load Symbols for All Modules</source>
- <translation type="obsolete">Nahrát symboly ke všem modulům</translation>
+ <translation>Nahrát symboly ke všem modulům</translation>
</message>
<message>
<source>Examine All Modules</source>
- <translation type="obsolete">Vyšetřit všechny moduly</translation>
+ <translation>Vyšetřit všechny moduly</translation>
</message>
<message>
<source>Load Symbols for Module</source>
- <translation type="obsolete">Nahrát symboly k modulu</translation>
+ <translation>Nahrát symboly k modulu</translation>
</message>
<message>
<source>Edit File</source>
- <translation type="obsolete">Upravit soubor</translation>
+ <translation>Upravit soubor</translation>
</message>
<message>
<source>Show Symbols</source>
- <translation type="obsolete">Ukázat symboly</translation>
+ <translation>Ukázat symboly</translation>
</message>
<message>
<source>Show Dependencies</source>
- <translation type="obsolete">Ukázat závislosti</translation>
+ <translation>Ukázat závislosti</translation>
</message>
<message>
<source>Load Symbols for Module &quot;%1&quot;</source>
- <translation type="obsolete">Nahrát symboly k modulu &quot;%1&quot;</translation>
+ <translation>Nahrát symboly k modulu &quot;%1&quot;</translation>
</message>
<message>
<source>Edit File &quot;%1&quot;</source>
- <translation type="obsolete">Upravit soubor &quot;%1&quot;</translation>
+ <translation>Upravit soubor &quot;%1&quot;</translation>
</message>
<message>
<source>Show Symbols in File &quot;%1&quot;</source>
- <translation type="obsolete">Ukázat symboly v souboru &quot;%1&quot;</translation>
+ <translation>Ukázat symboly v souboru &quot;%1&quot;</translation>
</message>
<message>
<source>Show Dependencies of &quot;%1&quot;</source>
- <translation type="obsolete">Ukázat závislosti &quot;%1&quot;</translation>
+ <translation>Ukázat závislosti &quot;%1&quot;</translation>
</message>
</context>
<context>
<name>Debugger::Internal::QmlV8DebuggerClient</name>
<message>
<source>anonymous function</source>
+ <translation type="obsolete">Anonymní funkce</translation>
+ </message>
+ <message>
+ <source>Anonymous Function</source>
<translation>Anonymní funkce</translation>
</message>
</context>
@@ -49579,7 +51801,7 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
</message>
<message>
<source>Show debug, log, and info messages.</source>
- <translation type="obsolete">Ukázat ladÄ›ní, záznamy a informaÄní zprávy.</translation>
+ <translation>Ukázat ladÄ›ní, záznamy a informaÄní zprávy.</translation>
</message>
<message>
<source>Warning</source>
@@ -49587,7 +51809,7 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
</message>
<message>
<source>Show warning messages.</source>
- <translation type="obsolete">Ukázat varovné zprávy.</translation>
+ <translation>Ukázat varovné zprávy.</translation>
</message>
<message>
<source>Error</source>
@@ -49595,7 +51817,7 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
</message>
<message>
<source>Show error and fatal messages.</source>
- <translation type="obsolete">Ukázat chybové a kritické zprávy.</translation>
+ <translation>Ukázat chybové a kritické zprávy.</translation>
</message>
<message>
<source>Clear Console</source>
@@ -49606,136 +51828,136 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
<name>Debugger::Internal::RegisterTreeView</name>
<message>
<source>Reload Register Listing</source>
- <translation type="obsolete">Registry nahrát znovu</translation>
+ <translation>Registry nahrát znovu</translation>
</message>
<message>
<source>Open Disassembler...</source>
- <translation type="obsolete">Otevřít disasembler...</translation>
+ <translation>Otevřít disasembler...</translation>
</message>
<message>
<source>Open Memory Editor at 0x%1</source>
- <translation type="obsolete">Otevřít editor paměti při 0x%1</translation>
+ <translation>Otevřít editor paměti při 0x%1</translation>
</message>
<message>
<source>Open Memory View at Value of Register %1 0x%2</source>
- <translation type="obsolete">Otevřít náhled paměti při hodnotě registru %1 0x%2</translation>
+ <translation>Otevřít náhled paměti při hodnotě registru %1 0x%2</translation>
</message>
<message>
<source>Open Disassembler at 0x%1</source>
- <translation type="obsolete">Otevřít disasembler při %1</translation>
+ <translation>Otevřít disasembler při %1</translation>
</message>
<message>
<source>Open Memory Editor</source>
- <translation type="obsolete">Otevřít editor paměti</translation>
+ <translation>Otevřít editor paměti</translation>
</message>
<message>
<source>Open Memory View at Value of Register</source>
- <translation type="obsolete">Otevřít náhled paměti při hodnotě registru</translation>
+ <translation>Otevřít náhled paměti při hodnotě registru</translation>
</message>
<message>
<source>Open Disassembler</source>
- <translation type="obsolete">Otevřít disasembler</translation>
+ <translation>Otevřít disasembler</translation>
</message>
<message>
<source>Hexadecimal</source>
- <translation type="obsolete">Šestnáctková</translation>
+ <translation>Šestnáctková</translation>
</message>
<message>
<source>Decimal</source>
- <translation type="obsolete">Desítková</translation>
+ <translation>Desítková</translation>
</message>
<message>
<source>Octal</source>
- <translation type="obsolete">OsmiÄková</translation>
+ <translation>OsmiÄková</translation>
</message>
<message>
<source>Binary</source>
- <translation type="obsolete">Dvojková</translation>
+ <translation>Dvojková</translation>
</message>
</context>
<context>
<name>Debugger::Internal::SnapshotTreeView</name>
<message>
<source>Snapshots</source>
- <translation type="obsolete">Snímky</translation>
+ <translation>Snímky</translation>
</message>
<message>
<source>Create Snapshot</source>
- <translation type="obsolete">Vytvořit snímek</translation>
+ <translation>Vytvořit snímek</translation>
</message>
<message>
<source>Remove Snapshot</source>
- <translation type="obsolete">Odstranit snímek</translation>
+ <translation>Odstranit snímek</translation>
</message>
</context>
<context>
<name>Debugger::Internal::SourceFilesTreeView</name>
<message>
<source>Reload Data</source>
- <translation type="obsolete">Data nahrát znovu</translation>
+ <translation>Data nahrát znovu</translation>
</message>
<message>
<source>Open File</source>
- <translation type="obsolete">Otevřít soubor</translation>
+ <translation>Otevřít soubor</translation>
</message>
<message>
<source>Open File &quot;%1&quot;&apos;</source>
- <translation type="obsolete">Otevřít soubor &quot;%1&quot;&apos;</translation>
+ <translation>Otevřít soubor &quot;%1&quot;&apos;</translation>
</message>
</context>
<context>
<name>Debugger::Internal::StackTreeView</name>
<message>
<source>Stack</source>
- <translation type="obsolete">Zásobník</translation>
+ <translation>Zásobník</translation>
</message>
<message>
<source>Function:</source>
- <translation type="obsolete">Funkce:</translation>
+ <translation>Funkce:</translation>
</message>
<message>
<source>Disassemble Function</source>
- <translation type="obsolete">Rozložit funkci (disassemble)</translation>
+ <translation>Rozložit funkci (disassemble)</translation>
</message>
<message>
<source>Copy Contents to Clipboard</source>
- <translation type="obsolete">Kopírovat obsah do schránky</translation>
+ <translation>Kopírovat obsah do schránky</translation>
</message>
<message>
<source>Open Memory Editor</source>
- <translation type="obsolete">Otevřít editor paměti</translation>
+ <translation>Otevřít editor paměti</translation>
</message>
<message>
<source>Open Memory Editor at 0x%1</source>
- <translation type="obsolete">Otevřít editor paměti při 0x%1</translation>
+ <translation>Otevřít editor paměti při 0x%1</translation>
</message>
<message>
<source>Open Disassembler at Address...</source>
- <translation type="obsolete">Otevřít disasembler na adrese...</translation>
+ <translation>Otevřít disasembler na adrese...</translation>
</message>
<message>
<source>Disassemble Function...</source>
- <translation type="obsolete">Rozložit funkci (disassemble)...</translation>
+ <translation>Rozložit funkci (disassemble)...</translation>
</message>
<message>
<source>Open Disassembler</source>
- <translation type="obsolete">Otevřít disasembler</translation>
+ <translation>Otevřít disasembler</translation>
</message>
<message>
<source>Open Disassembler at 0x%1</source>
- <translation type="obsolete">Otevřít disasembler při %1</translation>
+ <translation>Otevřít disasembler při %1</translation>
</message>
<message>
<source>Try to Load Unknown Symbols</source>
- <translation type="obsolete">Nahrát neznámé symboly</translation>
+ <translation>Nahrát neznámé symboly</translation>
</message>
<message>
<source>Memory at Frame #%1 (%2) 0x%3</source>
- <translation type="obsolete">Paměť při snímku #%1 (%2) 0x%3</translation>
+ <translation>Paměť při snímku #%1 (%2) 0x%3</translation>
</message>
<message>
<source>Frame #%1 (%2)</source>
- <translation type="obsolete">Snímek #%1 (%2)</translation>
+ <translation>Snímek #%1 (%2)</translation>
</message>
</context>
<context>
@@ -49743,40 +51965,40 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
<message>
<source>&lt;i&gt;%1&lt;/i&gt; %2 at #%3</source>
<extracomment>HTML tooltip of a variable in the memory editor</extracomment>
- <translation type="obsolete">&lt;i&gt;%1&lt;/i&gt; %2 při #%3</translation>
+ <translation>&lt;i&gt;%1&lt;/i&gt; %2 při #%3</translation>
</message>
<message>
<source>&lt;i&gt;%1&lt;/i&gt; %2</source>
<extracomment>HTML tooltip of a variable in the memory editor</extracomment>
- <translation type="obsolete">&lt;i&gt;%1&lt;/i&gt; %2</translation>
+ <translation>&lt;i&gt;%1&lt;/i&gt; %2</translation>
</message>
<message>
<source>Register &lt;i&gt;%1&lt;/i&gt;</source>
- <translation type="obsolete">Registr &lt;i&gt;%1&lt;/i&gt;</translation>
+ <translation>Registr &lt;i&gt;%1&lt;/i&gt;</translation>
</message>
<message>
<source>Memory Referenced by Pointer &quot;%1&quot; (0x%2)</source>
- <translation type="obsolete">Paměť odkazovaná ukazatelem &quot;%1&quot; (0x%2)</translation>
+ <translation>Paměť odkazovaná ukazatelem &quot;%1&quot; (0x%2)</translation>
</message>
<message>
<source>Memory at Variable &quot;%1&quot; (0x%2)</source>
- <translation type="obsolete">Paměť při proměnné &quot;%1&quot; (0x%2)</translation>
+ <translation>Paměť při proměnné &quot;%1&quot; (0x%2)</translation>
</message>
<message>
<source>Cannot Display Stack Layout</source>
- <translation type="obsolete">Nelze zobrazit rozvržení zásobníku</translation>
+ <translation>Nelze zobrazit rozvržení zásobníku</translation>
</message>
<message>
<source>Could not determine a suitable address range.</source>
- <translation type="obsolete">NepodaÅ™ilo se urÄit žádný vhodný rozsah adresy.</translation>
+ <translation>NepodaÅ™ilo se urÄit žádný vhodný rozsah adresy.</translation>
</message>
<message>
<source>Memory Layout of Local Variables at 0x%1</source>
- <translation type="obsolete">Rozložení paměti místní proměnné při 0x%1</translation>
+ <translation>Rozložení paměti místní proměnné při 0x%1</translation>
</message>
<message>
<source>Locals and Expressions</source>
- <translation type="obsolete">Místní proměnné a výrazy</translation>
+ <translation>Místní proměnné a výrazy</translation>
</message>
<message>
<source>Evaluate Expression</source>
@@ -49795,80 +52017,116 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
<translation type="obsolete">Odstranit vyhodnocený výraz &quot;%1&quot;</translation>
</message>
<message>
+ <source>Add Expression Evaluator</source>
+ <translation>Přidat hodnotitele výrazu</translation>
+ </message>
+ <message>
+ <source>Add Expression Evaluator for &quot;%1&quot;</source>
+ <translation>Přidat hodnotitele výrazu pro &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <source>Remove Expression Evaluator</source>
+ <translation>Odstranit hodnotitele výrazu</translation>
+ </message>
+ <message>
+ <source>Remove Expression Evaluator for &quot;%1&quot;</source>
+ <translation>Odstranit hodnotitele výrazu pro &quot;%1&quot;</translation>
+ </message>
+ <message>
<source>Change Local Display Format...</source>
- <translation type="obsolete">Změnit místní formát zobrazení...</translation>
+ <translation>Změnit místní formát zobrazení...</translation>
</message>
<message>
<source>Treat All Characters as Printable</source>
- <translation type="obsolete">Považovat všechny znaky za tisknutelné</translation>
+ <translation>Považovat všechny znaky za tisknutelné</translation>
</message>
<message>
<source>Show Unprintable Characters as Escape Sequences</source>
- <translation type="obsolete">Ukázat netisknutelné znaky jako únikové posloupnosti</translation>
+ <translation>Ukázat netisknutelné znaky jako únikové posloupnosti</translation>
</message>
<message>
<source>Show Unprintable Characters as Octal</source>
- <translation type="obsolete">Ukázat netisknutelné znaky jako osmiÄkové</translation>
+ <translation>Ukázat netisknutelné znaky jako osmiÄkové</translation>
</message>
<message>
<source>Show Unprintable Characters as Hexadecimal</source>
- <translation type="obsolete">Ukázat netisknutelné znaky jako šestnáctkové</translation>
+ <translation>Ukázat netisknutelné znaky jako šestnáctkové</translation>
</message>
<message>
<source>Change Display for Object Named &quot;%1&quot;:</source>
- <translation type="obsolete">Změnit formát zobrazení pro objekt s názvem &quot;%1&quot;:</translation>
+ <translation>Změnit formát zobrazení pro objekt s názvem &quot;%1&quot;:</translation>
</message>
<message>
<source>Use Format for Type (Currently %1)</source>
- <translation type="obsolete">Použít formát zobrazení na typ (nyní %1)</translation>
+ <translation>Použít formát zobrazení na typ (nyní %1)</translation>
</message>
<message>
<source>Use Display Format Based on Type </source>
- <translation type="obsolete">Použít formát zobrazení založený na typu</translation>
+ <translation>Použít formát zobrazení založený na typu</translation>
</message>
<message>
<source>Change Display for Type &quot;%1&quot;:</source>
- <translation type="obsolete">Změnit zobrazení pro typ &apos;%1&apos;:</translation>
+ <translation>Změnit zobrazení pro typ &apos;%1&apos;:</translation>
</message>
<message>
<source>Automatic</source>
- <translation type="obsolete">Automaticky</translation>
+ <translation>Automaticky</translation>
</message>
<message>
<source>Change Display for Type or Item...</source>
- <translation type="obsolete">Změnit zobrazení pro typ nebo prvek...</translation>
+ <translation>Změnit zobrazení pro typ nebo prvek...</translation>
</message>
<message>
<source>Add Data Breakpoint...</source>
- <translation type="obsolete">Přidat bod přerušení dat...</translation>
+ <translation>Přidat bod přerušení dat...</translation>
</message>
<message>
<source>Add Data Breakpoint at Object&apos;s Address (0x%1)</source>
- <translation type="obsolete">Přidat bod přerušení dat na adrese objektu (0x%1)</translation>
+ <translation>Přidat bod přerušení dat na adrese objektu (0x%1)</translation>
</message>
<message>
<source>Add Data Breakpoint at Referenced Address (0x%1)</source>
- <translation type="obsolete">Přidat bod přerušení dat na odkazované adrese (0x%1)</translation>
+ <translation>Přidat bod přerušení dat na odkazované adrese (0x%1)</translation>
</message>
<message>
<source>Add Data Breakpoint</source>
- <translation type="obsolete">Přidat bod přerušení dat</translation>
+ <translation>Přidat bod přerušení dat</translation>
</message>
<message>
<source>Setting a data breakpoint on an address will cause the program to stop when the data at the address is modified.</source>
- <translation type="obsolete">Nastavení bodu pÅ™eruÅ¡ení dat na urÄitou adresu způsobí, že program se zastaví, když jsou tam nacházející se data zmÄ›nÄ›na.</translation>
+ <translation>Nastavení bodu pÅ™eruÅ¡ení dat na urÄitou adresu způsobí, že program se zastaví, když jsou tam nacházející se data zmÄ›nÄ›na.</translation>
</message>
<message>
<source>Add Data Breakpoint at Expression</source>
- <translation type="obsolete">Přidat bod přerušení dat při výrazu</translation>
+ <translation>Přidat bod přerušení dat při výrazu</translation>
</message>
<message>
<source>Add Data Breakpoint at Expression &quot;%1&quot;</source>
- <translation type="obsolete">Přidat bod přerušení dat při výrazu &quot;%1&quot;</translation>
+ <translation>Přidat bod přerušení dat při výrazu &quot;%1&quot;</translation>
</message>
<message>
<source>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.</source>
- <translation type="obsolete">Nastavení bodu pÅ™eruÅ¡ení dat na urÄitý výraz způsobí, že program se zastaví, když jsou zmÄ›nÄ›na data nacházející se na adrese dané oním výrazem.</translation>
+ <translation>Nastavení bodu pÅ™eruÅ¡ení dat na urÄitý výraz způsobí, že program se zastaví, když jsou zmÄ›nÄ›na data nacházející se na adrese dané oním výrazem.</translation>
+ </message>
+ <message>
+ <source>Insert New Expression Evaluator</source>
+ <translation>Vložit nového hodnotitele výrazu</translation>
+ </message>
+ <message>
+ <source>Select Widget to Add into Expression Evaluator</source>
+ <translation>Vybrat prvek pro přidání do hodnotitele výrazu</translation>
+ </message>
+ <message>
+ <source>Remove All Expression Evaluators</source>
+ <translation>Odstranit všechny hodnotitele výrazů</translation>
+ </message>
+ <message>
+ <source>Enter Expression for Evaluator</source>
+ <translation>Zadat výraz pro hodnotitele</translation>
+ </message>
+ <message>
+ <source>Locals &amp; Expressions</source>
+ <translation>Místní proměnné a výrazy</translation>
</message>
<message>
<source>Insert New Evaluated Expression</source>
@@ -49888,51 +52146,51 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
</message>
<message>
<source>Open Memory Editor...</source>
- <translation type="obsolete">Otevřít editor paměti...</translation>
+ <translation>Otevřít editor paměti...</translation>
</message>
<message>
<source>Open Memory Editor at Object&apos;s Address (0x%1)</source>
- <translation type="obsolete">Otevřít editor paměti na adrese objektu (0x%1)</translation>
+ <translation>Otevřít editor paměti na adrese objektu (0x%1)</translation>
</message>
<message>
<source>Open Memory View at Object&apos;s Address (0x%1)</source>
- <translation type="obsolete">Otevřít zobrazení paměti na adrese objektu (0x%1)</translation>
+ <translation>Otevřít zobrazení paměti na adrese objektu (0x%1)</translation>
</message>
<message>
<source>Open Memory Editor at Object&apos;s Address</source>
- <translation type="obsolete">Otevřít editor paměti na adrese objektu</translation>
+ <translation>Otevřít editor paměti na adrese objektu</translation>
</message>
<message>
<source>Open Memory View at Object&apos;s Address</source>
- <translation type="obsolete">Otevřít zobrazení paměti na adrese objektu</translation>
+ <translation>Otevřít zobrazení paměti na adrese objektu</translation>
</message>
<message>
<source>Open Memory Editor at Referenced Address (0x%1)</source>
- <translation type="obsolete">Otevřít editor paměti na odkazované adrese (0x%1)</translation>
+ <translation>Otevřít editor paměti na odkazované adrese (0x%1)</translation>
</message>
<message>
<source>Open Memory View at Referenced Address (0x%1)</source>
- <translation type="obsolete">Otevřít zobrazení paměti na odkazované adrese (0x%1)</translation>
+ <translation>Otevřít zobrazení paměti na odkazované adrese (0x%1)</translation>
</message>
<message>
<source>Open Memory Editor at Referenced Address</source>
- <translation type="obsolete">Otevřít editor paměti na odkazované adrese</translation>
+ <translation>Otevřít editor paměti na odkazované adrese</translation>
</message>
<message>
<source>Open Memory View at Referenced Address</source>
- <translation type="obsolete">Otevřít zobrazení paměti na odkazované adrese</translation>
+ <translation>Otevřít zobrazení paměti na odkazované adrese</translation>
</message>
<message>
<source>Open Memory Editor Showing Stack Layout</source>
- <translation type="obsolete">Otevřít editor paměti s ukázáním rozložení zásobníku</translation>
+ <translation>Otevřít editor paměti s ukázáním rozložení zásobníku</translation>
</message>
<message>
<source>Copy Contents to Clipboard</source>
- <translation type="obsolete">Obsah kopírovat do schránky</translation>
+ <translation>Obsah kopírovat do schránky</translation>
</message>
<message>
<source>Copy Value to Clipboard</source>
- <translation type="obsolete">Kopírovat hodnotu do schránky</translation>
+ <translation>Kopírovat hodnotu do schránky</translation>
</message>
<message>
<source>Refresh Code Model Snapshot</source>
@@ -49940,11 +52198,11 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
</message>
<message>
<source>Show View Contents in Editor</source>
- <translation type="obsolete">Ukázat obsah pohledu v editoru</translation>
+ <translation>Ukázat obsah pohledu v editoru</translation>
</message>
<message>
<source>Close Editor Tooltips</source>
- <translation type="obsolete">Zavřít vysvětlivky editoru</translation>
+ <translation>Zavřít vysvětlivky editoru</translation>
</message>
<message>
<source>Enter watch expression</source>
@@ -49952,7 +52210,7 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
</message>
<message>
<source>Expression:</source>
- <translation type="obsolete">Výraz:</translation>
+ <translation>Výraz:</translation>
</message>
<message>
<source>Locals &amp; Watchers</source>
@@ -49998,7 +52256,7 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
<name>Gerrit::Internal::GerritDialog</name>
<message>
<source>Gerrit %1@%2</source>
- <translation type="obsolete">Gerrit %1@%2</translation>
+ <translation>Gerrit %1@%2</translation>
</message>
<message>
<source>Open</source>
@@ -50009,20 +52267,36 @@ Nainstalujte, prosím, alespoň jedno SDK.</translation>
<translation type="obsolete">Kopírovat adresu (URL)</translation>
</message>
<message>
+ <source>Changes</source>
+ <translation>Změny</translation>
+ </message>
+ <message>
+ <source>&amp;Query:</source>
+ <translation>&amp;Dotaz:</translation>
+ </message>
+ <message>
+ <source>Change #, SHA-1, tr:id, owner:email or reviewer:email</source>
+ <translation>Změna #, SHA-1, tr:id, vlastník:e-mail nebo recenzent:e-mail</translation>
+ </message>
+ <message>
+ <source>Details</source>
+ <translation>Podrobnosti</translation>
+ </message>
+ <message>
<source>Diff...</source>
- <translation type="obsolete">Rozdíly...</translation>
+ <translation>Rozdíly...</translation>
</message>
<message>
<source>Apply...</source>
- <translation type="obsolete">Použít...</translation>
+ <translation>Použít...</translation>
</message>
<message>
<source>Checkout...</source>
- <translation type="obsolete">NaÄíst (checkout)...</translation>
+ <translation>NaÄíst (checkout)...</translation>
</message>
<message>
<source>Refresh</source>
- <translation type="obsolete">Obnovit</translation>
+ <translation>Obnovit</translation>
</message>
</context>
<context>
@@ -50049,56 +52323,80 @@ Schválení: %12</translation>
</message>
<message>
<source>Owner</source>
- <translation type="obsolete">Vlastník</translation>
+ <translation>Vlastník</translation>
</message>
<message>
<source>Date</source>
<translation type="obsolete">Datum</translation>
</message>
<message>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Subject&lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Number&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;%11&quot;&gt;%2&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Owner&lt;/td&gt;&lt;td&gt;%3 &lt;a href=&quot;mailto:%4&quot;&gt;%4&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Project&lt;/td&gt;&lt;td&gt;%5 (%6)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Status&lt;/td&gt;&lt;td&gt;%7, %8&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Patch set&lt;/td&gt;&lt;td&gt;%9&lt;/td&gt;&lt;/tr&gt;%10&lt;tr&gt;&lt;td&gt;URL&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;%11&quot;&gt;%11&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Předmět&lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Číslo&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;%11&quot;&gt;%2&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Vlastník&lt;/td&gt;&lt;td&gt;%3 &lt;a href=&quot;mailto:%4&quot;&gt;%4&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Projekt&lt;/td&gt;&lt;td&gt;%5 (%6)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Stav&lt;/td&gt;&lt;td&gt;%7, %8&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Soubor se záplatou&lt;/td&gt;&lt;td&gt;%9&lt;/td&gt;&lt;/tr&gt;%10&lt;tr&gt;&lt;td&gt;Adresa (URL)&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;%11&quot;&gt;%11&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <source>Subject</source>
+ <translation>Předmět</translation>
+ </message>
+ <message>
<source>Project</source>
- <translation type="obsolete">Projekt</translation>
+ <translation>Projekt</translation>
+ </message>
+ <message>
+ <source>Updated</source>
+ <translation>Aktualizováno</translation>
</message>
<message>
<source>Approvals</source>
- <translation type="obsolete">Schválení</translation>
+ <translation>Schválení</translation>
</message>
<message>
<source>Status</source>
- <translation type="obsolete">Stav</translation>
+ <translation>Stav</translation>
+ </message>
+ <message>
+ <source>Parse error: &apos;%1&apos; -&gt; %2</source>
+ <translation>Chyba ve zpracování: &apos;%1&apos; -&gt; %2</translation>
+ </message>
+ <message>
+ <source>Parse error: &apos;%1&apos;</source>
+ <translation>Chyba ve zpracování: &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <source>Parse error in line &apos;%1&apos;</source>
+ <translation>Chyba ve zpracování na řádku: &apos;%1&apos;</translation>
</message>
</context>
<context>
<name>Gerrit::Internal::QueryContext</name>
<message>
<source>Gerrit</source>
- <translation type="obsolete">Gerrit</translation>
+ <translation>Gerrit</translation>
</message>
<message>
<source>Error running %1: %2</source>
- <translation type="obsolete">Chyba při spouštění %1: %2</translation>
+ <translation>Chyba při spouštění %1: %2</translation>
</message>
<message>
<source>%1 crashed.</source>
- <translation type="obsolete">%1 spadl.</translation>
+ <translation>%1 spadl.</translation>
</message>
<message>
<source>%1 returned %2.</source>
- <translation type="obsolete">%1 vrátil %2.</translation>
+ <translation>%1 vrátil %2.</translation>
</message>
</context>
<context>
<name>Gerrit::Internal::GerritOptionsPage</name>
<message>
<source>Gerrit</source>
- <translation type="obsolete">Gerrit</translation>
+ <translation>Gerrit</translation>
</message>
</context>
<context>
<name>Gerrit::Internal::GerritOptionsWidget</name>
<message>
<source>HTTPS</source>
- <translation type="obsolete">HTTPS</translation>
+ <translation>HTTPS</translation>
</message>
<message>
<source>&amp;Host: </source>
@@ -50128,14 +52426,30 @@ of the Qt project.</source>
Například &quot;status:staged,status:integrating&quot; lze použít pro ukázání stavu pokraÄující integrace projektu Qt.</translation>
</message>
<message>
+ <source>&amp;Host:</source>
+ <translation>&amp;Hostitel:</translation>
+ </message>
+ <message>
+ <source>&amp;User:</source>
+ <translation>&amp;Uživatel:</translation>
+ </message>
+ <message>
+ <source>&amp;ssh:</source>
+ <translation>&amp;ssh:</translation>
+ </message>
+ <message>
+ <source>&amp;Port:</source>
+ <translation>&amp;Port:</translation>
+ </message>
+ <message>
<source>P&amp;rotocol:</source>
- <translation type="obsolete">&amp;Protokol:</translation>
+ <translation>&amp;Protokol:</translation>
</message>
<message>
<source>Determines the protocol used to form a URL in case
&quot;canonicalWebUrl&quot; is not configured in the file
&quot;gerrit.config&quot;.</source>
- <translation type="obsolete">Udává protokol použitý na vytvoření adresy (URL) v případě že
+ <translation>Udává protokol použitý na vytvoření adresy (URL) v případě že
&quot;canonicalWebUrl&quot;není nastavena v souboru
&quot;gerrit.config&quot;.</translation>
</message>
@@ -50144,38 +52458,42 @@ Například &quot;status:staged,status:integrating&quot; lze použít pro ukázÃ
<name>Gerrit::Internal::FetchContext</name>
<message>
<source>Gerrit Fetch</source>
- <translation type="obsolete">Gerrit Fetch (přivedení)</translation>
+ <translation>Gerrit Fetch (přivedení)</translation>
</message>
<message>
<source>%1 crashed.</source>
- <translation type="obsolete">%1 spadl.</translation>
+ <translation>%1 spadl.</translation>
</message>
<message>
<source>%1 returned %2.</source>
- <translation type="obsolete">%1 vrátil %2.</translation>
+ <translation>%1 vrátil %2.</translation>
</message>
<message>
<source>Error running %1: %2</source>
- <translation type="obsolete">Chyba při spouštění %1: %2</translation>
+ <translation>Chyba při spouštění %1: %2</translation>
</message>
<message>
<source>Error writing to temporary file.</source>
- <translation type="obsolete">Chyba pÅ™i zápisu do doÄasného souboru.</translation>
+ <translation>Chyba pÅ™i zápisu do doÄasného souboru.</translation>
</message>
<message>
<source>Writing %1...</source>
- <translation type="obsolete">Zapisuje se %1...</translation>
+ <translation>Zapisuje se %1...</translation>
</message>
<message>
<source>Cherry-picking %1...</source>
- <translation type="obsolete">Vybírá se %1...</translation>
+ <translation>Vybírá se %1...</translation>
</message>
</context>
<context>
<name>Gerrit::Internal::GerritPlugin</name>
<message>
<source>Gerrit...</source>
- <translation type="obsolete">Gerrit...</translation>
+ <translation>Gerrit...</translation>
+ </message>
+ <message>
+ <source>Git is not available.</source>
+ <translation>Git je nedostupný.</translation>
</message>
<message>
<source>git is not available.</source>
@@ -50183,7 +52501,7 @@ Například &quot;status:staged,status:integrating&quot; lze použít pro ukázÃ
</message>
<message>
<source>Enter Local Repository for &apos;%1&apos; (%2)</source>
- <translation type="obsolete">Vstoupit do místního skladiště pro &apos;%1&apos; (%2)</translation>
+ <translation>Vstoupit do místního skladiště pro &apos;%1&apos; (%2)</translation>
</message>
</context>
<context>
@@ -50201,19 +52519,19 @@ Například &quot;status:staged,status:integrating&quot; lze použít pro ukázÃ
<name>Git::Internal::ResetDialog</name>
<message>
<source>Sha1</source>
- <translation type="obsolete">Sha1</translation>
+ <translation>Sha1</translation>
</message>
<message>
<source>Subject</source>
- <translation type="obsolete">Předmět</translation>
+ <translation>Předmět</translation>
</message>
<message>
<source>Reset to:</source>
- <translation type="obsolete">Nastavit znovu na:</translation>
+ <translation>Nastavit znovu na:</translation>
</message>
<message>
<source>Undo Changes to %1</source>
- <translation type="obsolete">Změny pro %1 vrátit zpět</translation>
+ <translation>Změny pro %1 vrátit zpět</translation>
</message>
</context>
<context>
@@ -50280,42 +52598,39 @@ Chcete jej ukonÄit?</translation>
<name>ProjectExplorer::DesktopDevice</name>
<message>
<source>Desktop</source>
- <translation type="obsolete">Stolní poÄítaÄ</translation>
+ <translation>Stolní poÄítaÄ</translation>
</message>
<message>
<source>Run locally</source>
- <translation type="obsolete">Spustit místně</translation>
+ <translation>Spustit místně</translation>
</message>
</context>
<context>
<name>ProjectExplorer::Internal::DesktopDeviceFactory</name>
<message>
<source>Desktop</source>
- <translation type="obsolete">Stolní poÄítaÄ</translation>
+ <translation>Stolní poÄítaÄ</translation>
</message>
</context>
<context>
<name>ProjectExplorer::DeviceManagerModel</name>
<message>
<source>%1 (default for %2)</source>
- <translation type="obsolete">%1 (výchozí pro %2)</translation>
+ <translation>%1 (výchozí pro %2)</translation>
</message>
</context>
<context>
<name>ProjectExplorer::Internal::DeviceSettingsPage</name>
<message>
<source>Devices</source>
- <translation type="obsolete">Zařízení</translation>
+ <translation>Zařízení</translation>
</message>
</context>
<context>
<name>ProjectExplorer::IDevice</name>
<message>
<source>Device</source>
- <extracomment>Title of the connectivity state information in a tool tip
-----------
-Title of the connectivity state information in a tool tip</extracomment>
- <translation type="obsolete">Zařízení</translation>
+ <translation>Zařízení</translation>
</message>
<message>
<source>not connected</source>
@@ -50382,6 +52697,10 @@ Title of the connectivity state information in a tool tip</extracomment>
<name>QmlJSEditor::AddAnalysisMessageSuppressionComment</name>
<message>
<source>Add a comment to suppress this message</source>
+ <translation type="obsolete">PÅ™idat poznámku pro potlaÄení této zprávy</translation>
+ </message>
+ <message>
+ <source>Add a Comment to Suppress This Message</source>
<translation>PÅ™idat poznámku pro potlaÄení této zprávy</translation>
</message>
</context>
@@ -50428,12 +52747,12 @@ Title of the connectivity state information in a tool tip</extracomment>
<name>QmlProfiler::Internal::QmlProfilerClientManager</name>
<message>
<source>Qt Creator</source>
- <translation type="obsolete">Qt Creator</translation>
+ <translation>Qt Creator</translation>
</message>
<message>
<source>Could not connect to the in-process QML profiler.
Do you want to retry?</source>
- <translation type="obsolete">Qt Creatoru se nepodařilo vytvořit žádné spojení s profilerem QML v procesu.
+ <translation>Qt Creatoru se nepodařilo vytvořit žádné spojení s profilerem QML v procesu.
Má se to zkusit ještě jednou?</translation>
</message>
</context>
@@ -50441,78 +52760,82 @@ Má se to zkusit ještě jednou?</translation>
<name>QmlProfiler::Internal::QmlProfilerDataModel</name>
<message>
<source>Source code not available</source>
- <translation type="obsolete">Není dostupný žádný zdrojový kód</translation>
+ <translation>Není dostupný žádný zdrojový kód</translation>
</message>
<message>
<source>&lt;bytecode&gt;</source>
- <translation type="obsolete">&lt;bytecode&gt;</translation>
+ <translation>&lt;bytecode&gt;</translation>
</message>
<message>
<source>Animation Timer Update</source>
- <translation type="obsolete">Aktualizace ÄasovaÄe animace</translation>
+ <translation>Aktualizace ÄasovaÄe animace</translation>
</message>
<message>
<source>&lt;Animation Update&gt;</source>
- <translation type="obsolete">&lt;aktualizace animace&gt;</translation>
+ <translation>&lt;aktualizace animace&gt;</translation>
</message>
<message>
<source>&lt;program&gt;</source>
- <translation type="obsolete">&lt;program&gt;</translation>
+ <translation>&lt;program&gt;</translation>
</message>
<message>
<source>Main Program</source>
- <translation type="obsolete">Hlavní program</translation>
+ <translation>Hlavní program</translation>
</message>
<message>
<source>%1 animations at %2 FPS</source>
- <translation type="obsolete">%1 animace při %2 FPS</translation>
+ <translation>%1 animace při %2 FPS</translation>
</message>
<message>
<source>No data to save</source>
- <translation type="obsolete">Nejsou přítomna žádná data k uložení</translation>
+ <translation>Nejsou přítomna žádná data k uložení</translation>
</message>
<message>
<source>Could not open %1 for writing</source>
- <translation type="obsolete">Soubor &apos;%1&apos; se nepodařilo otevřít pro zápis</translation>
+ <translation>Soubor &apos;%1&apos; se nepodařilo otevřít pro zápis</translation>
</message>
<message>
<source>Could not open %1 for reading</source>
- <translation type="obsolete">Soubor &apos;%1&apos; se nepodaÅ™ilo otevřít pro Ätení</translation>
+ <translation>Soubor &apos;%1&apos; se nepodaÅ™ilo otevřít pro Ätení</translation>
</message>
<message>
<source>Error while parsing %1</source>
- <translation type="obsolete">Chyba při zpracování %1</translation>
+ <translation>Chyba při zpracování %1</translation>
</message>
<message>
<source>Invalid version of QML Trace file.</source>
- <translation type="obsolete">Neplatná verze souboru QML Trace.</translation>
+ <translation>Neplatná verze souboru QML Trace.</translation>
</message>
</context>
<context>
<name>QmlProfiler::Internal::QmlProfilerEventsWidget</name>
<message>
<source>Trace information from the v8 JavaScript engine. Available only in Qt5 based applications</source>
- <translation>Sledovat informace ze stroje v8 JavaScript. Dostupné pouze v programech založených na Qt5</translation>
+ <translation type="obsolete">Sledovat informace ze stroje v8 JavaScript. Dostupné pouze v programech založených na Qt5</translation>
+ </message>
+ <message>
+ <source>Trace information from the v8 JavaScript engine. Available only in Qt5 based applications.</source>
+ <translation>Sledovat informace ze stroje v8 JavaScript. Dostupné pouze v programech založených na Qt5.</translation>
</message>
<message>
<source>Copy Row</source>
- <translation type="obsolete">Kopírovat řádek</translation>
+ <translation>Kopírovat řádek</translation>
</message>
<message>
<source>Copy Table</source>
- <translation type="obsolete">Kopírovat tabulku</translation>
+ <translation>Kopírovat tabulku</translation>
</message>
<message>
<source>Extended Event Statistics</source>
- <translation type="obsolete">Rozšířená statistika událostí</translation>
+ <translation>Rozšířená statistika událostí</translation>
</message>
<message>
<source>Limit Events Pane to Current Range</source>
- <translation type="obsolete">Omezit tabulku na nynější rozsah</translation>
+ <translation>Omezit tabulku na nynější rozsah</translation>
</message>
<message>
<source>Reset Events Pane</source>
- <translation type="obsolete">Vynulovat tabulku událostí</translation>
+ <translation>Vynulovat tabulku událostí</translation>
</message>
</context>
<context>
@@ -50566,6 +52889,24 @@ Má se to zkusit ještě jednou?</translation>
<translation>Podrobnosti</translation>
</message>
<message>
+ <source> (Opt)</source>
+ <translation> (Opt)</translation>
+ </message>
+ <message>
+ <source>Binding is evaluated by the optimized engine.</source>
+ <translation>Vázání je vyhodnoceno optimalizovaným strojem.</translation>
+ </message>
+ <message>
+ <source>Binding not optimized (e.g. has side effects or assignments,
+references to elements in other files, loops, etc.)</source>
+ <translation>Vázání není vyladÄ›no (napÅ™. má postranní úÄinky nebo pÅ™iÅ™azení,
+reference k prvkům v jiných souborech, smyÄkách atd.)</translation>
+ </message>
+ <message>
+ <source>Binding loop detected.</source>
+ <translation>ZjiÅ¡tÄ›na smyÄka vázaní.</translation>
+ </message>
+ <message>
<source> (v4)</source>
<translation type="obsolete"> (v4)</translation>
</message>
@@ -50575,7 +52916,7 @@ Má se to zkusit ještě jednou?</translation>
</message>
<message>
<source>Binding loop detected</source>
- <translation>ZjiÅ¡tÄ›na smyÄka vázaní</translation>
+ <translation type="obsolete">ZjiÅ¡tÄ›na smyÄka vázaní</translation>
</message>
<message utf8="true">
<source> µs</source>
@@ -50614,7 +52955,11 @@ Má se to zkusit ještě jednou?</translation>
<name>QmlProfiler::Internal::QmlProfilerEventsParentsAndChildrenView</name>
<message>
<source>Part of binding loop</source>
- <translation>Část smyÄky vázaní</translation>
+ <translation type="obsolete">Část smyÄky vázaní</translation>
+ </message>
+ <message>
+ <source>Part of binding loop.</source>
+ <translation>Část smyÄky vázaní.</translation>
</message>
<message>
<source>Callee</source>
@@ -50656,50 +53001,50 @@ Má se to zkusit ještě jednou?</translation>
<name>QmlProfiler::Internal::QmlProfilerTraceView</name>
<message>
<source>Jump to previous event</source>
- <translation type="obsolete">Jít na předchozí událost</translation>
+ <translation>Jít na předchozí událost</translation>
</message>
<message>
<source>Jump to next event</source>
- <translation type="obsolete">Jít na další událost</translation>
+ <translation>Jít na další událost</translation>
</message>
<message>
<source>Show zoom slider</source>
- <translation type="obsolete">Ukázat zvětšovací posuvník</translation>
+ <translation>Ukázat zvětšovací posuvník</translation>
</message>
<message>
<source>Select range</source>
- <translation type="obsolete">Vybrat rozsah</translation>
+ <translation>Vybrat rozsah</translation>
</message>
<message>
<source>View event information on mouseover</source>
- <translation type="obsolete">Ukázat informace o události při přejezdu myši</translation>
+ <translation>Ukázat informace o události při přejezdu myši</translation>
</message>
<message>
<source>Limit Events Pane to Current Range</source>
- <translation type="obsolete">Omezit tabulku na nynější rozsah</translation>
+ <translation>Omezit tabulku na nynější rozsah</translation>
</message>
<message>
<source>Reset Events Pane</source>
- <translation type="obsolete">Vynulovat tabulku událostí</translation>
+ <translation>Vynulovat tabulku událostí</translation>
</message>
<message>
<source>Reset Zoom</source>
- <translation type="obsolete">Nastavit zvětšení znovu</translation>
+ <translation>Nastavit zvětšení znovu</translation>
</message>
</context>
<context>
<name>QmlProfiler::Internal::QmlProfilerViewManager</name>
<message>
<source>Events</source>
- <translation type="obsolete">Události</translation>
+ <translation>Události</translation>
</message>
<message>
<source>Timeline</source>
- <translation type="obsolete">Časová přímka</translation>
+ <translation>Časová přímka</translation>
</message>
<message>
<source>JavaScript</source>
- <translation type="obsolete">JavaScript</translation>
+ <translation>JavaScript</translation>
</message>
</context>
<context>
@@ -50866,20 +53211,32 @@ Má se to zkusit ještě jednou?</translation>
<translation>Nastavit projekt</translation>
</message>
<message>
+ <source>The project &lt;b&gt;%1&lt;/b&gt; is not yet configured.&lt;br/&gt;Qt Creator cannot parse the project, because no kit has been set up.</source>
+ <translation>&lt;p&gt;Projekt &lt;b&gt;%1&lt;/b&gt; ještě není nastaven.&lt;/p&gt;&lt;p&gt;Qt Creator projekt nemůže zpracovat, protože nebyla nastavena žádná sada.</translation>
+ </message>
+ <message>
+ <source>The project &lt;b&gt;%1&lt;/b&gt; is not yet configured.&lt;br/&gt;Qt Creator uses the kit &lt;b&gt;%2&lt;/b&gt; to parse the project.</source>
+ <translation>Projekt &lt;b&gt;%1&lt;/b&gt; ještě není nastaven.&lt;br/&gt;Qt Creator používá sadu &lt;b&gt;%2&lt;/b&gt; pro zpracování projektu.</translation>
+ </message>
+ <message>
+ <source>The project &lt;b&gt;%1&lt;/b&gt; is not yet configured.&lt;br/&gt;Qt Creator uses the &lt;b&gt;invalid&lt;/b&gt; kit &lt;b&gt;%2&lt;/b&gt; to parse the project.</source>
+ <translation>Projekt &lt;b&gt;%1&lt;/b&gt; ještě není nastaven.&lt;br/&gt;Qt Creator používá &lt;b&gt;neplatnou&lt;/b&gt; sadu &lt;b&gt;%2&lt;/b&gt; pro zpracování projektu.</translation>
+ </message>
+ <message>
<source>&lt;p&gt;The project &lt;b&gt;%1&lt;/b&gt; is not yet configured.&lt;/p&gt;&lt;p&gt;Qt Creator uses the Qt version: &lt;b&gt;%2&lt;/b&gt; and the tool chain: &lt;b&gt;%3&lt;/b&gt; to parse the project. You can edit these in the &lt;b&gt;&lt;a href=&quot;edit&quot;&gt;options.&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</source>
- <translation>&lt;p&gt;Projekt &lt;b&gt;%1&lt;/b&gt; ještě není nastaven.&lt;/p&gt;&lt;p&gt;Qt Creator používá Qt ve verzi: &lt;b&gt;%2&lt;/b&gt; a sadu nástrojů: &lt;b&gt;%3&lt;/b&gt; pro zpracování projektu. Můžete je upravit v dialogu &lt;b&gt;&lt;a href=&quot;edit&quot;&gt;Volby.&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt;Projekt &lt;b&gt;%1&lt;/b&gt; ještě není nastaven.&lt;/p&gt;&lt;p&gt;Qt Creator používá Qt ve verzi: &lt;b&gt;%2&lt;/b&gt; a sadu nástrojů: &lt;b&gt;%3&lt;/b&gt; pro zpracování projektu. Můžete je upravit v dialogu &lt;b&gt;&lt;a href=&quot;edit&quot;&gt;Volby.&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</translation>
</message>
<message>
<source>&lt;p&gt;The project &lt;b&gt;%1&lt;/b&gt; is not yet configured.&lt;/p&gt;&lt;p&gt;Qt Creator uses the Qt version: &lt;b&gt;%2&lt;/b&gt; and &lt;b&gt;no tool chain&lt;/b&gt; to parse the project. You can edit these in the &lt;b&gt;&lt;a href=&quot;edit&quot;&gt;settings&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</source>
- <translation>&lt;p&gt;Projekt &lt;b&gt;%1&lt;/b&gt; ještě není nastaven.&lt;/p&gt;&lt;p&gt;Qt Creator používá Qt ve verzi: &lt;b&gt;%2&lt;/b&gt; a žádnou sadu nástrojů&lt;/b&gt; pro zpracování projektu. Můžete je upravit v dialogu &lt;b&gt;&lt;a href=&quot;edit&quot;&gt;Nastavení&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt;Projekt &lt;b&gt;%1&lt;/b&gt; ještě není nastaven.&lt;/p&gt;&lt;p&gt;Qt Creator používá Qt ve verzi: &lt;b&gt;%2&lt;/b&gt; a žádnou sadu nástrojů&lt;/b&gt; pro zpracování projektu. Můžete je upravit v dialogu &lt;b&gt;&lt;a href=&quot;edit&quot;&gt;Nastavení&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</translation>
</message>
<message>
<source>&lt;p&gt;The project &lt;b&gt;%1&lt;/b&gt; is not yet configured.&lt;/p&gt;&lt;p&gt;Qt Creator uses &lt;b&gt;no Qt version&lt;/b&gt; and the tool chain: &lt;b&gt;%2&lt;/b&gt; to parse the project. You can edit these in the &lt;b&gt;&lt;a href=&quot;edit&quot;&gt;settings&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</source>
- <translation>&lt;p&gt;Projekt &lt;b&gt;%1&lt;/b&gt; ještě není nastaven.&lt;/p&gt;&lt;p&gt;Qt Creator nepoužívá &lt;b&gt;žádnou verzi Qt&lt;/b&gt; a sadu nástrojů: &lt;b&gt;%2&lt;/b&gt; pro zpracování projektu. Můžete je upravit v dialogu &lt;b&gt;&lt;a href=&quot;edit&quot;&gt;Nastavení&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt;Projekt &lt;b&gt;%1&lt;/b&gt; ještě není nastaven.&lt;/p&gt;&lt;p&gt;Qt Creator nepoužívá &lt;b&gt;žádnou verzi Qt&lt;/b&gt; a sadu nástrojů: &lt;b&gt;%2&lt;/b&gt; pro zpracování projektu. Můžete je upravit v dialogu &lt;b&gt;&lt;a href=&quot;edit&quot;&gt;Nastavení&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</translation>
</message>
<message>
<source>&lt;p&gt;The project &lt;b&gt;%1&lt;/b&gt; is not yet configured.&lt;/p&gt;&lt;p&gt;Qt Creator uses &lt;b&gt;no Qt version&lt;/b&gt; and &lt;b&gt;no tool chain&lt;/b&gt; to parse the project. You can edit these in the &lt;b&gt;&lt;a href=&quot;edit&quot;&gt;settings&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</source>
- <translation>&lt;p&gt;Projekt &lt;b&gt;%1&lt;/b&gt; ještě není nastaven.&lt;/p&gt;&lt;p&gt;Qt Creator nepoužívá &lt;b&gt;žádnou verzi Qt&lt;/b&gt; a žádnou sadu nástrojů&lt;/b&gt; pro zpracování projektu. Můžete je upravit v dialogu &lt;b&gt;&lt;a href=&quot;edit&quot;&gt;Nastavení&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</translation>
+ <translation type="obsolete">&lt;p&gt;Projekt &lt;b&gt;%1&lt;/b&gt; ještě není nastaven.&lt;/p&gt;&lt;p&gt;Qt Creator nepoužívá &lt;b&gt;žádnou verzi Qt&lt;/b&gt; a žádnou sadu nástrojů&lt;/b&gt; pro zpracování projektu. Můžete je upravit v dialogu &lt;b&gt;&lt;a href=&quot;edit&quot;&gt;Nastavení&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</translation>
</message>
</context>
<context>
@@ -50888,17 +53245,17 @@ Má se to zkusit ještě jednou?</translation>
<source>Qt Creator can open qmake projects without configuring them for building.
The C++ and QML code models need a Qt version and tool chain to offer code completion.
</source>
- <translation>Qt Creator může otevřít projekty qmake bez jejich nastavení pro sestavení.
+ <translation type="obsolete">Qt Creator může otevřít projekty qmake bez jejich nastavení pro sestavení.
Je zapotřebí mít nějakou verzi Qt a sadu nástrojů, aby modely kódu C++ a QML nabídly doplnění kódu.
</translation>
</message>
<message>
<source>Qt Version:</source>
- <translation>Verze Qt:</translation>
+ <translation type="obsolete">Verze Qt:</translation>
</message>
<message>
<source>Tool Chain:</source>
- <translation>Sada nástrojů:</translation>
+ <translation type="obsolete">Sada nástrojů:</translation>
</message>
</context>
<context>
@@ -50944,26 +53301,30 @@ Je zapotřebí mít nějakou verzi Qt a sadu nástrojů, aby modely kódu C++ a
<translation>Chyba při kopírování projektu</translation>
</message>
<message>
- <source>Failed to open project</source>
+ <source>Failed to Open Project</source>
<translation>Nepodařilo se otevřít projekt</translation>
</message>
+ <message>
+ <source>Failed to open project</source>
+ <translation type="obsolete">Nepodařilo se otevřít projekt</translation>
+ </message>
</context>
<context>
<name>RemoteLinux::Internal::EmbeddedLinuxTargetFactory</name>
<message>
<source>embedded</source>
- <translation>Vloženo</translation>
+ <translation type="obsolete">Vloženo</translation>
</message>
<message>
<source>Embedded Linux</source>
- <translation>Vložený Linux</translation>
+ <translation type="obsolete">Vložený Linux</translation>
</message>
</context>
<context>
<name>RemoteLinux::Internal::GenericEmbeddedLinuxTarget</name>
<message>
<source>Embedded Linux</source>
- <translation>Vložený Linux</translation>
+ <translation type="obsolete">Vložený Linux</translation>
</message>
</context>
<context>
@@ -51006,8 +53367,12 @@ Je zapotřebí mít nějakou verzi Qt a sadu nástrojů, aby modely kódu C++ a
<translation>Otevřené dokumenty</translation>
</message>
<message>
+ <source>Open documents:</source>
+ <translation>Otevřít dokumenty:</translation>
+ </message>
+ <message>
<source>Open Documents:</source>
- <translation>Otevřené dokumenty:</translation>
+ <translation type="obsolete">Otevřené dokumenty:</translation>
</message>
<message>
<source>Open Documents
@@ -51057,10 +53422,18 @@ Je zapotřebí mít nějakou verzi Qt a sadu nástrojů, aby modely kódu C++ a
<name>VcsBase::Internal::UrlTextCursorHandler</name>
<message>
<source>Open URL in browser...</source>
- <translation>Otevřít adresu (URL) v prohlížeÄi...</translation>
+ <translation type="obsolete">Otevřít adresu (URL) v prohlížeÄi...</translation>
</message>
<message>
<source>Copy URL location</source>
+ <translation type="obsolete">Kopírovat umístění adresy (URL)</translation>
+ </message>
+ <message>
+ <source>Open URL in Browser...</source>
+ <translation>Otevřít adresu (URL) v prohlížeÄi...</translation>
+ </message>
+ <message>
+ <source>Copy URL Location</source>
<translation>Kopírovat umístění adresy (URL)</translation>
</message>
</context>
@@ -51068,10 +53441,18 @@ Je zapotřebí mít nějakou verzi Qt a sadu nástrojů, aby modely kódu C++ a
<name>VcsBase::Internal::EmailTextCursorHandler</name>
<message>
<source>Send email to...</source>
- <translation>Poslat e-mail...</translation>
+ <translation type="obsolete">Poslat e-mail...</translation>
</message>
<message>
<source>Copy email address</source>
+ <translation type="obsolete">Kopírovat adresu e-mailu</translation>
+ </message>
+ <message>
+ <source>Send Email To...</source>
+ <translation>Poslat e-mail...</translation>
+ </message>
+ <message>
+ <source>Copy Email Address</source>
<translation>Kopírovat adresu e-mailu</translation>
</message>
</context>
@@ -51079,15 +53460,15 @@ Je zapotřebí mít nějakou verzi Qt a sadu nástrojů, aby modely kódu C++ a
<name>Todo::Internal::AddKeywordDialog</name>
<message>
<source>Keyword</source>
- <translation>KlíÄové slovo</translation>
+ <translation type="obsolete">KlíÄové slovo</translation>
</message>
<message>
<source>Icon</source>
- <translation>Ikona</translation>
+ <translation type="obsolete">Ikona</translation>
</message>
<message>
<source>Color</source>
- <translation>Barva</translation>
+ <translation type="obsolete">Barva</translation>
</message>
</context>
<context>
@@ -51095,12 +53476,3009 @@ Je zapotřebí mít nějakou verzi Qt a sadu nástrojů, aby modely kódu C++ a
<message>
<source>The port seems to be in use.</source>
<extracomment>Error message shown after &apos;Could not connect ... debugger:&quot;</extracomment>
- <translation>Port se už používá.</translation>
+ <translation type="obsolete">Port se už používá.</translation>
</message>
<message>
<source>The application is not set up for QML/JS debugging.</source>
<extracomment>Error message shown after &apos;Could not connect ... debugger:&quot;</extracomment>
- <translation>Tento program není nastaven pro ladění QML/JS.</translation>
+ <translation type="obsolete">Tento program není nastaven pro ladění QML/JS.</translation>
+ </message>
+</context>
+<context>
+ <name>QSsh::SshKeyCreationDialog</name>
+ <message>
+ <source>SSH Key Configuration</source>
+ <translation>Nastavení klíÄe SSH</translation>
+ </message>
+ <message>
+ <source>Options</source>
+ <translation>Volby</translation>
+ </message>
+ <message>
+ <source>Key algorithm:</source>
+ <translation>Algoritmus klíÄe:</translation>
+ </message>
+ <message>
+ <source>&amp;RSA</source>
+ <translation>&amp;RSA</translation>
+ </message>
+ <message>
+ <source>&amp;DSA</source>
+ <translation>&amp;DSA</translation>
+ </message>
+ <message>
+ <source>Key &amp;size:</source>
+ <translation>&amp;Velikost klíÄe:</translation>
+ </message>
+ <message>
+ <source>Private key file:</source>
+ <translation>Soubor se soukromým klíÄem:</translation>
+ </message>
+ <message>
+ <source>Browse...</source>
+ <translation>Procházet...</translation>
+ </message>
+ <message>
+ <source>Public key file:</source>
+ <translation>Soubor s veÅ™ejným klíÄem:</translation>
+ </message>
+ <message>
+ <source>&amp;Generate And Save Key Pair</source>
+ <translation>&amp;VytvoÅ™it a uložit dvojici klíÄů</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;Zrušit</translation>
+ </message>
+ <message>
+ <source>Key Generation Failed</source>
+ <translation>Chyba pÅ™i vytváření klíÄe</translation>
+ </message>
+ <message>
+ <source>Choose Private Key File Name</source>
+ <translation>Vyberte název souboru se soukromým klíÄem</translation>
+ </message>
+ <message>
+ <source>Cannot Save Key File</source>
+ <translation>Soubor s klíÄem nelze uložit</translation>
+ </message>
+ <message>
+ <source>Failed to create directory: &apos;%1&apos;.</source>
+ <translation>Adresář &apos;%1&apos; se nepodařilo vytvořit.</translation>
+ </message>
+ <message>
+ <source>Cannot Save Private Key File</source>
+ <translation>Soubor se soukromým klíÄem nelze uložit</translation>
+ </message>
+ <message>
+ <source>The private key file could not be saved: %1</source>
+ <translation>Soubor se soukromým klíÄem se nepodaÅ™ilo uložit: %1</translation>
+ </message>
+ <message>
+ <source>Cannot Save Public Key File</source>
+ <translation>Soubor s veÅ™ejným klíÄem nelze uložit</translation>
+ </message>
+ <message>
+ <source>The public key file could not be saved: %1</source>
+ <translation>Soubor s veÅ™ejným klíÄem se nepodaÅ™ilo uložit: %1</translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::CheckOutDialog</name>
+ <message>
+ <source>Check Out</source>
+ <translation>NaÄíst (checkout)</translation>
+ </message>
+ <message>
+ <source>&amp;Checkout comment:</source>
+ <translation type="unfinished">Poznámka k &amp;naÄtenému:</translation>
+ </message>
+ <message>
+ <source>&amp;Reserved</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Unreserved if already reserved</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Preserve file modification time</source>
+ <translation>&amp;Zachovat Äas zmÄ›ny souboru</translation>
+ </message>
+ <message>
+ <source>Use &amp;Hijacked file</source>
+ <extracomment>Hijack: Unset read-only flag without check-out. This is used for local changes which the user does not want to commit.</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::SettingsPage</name>
+ <message>
+ <source>Configuration</source>
+ <translation>Nastavení</translation>
+ </message>
+ <message>
+ <source>&amp;Command:</source>
+ <translation>&amp;Příkaz:</translation>
+ </message>
+ <message>
+ <source>Diff</source>
+ <translation>Rozdíly</translation>
+ </message>
+ <message>
+ <source>&amp;Graphical (Single file only)</source>
+ <translation>&amp;Grafické (jen jeden soubor)</translation>
+ </message>
+ <message>
+ <source>&amp;External</source>
+ <translation>&amp;Vnější</translation>
+ </message>
+ <message>
+ <source>Arg&amp;uments:</source>
+ <translation>&amp;Argumenty:</translation>
+ </message>
+ <message>
+ <source>Miscellaneous</source>
+ <translation>Různé</translation>
+ </message>
+ <message>
+ <source>&amp;History count:</source>
+ <translation type="unfinished">PoÄet &amp;historie:</translation>
+ </message>
+ <message>
+ <source>&amp;Timeout:</source>
+ <translation>Časové &amp;omezení:</translation>
+ </message>
+ <message>
+ <source>s</source>
+ <translation>s</translation>
+ </message>
+ <message>
+ <source>&amp;Automatically check out files on edit</source>
+ <translation type="unfinished">&amp;Automaticky naÄíst soubory pÅ™i úpravách</translation>
+ </message>
+ <message>
+ <source>Check this if you have a trigger that renames the activity automatically. You will not be prompted for activity name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Aut&amp;o assign activity names</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Prompt on check-in</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Di&amp;sable indexer</source>
+ <translation>&amp;Vypnout rejstříkování</translation>
+ </message>
+ <message>
+ <source>&amp;Index only VOBs:</source>
+ <extracomment>VOB: Versioned Object Base</extracomment>
+ <translation>&amp;Rejstřík pouze VOB:</translation>
+ </message>
+ <message>
+ <source>VOBs list, separated by comma. Indexer will only traverse the specified VOBs. If left blank, all active VOBs will be indexed</source>
+ <translation>Seznam VOB, oddÄ›lený Äárkou. RejstříkovaÄ pÅ™ekroÄí pouze zadané VOBs. Bude-li ponecháno prázdné, budou zrejstříkovány vÅ¡echny Äinné VOB</translation>
+ </message>
+ <message>
+ <source>ClearCase</source>
+ <translation>ClearCase</translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::UndoCheckOut</name>
+ <message>
+ <source>Dialog</source>
+ <translation>Dialog</translation>
+ </message>
+ <message>
+ <source>The file was changed.</source>
+ <translation>Soubor byl změněn.</translation>
+ </message>
+ <message>
+ <source>&amp;Save copy of the file with a &apos;.keep&apos; extension</source>
+ <translation>&amp;Uložit kopii souboru s příponou &apos;.keep&apos;</translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::VersionSelector</name>
+ <message>
+ <source>Confirm Version to Check Out</source>
+ <translation>Potvrdit verzi k naÄtení</translation>
+ </message>
+ <message>
+ <source>There are multiple versions of &apos;%1&apos; which can be considered for checkout. Please select version to checkout:</source>
+ <translation>Je tu více verzí &apos;%1&apos;, které by bylo lze naÄíst. Zvolte, prosím, verzi k naÄtení:</translation>
+ </message>
+ <message>
+ <source>&amp;Loaded Version</source>
+ <translation>&amp;Nahraná verze</translation>
+ </message>
+ <message>
+ <source>Created by:</source>
+ <translation>Vytvořeno (kým):</translation>
+ </message>
+ <message>
+ <source>Created on:</source>
+ <extracomment>Date</extracomment>
+ <translation>Vytvořeno (datum):</translation>
+ </message>
+ <message>
+ <source>Version after &amp;update</source>
+ <translation>Verze po &amp;aktualizaci</translation>
+ </message>
+ <message>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;b&gt;NOTE: You will not be able to check in this file without merging the changes (not supported by the plugin)&lt;/b&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;b&gt;POZNÃMKA: Nebudete moci tento soubor check in bez slouÄení zmÄ›n (přídavným modulem není podporováno)&lt;/b&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>Core::RemoveFileDialog</name>
+ <message>
+ <source>Remove File</source>
+ <translation>Odstranit soubor</translation>
+ </message>
+ <message>
+ <source>File to remove:</source>
+ <translation>Soubor k odstranění:</translation>
+ </message>
+ <message>
+ <source>&amp;Delete file permanently</source>
+ <translation>&amp;Smazat soubor natrvalo</translation>
+ </message>
+ <message>
+ <source>&amp;Remove from Version Control</source>
+ <translation>&amp;Odstranit ze správy verzí</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BarDescriptorFileImageWizardPage</name>
+ <message>
+ <source>WizardPage</source>
+ <translation>WizardPage</translation>
+ </message>
+ <message>
+ <source>Icon:</source>
+ <translation>Ikona:</translation>
+ </message>
+ <message>
+ <source>Splash screens</source>
+ <translation>Uvítací obrazovka</translation>
+ </message>
+ <message>
+ <source>Landscape:</source>
+ <translation>Formát na šířku:</translation>
+ </message>
+ <message>
+ <source>Portrait:</source>
+ <translation>Formát na výšku:</translation>
+ </message>
+ <message>
+ <source>Images</source>
+ <translation>Obrázky</translation>
+ </message>
+ <message>
+ <source>Images (*.jpg *.png)</source>
+ <translation>Obrázky (*.jpg *.png)</translation>
+ </message>
+ <message>
+ <source>&lt;font color=&quot;red&quot;&gt;Could not open &apos;%1&apos; for reading.&lt;/font&gt;</source>
+ <translation>&lt;font color=&quot;red&quot;&gt;NepodaÅ™ilo se otevřít &apos;%1&apos; pro Ätení.&lt;/font&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;font color=&quot;red&quot;&gt;Incorrect icon size (%1x%2). The maximum size is %3x%4 pixels.&lt;/font&gt;</source>
+ <translation>&lt;font color=&quot;red&quot;&gt;Nesprávná velikost ikony (%1x%2). Největší velikost je %3x%4 pixelů.&lt;/font&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;font color=&quot;red&quot;&gt;Incorrect landscape splash screen size (%1x%2). The maximum size is %3x%4 pixels.&lt;/font&gt;</source>
+ <translation>&lt;font color=&quot;red&quot;&gt;Nesprávná velikost uvítací obrazovky na šířku (%1x%2). Největší velikost je %3x%4 pixelů.&lt;/font&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;font color=&quot;red&quot;&gt;Incorrect portrait splash screen size (%1x%2). The maximum size is %3x%4 pixels.&lt;/font&gt;</source>
+ <translation>&lt;font color=&quot;red&quot;&gt;Nesprávná velikost uvítací obrazovky na výšku (%1x%2). Největší velikost je %3x%4 pixelů.&lt;/font&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeployConfigurationWidget</name>
+ <message>
+ <source>Packages to deploy:</source>
+ <translation>BalíÄky k nasazení:</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeviceConfigurationWidget</name>
+ <message>
+ <source>&amp;Device name:</source>
+ <translation>Název &amp;zařízení:</translation>
+ </message>
+ <message>
+ <source>IP or host name of the device</source>
+ <translation>IP nebo název hostitelského poÄítaÄe zařízení</translation>
+ </message>
+ <message>
+ <source>Device &amp;password:</source>
+ <translation>&amp;Heslo k zařízení:</translation>
+ </message>
+ <message>
+ <source>Show password</source>
+ <translation>Ukázat heslo</translation>
+ </message>
+ <message>
+ <source>Debug token:</source>
+ <translation>Symbol pro ladění:</translation>
+ </message>
+ <message>
+ <source>Private key file:</source>
+ <translation>Soubor se soukromým klíÄem:</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeviceConfigurationWizardSetupPage</name>
+ <message>
+ <source>WizardPage</source>
+ <translation>WizardPage</translation>
+ </message>
+ <message>
+ <source>The name to identify this configuration:</source>
+ <translation>Název nastavení:</translation>
+ </message>
+ <message>
+ <source>The device&apos;s host name or IP address:</source>
+ <translation>Název hostitelského poÄítaÄe nebo IP adresa zařízení:</translation>
+ </message>
+ <message>
+ <source>Device password:</source>
+ <translation>Heslo k zařízení:</translation>
+ </message>
+ <message>
+ <source>Device type:</source>
+ <translation>Typ zařízení:</translation>
+ </message>
+ <message>
+ <source>Physical device</source>
+ <translation>Fyzické zařízení</translation>
+ </message>
+ <message>
+ <source>Simulator</source>
+ <translation>Simulátor</translation>
+ </message>
+ <message>
+ <source>Debug token:</source>
+ <translation>Symbol pro ladění:</translation>
+ </message>
+ <message>
+ <source>Connection Details</source>
+ <translation>Podrobnosti spojení</translation>
+ </message>
+ <message>
+ <source>BlackBerry Device</source>
+ <translation>Zařízení BlackBerry</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeviceConfigurationWizardSshKeyPage</name>
+ <message>
+ <source>WizardPage</source>
+ <translation>WizardPage</translation>
+ </message>
+ <message>
+ <source>Private key file:</source>
+ <translation>Soubor se soukromým klíÄem:</translation>
+ </message>
+ <message>
+ <source>Public key file:</source>
+ <translation>Soubor s veÅ™ejným klíÄem:</translation>
+ </message>
+ <message>
+ <source>Generate</source>
+ <translation>Vytvořit</translation>
+ </message>
+ <message>
+ <source>SSH Key Setup</source>
+ <translation>Nastavení klíÄe SSH</translation>
+ </message>
+ <message>
+ <source>Please select an existing &lt;b&gt;4096&lt;/b&gt;-bit key or click &lt;b&gt;Generate&lt;/b&gt; to create a new one.</source>
+ <translation>Vyberte, prosím, stávající &lt;b&gt;4096&lt;/b&gt; bitový klÃ­Ä nebo klepnÄ›te na &lt;b&gt;VytvoÅ™it&lt;/b&gt; pro vytvoÅ™ení nového.</translation>
+ </message>
+ <message>
+ <source>Key Generation Failed</source>
+ <translation>Chyba pÅ™i vytváření klíÄe</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryRunConfigurationWidget</name>
+ <message>
+ <source>Device:</source>
+ <translation>Zařízení:</translation>
+ </message>
+ <message>
+ <source>Package:</source>
+ <translation>BalíÄek:</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxBaseQtConfigWidget</name>
+ <message>
+ <source>SDK:</source>
+ <translation>SDK:</translation>
+ </message>
+</context>
+<context>
+ <name>RemoteLinuxCheckForFreeDiskSpaceStepWidget</name>
+ <message>
+ <source>Form</source>
+ <translation>Formulář</translation>
+ </message>
+ <message>
+ <source>Remote path to check for free space:</source>
+ <translation>Vzdálená cesta k prověření kvůli volnému místu:</translation>
+ </message>
+ <message>
+ <source>Required disk space:</source>
+ <translation>Požadované místo na disku:</translation>
+ </message>
+</context>
+<context>
+ <name>QSsh::Internal::SftpChannelPrivate</name>
+ <message>
+ <source>Server could not start SFTP subsystem.</source>
+ <translation>Server se nepodařilo spustit subsystém SFTP.</translation>
+ </message>
+ <message>
+ <source>Unexpected packet of type %1.</source>
+ <translation>NeoÄekávaný paket typu %1.</translation>
+ </message>
+ <message>
+ <source>Protocol version mismatch: Expected %1, got %2</source>
+ <translation>Verze protokolu neodpovídají: OÄekáváno %1, obdrženo %2</translation>
+ </message>
+ <message>
+ <source>Unknown error.</source>
+ <translation>Neznámá chyba.</translation>
+ </message>
+ <message>
+ <source>Created remote directory &apos;%1&apos;.</source>
+ <translation>Byl vytvořen vzdálený adresář &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <source>Remote directory &apos;%1&apos; already exists.</source>
+ <translation>Vzdálený adresář &apos;%1&apos; již existuje.</translation>
+ </message>
+ <message>
+ <source>Error creating directory &apos;%1&apos;: %2</source>
+ <translation>Chyba při vytváření adresáře &apos;%1&apos;: %2</translation>
+ </message>
+ <message>
+ <source>Could not open local file &apos;%1&apos;: %2</source>
+ <translation>Místní soubor &apos;%1&apos; se nepodařilo otevřít: %2</translation>
+ </message>
+ <message>
+ <source>Remote directory could not be opened for reading.</source>
+ <translation>Vzdálený adresář se nepodaÅ™ilo otevřít pro Ätení.</translation>
+ </message>
+ <message>
+ <source>Failed to list remote directory contents.</source>
+ <translation>NepodaÅ™ilo se urÄit obsah vzdáleného adresáře.</translation>
+ </message>
+ <message>
+ <source>Failed to close remote directory.</source>
+ <translation>Vzdálený adresář se nepodařilo zavřít.</translation>
+ </message>
+ <message>
+ <source>Failed to open remote file for reading.</source>
+ <translation>NepodaÅ™ilo se otevřít vzdálený soubor pro Ätení.</translation>
+ </message>
+ <message>
+ <source>Failed to retrieve information on the remote file (&apos;stat&apos; failed).</source>
+ <translation>Nepodařilo se získat žádné informace o vzdáleném souboru (&apos;stat&apos; se nezdařil).</translation>
+ </message>
+ <message>
+ <source>Failed to read remote file.</source>
+ <translation>Vzdálený soubor se nepodaÅ™ilo pÅ™eÄíst.</translation>
+ </message>
+ <message>
+ <source>Failed to close remote file.</source>
+ <translation>Vzdálený soubor se nepodařilo zavřít.</translation>
+ </message>
+ <message>
+ <source>Failed to open remote file for writing.</source>
+ <translation>Vzdálený soubor se nepodařilo otevřít pro zápis.</translation>
+ </message>
+ <message>
+ <source>Failed to write remote file.</source>
+ <translation>Vzdálený soubor se nepodařilo zapsat.</translation>
+ </message>
+ <message>
+ <source>Cannot append to remote file: Server does not support the file size attribute.</source>
+ <translation>Ke vzdálenému souboru nelze připojit žádná data, neboť server nepodporuje vlastnost velikost souboru.</translation>
+ </message>
+ <message>
+ <source>SFTP channel closed unexpectedly.</source>
+ <translation>Kanál SFTP byl náhle zavřen.</translation>
+ </message>
+ <message>
+ <source>Server could not start session: %1</source>
+ <translation>Serveru se nepodařilo spustit sezení: %1</translation>
+ </message>
+ <message>
+ <source>Error reading local file: %1</source>
+ <translation>Chyba pÅ™i Ätení místního souboru: %1</translation>
+ </message>
+</context>
+<context>
+ <name>QSsh::SftpFileSystemModel</name>
+ <message>
+ <source>File Type</source>
+ <translation>Typ souboru</translation>
+ </message>
+ <message>
+ <source>File Name</source>
+ <translation>Název souboru</translation>
+ </message>
+ <message>
+ <source>Error getting &apos;stat&apos; info about &apos;%1&apos;: %2</source>
+ <translation>Chyba při získávání &apos;stat&apos; informací o &apos;%1&apos;: %2</translation>
+ </message>
+ <message>
+ <source>Error listing contents of directory &apos;%1&apos;: %2</source>
+ <translation>Chyba při vypisování obsahu adresáře &apos;%1&apos;: %2</translation>
+ </message>
+</context>
+<context>
+ <name>QSsh::Internal::SshChannelManager</name>
+ <message>
+ <source>Invalid channel id %1</source>
+ <translation>Neplatný identifikátor kanálu %1</translation>
+ </message>
+</context>
+<context>
+ <name>QSsh::Internal::SshConnectionPrivate</name>
+ <message>
+ <source>SSH Protocol error: %1</source>
+ <translation>Chyba v protokolu SSH: %1</translation>
+ </message>
+ <message>
+ <source>Botan library exception: %1</source>
+ <translation>VýjimeÄná chyba v knihovnÄ› Botan: %1</translation>
+ </message>
+ <message numerus="yes">
+ <source>Server identification string is %n characters long, but the maximum allowed length is 255.</source>
+ <translation>
+ <numerusform>Řetězec pro identifikaci serveru je %n znak dlouhý, ale největší povolená délka je 255.</numerusform>
+ <numerusform>Řetězec pro identifikaci serveru je %n znaky dlouhý, ale největší povolená délka je 255.</numerusform>
+ <numerusform>Řetězec pro identifikaci serveru je %n znaků dlouhý, ale největší povolená délka je 255.</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Server identification string contains illegal NUL character.</source>
+ <translation>Řetězec pro identifikaci serveru obsahuje neplatný znak NUL.</translation>
+ </message>
+ <message>
+ <source>Server Identification string &apos;%1&apos; is invalid.</source>
+ <translation>Řetězec pro identifikaci serveru &apos;%1&apos; je neplatný.</translation>
+ </message>
+ <message>
+ <source>Server protocol version is &apos;%1&apos;, but needs to be 2.0 or 1.99.</source>
+ <translation>Verze protokolu serveru je &apos;%1&apos;, ale má být 2.0 nebo 1.99.</translation>
+ </message>
+ <message>
+ <source>Server identification string is invalid (missing carriage return).</source>
+ <translation type="unfinished">Řetězec pro identifikaci serveru je neplatný (chybí carriage return).</translation>
+ </message>
+ <message>
+ <source>Server reports protocol version 1.99, but sends data before the identification string, which is not allowed.</source>
+ <translation>Server hlásí verzi protokolu 1.99, ale posílá data před řetězcem pro identifikaci, což není povoleno.</translation>
+ </message>
+ <message>
+ <source>Unexpected packet of type %1.</source>
+ <translation>NeoÄekávaný paket typu %1.</translation>
+ </message>
+ <message>
+ <source>Password expired.</source>
+ <translation>Heslo vypršelo.</translation>
+ </message>
+ <message>
+ <source>Server rejected password.</source>
+ <translation>Server odmítl heslo.</translation>
+ </message>
+ <message>
+ <source>Server rejected key.</source>
+ <translation>Server odmítl klíÄ.</translation>
+ </message>
+ <message>
+ <source>The server sent an unexpected SSH packet of type SSH_MSG_UNIMPLEMENTED.</source>
+ <translation>Server poslal neoÄekávaný paket SSHtypu SSH_MSG_UNIMPLEMENTED.</translation>
+ </message>
+ <message>
+ <source>Server closed connection: %1</source>
+ <translation>Server zavřel spojení %1</translation>
+ </message>
+ <message>
+ <source>Connection closed unexpectedly.</source>
+ <translation>Spojení bylo náhle zavřeno.</translation>
+ </message>
+ <message>
+ <source>Timeout waiting for reply from server.</source>
+ <translation>PÅ™ekroÄení Äasového omezení pÅ™i Äekání na odpovÄ›Ä serveru.</translation>
+ </message>
+ <message>
+ <source>No private key file given.</source>
+ <translation>Neudán žádný soubor se soukromým klíÄem.</translation>
+ </message>
+ <message>
+ <source>Private key file error: %1</source>
+ <translation>Chyba v soukromém klíÄi: %1</translation>
+ </message>
+</context>
+<context>
+ <name>QSsh::Ssh</name>
+ <message>
+ <source>Password Required</source>
+ <translation>Heslo vyžadováno</translation>
+ </message>
+ <message>
+ <source>Please enter the password for your private key.</source>
+ <translation>Zadejte, prosím, heslo pro svůj soukromý klíÄ.</translation>
+ </message>
+</context>
+<context>
+ <name>QSsh::Internal::SshRemoteProcessPrivate</name>
+ <message>
+ <source>Process killed by signal</source>
+ <translation>Proces ukonÄen signálem</translation>
+ </message>
+ <message>
+ <source>Server sent invalid signal &apos;%1&apos;</source>
+ <translation>Server poslal neplatný signál &apos;%1&apos;</translation>
+ </message>
+</context>
+<context>
+ <name>Utils::ElfReader</name>
+ <message>
+ <source>&apos;%1&apos; is an invalid ELF object (%2)</source>
+ <translation>&apos;%1&apos; je neplatným objektem ELF (%2)</translation>
+ </message>
+ <message>
+ <source>&apos;%1&apos; is not an ELF object (file too small)</source>
+ <translation>&apos;%1&apos; není objektem ELF (soubor příliš malý)</translation>
+ </message>
+ <message>
+ <source>&apos;%1&apos; is not an ELF object</source>
+ <translation>&apos;%1&apos; není objektem ELF</translation>
+ </message>
+ <message>
+ <source>odd cpu architecture</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>odd endianess</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>unexpected e_shsize</source>
+ <translation type="unfinished">NeoÄekávaná e_shsize</translation>
+ </message>
+ <message>
+ <source>unexpected e_shentsize</source>
+ <translation type="unfinished">NeoÄekávaná e_shentsize</translation>
+ </message>
+ <message numerus="yes">
+ <source>announced %n sections, each %1 bytes, exceed file size</source>
+ <translation type="unfinished">
+ <numerusform>oznámena %n sekce, každá %1 bytů, pÅ™ekroÄena velikost souboru</numerusform>
+ <numerusform>oznámeny %n sekce, každá %1 bytů, pÅ™ekroÄena velikost souboru</numerusform>
+ <numerusform>oznámeno %n sekcí, každá %1 bytů, pÅ™ekroÄena velikost souboru</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>string table seems to be at 0x%1</source>
+ <translation type="unfinished">tabulka řetězce se zdá být na 0x%1</translation>
+ </message>
+ <message>
+ <source>section name %1 of %2 behind end of file</source>
+ <translation type="unfinished">název sekce %1 z %2 za koncem souboru</translation>
+ </message>
+</context>
+<context>
+ <name>ZeroConf::ServiceBrowser</name>
+ <message>
+ <source>Starting Zeroconf Browsing</source>
+ <translation>Spouští se procházení Zeroconf</translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidDeployStepFactory</name>
+ <message>
+ <source>Deploy to Android device or emulator</source>
+ <translation>Nasadit na zařízení nebo emulátor Android.</translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidDevice</name>
+ <message>
+ <source>Run on Android</source>
+ <translation>Spustit na Androidu</translation>
+ </message>
+ <message>
+ <source>Android</source>
+ <translation>Android</translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidDeviceFactory</name>
+ <message>
+ <source>Android Device</source>
+ <translation>Zařízení Android</translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidManager</name>
+ <message>
+ <source>Error creating Android directory &apos;%1&apos;.</source>
+ <translation>Chyba při vytváření adresáře Android &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <source>No Qt for Android SDKs were found.
+Please install at least one SDK.</source>
+ <translation>Nepodařilo se najít žádné Qt pro SDK Android.
+Nainstalujte, prosím, alespoň jedno SDK.</translation>
+ </message>
+ <message>
+ <source>Warning</source>
+ <translation>Varování</translation>
+ </message>
+ <message>
+ <source>Android files have been updated automatically</source>
+ <translation>Soubory Android byly zaktualizovány automaticky</translation>
+ </message>
+ <message>
+ <source>Error creating Android templates</source>
+ <translation>Chyba při vytváření předloh Android</translation>
+ </message>
+ <message>
+ <source>Can&apos;t parse &apos;%1&apos;</source>
+ <translation>Nelze zpracovat &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <source>Can&apos;t open &apos;%1&apos;</source>
+ <translation>Nelze otevřít &apos;%1&apos;</translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidPackageCreationFactory</name>
+ <message>
+ <source>Create Android (.apk) Package</source>
+ <translation>VytvoÅ™it balíÄek pro Android (*.apk)</translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidPackageInstallationFactory</name>
+ <message>
+ <source>Deploy to device</source>
+ <translation>Nasadit na zařízení</translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidQtVersion</name>
+ <message>
+ <source>Failed to detect the ABIs used by the Qt version.</source>
+ <translation>ABI(s) verze Qt se nepodaÅ™ilo urÄit.</translation>
+ </message>
+ <message>
+ <source>Android</source>
+ <extracomment>Qt Version is meant for Android</extracomment>
+ <translation>Android</translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AvdModel</name>
+ <message>
+ <source>AVD Name</source>
+ <extracomment>AVD - Android Virtual Device</extracomment>
+ <translation>Název AVD</translation>
+ </message>
+ <message>
+ <source>AVD Target</source>
+ <translation>Cíl AVD</translation>
+ </message>
+ <message>
+ <source>CPU/ABI</source>
+ <translation>CPU/ABI</translation>
+ </message>
+</context>
+<context>
+ <name>Bookmarks::Internal::BookmarkViewFactory</name>
+ <message>
+ <source>Alt+Meta+M</source>
+ <translation>Alt+Meta+M</translation>
+ </message>
+ <message>
+ <source>Alt+M</source>
+ <translation>Alt+M</translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::ActivitySelector</name>
+ <message>
+ <source>Select &amp;activity:</source>
+ <translation>Vybrat Ä&amp;innost:</translation>
+ </message>
+ <message>
+ <source>Add</source>
+ <translation>Přidat</translation>
+ </message>
+ <message>
+ <source>Keep item activity</source>
+ <translation>Zachovat Äinnost položky</translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::ClearCaseControl</name>
+ <message>
+ <source>&amp;Check Out</source>
+ <translation>&amp;NaÄíst (checkout)</translation>
+ </message>
+ <message>
+ <source>&amp;Hijack</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::ClearCaseEditor</name>
+ <message>
+ <source>Annotate version &quot;%1&quot;</source>
+ <translation>Opatřit anotacemi verzi &quot;%1&quot;</translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::ClearCasePlugin</name>
+ <message>
+ <source>C&amp;learCase</source>
+ <translation>C&amp;learCase</translation>
+ </message>
+ <message>
+ <source>Check Out...</source>
+ <translation>NaÄíst (checkout)...</translation>
+ </message>
+ <message>
+ <source>Check &amp;Out &quot;%1&quot;...</source>
+ <translation>&amp;NaÄíst (checkout) &quot;%1&quot;...</translation>
+ </message>
+ <message>
+ <source>Meta+L,Meta+O</source>
+ <translation>Meta+L,Meta+O</translation>
+ </message>
+ <message>
+ <source>Alt+L,Alt+O</source>
+ <translation>Alt+L,Alt+O</translation>
+ </message>
+ <message>
+ <source>Check &amp;In...</source>
+ <translation type="unfinished">&amp;Zapsat (SVN)...</translation>
+ </message>
+ <message>
+ <source>Check &amp;In &quot;%1&quot;...</source>
+ <translation type="unfinished">&amp;Zapsat (SVN) &quot;%1&quot;...</translation>
+ </message>
+ <message>
+ <source>Meta+L,Meta+I</source>
+ <translation>Meta+L,Meta+I</translation>
+ </message>
+ <message>
+ <source>Alt+L,Alt+I</source>
+ <translation>Alt+L,Alt+I</translation>
+ </message>
+ <message>
+ <source>Undo Check Out</source>
+ <translation type="unfinished">ZpÄ›t NaÄíst (checkout)</translation>
+ </message>
+ <message>
+ <source>&amp;Undo Check Out &quot;%1&quot;</source>
+ <translation type="unfinished">&amp;ZpÄ›t NaÄíst (checkout) &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <source>Meta+L,Meta+U</source>
+ <translation>Meta+L,Meta+U</translation>
+ </message>
+ <message>
+ <source>Alt+L,Alt+U</source>
+ <translation>Alt+L,Alt+U</translation>
+ </message>
+ <message>
+ <source>Undo Hijack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Undo Hi&amp;jack &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Meta+L,Meta+R</source>
+ <translation>Meta+L,Meta+R</translation>
+ </message>
+ <message>
+ <source>Alt+L,Alt+R</source>
+ <translation>Alt+L,Alt+R</translation>
+ </message>
+ <message>
+ <source>Diff Current File</source>
+ <translation>Rozdíly nynějšího souboru</translation>
+ </message>
+ <message>
+ <source>&amp;Diff &quot;%1&quot;</source>
+ <translation>&amp;Rozdíly pro &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <source>Meta+L,Meta+D</source>
+ <translation>Meta+L,Meta+D</translation>
+ </message>
+ <message>
+ <source>Alt+L,Alt+D</source>
+ <translation>Alt+L,Alt+D</translation>
+ </message>
+ <message>
+ <source>History Current File</source>
+ <translation>Historie nynějšího souboru</translation>
+ </message>
+ <message>
+ <source>&amp;History &quot;%1&quot;</source>
+ <translation>&amp;Historie &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <source>Meta+L,Meta+H</source>
+ <translation>Meta+L,Meta+H</translation>
+ </message>
+ <message>
+ <source>Alt+L,Alt+H</source>
+ <translation>Alt+L,Alt+H</translation>
+ </message>
+ <message>
+ <source>Annotate Current File</source>
+ <translation type="unfinished">Opatřit nynější soubor anotacemi</translation>
+ </message>
+ <message>
+ <source>&amp;Annotate &quot;%1&quot;</source>
+ <translation type="unfinished">Opatřit &amp;anotacemi &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <source>Meta+L,Meta+A</source>
+ <translation>Meta+L,Meta+A</translation>
+ </message>
+ <message>
+ <source>Alt+L,Alt+A</source>
+ <translation>Alt+L,Alt+A</translation>
+ </message>
+ <message>
+ <source>Add File...</source>
+ <translation>Přidat soubor...</translation>
+ </message>
+ <message>
+ <source>Add File &quot;%1&quot;</source>
+ <translation>Přidat soubor &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <source>Diff A&amp;ctivity...</source>
+ <translation type="unfinished">Rozdíly pro Ä&amp;innost...</translation>
+ </message>
+ <message>
+ <source>Ch&amp;eck In Activity</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Chec&amp;k In Activity &quot;%1&quot;...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Update Index</source>
+ <translation>Obnovit rejstřík</translation>
+ </message>
+ <message>
+ <source>Update View</source>
+ <translation>Obnovit zobrazení</translation>
+ </message>
+ <message>
+ <source>U&amp;pdate View &quot;%1&quot;</source>
+ <translation>&amp;Obnovit zobrazení &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <source>Check In All &amp;Files...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Meta+L,Meta+F</source>
+ <translation>Meta+L,Meta+F</translation>
+ </message>
+ <message>
+ <source>Alt+L,Alt+F</source>
+ <translation>Alt+L,Alt+F</translation>
+ </message>
+ <message>
+ <source>View &amp;Status</source>
+ <translation type="unfinished">Zobrazit &amp;stav</translation>
+ </message>
+ <message>
+ <source>Meta+L,Meta+S</source>
+ <translation>Meta+L,Meta+S</translation>
+ </message>
+ <message>
+ <source>Alt+L,Alt+S</source>
+ <translation>Alt+L,Alt+S</translation>
+ </message>
+ <message>
+ <source>Check In</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Diff Selected Files</source>
+ <translation>Rozdíly (diff) pro vybrané soubory</translation>
+ </message>
+ <message>
+ <source>&amp;Undo</source>
+ <translation>&amp;Zpět</translation>
+ </message>
+ <message>
+ <source>&amp;Redo</source>
+ <translation>&amp;Znovu</translation>
+ </message>
+ <message>
+ <source>Closing ClearCase Editor</source>
+ <translation type="unfinished">Zavření editoru ClearCase</translation>
+ </message>
+ <message>
+ <source>Do you want to check in the files?</source>
+ <translation type="unfinished">Chcete zapsat soubory?</translation>
+ </message>
+ <message>
+ <source>The comment check failed. Do you want to check in the files?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Do you want to undo the check out of &apos;%1&apos;?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Undo Hijack File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Do you want to undo hijack of &apos;%1&apos;?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>External diff is required to compare multiple files.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Enter Activity</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Activity Name</source>
+ <translation>Název Äinnosti</translation>
+ </message>
+ <message>
+ <source>Check In Activity</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Another check in is currently being executed.</source>
+ <translation type="unfinished">Jiný zápis je nyní prováděn.</translation>
+ </message>
+ <message>
+ <source>There are no modified files.</source>
+ <translation>Nejsou žádné změněné soubory.</translation>
+ </message>
+ <message>
+ <source>No ClearCase executable specified.</source>
+ <translation type="unfinished">Nebyl zadán žádný spustitelný soubor ClearCase.</translation>
+ </message>
+ <message>
+ <source>ClearCase Checkout</source>
+ <translation type="unfinished">NaÄtení ClearCase</translation>
+ </message>
+ <message>
+ <source>File is already checked out.</source>
+ <translation type="unfinished">Soubor je již naÄten.</translation>
+ </message>
+ <message>
+ <source>Set current activity failed: %1</source>
+ <translation type="unfinished">Nastavení nynÄ›jší Äinnosti se nezdaÅ™ilo: %1</translation>
+ </message>
+ <message>
+ <source>Enter &amp;comment:</source>
+ <translation type="unfinished">Zadejte &amp;poznámku:</translation>
+ </message>
+ <message>
+ <source>ClearCase Add File %1</source>
+ <translation type="unfinished">Přidat soubor %1 ClearCase</translation>
+ </message>
+ <message>
+ <source>ClearCase Remove Element %1</source>
+ <translation type="unfinished">Odstranit prvek %1 ClearCase</translation>
+ </message>
+ <message>
+ <source>This operation is irreversible. Are you sure?</source>
+ <translation type="unfinished">Tato operace se nedá vrátit zpět. Jste si jistý?</translation>
+ </message>
+ <message>
+ <source>ClearCase Remove File %1</source>
+ <translation type="unfinished">Odstranit soubor %1 ClearCase</translation>
+ </message>
+ <message>
+ <source>ClearCase Rename File %1 -&gt; %2</source>
+ <translation type="unfinished">Přejmenovat soubor %1 -&gt; %2 ClearCase</translation>
+ </message>
+ <message>
+ <source>Activity Headline</source>
+ <translation type="unfinished">Titulek Äinnosti</translation>
+ </message>
+ <message>
+ <source>Enter activity headline</source>
+ <translation type="unfinished">Zadejte titulek Äinnosti</translation>
+ </message>
+ <message>
+ <source>CC Indexing</source>
+ <translation type="unfinished">Rejstříkování CC</translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::ClearCaseSubmitEditor</name>
+ <message>
+ <source>ClearCase Check In</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::ClearCaseSubmitEditorWidget</name>
+ <message>
+ <source>Chec&amp;k in even if identical to previous version</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Preserve file modification time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Check In</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::SettingsPageWidget</name>
+ <message>
+ <source>ClearCase Command</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>In order to use External diff, &apos;diff&apos; command needs to be accessible.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source> DiffUtils is available for free download &lt;a href=&quot;http://gnuwin32.sourceforge.net/packages/diffutils.htm&quot;&gt;here&lt;/a&gt;. Please extract it to a directory in your PATH.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>CMakeProjectManager::Internal::ChooseCMakePage</name>
+ <message>
+ <source>Choose Cmake Executable</source>
+ <translation>Vybrat spustitelný soubor Cmake</translation>
+ </message>
+ <message>
+ <source>The cmake executable is valid.</source>
+ <translation>Spustitelný soubor cmake je platný.</translation>
+ </message>
+ <message>
+ <source>Please specify the path to the cmake executable. No cmake executable was found in the path.</source>
+ <translation>Zadejte, prosím, cestu ke spustitelnému souboru cmake. V cestě nebyl nalezen žádný spustitelný soubor cmake.</translation>
+ </message>
+ <message>
+ <source> The cmake executable (%1) does not exist.</source>
+ <translation> Spustitelný soubor cmake (%1) neexistuje.</translation>
+ </message>
+ <message>
+ <source> The path %1 is not a executable.</source>
+ <translation>Cesta &apos;%1&apos; není spustitelným souborem.</translation>
+ </message>
+ <message>
+ <source> The path %1 is not a valid cmake.</source>
+ <translation>Cesta &apos;%1&apos; není platným cmake.</translation>
+ </message>
+</context>
+<context>
+ <name>Core::Internal::OpenEditorsViewFactory</name>
+ <message>
+ <source>Meta+O</source>
+ <translation>Meta+O</translation>
+ </message>
+ <message>
+ <source>Alt+O</source>
+ <translation>Alt+O</translation>
+ </message>
+</context>
+<context>
+ <name>Core::IVersionControl</name>
+ <message>
+ <source>Open with VCS (%1)</source>
+ <translation>Otevřít s pomocí systému na ověřování verzí (VCS) (%1)</translation>
+ </message>
+</context>
+<context>
+ <name>CppEditor::Internal::FunctionDeclDefLink</name>
+ <message>
+ <source>Target file was changed, could not apply changes</source>
+ <translation>Změny se nepodařilo použít, protože cílový soubor byl změněn</translation>
+ </message>
+ <message>
+ <source>Apply changes to definition</source>
+ <translation>Použít změny definice</translation>
+ </message>
+ <message>
+ <source>Apply changes to declaration</source>
+ <translation>Použít změny deklarace</translation>
+ </message>
+ <message>
+ <source>Apply Function Signature Changes</source>
+ <translation>Použít změny podpisu funkce</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::StartApplicationDialog</name>
+ <message>
+ <source>Start Debugger</source>
+ <translation>Spustit ladicí program</translation>
+ </message>
+ <message>
+ <source>Select Executable</source>
+ <translation>Vybrat spustitelný soubor</translation>
+ </message>
+ <message>
+ <source>Server port:</source>
+ <translation>Serverový port:</translation>
+ </message>
+ <message>
+ <source>Select Working Directory</source>
+ <translation>Vybrat pracovní adresář</translation>
+ </message>
+ <message>
+ <source>Select Server Start Script</source>
+ <translation>Vybrat spouštěcí skript k serveru</translation>
+ </message>
+ <message>
+ <source>This option can be used to point to a script that will be used to start a debug server. If the field is empty, Qt Creator&apos;s default methods to set up debug servers will be used.</source>
+ <translation>Tuto volbu lze použít na ukázání na skript, který se použije na spuštění ladicího serveru. Pokud je pole prázdné, použijí sevýchozí metody Qt Creatoru pro nastavení ladicích serverů.</translation>
+ </message>
+ <message>
+ <source>&amp;Server start script:</source>
+ <translation>Spouštěcí skript k &amp;serveru:</translation>
+ </message>
+ <message>
+ <source>Select Location of Debugging Information</source>
+ <translation>Vybrat umístění informací o ladění</translation>
+ </message>
+ <message>
+ <source>Base path for external debug information and debug sources. If empty, $SYSROOT/usr/lib/debug will be chosen.</source>
+ <translation type="unfinished">Základní cesta pro vnější informace o ladění a zdroje ladění. V případě, že je prázdná, vybere se $SYSROOT/usr/lib/debug.</translation>
+ </message>
+ <message>
+ <source>&amp;Kit:</source>
+ <translation>&amp;Sada:</translation>
+ </message>
+ <message>
+ <source>Local &amp;executable:</source>
+ <translation>&amp;Místní spustitelný soubor:</translation>
+ </message>
+ <message>
+ <source>Command line &amp;arguments:</source>
+ <translation>&amp;Argumenty příkazového řádku:</translation>
+ </message>
+ <message>
+ <source>&amp;Working directory:</source>
+ <translation>&amp;Pracovní adresář:</translation>
+ </message>
+ <message>
+ <source>Run in &amp;terminal:</source>
+ <translation>Spustit v &amp;terminálu:</translation>
+ </message>
+ <message>
+ <source>Break at &quot;&amp;main&quot;:</source>
+ <translation>Přerušit při &quot;&amp;main&quot;:</translation>
+ </message>
+ <message>
+ <source>Debug &amp;information:</source>
+ <translation>&amp;Informace o ladění:</translation>
+ </message>
+ <message>
+ <source>&amp;Recent:</source>
+ <translation>&amp;Poslední:</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::DebuggerKitConfigWidget</name>
+ <message>
+ <source>Manage...</source>
+ <translation>Spravovat...</translation>
+ </message>
+ <message>
+ <source>The debugger to use for this kit.</source>
+ <translation>LadiÄ, který se použije pro tuto sadu.</translation>
+ </message>
+ <message>
+ <source>Auto-detect</source>
+ <translation>Zjistit automaticky</translation>
+ </message>
+ <message>
+ <source>Edit...</source>
+ <translation>Upravit...</translation>
+ </message>
+ <message>
+ <source>Debugger:</source>
+ <translation>LadiÄ:</translation>
+ </message>
+ <message>
+ <source>Debugger for &quot;%1&quot;</source>
+ <translation>LadiÄ pro &quot;%1&quot;</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::DebuggerKitConfigDialog</name>
+ <message>
+ <source>&amp;Engine:</source>
+ <translation>&amp;Stroj:</translation>
+ </message>
+ <message>
+ <source>&amp;Binary:</source>
+ <translation>&amp;Spustitelný soubor:</translation>
+ </message>
+ <message>
+ <source>64-bit version</source>
+ <translation>64 bitová verze</translation>
+ </message>
+ <message>
+ <source>32-bit version</source>
+ <translation>32 bitová verze</translation>
+ </message>
+ <message>
+ <source>&lt;html&gt;&lt;body&gt;&lt;p&gt;Specify the path to the &lt;a href=&quot;%1&quot;&gt;Windows Console Debugger executable&lt;/a&gt; (%2) here.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <extracomment>Label text for path configuration. %2 is &quot;x-bit version&quot;.</extracomment>
+ <translation>&lt;html&gt;&lt;body&gt;&lt;p&gt;Zadejte cestu ke spustitelnému souboru &lt;a href=&quot;%1&quot;&gt;Windows Console Debugger&lt;/a&gt; (%2).&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::DebuggerKitInformation</name>
+ <message>
+ <source>No debugger set up.</source>
+ <translation>Nenastaven žádný ladiÄ.</translation>
+ </message>
+ <message>
+ <source>Debugger &apos;%1&apos; not found.</source>
+ <translation>LadiÄ &quot;%1&quot; nenalezen.</translation>
+ </message>
+ <message>
+ <source>Debugger &apos;%1&apos; not executable.</source>
+ <translation>LadiÄ &quot;%1&quot; není spustitelný.</translation>
+ </message>
+ <message>
+ <source>The debugger location must be given as an absolute path (%1).</source>
+ <translation>UmístÄ›ní ladiÄe musí být zadáno jako absolutní cesta (%1).</translation>
+ </message>
+ <message>
+ <source>%1 &lt;None&gt;</source>
+ <translation>%1 &lt;Žádný&gt;</translation>
+ </message>
+ <message>
+ <source>%1 using &quot;%2&quot;</source>
+ <translation>%1 používá &quot;%2&quot;</translation>
+ </message>
+ <message>
+ <source>Debugger</source>
+ <translation>LadiÄ</translation>
+ </message>
+ <message>
+ <source>GDB Engine</source>
+ <translation>Stroj GDB</translation>
+ </message>
+ <message>
+ <source>CDB Engine</source>
+ <translation>Stroj CDB</translation>
+ </message>
+ <message>
+ <source>LLDB Engine</source>
+ <translation>Stroj LLDB</translation>
+ </message>
+ <message>
+ <source>No kit found.</source>
+ <translation>Nenalezena žádná sada.</translation>
+ </message>
+</context>
+<context>
+ <name>DeviceProcessesDialog</name>
+ <message>
+ <source>&amp;Attach to Process</source>
+ <translation>&amp;Připojit k procesu</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::GdbAbstractPlainEngine</name>
+ <message>
+ <source>Starting executable failed:
+</source>
+ <translation>Nepodařilo se spustit spustitelný soubor:
+</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::GdbAttachEngine</name>
+ <message>
+ <source>Attached to process %1.</source>
+ <translation>Připojeno k procesu %1.</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::DebuggerCore</name>
+ <message>
+ <source>Open Qt Options</source>
+ <translation>Otevřít nastavení pro knihovnu Qt</translation>
+ </message>
+ <message>
+ <source>Turn off Helper Usage</source>
+ <translation>Vypnout pomocnou knihovnu pro výstup dat</translation>
+ </message>
+ <message>
+ <source>Continue Anyway</source>
+ <translation>PÅ™esto pokraÄovat</translation>
+ </message>
+ <message>
+ <source>Debugging Helper Missing</source>
+ <translation>Pomocný ladicí program nebyl nalezen</translation>
+ </message>
+ <message>
+ <source>The debugger could not load the debugging helper library.</source>
+ <translation>Ladicí program nemohl nahrát pomocnou ladicí knihovnu.</translation>
+ </message>
+ <message>
+ <source>The debugging helper is used to nicely format the values of some Qt and Standard Library data types. It must be compiled for each used Qt version separately. In the Qt Creator Build and Run preferences page, select a Qt version, expand the Details section and click Build All.</source>
+ <translation>Pomocný ladicí program slouží k výstupu hodnot některých datových typů z Qt a standardních knihoven. Musí být sestaven pro každou používanou verzi Qt. Na stránce nastavení &apos;Sestavení a spuštění&apos; vyberte verzi Qt, rozbalte Podrobnosti a klepněte na &apos;Sestavit vše&apos;.</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::GdbCoreEngine</name>
+ <message>
+ <source>Error Loading Core File</source>
+ <translation>Chyba při nahrávání souboru core</translation>
+ </message>
+ <message>
+ <source>The specified file does not appear to be a core file.</source>
+ <translation>Zdá se, že daný soubor není souborem core.</translation>
+ </message>
+ <message>
+ <source>Error Loading Symbols</source>
+ <translation>Chyba při nahrávání symbolů</translation>
+ </message>
+ <message>
+ <source>No executable to load symbols from specified core.</source>
+ <translation>Žádný spustitelný soubor pro nahrání symbolů ze zadaného souboru core.</translation>
+ </message>
+ <message>
+ <source>Symbols found.</source>
+ <translation>Symboly byly nalezeny.</translation>
+ </message>
+ <message>
+ <source>No symbols found in core file &lt;i&gt;%1&lt;/i&gt;.</source>
+ <translation>V souboru &apos;core&apos; nebyly nalezeny žádné symboly &lt;i&gt;%1&lt;/i&gt;.</translation>
+ </message>
+ <message>
+ <source>This can be caused by a path length limitation in the core file.</source>
+ <translation>Možnou příÄinou je omezení délky cesty v souboru core.</translation>
+ </message>
+ <message>
+ <source>Try to specify the binary using the &lt;i&gt;Debug-&gt;Start Debugging-&gt;Attach to Core&lt;/i&gt; dialog.</source>
+ <translation>Zadejte, prosím, název spustitelného souboru v dialogu &lt;i&gt;Ladění-&gt;Spustit ladění-&gt;Připojit do core&lt;/i&gt;.</translation>
+ </message>
+ <message>
+ <source>Attached to core.</source>
+ <translation>Připojeno k souboru &apos;core&apos;.</translation>
+ </message>
+ <message>
+ <source>Attach to core &quot;%1&quot; failed:
+</source>
+ <translation>Ladění souboru &apos;core&apos; &quot;%1&quot; se nezdařilo:</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::GdbLocalPlainEngine</name>
+ <message>
+ <source>Cannot set up communication with child process: %1</source>
+ <translation>Spojení s podřízeným procesem se nepodařilo zřídit: %1</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::GdbRemoteServerEngine</name>
+ <message>
+ <source>The upload process failed to start. Shell missing?</source>
+ <translation>Nahrání procesu se nepodaÅ™ilo spustit. Možnou příÄinou by mohl být chybÄ›jící shellový program?</translation>
+ </message>
+ <message>
+ <source>The upload process crashed some time after starting successfully.</source>
+ <translation>Proces nahrávání po urÄité dobÄ› od úspěšného spuÅ¡tÄ›ní spadl.</translation>
+ </message>
+ <message>
+ <source>The last waitFor...() function timed out. The state of QProcess is unchanged, and you can try calling waitFor...() again.</source>
+ <translation>DoÅ¡lo k pÅ™ekroÄení Äasu u poslední funkce waitFor...(). Stav QProcess je nezmÄ›nÄ›n, a tak se můžete pokusit zavolat waitFor...() jeÅ¡tÄ› jednou.</translation>
+ </message>
+ <message>
+ <source>An error occurred when attempting to write to the upload process. For example, the process may not be running, or it may have closed its input channel.</source>
+ <translation>Při pokusu o zápis do procesu nahrávání se vyskytla chyba. Pravděpodobně proces neběží, nebo zavřel svůj vstupní kanál.</translation>
+ </message>
+ <message>
+ <source>An error occurred when attempting to read from the upload process. For example, the process may not be running.</source>
+ <translation>PÅ™i pokusu o Ätení z procesu nahrávání se vyskytla chyba. PravdÄ›podobnÄ› proces neběží.</translation>
+ </message>
+ <message>
+ <source>An unknown error in the upload process occurred. This is the default return value of error().</source>
+ <translation>V procesu nahrávání se vyskytla neznámá chyba. Je to výchozí zpětná hodnota error().</translation>
+ </message>
+ <message>
+ <source>Error</source>
+ <translation>Chyba</translation>
+ </message>
+ <message>
+ <source>No symbol file given.</source>
+ <translation>Nebyl zadán žádný symbolický soubor.</translation>
+ </message>
+ <message>
+ <source>Reading debug information failed:
+</source>
+ <translation>Čtení informací o ladění se nezdařilo:
+</translation>
+ </message>
+ <message>
+ <source>Interrupting not possible</source>
+ <translation>Přerušení není možné</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::GdbServerStarter</name>
+ <message>
+ <source>Remote Error</source>
+ <translation>Vzdálená chyba</translation>
+ </message>
+ <message>
+ <source>Could not retrieve list of free ports:</source>
+ <translation>NepodaÅ™ilo se urÄit seznam volných portů:</translation>
+ </message>
+ <message>
+ <source>Process aborted</source>
+ <translation>Proces zrušen</translation>
+ </message>
+ <message>
+ <source>Running command: %1</source>
+ <translation>Provádí se příkaz: %1</translation>
+ </message>
+ <message>
+ <source>Connection error: %1</source>
+ <translation>Chyba ve spojení: %1</translation>
+ </message>
+ <message>
+ <source>Starting gdbserver...</source>
+ <translation>Spouští se gdbserver...</translation>
+ </message>
+ <message>
+ <source>Port %1 is now accessible.</source>
+ <translation>Port %1 je nyní dostupný.</translation>
+ </message>
+ <message>
+ <source>Server started on %1:%2</source>
+ <translation>Server spuštěn na %1:%2</translation>
+ </message>
+ <message>
+ <source>Warning</source>
+ <translation>Varování</translation>
+ </message>
+ <message>
+ <source>Cannot find local executable for remote process &quot;%1&quot;.</source>
+ <translation>Nelze najít místní spustitelný soubor pro vzdálený proces &quot;%1&quot;.</translation>
+ </message>
+ <message>
+ <source>Cannot find ABI for remote process &quot;%1&quot;.</source>
+ <translation>Nelze najít ABI pro vzdálený proces &quot;%1&quot;.</translation>
+ </message>
+ <message>
+ <source>Remote: &quot;%1:%2&quot;</source>
+ <translation>Vzdálený: &quot;%1&quot; {1:%2&quot;?}</translation>
+ </message>
+ <message>
+ <source>Process gdbserver finished. Status: %1</source>
+ <translation>Proces gdbserver ukonÄen. Stav: %1</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::GdbTermEngine</name>
+ <message>
+ <source>Debugger Error</source>
+ <translation>Chyba v ladicím programu</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::SelectRemoteFileDialog</name>
+ <message>
+ <source>Download of remote file succeeded.</source>
+ <translation>Stažení vzdáleného souboru se podařilo.</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::ModulesHandler</name>
+ <message>
+ <source>Module Name</source>
+ <translation>Název modulu</translation>
+ </message>
+ <message>
+ <source>Module Path</source>
+ <translation>Cesta k modulu</translation>
+ </message>
+ <message>
+ <source>Symbols Read</source>
+ <translation>Symboly pÅ™eÄteny</translation>
+ </message>
+ <message>
+ <source>Symbols Type</source>
+ <translation>Typ symbolu</translation>
+ </message>
+ <message>
+ <source>Start Address</source>
+ <translation>PoÄáteÄní adresa</translation>
+ </message>
+ <message>
+ <source>End Address</source>
+ <translation>Koncová adresa</translation>
+ </message>
+ <message>
+ <source>Unknown</source>
+ <translation>Neznámý</translation>
+ </message>
+ <message>
+ <source>No</source>
+ <translation>Ne</translation>
+ </message>
+ <message>
+ <source>Yes</source>
+ <translation>Ano</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation>Žádný</translation>
+ </message>
+ <message>
+ <source>Plain</source>
+ <translation>Zřetelný</translation>
+ </message>
+ <message>
+ <source>Fast</source>
+ <translation>Rychle</translation>
+ </message>
+ <message>
+ <source>debuglnk</source>
+ <translation>debuglnk</translation>
+ </message>
+ <message>
+ <source>buildid</source>
+ <translation>IDSestavení</translation>
+ </message>
+ <message>
+ <source>It is unknown whether this module contains debug information.
+Use &quot;Examine Symbols&quot; from the context menu to initiate a check.</source>
+ <translation>Není známo, zda tento modul obsahuje informace o ladění.
+Použijte &quot;Prozkoumat symboly&quot; v související nabídce pro zapoÄetí provÄ›rky.</translation>
+ </message>
+ <message>
+ <source>This module neither contains nor references debug information.
+Stepping into the module or setting breakpoints by file and line will not work.</source>
+ <translation>Tento modul ani neobsahuje informace o ladění, ani na ně neodkazuje.
+Zasáhnutí do modulu nebo nastavení bodů pÅ™eruÅ¡ení podle souboru a Äísla řádku nebude pracovat.</translation>
+ </message>
+ <message>
+ <source>This module contains debug information.
+Stepping into the module or setting breakpoints by file and is expected to work.</source>
+ <translation>Tento modul obsahuje informace o ladění.
+Zasáhnutí do modulu nebo nastavení bodů pÅ™eruÅ¡ení podle souboru, a oÄekává se, že bude pracovat.</translation>
+ </message>
+ <message>
+ <source>This module does not contain debug information itself, but contains a reference to external debug information.</source>
+ <translation>Tento modul neobsahuje informace o laděn, obsahuje ale odkaz na vnější informace o ladění.</translation>
+ </message>
+ <message>
+ <source>&lt;unknown&gt;</source>
+ <comment>address</comment>
+ <extracomment>End address of loaded module</extracomment>
+ <translation>&lt;Neznámá&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::QmlAdapter</name>
+ <message>
+ <source>Connecting to debug server %1:%2</source>
+ <translation>Spojuje se s ladicím serverem %1:%2</translation>
+ </message>
+ <message>
+ <source>Error: (%1) %2</source>
+ <comment>%1=error code, %2=error message</comment>
+ <translation>Chyba: (%1) %2</translation>
+ </message>
+ <message>
+ <source>Disconnected.
+
+</source>
+ <translation>Odpojeno.
+
+</translation>
+ </message>
+ <message>
+ <source>Resolving host.</source>
+ <translation>Řeší se název hostitele.</translation>
+ </message>
+ <message>
+ <source>Connecting to debug server.</source>
+ <translation>Spojuje se s ladicím serverem.</translation>
+ </message>
+ <message>
+ <source>Connected.
+</source>
+ <translation>Spojeno.
+</translation>
+ </message>
+ <message>
+ <source>Closing.</source>
+ <translation>Zavírá se spojení.</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::QmlInspectorAgent</name>
+ <message>
+ <source>Success: </source>
+ <translation>Úspěch: </translation>
+ </message>
+ <message>
+ <source>Properties</source>
+ <translation>Vlastnosti</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::QmlLiveTextPreview</name>
+ <message>
+ <source>The %1 attribute at line %2, column %3 cannot be changed without reloading the QML application. </source>
+ <translation>Vlastnost %1 na řádku %2, sloupec %3 nelze změnit bez nového nahrání programu QML.</translation>
+ </message>
+ <message>
+ <source>The %1 element at line %2, column %3 cannot be changed without reloading the QML application. </source>
+ <translation>Prvek %1 na řádku %2, sloupec %3 nelze změnit bez nového nahrání programu QML.</translation>
+ </message>
+ <message>
+ <source>The changes in JavaScript cannot be applied without reloading the QML application. </source>
+ <translation>Změny v JavaScriptu nelze použít bez znovunahrání aplikace QML. </translation>
+ </message>
+ <message>
+ <source>The changes made cannot be applied without reloading the QML application. </source>
+ <translation>Provedené změny nelze použít bez znovunahrání aplikace QML. </translation>
+ </message>
+ <message>
+ <source>You can continue debugging, but behavior can be unexpected.</source>
+ <translation>Můžete pokraÄovat v ladÄ›ní. může se ale vyskytnout neoÄekávané chování.</translation>
+ </message>
+ <message>
+ <source>Reload QML</source>
+ <translation>Nahrát QML znovu</translation>
+ </message>
+</context>
+<context>
+ <name>Git::Internal::GitSubmitEditorWidget</name>
+ <message>
+ <source>Detached HEAD</source>
+ <translation>Odpojená HEAD</translation>
+ </message>
+</context>
+<context>
+ <name>Madde::Internal::DebianManager</name>
+ <message>
+ <source>Error Creating Debian Project Templates</source>
+ <translation>Chyba při vytváření předloh pro projekt Debian</translation>
+ </message>
+ <message>
+ <source>Failed to open debian changelog &quot;%1&quot; file for reading.</source>
+ <translation>NepodaÅ™ilo se otevřít soubor se seznamem zmÄ›n v Debianu &quot;%1&quot; pro Ätení.</translation>
+ </message>
+ <message>
+ <source>Debian changelog file &apos;%1&apos; has unexpected format.</source>
+ <translation>Soubor se záznamem změn Debian &apos;%1&apos; je v nějakém neznámém formátu.</translation>
+ </message>
+ <message>
+ <source>Refusing to update changelog file: Already contains version &apos;%1&apos;.</source>
+ <translation>Odmítnutí aktualizace souboru se záznamem změn: Již obsahuje verzi &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <source>Cannot update changelog: Invalid format (no maintainer entry found).</source>
+ <translation>Soubor se záznamem změn nelze aktualizovat: Neplatný formát (nenalezen žádný záznam o údržbáři).</translation>
+ </message>
+ <message>
+ <source>Invalid icon data in Debian control file.</source>
+ <translation>Kontrolní soubor pro Debian obsahuje neplatná data k ikoně.</translation>
+ </message>
+ <message>
+ <source>Could not read image file &apos;%1&apos;.</source>
+ <translation>Soubor s obrázkem &apos;%1&apos; se nepodaÅ™ilo pÅ™eÄíst.</translation>
+ </message>
+ <message>
+ <source>Could not export image file &apos;%1&apos;.</source>
+ <translation>Soubor s obrázkem &apos;%1&apos; se nepodařilo vyvést.</translation>
+ </message>
+ <message>
+ <source>Failed to create directory &quot;%1&quot;.</source>
+ <translation>Adresář &apos;%1&apos; se nepodařilo vytvořit.</translation>
+ </message>
+ <message>
+ <source>Unable to create Debian templates: No Qt version set.</source>
+ <translation>Nepodařilo se vytvořit žádné předlohy pro Debian. Není nastavena žádná verze Qt.</translation>
+ </message>
+ <message>
+ <source>Unable to create Debian templates: dh_make failed (%1).</source>
+ <translation>Nepodařilo se vytvořit žádné soubory předloh pro Debian: dh_make selhal (%1).</translation>
+ </message>
+ <message>
+ <source>Unable to create debian templates: dh_make failed (%1).</source>
+ <translation>Nepodařilo se vytvořit žádné soubory předloh pro Debian: dh_make selhal (%1).</translation>
+ </message>
+ <message>
+ <source>Unable to move new debian directory to &apos;%1&apos;.</source>
+ <translation>Nový adresář pro Debian se nepodařilo přesunout do %1.</translation>
+ </message>
+</context>
+<context>
+ <name>Madde::Internal::MaddeDevice</name>
+ <message>
+ <source>Test</source>
+ <translation>Zkouška</translation>
+ </message>
+ <message>
+ <source>Deploy Public Key...</source>
+ <translation>Poslat veÅ™ejný klíÄ...</translation>
+ </message>
+ <message>
+ <source>Maemo5/Fremantle</source>
+ <translation>Maemo 5/Fremantle</translation>
+ </message>
+ <message>
+ <source>MeeGo 1.2 Harmattan</source>
+ <translation>MeeGo 1.2 Harmattan</translation>
+ </message>
+</context>
+<context>
+ <name>Madde::Internal::MaddeQemuStartService</name>
+ <message>
+ <source>Checking whether to start Qemu...</source>
+ <translation>Ověřuje se, zda spustit Qemu...</translation>
+ </message>
+ <message>
+ <source>Target device is not an emulator. Nothing to do.</source>
+ <translation>Cílové zařízení není emulátorem. Není co dělat.</translation>
+ </message>
+ <message>
+ <source>Qemu is already running. Nothing to do.</source>
+ <translation>Qemu již běží. Není co dělat.</translation>
+ </message>
+ <message>
+ <source>Cannot deploy: Qemu was not running. It has now been started up for you, but it will take a bit of time until it is ready. Please try again then.</source>
+ <translation>Nasazení se nezdaÅ™ilo, neboÅ¥ Qemu neběželo. Bylo nyní spuÅ¡tÄ›no, ale bude jeÅ¡tÄ› potÅ™ebovat nÄ›jaký Äas, než bude pÅ™ipraveno. Pak to, prosím, zkuste znovu.</translation>
+ </message>
+ <message>
+ <source>Cannot deploy: You want to deploy to Qemu, but it is not enabled for this Qt version.</source>
+ <translation>Nasazení Qemu se nezdařilo, neboť Qemu není pro tuto verzi Qt dostupné.</translation>
+ </message>
+</context>
+<context>
+ <name>Madde::Internal::MaddeQemuStartStep</name>
+ <message>
+ <source>Start Qemu, if necessary</source>
+ <translation>Spustit Qemu, je-li to nutné</translation>
+ </message>
+</context>
+<context>
+ <name>Madde::Internal::Qt4MaemoDeployConfiguration</name>
+ <message>
+ <source>Add Packaging Files to Project</source>
+ <translation>PÅ™idat soubory s balíÄky do projektu</translation>
+ </message>
+ <message>
+ <source>&lt;html&gt;Qt Creator has set up the following files to enable packaging:
+ %1
+Do you want to add them to the project?&lt;/html&gt;</source>
+ <translation>&lt;html&gt;Qt Creator pÅ™iložil následující soubory k umožnÄ›ní balíÄkování:
+ %1
+Chcete je přidat do projektu?&lt;/html&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>Perforce::Internal::PerforceVersionControl</name>
+ <message>
+ <source>&amp;Edit (%1)</source>
+ <translation>&amp;Upravit (%1)</translation>
+ </message>
+ <message>
+ <source>&amp;Hijack</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::DeviceApplicationRunner</name>
+ <message>
+ <source>User requested stop. Shutting down...</source>
+ <translation>Uživatelem vyžádané zastavení. Zastavuje se...</translation>
+ </message>
+ <message>
+ <source>Cannot run: No device.</source>
+ <translation>Nelze spustit: Žádné zařízení.</translation>
+ </message>
+ <message>
+ <source>Connecting to device...</source>
+ <translation>Připojuje se k zařízení...</translation>
+ </message>
+ <message>
+ <source>SSH connection failed: %1</source>
+ <translation>Chyba při vytváření spojení SSH: %1</translation>
+ </message>
+ <message>
+ <source>Application did not finish in time, aborting.</source>
+ <translation>Program neskonÄil vÄas. PÅ™eruÅ¡uje se.</translation>
+ </message>
+ <message>
+ <source>Remote application crashed: %1</source>
+ <translation>Vzdálený program spadl: %1</translation>
+ </message>
+ <message>
+ <source>Remote application finished with exit code %1.</source>
+ <translation>Vzdálený program byl ukonÄen. Vrácená hodnota %1.</translation>
+ </message>
+ <message>
+ <source>Remote application finished with exit code 0.</source>
+ <translation>Vzdálený program byl ukonÄen. Vrácená hodnota 0.</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::DeviceProcessesDialog</name>
+ <message>
+ <source>Kit:</source>
+ <translation>Sada:</translation>
+ </message>
+ <message>
+ <source>List of Processes</source>
+ <translation>Seznam procesů</translation>
+ </message>
+ <message>
+ <source>Filter</source>
+ <translation>Filtr</translation>
+ </message>
+ <message>
+ <source>&amp;Update List</source>
+ <translation>&amp;Obnovit seznam</translation>
+ </message>
+ <message>
+ <source>&amp;Kill Process</source>
+ <translation>&amp;UkonÄit proces</translation>
+ </message>
+ <message>
+ <source>&amp;Filter:</source>
+ <translation>&amp;Filtr:</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Internal::DeviceProcessesDialogPrivate</name>
+ <message>
+ <source>Remote Error</source>
+ <translation>Vzdálená chyba</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::DeviceProcessList</name>
+ <message>
+ <source>Process ID</source>
+ <translation>ID procesu</translation>
+ </message>
+ <message>
+ <source>Command Line</source>
+ <translation>Příkazový řádek</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::DeviceUsedPortsGatherer</name>
+ <message>
+ <source>Connection error: %1</source>
+ <translation>Chyba ve spojení: %1</translation>
+ </message>
+ <message>
+ <source>Could not start remote process: %1</source>
+ <translation>Vzdálený proces se nepodařilo spustit: %1</translation>
+ </message>
+ <message>
+ <source>Remote process crashed: %1</source>
+ <translation>Vzdálený proces spadl: %1</translation>
+ </message>
+ <message>
+ <source>Remote process failed; exit code was %1.</source>
+ <translation>Vzdálený proces se nezdařil. Vrácená hodnota %1.</translation>
+ </message>
+ <message>
+ <source>
+Remote error output was: %1</source>
+ <translation>
+Vzdálený chybový výstup byl: %1</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Internal::LocalProcessList</name>
+ <message>
+ <source>Cannot terminate process %1: %2</source>
+ <translation>Nelze ukonÄit proces %1: %2</translation>
+ </message>
+ <message>
+ <source>Cannot open process %1: %2</source>
+ <translation>Nelze otevřít proces %1: %2</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::SshDeviceProcessList</name>
+ <message>
+ <source>Connection failure: %1</source>
+ <translation>Chyba při vytváření spojení: %1</translation>
+ </message>
+ <message>
+ <source>Error: Process listing command failed to start: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error: Process listing command crashed: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Process listing command failed with exit code %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error: Kill process failed to start: %1</source>
+ <translation>Chyba: Zabít proces se nepodařilo spustit: %1</translation>
+ </message>
+ <message>
+ <source>Error: Kill process crashed: %1</source>
+ <translation>Chyba: Zabít proces spadlo: %1</translation>
+ </message>
+ <message>
+ <source>Kill process failed with exit code %1.</source>
+ <translation>Zabít proces se nepodařilo. Vrácená hodnota %1.</translation>
+ </message>
+ <message>
+ <source>
+Remote stderr was: %1</source>
+ <translation>
+Vzdálený chybový výstup byl: &apos;%1&apos;</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Kit</name>
+ <message>
+ <source>Unnamed</source>
+ <translation>Bez názvu</translation>
+ </message>
+ <message>
+ <source>Clone of %1</source>
+ <translation>Klon %1</translation>
+ </message>
+ <message>
+ <source>Error:</source>
+ <translation>Chyba:</translation>
+ </message>
+ <message>
+ <source>Warning:</source>
+ <translation>Varování:</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::SysRootKitInformation</name>
+ <message>
+ <source>Sys Root &quot;%1&quot; is not a directory.</source>
+ <translation>Sys Root &quot;%1&quot; není adresář.</translation>
+ </message>
+ <message>
+ <source>Sys Root</source>
+ <translation>Sys Root</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::ToolChainKitInformation</name>
+ <message>
+ <source>Compiler</source>
+ <translation>PÅ™ekladaÄ</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation>Žádný</translation>
+ </message>
+ <message>
+ <source>No compiler set in kit.</source>
+ <translation>V sadÄ› není nastaven žádný pÅ™ekladaÄ.</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::DeviceTypeKitInformation</name>
+ <message>
+ <source>Unknown device type</source>
+ <translation>Neznámý typ zařízení</translation>
+ </message>
+ <message>
+ <source>Device type</source>
+ <translation>Typ zařízení</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::DeviceKitInformation</name>
+ <message>
+ <source>Device does not match device type.</source>
+ <translation>Zařízení neodpovídá typu zařízení.</translation>
+ </message>
+ <message>
+ <source>No Device set.</source>
+ <translation>Není nastaveno žádné zařízení.</translation>
+ </message>
+ <message>
+ <source>Device</source>
+ <translation>Zařízení</translation>
+ </message>
+ <message>
+ <source>Unconfigured</source>
+ <translation>Nenastaveno</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Internal::SysRootInformationConfigWidget</name>
+ <message>
+ <source>The root directory of the system image to use.&lt;br&gt;Leave empty when building for the desktop.</source>
+ <translation>Kořenový adresář obrazu systému k použití.&lt;br&gt;Ponechte prázdné, když sestavujete pro desktop.</translation>
+ </message>
+ <message>
+ <source>Sysroot:</source>
+ <translation>Sysroot:</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Internal::ToolChainInformationConfigWidget</name>
+ <message>
+ <source>The compiler to use for building.&lt;br&gt;Make sure the compiler will produce binaries compatible with the target device, Qt version and other libraries used.</source>
+ <translation>PÅ™ekladaÄ k použití pro sestavování.&lt;br&gt;UjistÄ›te se, že bude pÅ™ekladaÄ vytvářet spustitelné soubory sluÄitelné s cílovým zařízením, verzí Qt a jinými použitými knihovnami.</translation>
+ </message>
+ <message>
+ <source>Manage...</source>
+ <translation>Spravovat...</translation>
+ </message>
+ <message>
+ <source>Compiler:</source>
+ <translation>PÅ™ekladaÄ:</translation>
+ </message>
+ <message>
+ <source>&lt;No compiler available&gt;</source>
+ <translation>&lt;Žádný pÅ™ekladaÄ není dostupný&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Internal::DeviceTypeInformationConfigWidget</name>
+ <message>
+ <source>The type of device to run applications on.</source>
+ <translation>Typ zařízení pro spuštění programů.</translation>
+ </message>
+ <message>
+ <source>Device type:</source>
+ <translation>Typ zařízení:</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Internal::DeviceInformationConfigWidget</name>
+ <message>
+ <source>The device to run the applications on.</source>
+ <translation>Zařízení pro spuštění programů.</translation>
+ </message>
+ <message>
+ <source>Manage...</source>
+ <translation>Spravovat...</translation>
+ </message>
+ <message>
+ <source>Device:</source>
+ <translation>Zařízení:</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::KitManager</name>
+ <message>
+ <source>Desktop</source>
+ <translation>Desktop</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Internal::KitManagerConfigWidget</name>
+ <message>
+ <source>Name:</source>
+ <translation>Název:</translation>
+ </message>
+ <message>
+ <source>Kit name and icon.</source>
+ <translation>Název sady a ikona.</translation>
+ </message>
+ <message>
+ <source>Select Icon</source>
+ <translation>Vybrat ikonu</translation>
+ </message>
+ <message>
+ <source>Images (*.png *.xpm *.jpg)</source>
+ <translation>Obrázky (*.png *.xpm *.jpg)</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Internal::KitModel</name>
+ <message>
+ <source>Auto-detected</source>
+ <translation>Automaticky zjištěno</translation>
+ </message>
+ <message>
+ <source>Manual</source>
+ <translation>RuÄnÄ›</translation>
+ </message>
+ <message>
+ <source>%1 (default)</source>
+ <extracomment>Mark up a kit as the default one.</extracomment>
+ <translation>%1 (výchozí)</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>Název</translation>
+ </message>
+ <message>
+ <source>Clone of %1</source>
+ <translation>Klon %1</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::KitOptionsPage</name>
+ <message>
+ <source>Kits</source>
+ <translation>Sady</translation>
+ </message>
+ <message>
+ <source>Add</source>
+ <translation>Přidat</translation>
+ </message>
+ <message>
+ <source>Clone</source>
+ <translation>Klonovat</translation>
+ </message>
+ <message>
+ <source>Remove</source>
+ <translation>Odstranit</translation>
+ </message>
+ <message>
+ <source>Make Default</source>
+ <translation>Udělat výchozí</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::RunConfiguration</name>
+ <message>
+ <source>Unknown error.</source>
+ <translation>Neznámá chyba.</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Target</name>
+ <message>
+ <source>Default build</source>
+ <translation>Výchozí sestavení</translation>
+ </message>
+</context>
+<context>
+ <name>QmlJSTools::FindExportedCppTypes</name>
+ <message>
+ <source>The type will only be available in Qt Creator&apos;s QML editors when the type name is a string literal</source>
+ <translation>Tento typ bude v editoru QML Qt Creatoru viditelný jen tehdy, když je název typu řetězec znaků tvořený písmeny (literal)</translation>
+ </message>
+ <message>
+ <source>The module URI cannot be determined by static analysis. The type will be available
+globally in the QML editor. You can add a &quot;// @uri My.Module.Uri&quot; annotation to let
+Qt Creator know about a likely URI.</source>
+ <translation>URI modulu nelze urÄit statickou analýzou. Typ bude celkovÄ› dostupný v editoru QML.
+Můžete přidat poznámku ve tvaru &quot;// @uri My.Module.Uri&quot;, abyste dal Qt Creatoru vědět
+o pravděpodobném URI.</translation>
+ </message>
+ <message>
+ <source>must be a string literal to be available in the QML editor</source>
+ <translation>musí být řetězec znaků tvořený písmeny (literal), aby byl dostupný v editoru QML</translation>
+ </message>
+</context>
+<context>
+ <name>QmlProfiler::Internal::QmlProfilerStateWidget</name>
+ <message>
+ <source>Loading data</source>
+ <translation>Nahrávají se data</translation>
+ </message>
+ <message>
+ <source>Profiling application</source>
+ <translation>Profiluje se aplikace</translation>
+ </message>
+ <message>
+ <source>No QML events recorded</source>
+ <translation>Nebyly nahrány žádné události QML</translation>
+ </message>
+ <message>
+ <source>Application stopped before loading all data</source>
+ <translation>Program zastaven před nahráním všech dat</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryAbstractDeployStep</name>
+ <message>
+ <source>Starting: &quot;%1&quot; %2</source>
+ <translation>Spouští se: &quot;%1&quot; %2</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryApplicationRunner</name>
+ <message>
+ <source>Launching application failed</source>
+ <translation>Program se nepodařilo spustit</translation>
+ </message>
+ <message>
+ <source>Cannot show debug output. Error: %1</source>
+ <translation>Nelze ukázat výstup ladění. Chyba: %1</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryCreatePackageStep</name>
+ <message>
+ <source>Create BAR packages</source>
+ <translation>VytvoÅ™it balíÄky BAR</translation>
+ </message>
+ <message>
+ <source>Could not find packager command &apos;%1&apos; in the build environment</source>
+ <translation>Příkazpro balíÄkovaÄ: &apos;%1&apos; se v prostÅ™edí pro sestavování nepodaÅ™ilo nalézt</translation>
+ </message>
+ <message>
+ <source>No packages enabled for deployment</source>
+ <translation>Žádné balíÄky nebyly povoleny pro nasazení</translation>
+ </message>
+ <message>
+ <source>Application descriptor file not specified, please check deployment settings</source>
+ <translation>Soubor s popisem programu nezadán. Prověřte, prosím, nastavení nasazení</translation>
+ </message>
+ <message>
+ <source>No package specified, please check deployment settings</source>
+ <translation>Nezadán žádný balíÄek. Prověřte, prosím, nastavení nasazení</translation>
+ </message>
+ <message>
+ <source>Could not create build directory &apos;%1&apos;</source>
+ <translation>Nepodařilo se vytvořit adresář pro sestavování &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <source>Error preparing application descriptor file</source>
+ <translation>Chyba při přípravě souboru s popisem programu</translation>
+ </message>
+ <message>
+ <source>Could not open &apos;%1&apos; for reading</source>
+ <translation>Soubor &apos;%1&apos; se nepodaÅ™ilo otevřít pro Ätení</translation>
+ </message>
+ <message>
+ <source>Could not create prepared application descriptor file in &apos;%1&apos;</source>
+ <translation>Nepodařilo se vytvořit připravený soubor s popisem programu v &apos;%1&apos;</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryCreatePackageStepConfigWidget</name>
+ <message>
+ <source>&lt;b&gt;Create packages&lt;/b&gt;</source>
+ <translation>&lt;b&gt;VytvoÅ™it balíÄky&lt;/b&gt; </translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryCreatePackageStepFactory</name>
+ <message>
+ <source>Create BAR Packages</source>
+ <translation>VytvoÅ™it balíÄky BAR</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeployConfiguration</name>
+ <message>
+ <source>Deploy to BlackBerry Device</source>
+ <translation>Nasadit na zařízení BlackBerry</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeployConfigurationFactory</name>
+ <message>
+ <source>Deploy to BlackBerry Device</source>
+ <translation>Nasadit na zařízení BlackBerry</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeployInformation</name>
+ <message>
+ <source>Enabled</source>
+ <translation>Povoleno</translation>
+ </message>
+ <message>
+ <source>Application descriptor file</source>
+ <translation>Soubor s popisem programu</translation>
+ </message>
+ <message>
+ <source>Package</source>
+ <translation>BalíÄek</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeployStep</name>
+ <message>
+ <source>Deploy packages</source>
+ <translation>Nasadit balíÄky</translation>
+ </message>
+ <message>
+ <source>Could not find deploy command &apos;%1&apos; in the build environment</source>
+ <translation>Nepodařilo se najít příkaz pro nasazení &apos;%1&apos; v prostředí pro sestavování</translation>
+ </message>
+ <message>
+ <source>No hostname specified for device</source>
+ <translation>Pro zařízení nebyl zadán žádný název hostitele</translation>
+ </message>
+ <message>
+ <source>No packages enabled for deployment</source>
+ <translation>Žádné balíÄky nebyly povoleny pro nasazení</translation>
+ </message>
+ <message>
+ <source>Package &apos;%1&apos; does not exist. Create the package first.</source>
+ <translation>BalíÄek &apos;%1&apos; neexistuje. Nejprve vytvoÅ™te balíÄek.</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeployStepConfigWidget</name>
+ <message>
+ <source>&lt;b&gt;Deploy packages&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Nasadit balíÄky&lt;/b&gt; </translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeployStepFactory</name>
+ <message>
+ <source>Deploy Package</source>
+ <translation>Nasadit balíÄek</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeviceConfiguration</name>
+ <message>
+ <source>BlackBerry</source>
+ <translation>BlackBerry</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeviceConfigurationFactory</name>
+ <message>
+ <source>BlackBerry Device</source>
+ <translation>Zařízení BlackBerry</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeviceConfigurationWizard</name>
+ <message>
+ <source>New BlackBerry Device Configuration Setup</source>
+ <translation>Zřízení nového nastavení zařízení BlackBerry</translation>
+ </message>
+ <message>
+ <source>Failure to Save Key File</source>
+ <translation>Chyba pÅ™i ukládání souboru s klíÄem</translation>
+ </message>
+ <message>
+ <source>Failed to create directory: &apos;%1&apos;.</source>
+ <translation>Adresář &apos;%1&apos; se nepodařilo vytvořit.</translation>
+ </message>
+ <message>
+ <source>Private key file already exists: &apos;%1&apos;</source>
+ <translation>Soubor se soukromým klíÄem &apos;%1&apos; již existuje</translation>
+ </message>
+ <message>
+ <source>Public key file already exists: &apos;%1&apos;</source>
+ <translation>Soubor s veÅ™ejným klíÄem &apos;%1&apos; již existuje</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeviceConfigurationWizardFinalPage</name>
+ <message>
+ <source>Setup Finished</source>
+ <translation>Nastavení dokonÄeno</translation>
+ </message>
+ <message>
+ <source>The new device configuration will now be created.</source>
+ <translation>Nyní bude vytvořeno nové nastavení zařízení.</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryQtVersion</name>
+ <message>
+ <source>BlackBerry %1</source>
+ <comment>Qt Version is meant for BlackBerry</comment>
+ <translation>BlackBerry %1</translation>
+ </message>
+ <message>
+ <source>BlackBerry</source>
+ <translation>BlackBerry</translation>
+ </message>
+ <message>
+ <source>BlackBerry Native SDK:</source>
+ <translation>Nativní SDK pro BlackBerry:</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryRunConfiguration</name>
+ <message>
+ <source>%1 on BlackBerry device</source>
+ <translation>%1 na zařízení BlackBerry</translation>
+ </message>
+ <message>
+ <source>Run on BlackBerry device</source>
+ <translation>Spustit na zařízení BlackBerry</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryRunConfigurationFactory</name>
+ <message>
+ <source>%1 on BlackBerry Device</source>
+ <translation>%1 na zařízení BlackBerry</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryRunControlFactory</name>
+ <message>
+ <source>No active deploy configuration</source>
+ <translation>Není žádné Äinné nastavení nasazovování</translation>
+ </message>
+ <message>
+ <source>Run on BlackBerry Device</source>
+ <translation>Spustit na zařízení BlackBerry</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxAbstractQtVersion</name>
+ <message>
+ <source>No SDK path set</source>
+ <translation>Není nastavena žádná cesta k SDK</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxDebugSupport</name>
+ <message>
+ <source>Preparing remote side...
+</source>
+ <translation>Připravuje se vzdálená strana...
+</translation>
+ </message>
+ <message>
+ <source>The %1 process closed unexpectedly.</source>
+ <translation>Proces %1 byl neoÄekávanÄ› ukonÄen.</translation>
+ </message>
+ <message>
+ <source>Initial setup failed: %1</source>
+ <translation>PoÄáteÄní nastavení se nezdaÅ™ilo: %1</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxDeployConfigurationFactory</name>
+ <message>
+ <source>Deploy to QNX Device</source>
+ <translation>Nasadit na zařízení QNX</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxDeviceConfiguration</name>
+ <message>
+ <source>QNX</source>
+ <translation>QNX</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxDeviceConfigurationFactory</name>
+ <message>
+ <source>QNX Device</source>
+ <translation>Zařízení QNX</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxDeviceConfigurationWizard</name>
+ <message>
+ <source>New QNX Device Configuration Setup</source>
+ <translation>Zřízení nového nastavení zařízení QNX</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxDeviceConfigurationWizardSetupPage</name>
+ <message>
+ <source>QNX Device</source>
+ <translation>Zařízení QNX</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxQtVersion</name>
+ <message>
+ <source>QNX %1</source>
+ <extracomment>Qt Version is meant for QNX</extracomment>
+ <translation>QNX %1</translation>
+ </message>
+ <message>
+ <source>QNX</source>
+ <translation>QNX</translation>
+ </message>
+ <message>
+ <source>QNX Software Development Platform:</source>
+ <translation>Vývojová platforma software pro QNX:</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxRunConfiguration</name>
+ <message>
+ <source>Path to Qt libraries on device:</source>
+ <translation>Cesta ke knihovnám Qt na zařízení:</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxRunConfigurationFactory</name>
+ <message>
+ <source>%1 on QNX Device</source>
+ <translation>%1 na zařízení QNX</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxRunControlFactory</name>
+ <message>
+ <source>Run on remote QNX device</source>
+ <translation>Spustit na vzdáleném zařízení QNX</translation>
+ </message>
+</context>
+<context>
+ <name>Qt4ProjectManager::Internal::QmakeKitConfigWidget</name>
+ <message>
+ <source>The mkspec to use when building the project with qmake.&lt;br&gt;This setting is ignored when using other build systems.</source>
+ <translation>mkspec k použití při sestavování projektu s qmake.&lt;br&gt;Toto nastavení se přehlíží, když se používají jiné sestavovací systémy.</translation>
+ </message>
+ <message>
+ <source>Qt mkspec:</source>
+ <translation>Qt mkspec:</translation>
+ </message>
+</context>
+<context>
+ <name>Qt4ProjectManager::QmakeKitInformation</name>
+ <message>
+ <source>No Qt version set, so mkspec is ignored.</source>
+ <translation>Nenastavena žádná verze Qt, takže se mkspec přehlíží.</translation>
+ </message>
+ <message>
+ <source>Mkspec not found for Qt version.</source>
+ <translation>Pro verzi Qt mkspec nenalezen.</translation>
+ </message>
+ <message>
+ <source>mkspec</source>
+ <translation>mkspec</translation>
+ </message>
+</context>
+<context>
+ <name>Qt4ProjectManager::Qt4TargetSetupWidget</name>
+ <message>
+ <source>Manage...</source>
+ <translation>Spravovat...</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Error:&lt;/b&gt; </source>
+ <comment>Severity is Task::Error</comment>
+ <translation>&lt;b&gt;Chyba:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Warning:&lt;/b&gt; </source>
+ <comment>Severity is Task::Warning</comment>
+ <translation>&lt;b&gt;Varování:&lt;/b&gt; </translation>
+ </message>
+</context>
+<context>
+ <name>Qt4ProjectManager::Internal::ImportWidget</name>
+ <message>
+ <source>Import Build from...</source>
+ <translation>Importovat sestavení z...</translation>
+ </message>
+ <message>
+ <source>Import</source>
+ <translation>Importovat</translation>
+ </message>
+</context>
+<context>
+ <name>QtSupport::Internal::CustomExecutableConfigurationWidget</name>
+ <message>
+ <source>Command:</source>
+ <translation>Příkaz:</translation>
+ </message>
+ <message>
+ <source>Arguments:</source>
+ <translation>Argumenty:</translation>
+ </message>
+ <message>
+ <source>Working directory:</source>
+ <translation>Pracovní adresář:</translation>
+ </message>
+ <message>
+ <source>Run in &amp;terminal</source>
+ <translation>Spustit v &amp;terminálu</translation>
+ </message>
+ <message>
+ <source>Run Environment</source>
+ <translation>Prováděcí prostředí</translation>
+ </message>
+ <message>
+ <source>Base environment for this run configuration:</source>
+ <translation>Základní prostředí pro toto nastavení spuštění:</translation>
+ </message>
+ <message>
+ <source>Clean Environment</source>
+ <translation>Smazat prostředí</translation>
+ </message>
+ <message>
+ <source>System Environment</source>
+ <translation>Prostředí systému</translation>
+ </message>
+ <message>
+ <source>Build Environment</source>
+ <translation>Prostředí pro sestavování</translation>
+ </message>
+</context>
+<context>
+ <name>CustomExecutableDialog</name>
+ <message>
+ <source>Could not find the executable, please specify one.</source>
+ <translation>Nepodařilo se najít spustitelný soubor; nějaký, prosím, zadejte.</translation>
+ </message>
+</context>
+<context>
+ <name>QtSupport::CustomExecutableRunConfiguration</name>
+ <message>
+ <source>No executable.</source>
+ <translation>Žádný spustitelný soubor.</translation>
+ </message>
+ <message>
+ <source>The executable
+%1
+cannot be found in the path.</source>
+ <translation>Spustitelný soubor
+%1
+nelze najít v cestě.</translation>
+ </message>
+ <message>
+ <source>Clean Environment</source>
+ <translation>Smazat prostředí</translation>
+ </message>
+ <message>
+ <source>System Environment</source>
+ <translation>Prostředí systému</translation>
+ </message>
+ <message>
+ <source>Build Environment</source>
+ <translation>Prostředí pro sestavování</translation>
+ </message>
+ <message>
+ <source>Custom Executable</source>
+ <translation>Uživatelsky stanovený spustitelný soubor</translation>
+ </message>
+ <message>
+ <source>Run %1</source>
+ <translation>Spustit %1</translation>
+ </message>
+</context>
+<context>
+ <name>QtSupport::CustomExecutableRunConfigurationFactory</name>
+ <message>
+ <source>Custom Executable</source>
+ <translation>Uživatelsky stanovený spustitelný soubor</translation>
+ </message>
+</context>
+<context>
+ <name>QtSupport::Internal::QtKitConfigWidget</name>
+ <message>
+ <source>The Qt library to use for all projects using this kit.&lt;br&gt;A Qt version is required for qmake-based projects and optional when using other build systems.</source>
+ <translation>Knihovna Qt k použití pro všechny projekty používající tuto sadu.&lt;br&gt;Je požadována verze Qt pro projekty založené na qmake a jako volitelná při použití jiných sestavovacích systémů.</translation>
+ </message>
+ <message>
+ <source>Manage...</source>
+ <translation>Spravovat...</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation>Žádný</translation>
+ </message>
+ <message>
+ <source>Qt version:</source>
+ <translation>Verze Qt:</translation>
+ </message>
+</context>
+<context>
+ <name>QtSupport::QtKitInformation</name>
+ <message>
+ <source>Qt version</source>
+ <translation>Verze Qt</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation>Žádný</translation>
+ </message>
+</context>
+<context>
+ <name>RemoteLinux::Internal::LinuxDevice</name>
+ <message>
+ <source>Generic Linux</source>
+ <translation>Obecný Linux</translation>
+ </message>
+ <message>
+ <source>Test</source>
+ <translation>Zkouška</translation>
+ </message>
+ <message>
+ <source>Deploy Public Key...</source>
+ <translation>Poslat veÅ™ejný klíÄ...</translation>
+ </message>
+</context>
+<context>
+ <name>RemoteLinux::RemoteLinuxCheckForFreeDiskSpaceService</name>
+ <message>
+ <source>Remote process failed to start.</source>
+ <translation>Vzdálený proces se nepodařilo spustit.</translation>
+ </message>
+ <message>
+ <source>Remote process crashed.</source>
+ <translation>Vzdálený proces spadl.</translation>
+ </message>
+ <message>
+ <source>Unexpected output from remote process: &apos;%1&apos;.</source>
+ <translation>NeoÄekávaný výstup ze vzdáleného procesu: &apos;%1&apos;.</translation>
+ </message>
+ <message numerus="yes">
+ <source>The remote file system has only %n megabytes of free space, but %1 megabytes are required.</source>
+ <translation>
+ <numerusform>Vzdálený souborový systém má jen %n megabyt volného prostoru, ale je požadováno %1megabytů.</numerusform>
+ <numerusform>Vzdálený souborový systém má jen %n megabyty volného prostoru, ale je požadováno %1megabytů.</numerusform>
+ <numerusform>Vzdálený souborový systém má jen %n megabytů volného prostoru, ale je požadováno %1megabytů.</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <source>The remote file system has %n megabytes of free space, going ahead.</source>
+ <translation>
+ <numerusform>Vzdálený souborový systém má jen %n megabyt volného prostoru, pokraÄuje se.</numerusform>
+ <numerusform>Vzdálený souborový systém má jen %n megabyty volného prostoru, pokraÄuje se.</numerusform>
+ <numerusform>Vzdálený souborový systém má jen %n megabytů volného prostoru, pokraÄuje se.</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Cannot check for free disk space: &apos;%1&apos; is not an absolute path.</source>
+ <translation>Nelze ověřit volné místo na disku: &apos;%1&apos; není absolutní cesta.</translation>
+ </message>
+</context>
+<context>
+ <name>RemoteLinux::Internal::RemoteLinuxCheckForFreeDiskSpaceStepWidget</name>
+ <message>
+ <source>MB</source>
+ <translation>MiB</translation>
+ </message>
+</context>
+<context>
+ <name>RemoteLinux::RemoteLinuxCheckForFreeDiskSpaceStep</name>
+ <message>
+ <source>Check for free disk space</source>
+ <translation>Ověřit volné místo na disku</translation>
+ </message>
+</context>
+<context>
+ <name>RemoteLinux::LinuxDeviceDebugSupport</name>
+ <message>
+ <source>Checking available ports...
+</source>
+ <translation>Ověřují se dostupné porty...</translation>
+ </message>
+ <message>
+ <source>Debugging failed.</source>
+ <translation>Ladění se nezdařilo.</translation>
+ </message>
+ <message>
+ <source>Initial setup failed: %1</source>
+ <translation>PoÄáteÄní nastavení se nezdaÅ™ilo: %1</translation>
+ </message>
+ <message>
+ <source>Not enough free ports on device for debugging.</source>
+ <translation>Na zařízení není dostatek volných portů pro ladění.</translation>
+ </message>
+</context>
+<context>
+ <name>ResourceEditor::Internal::QrcEditor</name>
+ <message>
+ <source>Add Files</source>
+ <translation>Přidat soubory</translation>
+ </message>
+ <message>
+ <source>Add Prefix</source>
+ <translation>Přidat předponu</translation>
+ </message>
+ <message>
+ <source>Invalid file location</source>
+ <translation>Neplatné umístění souboru</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Kopírovat</translation>
+ </message>
+ <message>
+ <source>Abort</source>
+ <translation>Zrušit</translation>
+ </message>
+ <message>
+ <source>Skip</source>
+ <translation>PÅ™eskoÄit</translation>
+ </message>
+ <message>
+ <source>The file %1 is not in a subdirectory of the resource file. You now have the option to copy this file to a valid location.</source>
+ <translation>Soubor %1 se nenachází v podadresáři souboru s prostředky. Nyní máte možnost zkopírovat tento soubor do platného umístění.</translation>
+ </message>
+ <message>
+ <source>Choose Copy Location</source>
+ <translation>Vyberte umístění cíle pro kopírování</translation>
+ </message>
+ <message>
+ <source>Overwriting Failed</source>
+ <translation>Chyba při přepsání</translation>
+ </message>
+ <message>
+ <source>Could not overwrite file %1.</source>
+ <translation>Soubor %1 se nepodařilo přepsat.</translation>
+ </message>
+ <message>
+ <source>Copying Failed</source>
+ <translation>Kopírování se nezdařilo</translation>
+ </message>
+ <message>
+ <source>Could not copy the file to %1.</source>
+ <translation>Soubor se nepodařilo zkopírovat do %1.</translation>
+ </message>
+</context>
+<context>
+ <name>ResourceFile</name>
+ <message>
+ <source>The file name is empty.</source>
+ <translation>Název souboru je prázdný.</translation>
+ </message>
+ <message>
+ <source>XML error on line %1, col %2: %3</source>
+ <translation>Chyba v XML na řádku %1, sloupec %2: %3</translation>
+ </message>
+ <message>
+ <source>The &lt;RCC&gt; root element is missing.</source>
+ <translation>Kořenový prvek (&lt;RCC&gt;) chybí.</translation>
+ </message>
+ <message>
+ <source>Cannot write file. Disk full?</source>
+ <translation>Soubor se nepodařilo zapsat. Možná že už na pevném disku není místo pro ukládání?</translation>
+ </message>
+</context>
+<context>
+ <name>ResourceEditor::Internal::ResourceView</name>
+ <message>
+ <source>Open File</source>
+ <translation>Otevřít soubor</translation>
+ </message>
+ <message>
+ <source>All files (*)</source>
+ <translation>VÅ¡echny soubory (*)</translation>
</message>
</context>
</TS>
diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts
index 3b059f0118f..8dcc7526074 100644
--- a/share/qtcreator/translations/qtcreator_de.ts
+++ b/share/qtcreator/translations/qtcreator_de.ts
@@ -370,8 +370,8 @@
<translation>Zusätzliche Argumente:</translation>
</message>
<message>
- <source>Kits:</source>
- <translation>Kits:</translation>
+ <source>Targets:</source>
+ <translation>Ziele:</translation>
</message>
<message>
<source>&lt;b&gt;No build configuration found on this kit.&lt;/b&gt;</source>
@@ -1877,6 +1877,14 @@
<translation>Klassenhierarchie öffnen</translation>
</message>
<message>
+ <source>Open Method Declaration/Definition in Next Split</source>
+ <translation>Methodendeklaration beziehungsweise -definition im nächsten geteilten Fenster anzeigen</translation>
+ </message>
+ <message>
+ <source>Ctrl+E, Shift+F2</source>
+ <translation>Ctrl+E, Shift+F2</translation>
+ </message>
+ <message>
<source>Ctrl+Shift+T</source>
<translation>Ctrl+Shift+T</translation>
</message>
@@ -2018,13 +2026,13 @@
<translation>Kurzbeschreibung erstellen</translation>
</message>
<message>
- <source>Add leading asterisks when continuing comments on new lines</source>
- <translation>Asterisk-Zeichen am Zeilenanfang einfügen, wenn ein Kommentar auf einer neuen Zeile fortgesetzt wird</translation>
- </message>
- <message>
<source>Add leading asterisks</source>
<translation>Vorangehenden Asterisk einfügen</translation>
</message>
+ <message>
+ <source>Add leading asterisks when continuing Qt (/*!) and Java (/**) style comments on new lines</source>
+ <translation>Asterisk-Zeichen am Zeilenanfang einfügen, wenn ein Kommentar im Qt-Stil (/*!) oder im Java-Stil (/**) auf einer neuen Zeile fortgesetzt wird</translation>
+ </message>
</context>
<context>
<name>CppTools::Internal::CppCurrentDocumentFilter</name>
@@ -2099,6 +2107,10 @@
<source>Switch Header/Source</source>
<translation>Zwischen Header- und Quelldatei wechseln</translation>
</message>
+ <message>
+ <source>Open Corresponding Header/Source in Next Split</source>
+ <translation>Headerdatei beziehungsweise Quelldatei im nächsten geteilten Fenster anzeigen</translation>
+ </message>
</context>
<context>
<name>Debugger</name>
@@ -3488,12 +3500,16 @@ receives a signal like SIGSEGV during debugging.</source>
<translation>Für diesen Stack-Frame ist Quellcode vorhanden&lt;br&gt;Doppelklicken Sie auf den Dateinamen, um einen Editor zu öffnen.</translation>
</message>
<message>
- <source>Binary debug information is not accessible for this frame. This either means the core was not compiled with debug information, or the debug information is not accessible. Note that most distributions ship debug information in separate packages.</source>
- <translation>Für diesen Stack-Frame ist keine binäre Debuginformation verfügbar. Entweder stammt die Core-Datei von einer ohne Debuginformation erstellten Anwendung oder es kann nicht auf die Debuginformation zugegriffen werden. Beachten Sie, dass manche Distributionen die Debuginformationen in separaten Paketen ausliefern.</translation>
+ <source>Binary debug information is not accessible for this frame. This either means the core was not compiled with debug information, or the debug information is not accessible.</source>
+ <translation>Für diesen Stack-Frame ist keine binäre Debuginformation verfügbar. Entweder stammt die Core-Datei von einer ohne Debuginformation erstellten Anwendung oder es kann nicht auf die Debuginformation zugegriffen werden.</translation>
+ </message>
+ <message>
+ <source>Binary debug information is accessible for this frame. However, matching sources have not been found.</source>
+ <translation>Für diesen Stack-Frame ist binäre Debuginformation verfügbar. Es konnte aber kein passender Quellcode gefunden werden.</translation>
</message>
<message>
- <source>Binary debug information is accessible for this frame. However, matching sources have not been found. Note that some distributions ship debug sources in separate packages.</source>
- <translation>Für diesen Stack-Frame ist binäre Debuginformation verfügbar. Es konnte aber kein passender Quellcode gefunden werden. Beachten Sie, dass manche Distributionen die Debuginformationen in separaten Paketen ausliefern.</translation>
+ <source>Note that most distributions ship debug information in separate packages.</source>
+ <translation>Beachten Sie, dass manche Distributionen die Debuginformationen in separaten Paketen ausliefern.</translation>
</message>
</context>
<context>
@@ -4833,14 +4849,6 @@ Grund: %3</translation>
<source>Clone URL:</source>
<translation>Clone-URL:</translation>
</message>
- <message>
- <source>Delete master branch</source>
- <translation>Master-Branch löschen</translation>
- </message>
- <message>
- <source>Delete the master branch after checking out the repository.</source>
- <translation>Bewirkt, dass der Master-Branch nach Checkout des Repositories gelöscht wird.</translation>
- </message>
</context>
<context>
<name>Git::Internal::BranchDialog</name>
@@ -5586,6 +5594,10 @@ Grund: %3</translation>
<translation>Another submit is currently being executed.</translation>
</message>
<message>
+ <source>Unsupported version of Git found. Git %1 or later required.</source>
+ <translation>Es wurde eine nicht unterstützte Version von Git festgestellt. Es wird Git %1 oder neuer benötigt.</translation>
+ </message>
+ <message>
<source>Amend %1</source>
<translation>Abgabe %1 ändern</translation>
</message>
@@ -9119,6 +9131,14 @@ Wählt eine für Desktop-Entwicklung geeignete Qt-Version aus, sofern sie verfü
<translation>Im Terminal ausführen</translation>
</message>
<message>
+ <source>Run on QVFb</source>
+ <translation>In QVFb ausführen</translation>
+ </message>
+ <message>
+ <source>Check this option to run the application on a Qt Virtual Framebuffer.</source>
+ <translation>Aktivieren Sie diese Einstellung, um die Anwendung in Qts virtuellem Framebuffer auszuführen.</translation>
+ </message>
+ <message>
<source>Base environment for this run configuration:</source>
<translation>Basisumgebung für diese Ausführungskonfiguration:</translation>
</message>
@@ -10458,6 +10478,14 @@ Die folgenden Encodings scheinen der Datei zu entsprechen:</translation>
<translation>Symbol unter Einfügemarke verfolgen</translation>
</message>
<message>
+ <source>Follow Symbol Under Cursor in Next Split</source>
+ <translation>Symbol unter Einfügemarke im nächsten geteilten Fenster verfolgen</translation>
+ </message>
+ <message>
+ <source>Jump to File Under Cursor in Next Split</source>
+ <translation>Gehe zu Datei unter Einfügemarke in nächstem geteilten Fenster</translation>
+ </message>
+ <message>
<source>Jump To File Under Cursor</source>
<translation>Gehe zu Datei unter Einfügemarke</translation>
</message>
@@ -11192,8 +11220,8 @@ Außer Leerzeichen innerhalb von Kommentaren und Zeichenketten.</translation>
<translation>Der Pfad &apos;%1&apos; ist keine Datei.</translation>
</message>
<message>
- <source>The path &lt;b&gt;%1&lt;/b&gt; is not a executable file.</source>
- <translation>Der Pfad &lt;b&gt; %1&lt;/b&gt; ist keine ausführbare Datei.</translation>
+ <source>The path &lt;b&gt;%1&lt;/b&gt; is not an executable file.</source>
+ <translation>Der Pfad &lt;b&gt;%1&lt;/b&gt; ist keine ausführbare Datei.</translation>
</message>
<message>
<source>Full path: &lt;b&gt;%1&lt;/b&gt;</source>
@@ -13158,8 +13186,8 @@ Sie können die Änderungen in einem Stash ablegen oder zurücksetzen.</translat
<translation>Zeitüberschreitung bei Ausführung von &apos;%1&apos; (%2 ms).</translation>
</message>
<message>
- <source>qmake &apos;%1&apos; is not an executable</source>
- <translation>qmake &apos;%1&apos; ist keine ausführbare Datei</translation>
+ <source>qmake &apos;%1&apos; is not an executable.</source>
+ <translation>qmake &apos;%1&apos; ist keine ausführbare Datei.</translation>
</message>
<message>
<source>&apos;%1&apos; crashed.</source>
@@ -14400,18 +14428,6 @@ Verwenden Sie die Eigenschaft importPaths, um Importpfade zu qmlproject-basierte
<translation>Qt5-GUI-Anwendung für BlackBerry</translation>
</message>
<message>
- <source>BlackBerry Qt Quick 2 Application</source>
- <translation>Qt Quick 2-Anwendung für BlackBerry</translation>
- </message>
- <message>
- <source>Creates a Qt Quick application for BlackBerry.</source>
- <translation>Erstellt eine Qt Quick-Anwendung für BlackBerry.</translation>
- </message>
- <message>
- <source>BlackBerry Qt Quick Application</source>
- <translation>Qt Quick-Anwendung für BlackBerry</translation>
- </message>
- <message>
<source>Plain C++ Project</source>
<translation>C++-Projekt</translation>
</message>
@@ -14437,11 +14453,6 @@ Verwenden Sie die Eigenschaft importPaths, um Importpfade zu qmlproject-basierte
<translation>Erstellt eine experimentelle Qt 5-GUI-Anwendung für BlackBerry 10. Sie benötigen einen eigenen Build von Qt 5 für BlackBerry 10, da Qt 5 vom aktuellen BlackBerry 10 NDK nicht bereitgestellt wird und in den DevAlpha-Geräten nicht enthalten ist.</translation>
</message>
<message>
- <source>Creates an experimental Qt Quick 2 application for BlackBerry 10. You need to provide your own build of Qt 5 for BlackBerry 10 since Qt 5 is not provided in the current BlackBerry 10 NDK and is not included in DevAlpha devices.</source>
- <oldsource>Creates an experimental Qt Quick 2 application for BlackBerry 10. You need an own Qt5 build for BlackBerry 10 since Qt5 is not provided in the current BlackBerry 10 NDK and is not included in DevAlpha devices.</oldsource>
- <translation>Erstellt eine experimentelle Qt Quick 2 -Anwendung für BlackBerry 10. Sie benötigen einen eigenen Build von Qt 5 für BlackBerry 10, da Qt 5 vom aktuellen BlackBerry 10 NDK nicht bereitgestellt wird und in den DevAlpha-Geräten nicht enthalten ist.</translation>
- </message>
- <message>
<source>Creates a qmake-based test project for which a code snippet can be entered.</source>
<translation>Erstellt ein qmake-basiertes Testprojekt, für welches ein Code-Ausschnitt angegeben werden kann.</translation>
</message>
@@ -16834,6 +16845,18 @@ Erfordert &lt;b&gt;Qt 5.0&lt;/b&gt; oder neuer.</translation>
<translation>Qt Quick 1-Anwendung (aus existierender QML-Datei)</translation>
</message>
<message>
+ <source>Qt Quick 2 Application (from Existing QML File)</source>
+ <translation>Qt Quick 2-Anwendung (aus existierender QML-Datei)</translation>
+ </message>
+ <message>
+ <source>Creates a deployable Qt Quick application from existing QML files. All files and directories that reside in the same directory as the main .qml file are deployed. You can modify the contents of the directory any time before deploying.
+
+Requires &lt;b&gt;Qt 5.0&lt;/b&gt; or newer.</source>
+ <translation>Erstellt eine Qt Quick-Anwendung aus bereits existierenden QML-Dateien. Alle im Ordner der Haupt-QML-Datei befindlichen Dateien und Ordner sind zum Deployment vorgesehen. Der Inhalt des Ordners kann vor dem Deployment beliebig geändert werden.
+
+Erforder &lt;b&gt;Qt 5.0&lt;/b&gt; oder neuer.</translation>
+ </message>
+ <message>
<source>The Qt Quick Components for MeeGo Harmattan are a set of ready-made components that are designed with specific native appearance for the MeeGo Harmattan platform.
Requires &lt;b&gt;Qt 4.7.4&lt;/b&gt; or newer, and the component set installed for your Qt version.</source>
@@ -19722,6 +19745,10 @@ Fehler: %2</translation>
<translation>Diese Änderung rückgängig machen...</translation>
</message>
<message>
+ <source>Failed to retrieve data.</source>
+ <translation>Es konnten keine Daten erhalten werden.</translation>
+ </message>
+ <message>
<source>Unable to Paste</source>
<translation>Fehlschlag beim Senden an CodePaster</translation>
</message>
@@ -21548,6 +21575,10 @@ Sollen sie überschrieben werden?</translation>
<translation>QML-Puppet konnte nicht gestartet werden</translation>
</message>
<message>
+ <source>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.</source>
+ <translation>Die ausführbare Datei des QML-Puppet-Prozesses (%1) konnte nicht gestartet werden. Bitte überprüfen Sie Ihre Installation. QML Puppet ist ein Prozess, der im Hintergrund die Elemente rendert.</translation>
+ </message>
+ <message>
<source>The executable of the QML Puppet process (&lt;code&gt;%1&lt;/code&gt;) cannot be found. Check your installation. QML Puppet is a process which runs in the background to render the items.</source>
<translation>Die ausführbare Datei des QML-Puppet-Prozesses (&lt;code&gt;%1&lt;/code&gt;) konnte nicht gefunden werden. Bitte überprüfen Sie Ihre Installation. QML Puppet ist ein Prozess, der im Hintergrund die Elemente rendert.</translation>
</message>
@@ -24832,16 +24863,16 @@ Filter: %2
<context>
<name>ProjectExplorer::SettingsAccessor</name>
<message>
- <source>Using Old Project Settings File</source>
- <translation>Projekteinstellungsdatei einer Vorgängerversion verwenden</translation>
- </message>
- <message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;A versioned backup of the .user settings file will be used, because the non-versioned file was created by an incompatible newer version of Qt Creator.&lt;/p&gt;&lt;p&gt;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 &lt;b&gt;not&lt;/b&gt; be propagated to the newer version.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Es wird eine versionierte Sicherungskopie der .user-Datei benutzt, da die aktuelle Datei von einer neuen, inkompatiblen Version von Qt Creator erzeugt wurde.&lt;/p&gt;&lt;p&gt;Änderungen der Projekteinstellungen, die nach der letzten Benutzung dieser Version von Qt Creator für dieses Projekt vorgenommen wurden, werden nicht berücksichtigt, und die jetzt folgenden Änderungen werden &lt;b&gt;nicht&lt;/b&gt; auf die neue Version übertragen.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
- <source>Project Settings File from a different Environment?</source>
- <translation>Projektdatei aus anderer Umgebung?</translation>
+ <source>Using Old Settings File for &apos;%1&apos;</source>
+ <translation>Verwendete alte Einstellungsdatei für &apos;%1&apos;</translation>
+ </message>
+ <message>
+ <source>Settings File for &apos;%1&apos; from a different Environment?</source>
+ <translation>Einstellungsdatei für &apos;%1&apos; aus anderer Umgebung?</translation>
</message>
<message>
<source>Qt Creator has found a .user settings file which was created for another development setup, maybe originating from another machine.
@@ -25989,12 +26020,8 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält.
<translation>Passende Klammern &amp;hervorheben</translation>
</message>
<message>
- <source>Open links in another split</source>
- <translation>Verweise in anderem geteilten Fenster öffnen</translation>
- </message>
- <message>
- <source>Force open links in next split</source>
- <translation>Öffnen von Verweisen in nächstem geteilten Fenster erzwingen</translation>
+ <source>Always open links in another split</source>
+ <translation>Verweise immer in anderem geteilten Fenster öffnen</translation>
</message>
</context>
<context>
@@ -27853,7 +27880,7 @@ Sie müssen für die Plattform kompiliert vorliegen</translation>
<translation>APK wählen</translation>
</message>
<message>
- <source>Clean libs on device</source>
+ <source>Clean Libs on Device</source>
<translation>Bibliotheken auf Gerät bereinigen</translation>
</message>
</context>
@@ -28055,6 +28082,10 @@ Sie müssen für die Plattform kompiliert vorliegen</translation>
<source>Remove</source>
<translation>Entfernen</translation>
</message>
+ <message>
+ <source>Automatically create kits for Android tool chains</source>
+ <translation>Kits für Android-Toolchains automatisch erstellen</translation>
+ </message>
</context>
<context>
<name>Core::RemoveFileDialog</name>
@@ -28182,6 +28213,70 @@ Sie müssen für die Plattform kompiliert vorliegen</translation>
<source>Device &amp;password:</source>
<translation>Geräte&amp;passwort:</translation>
</message>
+ <message>
+ <source>Request</source>
+ <translation>Anforderung</translation>
+ </message>
+ <message>
+ <source>Upload</source>
+ <translation>Hochladen</translation>
+ </message>
+ <message>
+ <source>Failed to upload debug token: </source>
+ <translation>Fehlschlag beim Hochladen des Debug-Tokens: </translation>
+ </message>
+ <message>
+ <source>Qt Creator</source>
+ <translation>Qt Creator</translation>
+ </message>
+ <message>
+ <source>Debug token successfully uploaded.</source>
+ <translation>Das Debug-Token wurde erfolgreich hochgeladen.</translation>
+ </message>
+ <message>
+ <source>No route to host.</source>
+ <translation>Keine Route zum Host.</translation>
+ </message>
+ <message>
+ <source>Authentication failed.</source>
+ <translation>Die Authentifizierung schlug fehl.</translation>
+ </message>
+ <message>
+ <source>Development mode is disabled on the device.</source>
+ <translation>Der Entwicklungsmodus ist auf dem Gerät deaktiviert.</translation>
+ </message>
+ <message>
+ <source>Failed to start inferior process.</source>
+ <translation>Der zu debuggende Prozess konnte nicht gestartet werden.</translation>
+ </message>
+ <message>
+ <source>Inferior processes timed out.</source>
+ <translation>Zeitüberschreitung des zu debuggenden Prozesses.</translation>
+ </message>
+ <message>
+ <source>Inferior process has crashed.</source>
+ <translation>Der zu debuggende Prozess ist abgestürzt.</translation>
+ </message>
+ <message>
+ <source>Failed to communicate with the inferior process.</source>
+ <translation>Fehlschlag bei der Kommunikation mit dem zu debuggenden Prozess.</translation>
+ </message>
+ <message>
+ <source>An unknwon error has happened.</source>
+ <translation>Es trat ein unbekannter Fehler auf.</translation>
+ </message>
+ <message>
+ <source>Error</source>
+ <translation>Fehler</translation>
+ </message>
+ <message>
+ <source>Operation in Progress</source>
+ <translation>Operation läuft</translation>
+ </message>
+ <message>
+ <source>Uploading debug token</source>
+ <translation>Lade Debug-Token hoch</translation>
+ </message>
</context>
<context>
<name>Qnx::Internal::BlackBerryDeviceConfigurationWizardSetupPage</name>
@@ -28225,6 +28320,10 @@ Sie müssen für die Plattform kompiliert vorliegen</translation>
<source>BlackBerry Device</source>
<translation>BlackBerry-Gerät</translation>
</message>
+ <message>
+ <source>Request</source>
+ <translation>Anforderung</translation>
+ </message>
</context>
<context>
<name>Qnx::Internal::BlackBerryDeviceConfigurationWizardSshKeyPage</name>
@@ -28585,6 +28684,10 @@ Please install an SDK of at least API version %1.</source>
<translation>Es konnte kein AVD erzeugt werden, da kein hinreichend aktuelles Android-SDK verfügbar ist.
Bitte installieren Sie ein Android-SDK der API-Version %1 oder neuer.</translation>
</message>
+ <message>
+ <source>Android for %1 (GCC %2, Qt %3)</source>
+ <translation>Android für %1 (GCC %2, Qt %3)</translation>
+ </message>
</context>
<context>
<name>Android</name>
@@ -28650,8 +28753,8 @@ Bitte installieren Sie ein Android-SDK der API-Version %1 oder neuer.</translati
<translation>Es kann kein Deployment durchgeführt werden: Es wurden keine Geräte oder Emulatoren für das Paket gefunden.</translation>
</message>
<message>
- <source>No android toolchain selected</source>
- <translation>Es ist keine Android-Toolchain ausgewählt</translation>
+ <source>No Android toolchain selected.</source>
+ <translation>Es ist keine Android-Toolchain ausgewählt.</translation>
</message>
<message>
<source>Could not run adb. No device found.</source>
@@ -28998,9 +29101,24 @@ Bitte wählen Sie einen gültigen Paketnamen für Ihre Anwendung (z.B. &quot;org
<source>&quot;%1&quot; does not seem to be an Android NDK top folder.</source>
<translation>&quot;%1&quot; ist offenbar kein Android-NDK-Ordner.</translation>
</message>
+ <message numerus="yes">
+ <source>Found %n toolchains for this NDK.</source>
+ <translation>
+ <numerusform>Es wurde eine Toolchain für dieses NDK gefunden.</numerusform>
+ <numerusform>Es wurden %n Toolchains für dieses NDK gefunden.</numerusform>
+ </translation>
+ </message>
<message>
- <source>Android NDK Folder</source>
- <translation>Android-NDK-Ordner</translation>
+ <source>Qt version for architecture %1 is missing.
+ To add the Qt version, select Options &gt; Build &amp; Run &gt; Qt Versions.</source>
+ <translation>Für die Architektur %1 fehlt die Qt-Version.
+ Wählen Sie Einstellungen &gt; Erstellung und Ausführung &gt; Qt Versionen, um die Qt-Version hinzuzufügen.</translation>
+ </message>
+ <message>
+ <source>Qt versions for architectures %1 are missing.
+ To add the Qt versions, select Options &gt; Build &amp; Run &gt; Qt Versions.</source>
+ <translation>Für die Architekturen %1 fehlen die Qt-Versionen.
+ Wählen Sie Einstellungen &gt; Erstellung und Ausführung &gt; Qt Versionen, um Qt-Versionen hinzuzufügen.</translation>
</message>
<message>
<source>Select Android SDK folder</source>
@@ -32016,10 +32134,6 @@ Fehlerausgabe: %1</translation>
<context>
<name>Debugger::Internal::DebuggerKitConfigWidget</name>
<message>
- <source>Manage...</source>
- <translation>Verwalten...</translation>
- </message>
- <message>
<source>The debugger to use for this kit.</source>
<translation>Der für dieses Kit zu verwendende Debugger.</translation>
</message>
@@ -32420,14 +32534,6 @@ Fehlerausgabe: %1</translation>
<translation>Warnung</translation>
</message>
<message>
- <source>Ignore this warning and open the file</source>
- <translation>Warnung ignorieren und Datei öffnen</translation>
- </message>
- <message>
- <source>Ignore</source>
- <translation>Ignorieren</translation>
- </message>
- <message>
<source>This QML file contains features which are not supported by Qt Quick Designer</source>
<translation>Diese QML-Datei enthält Features, die von Qt Quick Designer nicht unterstützt werden.</translation>
</message>
@@ -32435,10 +32541,6 @@ Fehlerausgabe: %1</translation>
<source>Warn about unsupported features</source>
<translation>Zeige eine Warnung bei nicht unterstützten Features an</translation>
</message>
- <message>
- <source>OK</source>
- <translation>OK</translation>
- </message>
</context>
<context>
<name>texteditv2</name>
@@ -33783,280 +33885,282 @@ Jetzt Commit durchführen?</translation>
<context>
<name>QmlJS::StaticAnalysisMessages</name>
<message>
- <source>do not use &apos;%1&apos; as a constructor</source>
- <translation>&apos;%1&apos; darf nicht als Konstruktor verwendet werden</translation>
+ <source>Do not use &apos;%1&apos; as a constructor.</source>
+ <translation>&apos;%1&apos; darf nicht als Konstruktor verwendet werden.</translation>
</message>
<message>
- <source>invalid value for enum</source>
- <translation>Unbekannter Wert für Aufzählung</translation>
+ <source>Invalid value for enum.</source>
+ <translation>Unbekannter Wert für Aufzählung.</translation>
</message>
<message>
- <source>enum value must be a string or a number</source>
- <translation>Wert der Aufzählung ist weder Zeichenkette noch Zahl</translation>
+ <source>Enum value must be a string or a number.</source>
+ <translation>Wert der Aufzählung ist weder Zeichenkette noch Zahl.</translation>
</message>
<message>
- <source>number value expected</source>
- <translation>numerischer Wert erwartet</translation>
+ <source>Number value expected.</source>
+ <translation>Numerischer Wert erwartet.</translation>
</message>
<message>
- <source>boolean value expected</source>
- <translation>boolescher Wert erwartet</translation>
+ <source>Boolean value expected.</source>
+ <translation>Boolescher Wert erwartet.</translation>
</message>
<message>
- <source>string value expected</source>
- <translation>Zeichenkette erwartet</translation>
+ <source>String value expected.</source>
+ <translation>Zeichenkette erwartet.</translation>
</message>
<message>
- <source>invalid URL</source>
- <translation>ungültige URL</translation>
+ <source>Invalid URL.</source>
+ <translation>Ungültige URL.</translation>
</message>
<message>
- <source>file or directory does not exist</source>
- <translation>Datei oder Ordner existiert nicht</translation>
+ <source>File or directory does not exist.</source>
+ <translation>Datei oder Ordner existiert nicht.</translation>
</message>
<message>
- <source>invalid color</source>
- <translation>ungültige Farbe</translation>
+ <source>Invalid color.</source>
+ <translation>Ungültige Farbe.</translation>
</message>
<message>
- <source>anchor line expected</source>
- <translation>Ankerzeile erwartet</translation>
+ <source>Anchor line expected.</source>
+ <translation>Ankerzeile erwartet.</translation>
</message>
<message>
- <source>duplicate property binding</source>
- <translation>mehrfache Bindung der Eigenschaft</translation>
+ <source>Duplicate property binding.</source>
+ <translation>Mehrfache Bindung der Eigenschaft.</translation>
</message>
<message>
- <source>id expected</source>
- <translation>id erwartet</translation>
+ <source>Id expected.</source>
+ <translation>ID erwartet.</translation>
</message>
<message>
- <source>invalid id</source>
- <translation>ungültige id</translation>
+ <source>Invalid id.</source>
+ <translation>Ungültige ID.</translation>
</message>
<message>
- <source>duplicate id</source>
- <translation>mehrfach vorhandene id</translation>
+ <source>Duplicate id.</source>
+ <translation>mehrfach vorhandene ID.</translation>
</message>
<message>
- <source>invalid property name &apos;%1&apos;</source>
- <translation>&apos;%1&apos; ist kein gültiger Name einer Eigenschaft</translation>
+ <source>Invalid property name &apos;%1&apos;.</source>
+ <translation>&apos;%1&apos; ist kein gültiger Name einer Eigenschaft.</translation>
</message>
<message>
- <source>&apos;%1&apos; does not have members</source>
- <translation>&apos;%1&apos; hat keine Member</translation>
+ <source>&apos;%1&apos; does not have members.</source>
+ <translation>&apos;%1&apos; hat keine Member.</translation>
</message>
<message>
- <source>&apos;%1&apos; is not a member of &apos;%2&apos;</source>
- <translation>&apos;%1&apos; gehört nicht zu &apos;%2&apos;</translation>
+ <source>&apos;%1&apos; is not a member of &apos;%2&apos;.</source>
+ <translation>&apos;%1&apos; gehört nicht zu &apos;%2&apos;.</translation>
</message>
<message>
- <source>assignment in condition</source>
- <translation>Zuweisung in Bedingung</translation>
+ <source>Assignment in condition.</source>
+ <translation>Zuweisung in Bedingung.</translation>
</message>
<message>
- <source>unterminated non-empty case block</source>
- <translation>case nicht abgeschlossen und nicht leer</translation>
+ <source>Unterminated non-empty case block.</source>
+ <translation>case-Block nicht abgeschlossen und nicht leer.</translation>
</message>
<message>
- <source>do not use &apos;eval&apos;</source>
- <translation>von der Verwendung von &apos;eval&apos; wird abgeraten</translation>
+ <source>Do not use &apos;eval&apos;.</source>
+ <translation>von der Verwendung von &apos;eval&apos; wird abgeraten.</translation>
</message>
<message>
- <source>unreachable</source>
- <translation>nicht erreichbar</translation>
+ <source>Unreachable.</source>
+ <translation>Nicht erreichbar.</translation>
</message>
<message>
- <source>do not use &apos;with&apos;</source>
- <translation>von der Verwendung von &apos;with&apos; wird abgeraten</translation>
+ <source>Do not use &apos;with&apos;.</source>
+ <translation>Von der Verwendung von &apos;with&apos; wird abgeraten.</translation>
</message>
<message>
- <source>do not use comma expressions</source>
- <translation>von der Verwendung von Komma-Ausdrücken wird abgeraten</translation>
+ <source>Do not use comma expressions.</source>
+ <translation>Von der Verwendung von Komma-Ausdrücken wird abgeraten.</translation>
</message>
<message>
- <source>unnecessary message suppression</source>
- <translation>unnötige Unterdrückung einer Nachricht</translation>
+ <source>&apos;%1&apos; already is a formal parameter.</source>
+ <translation>&apos;%1&apos; ist bereits ein formaler Parameter.</translation>
</message>
<message>
- <source>var &apos;%1&apos; is used before its declaration</source>
- <translation>Variable &apos;%1&apos; wird vor Deklaration benutzt</translation>
+ <source>Unnecessary message suppression.</source>
+ <translation>Unnötige Unterdrückung einer Nachricht.</translation>
</message>
<message>
- <source>&apos;%1&apos; already is a formal parameter</source>
- <translation>&apos;%1&apos; ist bereits ein formaler Parameter</translation>
+ <source>&apos;%1&apos; already is a function.</source>
+ <translation>&apos;%1&apos; ist bereits als Funktion definiert.</translation>
</message>
<message>
- <source>&apos;%1&apos; already is a function</source>
- <translation>&apos;%1&apos; ist bereits als Funktion definiert</translation>
+ <source>var &apos;%1&apos; is used before its declaration.</source>
+ <translation>Variable &apos;%1&apos; wird vor Deklaration benutzt.</translation>
</message>
<message>
- <source>&apos;%1&apos; already is a var</source>
- <translation>&apos;%1&apos; ist bereits als Variable definiert</translation>
+ <source>&apos;%1&apos; already is a var.</source>
+ <translation>&apos;%1&apos; ist bereits als Variable definiert.</translation>
</message>
<message>
- <source>&apos;%1&apos; is declared more than once</source>
- <translation>&apos;%1&apos; mehrfach deklariert</translation>
+ <source>&apos;%1&apos; is declared more than once.</source>
+ <translation>&apos;%1&apos; mehrfach deklariert.</translation>
</message>
<message>
- <source>function &apos;%1&apos; is used before its declaration</source>
- <translation>Funktion &apos;%1&apos; wird vor Deklaration benutzt</translation>
+ <source>Function &apos;%1&apos; is used before its declaration.</source>
+ <translation>Funktion &apos;%1&apos; wird vor Deklaration benutzt.
+</translation>
</message>
<message>
- <source>the &apos;function&apos; keyword and the opening parenthesis should be separated by a single space</source>
- <translation>Das Schlüsselwort &apos;function&apos; und die öffnende Klammer sollten durch ein Leerzeichen getrennt werden</translation>
+ <source>The &apos;function&apos; keyword and the opening parenthesis should be separated by a single space.</source>
+ <translation>Das Schlüsselwort &apos;function&apos; und die öffnende Klammer sollten durch ein Leerzeichen getrennt werden.</translation>
</message>
<message>
- <source>do not use stand-alone blocks</source>
- <translation>eigenständige Blöcke sollten nicht verwendet werden</translation>
+ <source>Do not use stand-alone blocks.</source>
+ <translation>Eigenständige Blöcke sollten nicht verwendet werden.</translation>
</message>
<message>
- <source>do not use void expressions</source>
- <translation>von der Verwendung von void-Ausdrücken wird abgeraten</translation>
+ <source>Do not use void expressions.</source>
+ <translation>Von der Verwendung von void-Ausdrücken wird abgeraten.</translation>
</message>
<message>
- <source>confusing pluses</source>
- <translation>Pluszeichen an dieser Stelle sind verwirrend</translation>
+ <source>Confusing pluses.</source>
+ <translation>Pluszeichen an dieser Stelle sind verwirrend.</translation>
</message>
<message>
- <source>confusing minuses</source>
- <translation>Minuszeichen an dieser Stelle sind verwirrend</translation>
+ <source>Confusing minuses.</source>
+ <translation>Minuszeichen an dieser Stelle sind verwirrend.</translation>
</message>
<message>
- <source>declare all function vars on a single line</source>
- <translation>Funktionsvariablen sollten auf einer einzigen Zeile deklariert werden</translation>
+ <source>Declare all function vars on a single line.</source>
+ <translation>Funktionsvariablen sollten auf einer einzigen Zeile deklariert werden.</translation>
</message>
<message>
- <source>unnecessary parentheses</source>
- <translation>unnötige Klammern</translation>
+ <source>Unnecessary parentheses.</source>
+ <translation>Unnötige Klammern.</translation>
</message>
<message>
- <source>== and != may perform type coercion, use === or !== to avoid</source>
- <translation>== und != können unbeabsichtigte Typumwandlungen verursachen, === oder !== sollten stattdessen verwendet werden</translation>
+ <source>== and != may perform type coercion, use === or !== to avoid it.</source>
+ <translation>== und != können unbeabsichtigte Typumwandlungen verursachen, === oder !== sollten stattdessen verwendet werden.</translation>
</message>
<message>
- <source>expression statements should be assignments, calls or delete expressions only</source>
- <translation>Anweisungen mit Ausdrücken sollten Zuweisungen, Funktionsaufrufe oder delete-Ausdrücke sein</translation>
+ <source>Expression statements should be assignments, calls or delete expressions only.</source>
+ <translation>Anweisungen mit Ausdrücken sollten Zuweisungen, Funktionsaufrufe oder delete-Ausdrücke sein.</translation>
</message>
<message>
- <source>var declarations should be at the start of a function</source>
- <translation>var-Deklarationen sollten am Beginn einer Funktion stehen</translation>
+ <source>Place var declarations at the start of a function.</source>
+ <translation>var-Deklarationen sollten am Beginn einer Funktion stehen.</translation>
</message>
<message>
- <source>only use one statement per line</source>
- <translation>eine Zeile sollte nur eine Anweisung enthalten</translation>
+ <source>Use only one statement per line.</source>
+ <translation>Eine Zeile sollte nur eine Anweisung enthalten.</translation>
</message>
<message>
- <source>unknown component</source>
- <translation>unbekannte Komponente</translation>
+ <source>Unknown component.</source>
+ <translation>Unbekannte Komponente.</translation>
</message>
<message>
- <source>could not resolve the prototype &apos;%1&apos; of &apos;%2&apos;</source>
- <translation>Prototyp &apos;%1&apos; von &apos;%2&apos; konnte nicht aufgelöst werden</translation>
+ <source>Could not resolve the prototype &apos;%1&apos; of &apos;%2&apos;.</source>
+ <translation>Prototyp &apos;%1&apos; von &apos;%2&apos; konnte nicht aufgelöst werden.</translation>
</message>
<message>
- <source>could not resolve the prototype &apos;%1&apos;</source>
- <translation>Prototyp &apos;%1&apos; konnte nicht aufgelöst werden</translation>
+ <source>Could not resolve the prototype &apos;%1&apos;.</source>
+ <translation>Prototyp &apos;%1&apos; konnte nicht aufgelöst werden.</translation>
</message>
<message>
- <source>prototype cycle, the last non-repeated component is &apos;%1&apos;</source>
- <translation>Prototyp-Schleife, letztes nicht wiederholt auftretendes Objekt ist &apos;%1&apos;</translation>
+ <source>Prototype cycle, the last non-repeated component is &apos;%1&apos;.</source>
+ <translation>Prototyp-Schleife, letztes nicht wiederholt auftretendes Objekt ist &apos;%1&apos;.</translation>
</message>
<message>
- <source>invalid property type &apos;%1&apos;</source>
- <translation>&apos;%1&apos; ist kein gültiger Eigenschaftstyp</translation>
+ <source>Invalid property type &apos;%1&apos;.</source>
+ <translation>&apos;%1&apos; ist kein gültiger Eigenschaftstyp.</translation>
</message>
<message>
- <source>== and != perform type coercion, use === or !== to avoid</source>
- <translation>== und != verursachen unbeabsichtigte Typumwandlungen, === oder !== sollten stattdessen verwendet werden</translation>
+ <source>== and != perform type coercion, use === or !== to avoid it.</source>
+ <translation>== und != verursachen unbeabsichtigte Typumwandlungen, === oder !== sollten stattdessen verwendet werden.</translation>
</message>
<message>
- <source>calls of functions that start with an uppercase letter should use &apos;new&apos;</source>
- <translation>Funktionen, die mit einem Großbuchstaben beginnen, sollten mit &apos;new&apos; aufgerufen werden</translation>
+ <source>Calls of functions that start with an uppercase letter should use &apos;new&apos;.</source>
+ <translation>Funktionen, die mit einem Großbuchstaben beginnen, sollten mit &apos;new&apos; aufgerufen werden.</translation>
</message>
<message>
- <source>&apos;new&apos; should only be used with functions that start with an uppercase letter</source>
- <translation>&apos;new&apos; sollte nur mit Funktionen verwendet werden, die mit einem Großbuchstaben beginnen</translation>
+ <source>Use &apos;new&apos; only with functions that start with an uppercase letter.</source>
+ <translation>&apos;new&apos; sollte nur mit Funktionen verwendet werden, die mit einem Großbuchstaben beginnen.</translation>
</message>
<message>
- <source>use spaces around binary operators</source>
- <translation>binäre Operatoren sollten von Leerzeichen umgeben sein</translation>
+ <source>Use spaces around binary operators.</source>
+ <translation>Binäre Operatoren sollten von Leerzeichen umgeben sein.</translation>
</message>
<message>
- <source>unintentional empty block, use ({}) for empty object literal</source>
- <translation>unbeabsichtigter leerer Block, verwenden Sie ({}) als leeres Objekt-Literal</translation>
+ <source>Unintentional empty block, use ({}) for empty object literal.</source>
+ <translation>Unbeabsichtigter leerer Block, verwenden Sie ({}) als leeres Objekt-Literal.</translation>
</message>
<message>
- <source>use %1 instead of &apos;var&apos; or &apos;variant&apos; to improve performance</source>
- <translation>Zur Steigerung der Ausführungsgeschwindigkeit sollte %1 an Stelle von &apos;var&apos; oder &apos;variant&apos; verwendet werden</translation>
+ <source>Use %1 instead of &apos;var&apos; or &apos;variant&apos; to improve performance.</source>
+ <translation>Zur Steigerung der Ausführungsgeschwindigkeit sollte %1 an Stelle von &apos;var&apos; oder &apos;variant&apos; verwendet werden.</translation>
</message>
<message>
- <source>missing property &apos;%1&apos;</source>
- <translation>fehlende Eigenschaft &apos;%1&apos;</translation>
+ <source>Missing property &apos;%1&apos;.</source>
+ <translation>Fehlende Eigenschaft &apos;%1&apos;.</translation>
</message>
<message>
- <source>object value expected</source>
- <translation>Objektwert erwartet</translation>
+ <source>Object value expected.</source>
+ <translation>Objektwert erwartet.</translation>
</message>
<message>
- <source>array value expected</source>
- <translation>Feld erwartet</translation>
+ <source>Array value expected.</source>
+ <translation>Feld erwartet.</translation>
</message>
<message>
- <source>%1 value expected</source>
- <translation>%1-Wert erwartet</translation>
+ <source>%1 value expected.</source>
+ <translation>%1-Wert erwartet.</translation>
</message>
<message>
- <source>maximum number value is %1</source>
- <translation>Maximalwert ist %1 </translation>
+ <source>Maximum number value is %1.</source>
+ <translation>Maximalwert ist %1.</translation>
</message>
<message>
- <source>minimum number value is %1</source>
- <translation>Minimalwert ist %1</translation>
+ <source>Minimum number value is %1.</source>
+ <translation>Minimalwert ist %1.
+</translation>
</message>
<message>
- <source>maximum number value is exclusive</source>
- <translation>Maximalwert ist ausgeschlossen</translation>
+ <source>Maximum number value is exclusive.</source>
+ <translation>Maximalwert ist ausgeschlossen.</translation>
</message>
<message>
- <source>minimum number value is exclusive</source>
- <translation>Minimalwert ist ausgeschlossen</translation>
+ <source>Minimum number value is exclusive.</source>
+ <translation>Minimalwert ist ausgeschlossen.</translation>
</message>
<message>
- <source>string value does not match required pattern</source>
- <translation>Der Wert der Zeichenkette entspricht nicht dem Muster</translation>
+ <source>String value does not match required pattern.</source>
+ <translation>Der Wert der Zeichenkette entspricht nicht dem Muster.</translation>
</message>
<message>
- <source>minimum string value length is %1</source>
- <translation>Die Zeichenkette muss mindestens %1 Zeichen enthalten</translation>
+ <source>Minimum string value length is %1.</source>
+ <translation>Die Zeichenkette muss mindestens %1 Zeichen enthalten.</translation>
</message>
<message>
- <source>maximum string value length is %1</source>
- <translation>Die Zeichenkette darf maximal %1 Zeichen enthalten</translation>
+ <source>Maximum string value length is %1.</source>
+ <translation>Die Zeichenkette darf maximal %1 Zeichen enthalten.</translation>
</message>
<message>
- <source>%1 elements expected in array value</source>
- <translation>Das Feld benötigt %1 Werte</translation>
+ <source>%1 elements expected in array value.</source>
+ <translation>Das Feld benötigt %1 Werte.</translation>
</message>
<message>
- <source>Imperative code is not supported in the Qt Quick Designer</source>
- <translation>Imperativer Code wird von Qt Quick Designer nicht unterstützt</translation>
+ <source>Imperative code is not supported in the Qt Quick Designer.</source>
+ <translation>Imperativer Code wird von Qt Quick Designer nicht unterstützt.</translation>
</message>
<message>
- <source>This type is not supported in the Qt Quick Designer</source>
- <translation>Dieser Typ wird von Qt Quick Designer nicht unterstützt</translation>
+ <source>This type is not supported in the Qt Quick Designer.</source>
+ <translation>Dieser Typ wird von Qt Quick Designer nicht unterstützt.</translation>
</message>
<message>
- <source>Reference to parent item cannot be resolved correctly by the Qt Quick Designer</source>
- <translation>Der Verweis auf das Elternelement kann von Qt Quick Designer nicht korrekt aufgelöst werden</translation>
+ <source>Reference to parent item cannot be resolved correctly by the Qt Quick Designer.</source>
+ <translation>Der Verweis auf das Elternelement kann von Qt Quick Designer nicht korrekt aufgelöst werden.</translation>
</message>
<message>
- <source>This visual property binding cannot be evaluated in the local context and might not show up in Qt Quick Designer as expected</source>
- <translation>Dieses sichtbare Property-Binding kann nicht im lokalen Kontext ausgewertet werden und wird daher in Qt Quick Designer möglicherweise nicht wie erwartet angezeigt</translation>
+ <source>This visual property binding cannot be evaluated in the local context and might not show up in Qt Quick Designer as expected.</source>
+ <translation>Dieses sichtbare Property-Binding kann nicht im lokalen Kontext ausgewertet werden und wird daher in Qt Quick Designer möglicherweise nicht wie erwartet angezeigt.</translation>
</message>
<message>
- <source>Qt Quick Designer only supports states in the root item </source>
- <translation>Qt Quick Designer unterstützt nur States im Wurzelelement </translation>
+ <source>Qt Quick Designer only supports states in the root item.</source>
+ <translation>Qt Quick Designer unterstützt nur States im Wurzelelement.</translation>
</message>
</context>
<context>
@@ -34159,8 +34263,8 @@ Jetzt Commit durchführen?</translation>
<context>
<name>QbsProjectManager::Internal::QbsBuildStep</name>
<message>
- <source>qbs build</source>
- <translation>qbs-Build</translation>
+ <source>Qbs build</source>
+ <translation>Qbs-Build</translation>
</message>
</context>
<context>
@@ -34173,8 +34277,8 @@ Jetzt Commit durchführen?</translation>
<context>
<name>QbsProjectManager::Internal::QbsCleanStep</name>
<message>
- <source>qbs clean</source>
- <translation>qbs clean</translation>
+ <source>Qbs clean</source>
+ <translation>Qbs clean</translation>
</message>
</context>
<context>
@@ -34497,8 +34601,8 @@ Jetzt Commit durchführen?</translation>
<context>
<name>Android::Internal::AndroidGdbServerKitInformation</name>
<message>
- <source>GDBserver</source>
- <translation>GDBserver</translation>
+ <source>GDB server</source>
+ <translation>GDB Server</translation>
</message>
</context>
<context>
@@ -34516,20 +34620,20 @@ Jetzt Commit durchführen?</translation>
<translation>Bearbeiten...</translation>
</message>
<message>
- <source>Android GDBserver</source>
- <translation>Android-GDBserver</translation>
+ <source>Android GDB server</source>
+ <translation>Android-GDB Server</translation>
</message>
<message>
- <source>The GDBserver to use for this kit.</source>
- <translation>Der für dieses Kit zu verwendende GDBserver.</translation>
+ <source>The GDB server to use for this kit.</source>
+ <translation>Der für dieses Kit zu verwendende GDB-Server.</translation>
</message>
<message>
- <source>&amp;Binary:</source>
- <translation>&amp;Ausführbare Datei:</translation>
+ <source>GDB Server for &quot;%1&quot;</source>
+ <translation>GDB-Server für &quot;%1&quot;</translation>
</message>
<message>
- <source>GDBserver for &quot;%1&quot;</source>
- <translation>GDBserver für &quot;%1&quot;</translation>
+ <source>&amp;Binary:</source>
+ <translation>&amp;Ausführbare Datei:</translation>
</message>
</context>
<context>
@@ -34547,4 +34651,482 @@ Jetzt Commit durchführen?</translation>
<translation>Diese .qml-Datei enthält Features, die von Qt Quick Designer nicht unterstützt werden</translation>
</message>
</context>
+<context>
+ <name>Qnx::Internal::BlackBerryCreateCertificateDialog</name>
+ <message>
+ <source>Path:</source>
+ <translation>Pfad:</translation>
+ </message>
+ <message>
+ <source>Author:</source>
+ <translation>Autor:</translation>
+ </message>
+ <message>
+ <source>Password:</source>
+ <translation>Passwort:</translation>
+ </message>
+ <message>
+ <source>Confirm password:</source>
+ <translation>Passwort bestätigen:</translation>
+ </message>
+ <message>
+ <source>Show password</source>
+ <translation>Passwort anzeigen</translation>
+ </message>
+ <message>
+ <source>Status</source>
+ <translation>Status</translation>
+ </message>
+ <message>
+ <source>PKCS 12 archives (*.p12)</source>
+ <translation>PKCS 12-Archive (*.p12)</translation>
+ </message>
+ <message>
+ <source>Base directory does not exist.</source>
+ <translation>Basisverzeichnis existiert nicht.</translation>
+ </message>
+ <message>
+ <source>The entered passwords do not match.</source>
+ <translation>Die eingegebenen Passwörter stimmen nicht überein.</translation>
+ </message>
+ <message>
+ <source>Are you sure?</source>
+ <translation>Sind Sie sicher?</translation>
+ </message>
+ <message>
+ <source>The file &apos;%1&apos; will be overwritten. Do you want to proceed?</source>
+ <translation>Die Datei &apos;%1&apos; wird überschrieben. Möchten Sie fortsetzen?</translation>
+ </message>
+ <message>
+ <source>Error</source>
+ <translation>Fehler</translation>
+ </message>
+ <message>
+ <source>An unknown error occurred while creating the certificate.</source>
+ <translation>Beim Erstellen des Zertifikats trat ein unbekannter Fehler auf.</translation>
+ </message>
+ <message>
+ <source>Please be patient...</source>
+ <translation>Bitte haben Sie einen Moment Geduld...</translation>
+ </message>
+ <message>
+ <source>Create Certificate</source>
+ <translation>Zertifikat erstellen</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryImportCertificateDialog</name>
+ <message>
+ <source>Path:</source>
+ <translation>Pfad:</translation>
+ </message>
+ <message>
+ <source>Password:</source>
+ <translation>Passwort:</translation>
+ </message>
+ <message>
+ <source>Import Certificate</source>
+ <translation>Zertifikat importieren</translation>
+ </message>
+ <message>
+ <source>PKCS 12 Archives (*.p12)</source>
+ <translation>PKCS 12-Archive (*.p12)</translation>
+ </message>
+ <message>
+ <source>Error</source>
+ <translation>Fehler</translation>
+ </message>
+ <message>
+ <source>The keystore password is invalid.</source>
+ <translation>Ungültiges Keystore-Passwort.</translation>
+ </message>
+ <message>
+ <source>An unknown error has occurred.</source>
+ <translation>Es trat ein unbekannter Fehler auf.</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryKeysWidget</name>
+ <message>
+ <source>Form</source>
+ <translation>Form</translation>
+ </message>
+ <message>
+ <source>Registered: Yes</source>
+ <translation>Registriert: Ja</translation>
+ </message>
+ <message>
+ <source>Register</source>
+ <translation>Registrieren</translation>
+ </message>
+ <message>
+ <source>Unregister</source>
+ <translation>Registrierung aufheben</translation>
+ </message>
+ <message>
+ <source>Developer Certificate</source>
+ <translation>Entwicklerzertifikat</translation>
+ </message>
+ <message>
+ <source>Create</source>
+ <translation>Erstellen</translation>
+ </message>
+ <message>
+ <source>Import</source>
+ <translation>Importieren</translation>
+ </message>
+ <message>
+ <source>Delete</source>
+ <translation>Löschen</translation>
+ </message>
+ <message>
+ <source>Error</source>
+ <translation>Fehler</translation>
+ </message>
+ <message>
+ <source>Unregister Key</source>
+ <translation>Schlüsselregistrierung aufheben</translation>
+ </message>
+ <message>
+ <source>Could not insert default certificate.</source>
+ <translation>Das Vorgabezertifikat konnte nicht eingefügt werden.</translation>
+ </message>
+ <message>
+ <source>Do you really want to unregister your key? This action cannot be undone.</source>
+ <translation>Möchten Sie wirklich die Registrierung Ihres Schlüssels aufheben? Dies kann nicht rückgängig gemacht werden.</translation>
+ </message>
+ <message>
+ <source>Error storing certificate.</source>
+ <translation>Fehler beim Speichern des Zertifikats.</translation>
+ </message>
+ <message>
+ <source>This certificate already exists.</source>
+ <translation>Dieses Zertifikat existiert bereits.</translation>
+ </message>
+ <message>
+ <source>Delete Certificate</source>
+ <translation>Zertifikat löschen</translation>
+ </message>
+ <message>
+ <source>Are you sure you want to delete this certificate?</source>
+ <translation>Möchten dieses Zertifikat wirklich löschen?</translation>
+ </message>
+ <message>
+ <source>Registered: No</source>
+ <translation>Registriert: Nein</translation>
+ </message>
+ <message>
+ <source>BlackBerry Signing Authority</source>
+ <translation>BlackBerry-Signierstelle</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryRegisterKeyDialog</name>
+ <message>
+ <source>PBDT CSJ file:</source>
+ <translation>PBDT CSJ Datei:</translation>
+ </message>
+ <message>
+ <source>RDK CSJ file:</source>
+ <translation>RDK CSJ-Datei:</translation>
+ </message>
+ <message>
+ <source>Keystore password:</source>
+ <translation>Keystore-Passwort:</translation>
+ </message>
+ <message>
+ <source>Confirm password:</source>
+ <translation>Passwort bestätigen:</translation>
+ </message>
+ <message>
+ <source>Generate developer certificate automatically</source>
+ <translation>Entwicklerzertifikat automatisch erstellen</translation>
+ </message>
+ <message>
+ <source>Show</source>
+ <translation>Anzeigen</translation>
+ </message>
+ <message>
+ <source>Status</source>
+ <translation>Status</translation>
+ </message>
+ <message>
+ <source>CSK PINs do not match.</source>
+ <translation>CSK-PINs stimmen nicht überein.</translation>
+ </message>
+ <message>
+ <source>Keystore password does not match.</source>
+ <translation>Keystore-Passwörter stimmen nicht überein.</translation>
+ </message>
+ <message>
+ <source>Error</source>
+ <translation>Fehler</translation>
+ </message>
+ <message>
+ <source>Error creating developer certificate.</source>
+ <translation>Fehler beim Erstellen des Entwicklerzertifikats.</translation>
+ </message>
+ <message>
+ <source>Browse CSJ File</source>
+ <translation>PBDT CSJ-Datei auswählen</translation>
+ </message>
+ <message>
+ <source>CSJ files (*.csj)</source>
+ <translation>CSJ Dateien (*.csj)</translation>
+ </message>
+ <message>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Obtaining keys&lt;/span&gt;&lt;/p&gt;&lt;p&gt;You will need to order a pair of CSJ files from BlackBerry, by &lt;a href=&quot;https://www.blackberry.com/SignedKeys/codesigning.html&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#004f69;&quot;&gt;visiting this page.&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Schlüssel erhalten&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Sie müssen zwei CSJ-Dateien bei BlackBerry bestellen, was auf dieser &lt;a href=&quot;https://www.blackberry.com/SignedKeys/codesigning.html&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#004f69;&quot;&gt;Seite&lt;/span&gt;&lt;/a&gt; geschieht.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <source>CSJ PIN:</source>
+ <translation>CSJ-PIN:</translation>
+ </message>
+ <message>
+ <source>CSK PIN:</source>
+ <translation>CSK-PIN:</translation>
+ </message>
+ <message>
+ <source>Confirm CSK PIN:</source>
+ <translation>CSK-PIN bestätigen:</translation>
+ </message>
+ <message>
+ <source>This is the PIN you entered when you requested the CSJ files.</source>
+ <translation>Dies ist die PIN, die Sie bei der Anforderung der CSJ-Dateien eingegeben haben.</translation>
+ </message>
+ <message>
+ <source>Create Key</source>
+ <translation>Schlüssel erstellen</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryCertificateModel</name>
+ <message>
+ <source>Path</source>
+ <translation>Pfad</translation>
+ </message>
+ <message>
+ <source>Author</source>
+ <translation>Autor</translation>
+ </message>
+ <message>
+ <source>Active</source>
+ <translation>Aktiv</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryCsjRegistrar</name>
+ <message>
+ <source>Failed to start blackberry-signer process.</source>
+ <translation>Der BlackBerry-Signierungsprozess konnte nicht gestartet werden.</translation>
+ </message>
+ <message>
+ <source>Process timed out.</source>
+ <translation>Zeitüberschreitung des Prozesses.</translation>
+ </message>
+ <message>
+ <source>Child process has crashed.</source>
+ <translation>Der Kindprozess ist abgestürzt.</translation>
+ </message>
+ <message>
+ <source>Process I/O error.</source>
+ <translation>Ein/Ausgabefehler des Prozesses.</translation>
+ </message>
+ <message>
+ <source>Unknown process error.</source>
+ <translation>Unbekannter Fehler des Prozesses.</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryKeysPage</name>
+ <message>
+ <source>Keys</source>
+ <translation>Schlüssel</translation>
+ </message>
+</context>
+<context>
+ <name>QbsProjectManager::Internal::QbsStepConfigWidget</name>
+ <message>
+ <source>Dry run</source>
+ <translation>Probelauf</translation>
+ </message>
+ <message>
+ <source>Keep Going</source>
+ <translation>Fortsetzen</translation>
+ </message>
+ <message>
+ <source>jobs</source>
+ <translation>Jobs</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Qbs:&lt;/b&gt; %1</source>
+ <translation>&lt;b&gt;Qbs:&lt;/b&gt; %1</translation>
+ </message>
+</context>
+<context>
+ <name>DiffEditor</name>
+ <message>
+ <source>Diff Editor</source>
+ <translation>Diff-Editor</translation>
+ </message>
+</context>
+<context>
+ <name>CMakeProjectManager::Internal::NoKitPage</name>
+ <message>
+ <source>Show Options</source>
+ <translation>Einstellungen anzeigen</translation>
+ </message>
+ <message>
+ <source>Check Kits</source>
+ <translation>Kits prüfen</translation>
+ </message>
+ <message>
+ <source>There are compatible kits.</source>
+ <translation>Es sind kompatible Kits vorhanden.</translation>
+ </message>
+ <message>
+ <source>Qt Creator has no kits that are suitable for CMake projects. Please configure a kit.</source>
+ <translation>Qt Creator hat keine für CMake-Projekte geeigneten Kits. Bitte richten Sie ein Kit ein.</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDebugTokenRequestDialog</name>
+ <message>
+ <source>Request Debug Token</source>
+ <translation>Debug-Token anfordern</translation>
+ </message>
+ <message>
+ <source>Debug token path:</source>
+ <translation>Pfad zu Debug Token:</translation>
+ </message>
+ <message>
+ <source>Keystore:</source>
+ <translation>Keystore:</translation>
+ </message>
+ <message>
+ <source>Keystore password:</source>
+ <translation>Keystore-Passwort:</translation>
+ </message>
+ <message>
+ <source>CSK password:</source>
+ <translation>CSK-Passwort:</translation>
+ </message>
+ <message>
+ <source>Device PIN:</source>
+ <translation>Geräte-PIN:</translation>
+ </message>
+ <message>
+ <source>Show password</source>
+ <translation>Passwort anzeigen</translation>
+ </message>
+ <message>
+ <source>Status</source>
+ <translation>Status</translation>
+ </message>
+ <message>
+ <source>BAR Files (*.bar)</source>
+ <translation>BAR-Dateien (*.bar)</translation>
+ </message>
+ <message>
+ <source>Base directory does not exist.</source>
+ <translation>Basisverzeichnis existiert nicht.</translation>
+ </message>
+ <message>
+ <source>Are you sure?</source>
+ <translation>Sind Sie sicher?</translation>
+ </message>
+ <message>
+ <source>The file &apos;%1&apos; will be overwritten. Do you want to proceed?</source>
+ <translation>Die Datei &apos;%1&apos; wird überschrieben. Möchten Sie fortsetzen?</translation>
+ </message>
+ <message>
+ <source>Failed to request debug token: </source>
+ <translation>Fehlschlag beim Anfordern des Debug-Tokens: </translation>
+ </message>
+ <message>
+ <source>Wrong CSK password.</source>
+ <translation>Falsches CSK-Passwort.</translation>
+ </message>
+ <message>
+ <source>Wrong keystore password.</source>
+ <translation>Falsches Keystore-Passwort.</translation>
+ </message>
+ <message>
+ <source>Network unreachable.</source>
+ <translation>Das Netzwerk ist nicht erreichbar.</translation>
+ </message>
+ <message>
+ <source>Illegal device PIN.</source>
+ <translation>Unzulässige Geräte-PIN.</translation>
+ </message>
+ <message>
+ <source>Failed to start inferior process.</source>
+ <translation>Der zu debuggende Prozess konnte nicht gestartet werden.</translation>
+ </message>
+ <message>
+ <source>Inferior processes timed out.</source>
+ <translation>Zeitüberschreitung des zu debuggenden Prozesses.</translation>
+ </message>
+ <message>
+ <source>Inferior process has crashed.</source>
+ <translation>Der zu debuggende Prozess ist abgestürzt.</translation>
+ </message>
+ <message>
+ <source>Failed to communicate with the inferior process.</source>
+ <translation>Fehlschlag bei Kommunikation mit dem zu debuggenden Prozess.</translation>
+ </message>
+ <message>
+ <source>An unknwon error has occurred.</source>
+ <translation>Es trat ein unbekannter Fehler auf.</translation>
+ </message>
+ <message>
+ <source>Error</source>
+ <translation>Fehler</translation>
+ </message>
+ <message>
+ <source>Requesting debug token...</source>
+ <translation>Debug-Token anfordern...</translation>
+ </message>
+</context>
+<context>
+ <name>DiffEditor::Internal::DiffEditorEditable</name>
+ <message>
+ <source>Ignore Whitespaces</source>
+ <translation>Leerzeichen nicht berücksichtigen</translation>
+ </message>
+ <message>
+ <source>Context Lines:</source>
+ <translation>Kontextzeilen:</translation>
+ </message>
+</context>
+<context>
+ <name>DiffEditor::Internal::DiffEditorPlugin</name>
+ <message>
+ <source>Diff...</source>
+ <translation>Diff...</translation>
+ </message>
+ <message>
+ <source>Select First File for Diff</source>
+ <translation>Erste Datei für Diff auswählen</translation>
+ </message>
+ <message>
+ <source>Select Second File for Diff</source>
+ <translation>Zweite Datei für Diff auswählen</translation>
+ </message>
+ <message>
+ <source>Diff &quot;%1&quot;, &quot;%2&quot;</source>
+ <extracomment>Editor title</extracomment>
+ <translation>Diff &quot;%1&quot;, &quot;%2&quot;</translation>
+ </message>
+</context>
+<context>
+ <name>DiffEditor::DiffViewEditorWidget</name>
+ <message numerus="yes">
+ <source>Skipped %n lines...</source>
+ <translation>
+ <numerusform>Eine Zeile übersprungen...</numerusform>
+ <numerusform>%n Zeilen übersprungen...</numerusform>
+ </translation>
+ </message>
+</context>
</TS>
diff --git a/share/qtcreator/translations/qtcreator_uk.ts b/share/qtcreator/translations/qtcreator_uk.ts
index ed33c164dac..50990604384 100644
--- a/share/qtcreator/translations/qtcreator_uk.ts
+++ b/share/qtcreator/translations/qtcreator_uk.ts
@@ -46,22 +46,22 @@
<translation>Панель аналізатора</translation>
</message>
<message>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;You are trying to run the tool &quot;%1&quot; on an application in %2 mode. The tool is designed to be used in %3 mode.&lt;/p&gt;&lt;p&gt;Debug and Release mode run-time characteristics differ significantly, analytical findings for one mode may or may not be relevant for the other.&lt;/p&gt;&lt;p&gt;Do you want to continue and run the tool in %2 mode?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Ви намагаєтеÑÑŒ запуÑтити інÑтрумент &quot;%1&quot; Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ в режимі %2. Цей інÑтрумент призначено Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð² режимі %3.&lt;/p&gt;&lt;p&gt;ХарактериÑтики чаÑу Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ñ–Ð² Debug та Release Ñуттєво відрізнÑÑŽÑ‚ÑŒÑÑ, аналітичні дані Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ режиму можуть бути не відповідними Ð´Ð»Ñ Ñ–Ð½ÑˆÐ¾Ð³Ð¾.&lt;/p&gt;&lt;p&gt;Бажаєте продовжити Ñ– запуÑтити інÑтрумент в режимі %2?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
<source>Debug</source>
- <translation></translation>
+ <translation>Debug</translation>
</message>
<message>
<source>Release</source>
- <translation></translation>
+ <translation>Release</translation>
</message>
<message>
<source>Run %1 in %2 Mode?</source>
<translation>ЗапуÑти %1 в режимі %2?</translation>
</message>
<message>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;You are trying to run the tool &quot;%1&quot; on an application in %2 mode. The tool is designed to be used in %3 mode.&lt;/p&gt;&lt;p&gt;Do you want to continue and run it in %2 mode?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Ви намагаєтеÑÑŒ запуÑтити інÑтрумент &quot;%1&quot; Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ в режимі %2. Цей інÑтрумент призначено Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð² режимі %3.&lt;/p&gt;&lt;p&gt;Бажаєте продовжити Ñ– запуÑтити його в режимі %2?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
- </message>
- <message>
<source>&amp;Do not ask again</source>
<translation>&amp;Ðе питати знову</translation>
</message>
@@ -77,8 +77,8 @@
<context>
<name>Analyzer::IAnalyzerTool</name>
<message>
- <source> (Remote)</source>
- <translation> (Віддалено)</translation>
+ <source> (External)</source>
+ <translation> (Зовнішній)</translation>
</message>
</context>
<context>
@@ -97,6 +97,29 @@
</message>
</context>
<context>
+ <name>Analyzer::StartRemoteDialog</name>
+ <message>
+ <source>Kit:</source>
+ <translation>ІнÑтрументарій:</translation>
+ </message>
+ <message>
+ <source>Executable:</source>
+ <translation>Виконуваний модуль:</translation>
+ </message>
+ <message>
+ <source>Arguments:</source>
+ <translation>Ðргументи:</translation>
+ </message>
+ <message>
+ <source>Working directory:</source>
+ <translation>Робоча тека:</translation>
+ </message>
+ <message>
+ <source>Start Remote Analysis</source>
+ <translation>Почати віддалений аналіз</translation>
+ </message>
+</context>
+<context>
<name>AnchorButtons</name>
<message>
<source>Set top anchor</source>
@@ -178,11 +201,11 @@
</message>
<message>
<source>Little Endian</source>
- <translation></translation>
+ <translation>Little Endian</translation>
</message>
<message>
<source>Big Endian</source>
- <translation></translation>
+ <translation>Big Endian</translation>
</message>
<message>
<source>Binary&amp;nbsp;value:</source>
@@ -233,6 +256,10 @@
<translation>Копіювати виділене Ñк шіÑтнадцÑткові значеннÑ</translation>
</message>
<message>
+ <source>Set Data Breakpoint on Selection</source>
+ <translation>Ð’Ñтановити точку перепину за даними на обраному</translation>
+ </message>
+ <message>
<source>Jump to Address in This Window</source>
<translation>Перейти до адреÑи в цьому вікні</translation>
</message>
@@ -270,6 +297,10 @@
<context>
<name>BaseQtVersion</name>
<message>
+ <source>The compiler &apos;%1&apos; (%2) cannot produce code for the Qt version &apos;%3&apos; (%4).</source>
+ <translation>КомпілÑтор &apos;%1&apos; (%2) не може генерувати код Ð´Ð»Ñ Qt верÑÑ–Ñ— &apos;%3&apos; (%4).</translation>
+ </message>
+ <message>
<source>Name:</source>
<translation>Ðазва:</translation>
</message>
@@ -279,7 +310,7 @@
</message>
<message>
<source>ABI:</source>
- <translation></translation>
+ <translation>ABI:</translation>
</message>
<message>
<source>Source:</source>
@@ -287,11 +318,11 @@
</message>
<message>
<source>mkspec:</source>
- <translation></translation>
+ <translation>mkspec:</translation>
</message>
<message>
<source>qmake:</source>
- <translation></translation>
+ <translation>qmake:</translation>
</message>
<message>
<source>Default:</source>
@@ -326,7 +357,7 @@
</message>
<message>
<source>Email:</source>
- <translation></translation>
+ <translation>Email:</translation>
</message>
<message>
<source>Fixed bugs:</source>
@@ -342,7 +373,7 @@ Local commits are not pushed to the master branch until a normal commit is perfo
<name>Bazaar::Internal::BazaarControl</name>
<message>
<source>Bazaar</source>
- <translation></translation>
+ <translation>Bazaar</translation>
</message>
</context>
<context>
@@ -407,14 +438,14 @@ Local commits are not pushed to the master branch until a normal commit is perfo
</message>
<message>
<source>GNU ChangeLog</source>
- <translation type="unfinished"></translation>
+ <translation>GNU ChangeLog</translation>
</message>
</context>
<context>
<name>Bazaar::Internal::BazaarPlugin</name>
<message>
<source>Bazaar</source>
- <translation></translation>
+ <translation>Bazaar</translation>
</message>
<message>
<source>Annotate Current File</source>
@@ -434,7 +465,11 @@ Local commits are not pushed to the master branch until a normal commit is perfo
</message>
<message>
<source>ALT+Z,Alt+D</source>
- <translation></translation>
+ <translation>ALT+Z,Alt+D</translation>
+ </message>
+ <message>
+ <source>Meta+Z,Meta+D</source>
+ <translation>Meta+Z,Meta+D</translation>
</message>
<message>
<source>Log Current File</source>
@@ -446,7 +481,11 @@ Local commits are not pushed to the master branch until a normal commit is perfo
</message>
<message>
<source>ALT+Z,Alt+L</source>
- <translation></translation>
+ <translation>ALT+Z,Alt+L</translation>
+ </message>
+ <message>
+ <source>Meta+Z,Meta+L</source>
+ <translation>Meta+Z,Meta+L</translation>
</message>
<message>
<source>Status Current File</source>
@@ -458,7 +497,11 @@ Local commits are not pushed to the master branch until a normal commit is perfo
</message>
<message>
<source>ALT+Z,Alt+S</source>
- <translation></translation>
+ <translation>ALT+Z,Alt+S</translation>
+ </message>
+ <message>
+ <source>Meta+Z,Meta+S</source>
+ <translation>Meta+Z,Meta+S</translation>
</message>
<message>
<source>Add</source>
@@ -490,7 +533,7 @@ Local commits are not pushed to the master branch until a normal commit is perfo
</message>
<message>
<source>Log</source>
- <translation type="unfinished">Журнал</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Revert...</source>
@@ -518,7 +561,11 @@ Local commits are not pushed to the master branch until a normal commit is perfo
</message>
<message>
<source>ALT+Z,Alt+C</source>
- <translation></translation>
+ <translation>ALT+Z,Alt+C</translation>
+ </message>
+ <message>
+ <source>Meta+Z,Meta+C</source>
+ <translation>Meta+Z,Meta+C</translation>
</message>
<message>
<source>Create Repository...</source>
@@ -549,10 +596,6 @@ Local commits are not pushed to the master branch until a normal commit is perfo
<translation type="unfinished"></translation>
</message>
<message>
- <source>Unable to generate a temporary file for the commit editor.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Unable to create an editor for the commit.</source>
<translation type="unfinished"></translation>
</message>
@@ -731,7 +774,7 @@ The new branch will depend on the availability of the source branch for all oper
</message>
<message>
<source>Bazaar</source>
- <translation></translation>
+ <translation>Bazaar</translation>
</message>
<message>
<source>The number of recent commit logs to show. Choose 0 to see all entries.</source>
@@ -793,7 +836,7 @@ The new branch will depend on the availability of the source branch for all oper
</message>
<message>
<source>Local</source>
- <translation type="unfinished">Локальна змінна</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Pull Source</source>
@@ -854,7 +897,7 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>+</source>
- <translation></translation>
+ <translation>+</translation>
</message>
<message>
<source>New Folder</source>
@@ -966,11 +1009,11 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>Ctrl+M</source>
- <translation></translation>
+ <translation>Ctrl+M</translation>
</message>
<message>
<source>Meta+M</source>
- <translation></translation>
+ <translation>Meta+M</translation>
</message>
<message>
<source>Previous Bookmark</source>
@@ -978,11 +1021,11 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>Ctrl+,</source>
- <translation></translation>
+ <translation>Ctrl+,</translation>
</message>
<message>
<source>Meta+,</source>
- <translation></translation>
+ <translation>Meta+,</translation>
</message>
<message>
<source>Next Bookmark</source>
@@ -990,11 +1033,11 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>Ctrl+.</source>
- <translation></translation>
+ <translation>Ctrl+.</translation>
</message>
<message>
<source>Meta+.</source>
- <translation></translation>
+ <translation>Meta+.</translation>
</message>
<message>
<source>Previous Bookmark in Document</source>
@@ -1013,7 +1056,7 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>Source</source>
- <translation type="unfinished">Код</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Left</source>
@@ -1108,8 +1151,8 @@ Local pulls are not applied to the master branch.</source>
<context>
<name>CMakeProjectManager::Internal::CMakeRunConfiguration</name>
<message>
- <source>Run CMake target</source>
- <translation>ЗапуÑтити ціль CMake</translation>
+ <source>Run CMake kit</source>
+ <translation>ЗапуÑтити інÑтрументарій cmake</translation>
</message>
<message>
<source>Clean Environment</source>
@@ -1178,26 +1221,10 @@ Local pulls are not applied to the master branch.</source>
<context>
<name>CMakeProjectManager::Internal::CMakeRunPage</name>
<message>
- <source> The path %1 is not a executable.</source>
- <translation> ШлÑÑ… %1 не Ñ” виконуваним файлом.</translation>
- </message>
- <message>
<source>Run CMake</source>
<translation>ЗапуÑтити CMake</translation>
</message>
<message>
- <source>Please specify the path to the cmake executable. No cmake executable was found in the path.</source>
- <translation>Будь-лаÑка, вкажіть шлÑÑ… до виконуваного Ð¼Ð¾Ð´ÑƒÐ»Ñ cmake. Виконуваний модуль cmake не знайдено в PATH.</translation>
- </message>
- <message>
- <source> The cmake executable (%1) does not exist.</source>
- <translation>Виконуваний модуль cmake (%1) не Ñ–Ñнує.</translation>
- </message>
- <message>
- <source> The path %1 is not a valid cmake.</source>
- <translation> ШлÑÑ… %1 не вказує на правильний cmake.</translation>
- </message>
- <message>
<source>Arguments:</source>
<translation>Ðргументи:</translation>
</message>
@@ -1206,8 +1233,8 @@ Local pulls are not applied to the master branch.</source>
<translation>Генератор:</translation>
</message>
<message>
- <source>The directory %1 already contains a cbp file, which is recent enough. You can pass special arguments or change the used tool chain here and rerun CMake. Or simply finish the wizard directly.</source>
- <translation>Тека %1 вже міÑтить доÑтатньо Ñвіжий файл cbp. Ви можете зараз передати Ñпеціальні аргументи або змінити набір інÑтрументів та перезапуÑтити CMake. Ðбо проÑто завершити майÑтер.</translation>
+ <source>The directory %1 already contains a cbp file, which is recent enough. You can pass special arguments and rerun CMake. Or simply finish the wizard directly.</source>
+ <translation>Тека %1 вже міÑтить доÑтатньо Ñвіжий файл cbp. Ви можете передати Ñпеціальні аргументи та перезапуÑтити CMake. Ðбо проÑто завершити майÑтер.</translation>
</message>
<message>
<source>The directory %1 does not contain a cbp file. Qt Creator needs to create this file by running CMake. Some projects require command line arguments to the initial CMake call.</source>
@@ -1230,14 +1257,6 @@ Local pulls are not applied to the master branch.</source>
<translation>ÐžÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ cbp в %1.</translation>
</message>
<message>
- <source>MinGW Generator (%1)</source>
- <translation>Генератор Ð´Ð»Ñ MinGW (%1)</translation>
- </message>
- <message>
- <source>Unix Generator (%1)</source>
- <translation>Генератор Ð´Ð»Ñ Unix (%1)</translation>
- </message>
- <message>
<source>No generator selected.</source>
<translation>Генератор не обрано.</translation>
</message>
@@ -1247,18 +1266,14 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>CMake exited with errors. Please check CMake output.</source>
- <translation>CMake завершивÑÑ Ð· помилками. Будь-лаÑка, перевірте Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ CMake.</translation>
- </message>
- <message>
- <source>NMake Generator (%1)</source>
- <translation>Генератор Ð´Ð»Ñ NMake (%1)</translation>
+ <translation>CMake завершивÑÑ Ð· помилками. Будь лаÑка, перевірте Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ CMake.</translation>
</message>
</context>
<context>
<name>CMakeProjectManager::Internal::CMakeSettingsPage</name>
<message>
<source>CMake</source>
- <translation></translation>
+ <translation>CMake</translation>
</message>
<message>
<source>Executable:</source>
@@ -1289,7 +1304,15 @@ Local pulls are not applied to the master branch.</source>
<message>
<source>Make</source>
<extracomment>Default display name for the cmake make step.</extracomment>
- <translation></translation>
+ <translation>Make</translation>
+ </message>
+ <message>
+ <source>Qt Creator needs a compiler set up to build. Configure a compiler in the kit options.</source>
+ <translation>Qt Creator потребує компілÑтора Ð´Ð»Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸. Сконфігуруйте компілÑтор в налаштуваннÑÑ… інÑтрументарію.</translation>
+ </message>
+ <message>
+ <source>Configuration is faulty. Check the Issues view for details.</source>
+ <translation>ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð·Ð±Ñ–Ð¹Ð½Ð°. Перевірте вид &quot;Проблеми&quot; Ð´Ð»Ñ Ð´ÐµÑ‚Ð°Ð»ÐµÐ¹.</translation>
</message>
</context>
<context>
@@ -1299,17 +1322,17 @@ Local pulls are not applied to the master branch.</source>
<translation>Додаткові аргументи:</translation>
</message>
<message>
- <source>Targets:</source>
- <translation>Цілі:</translation>
+ <source>Kits:</source>
+ <translation>ІнÑтрументарії:</translation>
</message>
<message>
- <source>Make</source>
- <comment>CMakeProjectManager::MakeStepConfigWidget display name.</comment>
- <translation></translation>
+ <source>&lt;b&gt;No build configuration found on this kit.&lt;/b&gt;</source>
+ <translation>&lt;b&gt;Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ інÑтрументарію відÑÑƒÑ‚Ð½Ñ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸.&lt;/b&gt;</translation>
</message>
<message>
- <source>&lt;b&gt;Unknown tool chain&lt;/b&gt;</source>
- <translation>&lt;b&gt;Ðевідомий набір інÑтрументів&lt;/b&gt;</translation>
+ <source>Make</source>
+ <comment>CMakeProjectManager::MakeStepConfigWidget display name.</comment>
+ <translation>Make</translation>
</message>
</context>
<context>
@@ -1317,18 +1340,18 @@ Local pulls are not applied to the master branch.</source>
<message>
<source>Make</source>
<comment>Display name for CMakeProjectManager::MakeStep id.</comment>
- <translation></translation>
+ <translation>Make</translation>
</message>
</context>
<context>
<name>CMakeProjectManager::Internal::ShadowBuildPage</name>
<message>
<source>Please enter the directory in which you want to build your project. </source>
- <translation>Будь-лаÑка, введіть теку, в Ñкій ви хочете зібрати ваш проект. </translation>
+ <translation>Будь лаÑка, введіть теку, в Ñкій ви хочете зібрати ваш проект. </translation>
</message>
<message>
<source>Please enter the directory in which you want to build your project. Qt Creator recommends to not use the source directory for building. This ensures that the source directory remains clean and enables multiple builds with different settings.</source>
- <translation>Будь-лаÑка, введіть теку, в Ñкій ви хочете зібрати ваш проект. Qt Creator рекомендує не викориÑтовувати теку з кодом Ð´Ð»Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸. Це гарантуватиме, що тека з кодом лишатиметьÑÑ Ñ‡Ð¸Ñтою, та дозволить здійÑнювати декілька збірок з різними налаштуваннÑми.</translation>
+ <translation>Будь лаÑка, введіть теку, в Ñкій ви хочете зібрати ваш проект. Qt Creator рекомендує не викориÑтовувати теку з кодом Ð´Ð»Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸. Це гарантуватиме, що тека з кодом лишатиметьÑÑ Ñ‡Ð¸Ñтою, та дозволить здійÑнювати декілька збірок з різними налаштуваннÑми.</translation>
</message>
<message>
<source>Build directory:</source>
@@ -1351,13 +1374,6 @@ Local pulls are not applied to the master branch.</source>
</message>
</context>
<context>
- <name>CheckUndefinedSymbols</name>
- <message>
- <source>Expected a namespace-name</source>
- <translation>ОчікувавÑÑ Ð¿Ñ€Ð¾ÑÑ‚Ñ–Ñ€ імен</translation>
- </message>
-</context>
-<context>
<name>ClassView::Internal::NavigationWidget</name>
<message>
<source>Form</source>
@@ -1376,41 +1392,6 @@ Local pulls are not applied to the master branch.</source>
</message>
</context>
<context>
- <name>Coda::Session</name>
- <message>
- <source>CPU: v%1.%2%3%4</source>
- <extracomment>CPU description of an S60 device %1 major verison, %2 minor version %3 real name of major verison, %4 real name of minor version</extracomment>
- <translation>ПроцеÑор: v%1.%2%3%4</translation>
- </message>
- <message>
- <source>CODA: v%1.%2 CODA protocol: v%3.%4</source>
- <translation>CODA: v%1.%2 протокол CODA: v%3.%4</translation>
- </message>
- <message>
- <source>%1, %2%3%4, %5</source>
- <extracomment>s60description description of an S60 device %1 CPU description, %2 endianness %3 default type size (if any), %4 float size (if any) %5 Coda version</extracomment>
- <translation></translation>
- </message>
- <message>
- <source>big endian</source>
- <translation></translation>
- </message>
- <message>
- <source>little endian</source>
- <translation></translation>
- </message>
- <message>
- <source>, type size: %1</source>
- <extracomment>will be inserted into s60description</extracomment>
- <translation>, розмір типу: %1</translation>
- </message>
- <message>
- <source>, float size: %1</source>
- <extracomment>will be inserted into s60description</extracomment>
- <translation>, розмір дійÑного: %1</translation>
- </message>
-</context>
-<context>
<name>CodePaster</name>
<message>
<source>Code Pasting</source>
@@ -1436,7 +1417,7 @@ Local pulls are not applied to the master branch.</source>
<name>CodePaster::CodePasterSettingsPage</name>
<message>
<source>CodePaster</source>
- <translation></translation>
+ <translation>CodePaster</translation>
</message>
<message>
<source>Server:</source>
@@ -1459,7 +1440,11 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>Alt+C,Alt+P</source>
- <translation></translation>
+ <translation>Alt+C,Alt+P</translation>
+ </message>
+ <message>
+ <source>Meta+C,Meta+P</source>
+ <translation>Meta+C,Meta+P</translation>
</message>
<message>
<source>Paste Clipboard...</source>
@@ -1471,11 +1456,27 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>Alt+C,Alt+F</source>
- <translation></translation>
+ <translation>Alt+C,Alt+F</translation>
+ </message>
+ <message>
+ <source>Meta+C,Meta+F</source>
+ <translation>Meta+C,Meta+F</translation>
+ </message>
+ <message>
+ <source>Fetch from URL...</source>
+ <translation>Отримати з URL...</translation>
+ </message>
+ <message>
+ <source>Fetch from URL</source>
+ <translation>Отримати з URL</translation>
+ </message>
+ <message>
+ <source>Enter URL:</source>
+ <translation>Введіть URL:</translation>
</message>
<message>
<source>Empty snippet received for &quot;%1&quot;.</source>
- <translation>Отримано порожный фрагмент Ð´Ð»Ñ &quot;%1&quot;.</translation>
+ <translation>Отримано порожній фрагмент Ð´Ð»Ñ &quot;%1&quot;.</translation>
</message>
</context>
<context>
@@ -1494,7 +1495,7 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>Please configure a path.</source>
- <translation>Будь-лаÑка, налаштуйте шлÑÑ….</translation>
+ <translation>Будь лаÑка, налаштуйте шлÑÑ….</translation>
</message>
<message>
<source>Pasted: %1</source>
@@ -1505,7 +1506,7 @@ Local pulls are not applied to the master branch.</source>
<name>CodePaster::FileShareProtocolSettingsPage</name>
<message>
<source>Fileshare</source>
- <translation></translation>
+ <translation>Fileshare</translation>
</message>
</context>
<context>
@@ -1566,15 +1567,15 @@ Local pulls are not applied to the master branch.</source>
<context>
<name>CodeStyleSettingsPanel</name>
<message>
- <source>Code Style Settings</source>
- <translation>ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñтилю коду</translation>
+ <source>Code Style</source>
+ <translation>Стиль коду</translation>
</message>
</context>
<context>
<name>CodeStyleSettingsPanelFactory</name>
<message>
- <source>Code Style Settings</source>
- <translation>ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñтилю коду</translation>
+ <source>Code Style</source>
+ <translation>Стиль коду</translation>
</message>
</context>
<context>
@@ -1650,7 +1651,7 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>...</source>
- <translation></translation>
+ <translation>...</translation>
</message>
</context>
<context>
@@ -1661,7 +1662,7 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>10 x 10</source>
- <translation></translation>
+ <translation>10 x 10</translation>
</message>
<message>
<source>Stretch vertically. Scales the image to fit to the available area.</source>
@@ -1716,7 +1717,7 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>10 x 10</source>
- <translation></translation>
+ <translation>10 x 10</translation>
</message>
</context>
<context>
@@ -1735,7 +1736,7 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>...</source>
- <translation></translation>
+ <translation>...</translation>
</message>
<message>
<source>Border</source>
@@ -1746,7 +1747,7 @@ Local pulls are not applied to the master branch.</source>
<name>Core</name>
<message>
<source>Qt</source>
- <translation></translation>
+ <translation>Qt</translation>
</message>
<message>
<source>Environment</source>
@@ -1852,95 +1853,107 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>Ctrl+W</source>
- <translation></translation>
+ <translation>Ctrl+W</translation>
</message>
<message>
<source>Ctrl+F4</source>
- <translation></translation>
+ <translation>Ctrl+F4</translation>
</message>
<message>
<source>Ctrl+Shift+W</source>
- <translation></translation>
+ <translation>Ctrl+Shift+W</translation>
</message>
<message>
<source>Alt+Tab</source>
- <translation></translation>
+ <translation>Alt+Tab</translation>
</message>
<message>
<source>Ctrl+Tab</source>
- <translation></translation>
+ <translation>Ctrl+Tab</translation>
</message>
<message>
<source>Alt+Shift+Tab</source>
- <translation></translation>
+ <translation>Alt+Shift+Tab</translation>
</message>
<message>
<source>Ctrl+Shift+Tab</source>
- <translation></translation>
+ <translation>Ctrl+Shift+Tab</translation>
</message>
<message>
<source>Ctrl+Alt+Left</source>
- <translation></translation>
+ <translation>Ctrl+Alt+Left</translation>
</message>
<message>
<source>Alt+Left</source>
- <translation></translation>
+ <translation>Alt+Left</translation>
</message>
<message>
<source>Ctrl+Alt+Right</source>
- <translation></translation>
+ <translation>Ctrl+Alt+Right</translation>
</message>
<message>
<source>Alt+Right</source>
- <translation></translation>
+ <translation>Alt+Right</translation>
</message>
<message>
- <source>Meta+E</source>
- <translation></translation>
+ <source>Meta+E,2</source>
+ <translation>Meta+E,2</translation>
</message>
<message>
- <source>Ctrl+E</source>
- <translation></translation>
+ <source>Ctrl+E,2</source>
+ <translation>Ctrl+E,2</translation>
</message>
<message>
- <source>Split</source>
- <translation>Розбити</translation>
+ <source>Meta+E,3</source>
+ <translation>Meta+E,3</translation>
</message>
<message>
- <source>%1,2</source>
- <translation>%1,2</translation>
+ <source>Ctrl+E,3</source>
+ <translation>Ctrl+E,3</translation>
</message>
<message>
- <source>Split Side by Side</source>
- <translation>Розбити вертикально</translation>
+ <source>Meta+E,0</source>
+ <translation>Meta+E,0</translation>
</message>
<message>
- <source>%1,3</source>
- <translation>%1,3</translation>
+ <source>Ctrl+E,0</source>
+ <translation>Ctrl+E,0</translation>
</message>
<message>
- <source>Remove Current Split</source>
- <translation>Видалити поточну розбивку</translation>
+ <source>Meta+E,1</source>
+ <translation>Meta+E,1</translation>
</message>
<message>
- <source>%1,0</source>
- <translation>%1,0</translation>
+ <source>Ctrl+E,1</source>
+ <translation>Ctrl+E,1</translation>
</message>
<message>
- <source>Remove All Splits</source>
- <translation>Видалити вÑÑ– розбивки</translation>
+ <source>Meta+E,o</source>
+ <translation>Meta+E,o</translation>
</message>
<message>
- <source>%1,1</source>
- <translation>%1,1</translation>
+ <source>Ctrl+E,o</source>
+ <translation>Ctrl+E,o</translation>
</message>
<message>
- <source>Go to Next Split</source>
- <translation>Перейти до наÑтупної розбивки</translation>
+ <source>Split</source>
+ <translation>Розбити</translation>
+ </message>
+ <message>
+ <source>Split Side by Side</source>
+ <translation>Розбити вертикально</translation>
+ </message>
+ <message>
+ <source>Remove Current Split</source>
+ <translation>Видалити поточну розбивку</translation>
</message>
<message>
- <source>%1,o</source>
- <translation></translation>
+ <source>Remove All Splits</source>
+ <translation>Видалити вÑÑ– розбивки</translation>
+ </message>
+ <message>
+ <source>Go to Next Split</source>
+ <translation>Перейти до наÑтупної розбивки</translation>
</message>
<message>
<source>Ad&amp;vanced</source>
@@ -2016,7 +2029,7 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>Qt Creator</source>
- <translation></translation>
+ <translation>Qt Creator</translation>
</message>
<message>
<source>&lt;b&gt;Warning:&lt;/b&gt; You are changing a read-only file.</source>
@@ -2173,6 +2186,14 @@ Local pulls are not applied to the master branch.</source>
<source>Open Terminal Here</source>
<translation>Відкрити термінал тут</translation>
</message>
+ <message>
+ <source>Deleting File Failed</source>
+ <translation>Збій Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ</translation>
+ </message>
+ <message>
+ <source>Could not delete file %1.</source>
+ <translation>Ðе вдалоÑÑŒ видалити файл %1.</translation>
+ </message>
</context>
<context>
<name>Core::Internal::CommandComboBox</name>
@@ -2200,7 +2221,7 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>Linguist</source>
- <translation></translation>
+ <translation>Linguist</translation>
</message>
<message>
<source>Synchronizes translator&apos;s ts files with the program code</source>
@@ -2223,16 +2244,25 @@ Local pulls are not applied to the master branch.</source>
<translation>ТекÑÑ‚</translation>
</message>
<message>
+ <source>Runs the current QML file with qmlscene. This requires Qt 5.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Runs the current QML file with qmlviewer</source>
<translation>ЗапуÑтити поточний файл QML за допомогою qmlviewer</translation>
</message>
<message>
- <source>Preview (qmlviewer)</source>
- <translation>Попередній переглÑд (qmlviewer)</translation>
+ <source>Qt Quick 2 Preview (qmlscene)</source>
+ <oldsource>Preview (qmlviewer)</oldsource>
+ <translation>Попередній переглÑд Qt Quick 2 (qmlscene)</translation>
</message>
<message>
<source>Qt Quick</source>
- <translation></translation>
+ <translation>Qt Quick</translation>
+ </message>
+ <message>
+ <source>Qt Quick 1 Preview (qmlviewer)</source>
+ <translation>Попередній переглÑд Qt Quick 1 (qmlviewer)</translation>
</message>
<message>
<source>Sorts the selected text</source>
@@ -2303,7 +2333,7 @@ Local pulls are not applied to the master branch.</source>
&lt;ul&gt;&lt;li&gt;Ignore: Do nothing with it&lt;/li&gt;&lt;li&gt;Show in pane: Show it in the general output pane&lt;/li&gt;&lt;li&gt;Replace selection: Replace the current selection in the current document with it&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;
</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;Що робити зі Ñтандартним виведеннÑм виконваного модулÑ.
+&lt;p&gt;Що робити зі Ñтандартним виведеннÑм виконуваного модулÑ.
&lt;ul&gt;&lt;li&gt;Ігнорувати: Ðічого не робити&lt;/li&gt;&lt;li&gt;Показувати в панель: Показати його в загальній панелі виведеннÑ&lt;/li&gt;&lt;li&gt;Замінити виділеннÑ: Замінити ним поточне Ð²Ð¸Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ð² поточному документі&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;
</translation>
</message>
@@ -2331,7 +2361,7 @@ Local pulls are not applied to the master branch.</source>
&lt;li&gt;Replace selection: Replace the current selection in the current document with it&lt;/li&gt;
&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;Що робити зі Ñтандартним виведеннÑм помикок виконваного модулÑ.
+&lt;p&gt;Що робити зі Ñтандартним виведеннÑм помилок виконуваного модулÑ.
&lt;ul&gt;&lt;li&gt;Ігнорувати: Ðічого не робити&lt;/li&gt;&lt;li&gt;Показувати в панель: Показати його в загальній панелі виведеннÑ&lt;/li&gt;&lt;li&gt;Замінити виділеннÑ: Замінити ним поточне Ð²Ð¸Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ð² поточному документі&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;
</translation>
</message>
@@ -2433,7 +2463,7 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>?</source>
- <translation></translation>
+ <translation>?</translation>
</message>
<message>
<source>External file browser:</source>
@@ -2516,7 +2546,15 @@ Local pulls are not applied to the master branch.</source>
<name>Core::Internal::MainWindow</name>
<message>
<source>Qt Creator</source>
- <translation></translation>
+ <translation>Qt Creator</translation>
+ </message>
+ <message>
+ <source>Exit Full Screen</source>
+ <translation>Вийти з повноекранного режиму</translation>
+ </message>
+ <message>
+ <source>Enter Full Screen</source>
+ <translation>Перейти в повноекранний режим</translation>
</message>
<message>
<source>&amp;File</source>
@@ -2568,7 +2606,7 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>Ctrl+Shift+S</source>
- <translation></translation>
+ <translation>Ctrl+Shift+S</translation>
</message>
<message>
<source>Save As...</source>
@@ -2588,7 +2626,7 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>Ctrl+Q</source>
- <translation></translation>
+ <translation>Ctrl+Q</translation>
</message>
<message>
<source>&amp;Undo</source>
@@ -2628,7 +2666,7 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>Ctrl+L</source>
- <translation></translation>
+ <translation>Ctrl+L</translation>
</message>
<message>
<source>&amp;Options...</source>
@@ -2636,7 +2674,7 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>Ctrl+,</source>
- <translation></translation>
+ <translation>Ctrl+,</translation>
</message>
<message>
<source>Minimize</source>
@@ -2644,7 +2682,7 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>Ctrl+M</source>
- <translation></translation>
+ <translation>Ctrl+M</translation>
</message>
<message>
<source>Zoom</source>
@@ -2656,11 +2694,11 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>Ctrl+0</source>
- <translation></translation>
+ <translation>Ctrl+0</translation>
</message>
<message>
<source>Alt+0</source>
- <translation></translation>
+ <translation>Alt+0</translation>
</message>
<message>
<source>Full Screen</source>
@@ -2668,7 +2706,11 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>Ctrl+Shift+F11</source>
- <translation></translation>
+ <translation>Ctrl+Shift+F11</translation>
+ </message>
+ <message>
+ <source>Ctrl+Meta+F</source>
+ <translation>Ctrl+Meta+F</translation>
</message>
<message>
<source>&amp;Views</source>
@@ -2706,8 +2748,8 @@ Local pulls are not applied to the master branch.</source>
<context>
<name>Core::Internal::MimeTypeMagicDialog</name>
<message>
- <source>Magic Header</source>
- <translation>Магічний заголовок</translation>
+ <source>Add Magic Header</source>
+ <translation>Додати магічний заголовок</translation>
</message>
<message>
<source>Error</source>
@@ -2791,8 +2833,8 @@ Local pulls are not applied to the master branch.</source>
<source>%n pattern(s) already in use.</source>
<translation>
<numerusform>%n зразок вже викориÑтовуєтьÑÑ.</numerusform>
- <numerusform>%n зразоки вже викориÑтовуєтьÑÑ.</numerusform>
- <numerusform>%n зразоків вже викориÑтовуєтьÑÑ.</numerusform>
+ <numerusform>%n зразки вже викориÑтовуєтьÑÑ.</numerusform>
+ <numerusform>%n зразків вже викориÑтовуєтьÑÑ.</numerusform>
</translation>
</message>
</context>
@@ -2880,7 +2922,7 @@ Local pulls are not applied to the master branch.</source>
<name>Core::Internal::OpenEditorsWindow</name>
<message>
<source>*</source>
- <translation></translation>
+ <translation>*</translation>
</message>
</context>
<context>
@@ -2926,19 +2968,19 @@ Local pulls are not applied to the master branch.</source>
</message>
<message>
<source>Shift+F6</source>
- <translation></translation>
+ <translation>Shift+F6</translation>
</message>
<message>
<source>F6</source>
- <translation></translation>
+ <translation>F6</translation>
</message>
<message>
<source>Ctrl+9</source>
- <translation></translation>
+ <translation>Ctrl+9</translation>
</message>
<message>
<source>Alt+9</source>
- <translation></translation>
+ <translation>Alt+9</translation>
</message>
<message>
<source>Minimize Output Pane</source>
@@ -3104,7 +3146,7 @@ Would you like to overwrite them?</source>
</message>
<message>
<source>(%1)</source>
- <translation></translation>
+ <translation>(%1)</translation>
</message>
<message>
<source>From revision %1&lt;br/&gt;</source>
@@ -3171,7 +3213,7 @@ Would you like to overwrite them?</source>
<name>Core::VariableChooser</name>
<message>
<source>Insert variable</source>
- <translation>Ð’Ñтавити змінню</translation>
+ <translation>Ð’Ñтавити змінну</translation>
</message>
</context>
<context>
@@ -3186,12 +3228,51 @@ Note: This might remove the local file.</source>
<translation>Бажаєте видалити цей файл з ÑиÑтеми контролю верÑій (%1)?
Примітка: Це може призвеÑти до Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ файлу.</translation>
</message>
+ <message>
+ <source>Add to Version Control</source>
+ <translation>Додати до контролю верÑій</translation>
+ </message>
+ <message>
+ <source>Add the file
+%1
+to version control (%2)?</source>
+ <translation>Додати файл
+%1
+до контролю верÑій (%2)?</translation>
+ </message>
+ <message>
+ <source>Add the files
+%1
+to version control (%2)?</source>
+ <translation>Додати файли
+%1
+до контролю верÑій (%2)?</translation>
+ </message>
+ <message>
+ <source>Adding to Version Control Failed</source>
+ <translation>Збій Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð´Ð¾ контролю верÑій</translation>
+ </message>
+ <message>
+ <source>Could not add the file
+%1
+to version control (%2)
+</source>
+ <translation>Ðе вдалоÑÑŒ додати файл
+%1
+до контролю верÑій (%2)</translation>
+ </message>
+ <message>
+ <source>Could not add the following files to version control (%1)
+%2</source>
+ <translation>Ðе вдалоÑÑŒ додати до контролю верÑій (%1) наÑтупні файли
+%2</translation>
+ </message>
</context>
<context>
<name>CppEditor</name>
<message>
<source>C++</source>
- <translation></translation>
+ <translation>C++</translation>
</message>
</context>
<context>
@@ -3290,16 +3371,12 @@ Note: This might remove the local file.</source>
<translation>Файл заголовків C++</translation>
</message>
<message>
- <source>Follow Symbol Under Cursor</source>
- <translation>Йти за Ñимволом під курÑором</translation>
- </message>
- <message>
<source>Switch Between Method Declaration/Definition</source>
<translation>ПеремкнутиÑÑŒ між оголошеннÑм/визначеннÑм методу</translation>
</message>
<message>
<source>Shift+F2</source>
- <translation></translation>
+ <translation>Shift+F2</translation>
</message>
<message>
<source>Find Usages</source>
@@ -3307,7 +3384,11 @@ Note: This might remove the local file.</source>
</message>
<message>
<source>Ctrl+Shift+U</source>
- <translation></translation>
+ <translation>Ctrl+Shift+U</translation>
+ </message>
+ <message>
+ <source>Meta+Shift+T</source>
+ <translation>Meta+Shift+T</translation>
</message>
<message>
<source>Rename Symbol Under Cursor</source>
@@ -3319,11 +3400,11 @@ Note: This might remove the local file.</source>
</message>
<message>
<source>Ctrl+Shift+T</source>
- <translation></translation>
+ <translation>Ctrl+Shift+T</translation>
</message>
<message>
<source>CTRL+SHIFT+R</source>
- <translation></translation>
+ <translation>CTRL+SHIFT+R</translation>
</message>
<message>
<source>Update Code Model</source>
@@ -3334,7 +3415,7 @@ Note: This might remove the local file.</source>
<name>CppEditor::Internal::CppSnippetProvider</name>
<message>
<source>C++</source>
- <translation></translation>
+ <translation>C++</translation>
</message>
</context>
<context>
@@ -3362,7 +3443,7 @@ Note: This might remove the local file.</source>
<context>
<name>CppEditor::Internal::InsertQtPropertyMembers</name>
<message>
- <source>Generate missing Q_PROPERTY members...</source>
+ <source>Generate Missing Q_PROPERTY Members...</source>
<translation>Згенерувати відÑутні члени Q_PROPERTY...</translation>
</message>
</context>
@@ -3385,7 +3466,7 @@ Note: This might remove the local file.</source>
</message>
<message>
<source>C++</source>
- <translation></translation>
+ <translation>C++</translation>
</message>
</context>
<context>
@@ -3397,11 +3478,11 @@ Note: This might remove the local file.</source>
</message>
<message>
<source>Qt</source>
- <translation></translation>
+ <translation>Qt</translation>
</message>
<message>
<source>GNU</source>
- <translation></translation>
+ <translation>GNU</translation>
</message>
<message>
<source>Old Creator</source>
@@ -3460,7 +3541,7 @@ Note: This might remove the local file.</source>
</message>
<message>
<source>Automatically insert semicolons and closing brackets, parentheses, curly braces, and quotes when appropriate.</source>
- <translation>Ðвтоматично вÑтавлÑти крапки з комами, закриваючі квадратні, кругліб фігурні дужки та лапки, коли необіхдно.</translation>
+ <translation>Ðвтоматично вÑтавлÑти крапки з комами, закриваючі квадратні, круглі, фігурні дужки та лапки, коли необхідно.</translation>
</message>
<message>
<source>&amp;Automatically insert matching characters</source>
@@ -3582,7 +3663,7 @@ Note: This might remove the local file.</source>
</message>
<message>
<source>&quot;switch&quot;</source>
- <translation></translation>
+ <translation>&quot;switch&quot;</translation>
</message>
<message>
<source>Indent within &quot;switch&quot;</source>
@@ -3768,7 +3849,7 @@ if (a &amp;&amp;
<name>CppTools::Internal::CppToolsPlugin</name>
<message>
<source>&amp;C++</source>
- <translation></translation>
+ <translation>&amp;C++</translation>
</message>
<message>
<source>Switch Header/Source</source>
@@ -3823,7 +3904,7 @@ Flags: %3</source>
</message>
<message>
<source>, </source>
- <translation></translation>
+ <translation>, </translation>
</message>
</context>
<context>
@@ -3963,6 +4044,11 @@ Flags: %3</source>
<translation>Загальне</translation>
</message>
<message>
+ <source>Locals &amp;&amp; Expressions</source>
+ <extracomment>&apos;&amp;&amp;&apos; will appear as one (one is marking keyboard shortcut)</extracomment>
+ <translation>Локальні змінні та вирази</translation>
+ </message>
+ <message>
<source>Debugger</source>
<translation>Зневаджувач</translation>
</message>
@@ -3971,12 +4057,8 @@ Flags: %3</source>
<translation>&lt;Помилка кодуваннÑ&gt;</translation>
</message>
<message>
- <source>Debugging Helper</source>
- <translation>Помічник зневадженнÑ</translation>
- </message>
- <message>
<source>Ctrl+Shift+F11</source>
- <translation></translation>
+ <translation>Ctrl+Shift+F11</translation>
</message>
</context>
<context>
@@ -4113,7 +4195,7 @@ Flags: %3</source>
</message>
<message>
<source>Jump to Line %1</source>
- <translation></translation>
+ <translation>Перейти до Ñ€Ñдка %1</translation>
</message>
</context>
<context>
@@ -4139,36 +4221,16 @@ Flags: %3</source>
<translation>Ðеправильна Ð¾Ð¿Ñ†Ñ–Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÑƒÐ²Ð°Ñ‡Ð°: %1</translation>
</message>
<message>
- <source>The application requires the debugger engine &apos;%1&apos;, which is disabled.</source>
- <translation>Програма вимагає рушій Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ &apos;%1&apos;, Ñкий вимкнуто.</translation>
- </message>
- <message>
<source>Some breakpoints cannot be handled by the debugger languages currently active, and will be ignored.</source>
<translation>ДеÑкі точки перепину, що неможливо обробити активними мовами зневадженнÑ, будуть проігноровані.</translation>
</message>
<message>
- <source>The debugger engine &apos;%1&apos; is disabled.</source>
- <translation>Рушій Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ &apos;%1&apos; вимкнуто.</translation>
- </message>
- <message>
- <source>The debugger engine &apos;%1&apos; required for debugging binaries of the type &apos;%2&apos; is not configured correctly.</source>
- <translation>Рушій &apos;%1&apos;, Ñкий необхідний Ð´Ð»Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð±Ñ–Ð½Ð°Ñ€Ð½Ð¸Ñ… модулів типу &apos;%2&apos;, невірно Ñконфігуровано.</translation>
- </message>
- <message>
- <source>None of the debugger engines &apos;%1&apos; capable of debugging binaries of the type &apos;%2&apos; is configured correctly.</source>
- <translation>Жодний з рушіїв &apos;%1&apos;, здатних до Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð±Ñ–Ð½Ð°Ñ€Ð½Ð¸Ñ… модулів типу &apos;%2&apos;, не Ñконфігуровано вірно.</translation>
- </message>
- <message>
- <source>The preferred debugger engine for debugging binaries of type &apos;%1&apos; is not available.
-The debugger engine &apos;%2&apos; will be used as a fallback.
-Details: %3</source>
- <translation>Бажаний рушій Ð´Ð»Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð±Ñ–Ð½Ð°Ñ€Ð½Ð¸Ñ… модулів типу &apos;%1&apos; не доÑтупний.
-Рушій Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ &apos;%2&apos; буде викориÑтано Ñк заміну.
-Деталі: %3</translation>
+ <source>Install &amp;Debug Information</source>
+ <translation>Ð’Ñтановити зневад&amp;жувальну інформацію</translation>
</message>
<message>
- <source>Warning</source>
- <translation>ПопередженнÑ</translation>
+ <source>Tries to install missing debug information.</source>
+ <translation>Спробувати вÑтановити відÑутню зневаджувальну інформацію.</translation>
</message>
</context>
<context>
@@ -4211,48 +4273,6 @@ Details: %3</source>
</message>
</context>
<context>
- <name>Debugger::Internal::AbstractGdbAdapter</name>
- <message>
- <source>The gdb process could not be stopped:
-%1</source>
- <translation>Ðе вдалоÑÑŒ зупинити Ð¿Ñ€Ð¾Ñ†ÐµÑ gdb:
-%1</translation>
- </message>
- <message>
- <source>Application process could not be stopped:
-%1</source>
- <translation>Ðе вдалоÑÑŒ зупинити Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸:
-%1</translation>
- </message>
- <message>
- <source>Application started</source>
- <translation>Програму запущено</translation>
- </message>
- <message>
- <source>Application running</source>
- <translation>Програма виконуєтьÑÑ</translation>
- </message>
- <message>
- <source>Attached to stopped application</source>
- <translation>Під&apos;єднано до зупиненої програми</translation>
- </message>
- <message>
- <source>Connecting to remote server failed:
-%1</source>
- <translation>Збій Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ віддаленого Ñервера:
-%1</translation>
- </message>
-</context>
-<context>
- <name>Debugger::Internal::AbstractPlainGdbAdapter</name>
- <message>
- <source>Starting executable failed:
-</source>
- <translation>Збій запуÑку виконуваного модулÑ:
-</translation>
- </message>
-</context>
-<context>
<name>Debugger::Internal::AddressDialog</name>
<message>
<source>Select Start Address</source>
@@ -4266,114 +4286,48 @@ Details: %3</source>
<context>
<name>Debugger::Internal::AttachCoreDialog</name>
<message>
- <source>Select Executable</source>
- <translation>Виберіть виконуваний модуль</translation>
- </message>
- <message>
- <source>Select Core File</source>
- <translation>Виберіть файл Core</translation>
- </message>
- <message>
- <source>Select Sysroot</source>
- <translation>Оберіть Sysroot</translation>
- </message>
- <message>
- <source>Select Startup Script</source>
- <translation>Оберіть Ñкрипт запуÑку</translation>
- </message>
- <message>
- <source>Start Debugger</source>
- <translation>ЗапуÑтити зневаджувач</translation>
- </message>
- <message>
- <source>&amp;Executable:</source>
- <translation>Виконуваний &amp;модуль:</translation>
- </message>
- <message>
- <source>&amp;Core file:</source>
- <translation>&amp;Файл core:</translation>
- </message>
- <message>
- <source>&amp;Tool chain:</source>
- <translation>Ðабір &amp;інÑтрументів:</translation>
- </message>
- <message>
- <source>Sys&amp;root:</source>
- <translation>Sys&amp;root:</translation>
+ <source>Load Core File</source>
+ <translation>Завантажити файл Core</translation>
</message>
<message>
- <source>Override &amp;start script:</source>
- <translation>Інший Ñкрипт &amp;запуÑку:</translation>
- </message>
-</context>
-<context>
- <name>Debugger::Internal::AttachExternalDialog</name>
- <message>
- <source>Process ID</source>
- <translation>ID процеÑу</translation>
- </message>
- <message>
- <source>Name</source>
- <translation>Ðазва</translation>
- </message>
- <message>
- <source>State</source>
- <translation>Стан</translation>
- </message>
- <message>
- <source>Refresh</source>
- <translation>Оновити</translation>
- </message>
- <message>
- <source>Process Already Under Debugger Control</source>
- <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ Ð²Ð¶Ðµ під контролем зневаджувача</translation>
+ <source>Browse...</source>
+ <translation>ОглÑд...</translation>
</message>
<message>
- <source>The process %1 is already under the control of a debugger.
-Qt Creator cannot attach to it.</source>
- <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ %1 вже під контролем зневаджувача.
-Qt Creator не може під&apos;єднатиÑÑŒ до нього.</translation>
+ <source>Use local core file:</source>
+ <translation>ВикориÑтовувати локальний файл Core:</translation>
</message>
<message>
- <source>Start Debugger</source>
- <translation>ЗапуÑтити зневаджувач</translation>
+ <source>Select Executable</source>
+ <translation>Виберіть виконуваний модуль</translation>
</message>
<message>
- <source>Attach to &amp;process ID:</source>
- <translation>Під&apos;єднатиÑÑŒ до &amp;процеÑу з ID:</translation>
+ <source>Kit:</source>
+ <translation>ІнÑтрументарій:</translation>
</message>
<message>
- <source>&amp;Tool chain:</source>
- <translation>Ðабір &amp;інÑтрументів:</translation>
+ <source>Core file:</source>
+ <translation>Файл core:</translation>
</message>
-</context>
-<context>
- <name>Debugger::Internal::AttachGdbAdapter</name>
<message>
- <source>Attached to process %1.</source>
- <translation>Під&apos;єднано до процеÑу %1.</translation>
+ <source>Select Remote Core File</source>
+ <translation>Виберіть віддалений файл Core</translation>
</message>
-</context>
-<context>
- <name>Debugger::Internal::BaseWindow</name>
<message>
- <source>Adjust Column Widths to Contents</source>
- <translation>Підгнати ширину Ñтовпців до зміÑту</translation>
+ <source>Select Core File</source>
+ <translation>Виберіть файл Core</translation>
</message>
-</context>
-<context>
- <name>Debugger::Internal::BreakCondition</name>
<message>
- <source>&amp;Condition:</source>
- <translation>&amp;Умова:</translation>
+ <source>Select Startup Script</source>
+ <translation>Оберіть Ñкрипт запуÑку</translation>
</message>
<message>
- <source>&amp;Ignore count:</source>
- <translation>&amp;КількіÑÑ‚ÑŒ пропуÑків:</translation>
+ <source>&amp;Executable:</source>
+ <translation>Виконуваний &amp;модуль:</translation>
</message>
<message>
- <source>&amp;Thread specification:</source>
- <translation>&amp;Ð¡Ð¿ÐµÑ†Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Ð½Ð¸Ñ‚ÐºÐ¸:</translation>
+ <source>Override &amp;start script:</source>
+ <translation>Інший Ñкрипт &amp;запуÑку:</translation>
</message>
</context>
<context>
@@ -4427,6 +4381,10 @@ Qt Creator не може під&apos;єднатиÑÑŒ до нього.</translat
<translation>Ðазва функції:</translation>
</message>
<message>
+ <source>Breakpoint on QML Signal Emit</source>
+ <translation>Точка перепину при подачі Ñигналу QML</translation>
+ </message>
+ <message>
<source>Data at 0x%1</source>
<translation>Дані в 0x%1</translation>
</message>
@@ -4548,10 +4506,6 @@ Qt Creator не може під&apos;єднатиÑÑŒ до нього.</translat
<translation>Точка перепину в функції &quot;main()&quot;</translation>
</message>
<message>
- <source>Breakpoint on QML Signal Handler</source>
- <translation>Точка перепину на обробнику Ñигнала QML</translation>
- </message>
- <message>
<source>Breakpoint at JavaScript throw</source>
<translation>Точка перепину на throw в JavaScript</translation>
</message>
@@ -4622,66 +4576,6 @@ Qt Creator не може під&apos;єднатиÑÑŒ до нього.</translat
<source>Breakpoints</source>
<translation>Точки перепину</translation>
</message>
- <message>
- <source>Delete Breakpoint</source>
- <translation>Видалити точку перепину</translation>
- </message>
- <message>
- <source>Delete All Breakpoints</source>
- <translation>Видалити уÑÑ– точки перепину</translation>
- </message>
- <message>
- <source>Delete Breakpoints of &quot;%1&quot;</source>
- <translation>Видалити точки перепину з &quot;%1&quot;</translation>
- </message>
- <message>
- <source>Delete Breakpoints of File</source>
- <translation>Видалити точки перепину з файлу</translation>
- </message>
- <message>
- <source>Adjust Column Widths to Contents</source>
- <translation>Підгнати ширину Ñтовпців до зміÑту</translation>
- </message>
- <message>
- <source>Edit Breakpoint...</source>
- <translation>Редагувати точку перепину...</translation>
- </message>
- <message>
- <source>Associate Breakpoint With All Threads</source>
- <translation>ЗіÑтавити точку перепину з уÑіма нитками</translation>
- </message>
- <message>
- <source>Associate Breakpoint With Thread %1</source>
- <translation>ЗіÑтавити точку перепину з ниткою %1</translation>
- </message>
- <message>
- <source>Synchronize Breakpoints</source>
- <translation>Синхронізувати точки перепину</translation>
- </message>
- <message>
- <source>Disable Selected Breakpoints</source>
- <translation>Вимкнути виділені точки перепину</translation>
- </message>
- <message>
- <source>Enable Selected Breakpoints</source>
- <translation>Увімкнути виділені точки перепину</translation>
- </message>
- <message>
- <source>Disable Breakpoint</source>
- <translation>Вимкнути точку перепину</translation>
- </message>
- <message>
- <source>Enable Breakpoint</source>
- <translation>Увімкнути точку перепину</translation>
- </message>
- <message>
- <source>Add Breakpoint...</source>
- <translation>Додати точку перепину...</translation>
- </message>
- <message>
- <source>Add Breakpoint</source>
- <translation>Додати точку перепину</translation>
- </message>
</context>
<context>
<name>Debugger::Internal::BreakpointDialog</name>
@@ -4730,10 +4624,6 @@ Qt Creator не може під&apos;єднатиÑÑŒ до нього.</translat
<translation>ПерепинÑти при доÑтупі до даних за адреÑою вказаною у виразі</translation>
</message>
<message>
- <source>Break on QML signal handler</source>
- <translation>ПерепинÑти на обробнику Ñигнала QML</translation>
- </message>
- <message>
<source>Break when JavaScript exception is thrown</source>
<translation>ПерепинÑти, коли трапилаÑÑŒ виключна ÑÐ¸Ñ‚ÑƒÐ°Ñ†Ñ–Ñ JavaScript</translation>
</message>
@@ -4746,14 +4636,8 @@ debugger start-up times (CDB, LLDB).</source>
Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку зневаджувача (CDB, LLDB).</translation>
</message>
<message>
- <source>Debugger command to be executed when the breakpoint is hit.
-GDB allows for specifying a sequence of commands separated by the delimiter &apos;\n&apos;.</source>
- <translation>Команда зневаджувача, Ñка буде виконана, коли Ñпрацює точка перепину.
-GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, розділивши Ñ—Ñ… &apos;\n&apos;.</translation>
- </message>
- <message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Determines how the path is specified when setting breakpoints:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;Use Engine Default&lt;/i&gt;: Preferred setting of the debugger engine.&lt;/li&gt;&lt;li&gt;&lt;i&gt;Use Full Path&lt;/i&gt;: Pass full path, avoiding ambiguities should files of the same name exist in several modules. This is the engine default for CDB and LLDB.&lt;/li&gt;&lt;li&gt;&lt;i&gt;Use File Name&lt;/i&gt;: Pass the file name only. This is useful when using a source tree whose location does not match the one used when building the modules. It is the engine default for GDB as using full paths can be slow with this engine.&lt;/li&gt;&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Визначає, Ñк задаєтьÑÑ ÑˆÐ»ÑÑ… при вÑтановленні точок перепину:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;Типовий Ð´Ð»Ñ Ñ€ÑƒÑˆÑ–Ñ&lt;/i&gt;: Типове Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÑƒÑˆÑ–Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ.&lt;/li&gt;&lt;li&gt;&lt;i&gt;Повний шлÑÑ…&lt;/i&gt;: Передавати повний шлÑÑ…, що дозволÑÑ” уникнути неоднозначноÑтей, Ñкщо файли з однаковим іменем приÑутні в декількох модулÑÑ…. Це типове Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ€ÑƒÑˆÑ–Ñ—Ð² CDB та LLDB.&lt;/li&gt;&lt;li&gt;&lt;i&gt;Ім&apos;Ñ Ñ„Ð°Ð¹Ð»Ñƒ&lt;/i&gt;: Передавати лише ім&apos;Ñ Ñ„Ð°Ð¹Ð»Ñƒ. Це кориÑно, коли викориÑтовуєтьÑÑ Ð´ÐµÑ€ÐµÐ²Ð¾ коду, у Ñкого Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ збігаєтьÑÑ Ð· міÑцем збірки модулів. Це типовне Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ€ÑƒÑˆÑ–Ñ GDB, оÑкільки повні шлÑхи можуть уповільнити цей рушій.&lt;/li&gt;&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Визначає, Ñк задаєтьÑÑ ÑˆÐ»ÑÑ… при вÑтановленні точок перепину:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;Типовий Ð´Ð»Ñ Ñ€ÑƒÑˆÑ–Ñ&lt;/i&gt;: Типове Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÑƒÑˆÑ–Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ.&lt;/li&gt;&lt;li&gt;&lt;i&gt;Повний шлÑÑ…&lt;/i&gt;: Передавати повний шлÑÑ…, що дозволÑÑ” уникнути неоднозначноÑтей, Ñкщо файли з однаковим іменем приÑутні в декількох модулÑÑ…. Це типове Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ€ÑƒÑˆÑ–Ñ—Ð² CDB та LLDB.&lt;/li&gt;&lt;li&gt;&lt;i&gt;Ім&apos;Ñ Ñ„Ð°Ð¹Ð»Ñƒ&lt;/i&gt;: Передавати лише ім&apos;Ñ Ñ„Ð°Ð¹Ð»Ñƒ. Це кориÑно, коли викориÑтовуєтьÑÑ Ð´ÐµÑ€ÐµÐ²Ð¾ коду, у Ñкого Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ збігаєтьÑÑ Ð· міÑцем збірки модулів. Це типове Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ€ÑƒÑˆÑ–Ñ GDB, оÑкільки повні шлÑхи можуть уповільнити цей рушій.&lt;/li&gt;&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Edit Breakpoint Properties</source>
@@ -4764,6 +4648,10 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
<translation>ОÑновне</translation>
</message>
<message>
+ <source>Break on QML signal emit</source>
+ <translation>Точка перепину при подачі Ñигналу QML</translation>
+ </message>
+ <message>
<source>Breakpoint &amp;type:</source>
<translation>&amp;Тип точки перепину:</translation>
</message>
@@ -4796,6 +4684,10 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
<translation>Лише траÑу&amp;ваннÑ:</translation>
</message>
<message>
+ <source>&amp;One shot only:</source>
+ <translation>Ли&amp;ше один раз:</translation>
+ </message>
+ <message>
<source>Pat&amp;h:</source>
<translation>&amp;ШлÑÑ…:</translation>
</message>
@@ -4804,10 +4696,6 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
<translation>Моду&amp;ль:</translation>
</message>
<message>
- <source>&amp;Command:</source>
- <translation>Коман&amp;да:</translation>
- </message>
- <message>
<source>Use Engine Default</source>
<translation>Типовий Ð´Ð»Ñ Ñ€ÑƒÑˆÑ–Ñ</translation>
</message>
@@ -4820,6 +4708,16 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
<translation>Ім&apos;Ñ Ñ„Ð°Ð¹Ð»Ñƒ</translation>
</message>
<message>
+ <source>Debugger commands to be executed when the breakpoint is hit.
+This feature is only available for GDB.</source>
+ <translation>Команди зневаджувача, Ñкі будуть виконані, коли Ñпрацює точка перепину.
+Ð¦Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ñ–ÑÑ‚ÑŒ доÑтупна лише Ð´Ð»Ñ GDB.</translation>
+ </message>
+ <message>
+ <source>&amp;Commands:</source>
+ <translation>Коман&amp;ди:</translation>
+ </message>
+ <message>
<source>C&amp;ondition:</source>
<translation>&amp;Умова:</translation>
</message>
@@ -4897,26 +4795,6 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
<context>
<name>Debugger::Internal::CdbEngine</name>
<message>
- <source>There is no CDB binary available for binaries in format &apos;%1&apos;</source>
- <translation>ВідÑутній CDB Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ð¹ модулів в форматі &apos;%1&apos;</translation>
- </message>
- <message>
- <source>The CDB debug engine required for %1 is currently disabled.</source>
- <translation>Рушій Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ CDB, необхідний Ð´Ð»Ñ %1, зараз вимкнено.</translation>
- </message>
- <message>
- <source>The CDB engine does not support start mode %1.</source>
- <translation>Рушій CDB не підтримує режим запуÑку %1.</translation>
- </message>
- <message>
- <source>The CDB debug engine does not support the %1 ABI.</source>
- <translation>Рушій CDB не підтримує режим ABI %1.</translation>
- </message>
- <message>
- <source>The CDB debug engine cannot debug gdb core files.</source>
- <translation>Рушій CDB не може зневаджувати файли core gdb.</translation>
- </message>
- <message>
<source>The console process &apos;%1&apos; could not be started.</source>
<translation>Ðе вдалоÑÑŒ запуÑтити конÑольний Ð¿Ñ€Ð¾Ñ†ÐµÑ &apos;%1&apos;.</translation>
</message>
@@ -4970,7 +4848,7 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
</message>
<message>
<source>&quot;Select Widget to Watch&quot;: Please stop the application first.</source>
- <translation>&quot;Оберіть віджет Ð´Ð»Ñ Ð½Ð°Ð³Ð»Ñду&quot;: Будь-лаÑка, Ñпочатку зупиніть програму.</translation>
+ <translation>&quot;Оберіть віджет Ð´Ð»Ñ Ð½Ð°Ð³Ð»Ñду&quot;: Будь лаÑка, Ñпочатку зупиніть програму.</translation>
</message>
<message>
<source>&quot;Select Widget to Watch&quot;: Not supported in state &apos;%1&apos;.</source>
@@ -4981,7 +4859,7 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
<name>Debugger::Internal::CdbOptionsPage</name>
<message>
<source>CDB</source>
- <translation></translation>
+ <translation>CDB</translation>
</message>
</context>
<context>
@@ -5025,12 +4903,20 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Attempt to correct the location of a breakpoint based on file and line number should it be in a comment or in a line for which no code is generated. The correction is based on the code model.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;ÐамагатиÑÑŒ підправлÑти Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ перепину, що оÑнована на файлі та номері Ñ€Ñдка, Ñкий Ñ” коментарем або Ð´Ð»Ñ Ñкого код не генеруєтьÑÑ. Ð’Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ñ Ð¾Ñноване на моделі коду.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;ÐамагатиÑÑŒ підправлÑти Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ перепину, що оÑнована на файлі та номері Ñ€Ñдка, Ñкий Ñ” коментарем або Ð´Ð»Ñ Ñкого код не генеруєтьÑÑ. Ð’Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð¾Ñноване на моделі коду.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Correct breakpoint location</source>
<translation>ПідправлÑти Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¾Ñ‡Ð¾Ðº перепину</translation>
</message>
+ <message>
+ <source>Break on functions:</source>
+ <translation>ПерепинÑти на функціÑÑ…:</translation>
+ </message>
+ <message>
+ <source>This is useful to catch runtime error messages, for example caused by assert().</source>
+ <translation>КориÑно Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð¿Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилки під Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ, наприклад через assert().</translation>
+ </message>
</context>
<context>
<name>Debugger::Internal::CdbSymbolPathListEditor</name>
@@ -5043,8 +4929,8 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
<translation>Додає Ñервер Ñимволів Microsoft, що надає Ñимволи Ð´Ð»Ñ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐº операційної ÑиÑтеми. Ðеобхідно вказати теку Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ кешу.</translation>
</message>
<message>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The debugger is not configured to use the public &lt;a href=&quot;%1&quot;&gt;Microsoft Symbol Server&lt;/a&gt;. This is recommended for retrieval of the symbols of the operating system libraries.&lt;/p&gt;&lt;p&gt;&lt;i&gt;Note:&lt;/i&gt; A fast internet connection is required for this to work smoothly. Also, a delay might occur when connecting for the first time.&lt;/p&gt;&lt;p&gt;Would you like to set it up?&lt;/p&gt;&lt;/br&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Зневаджувач не налаштовано Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð¿ÑƒÐ±Ð»Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ &lt;a href=&quot;%1&quot;&gt;Ñерверу Ñимволів Microsoft&lt;/a&gt;. РекомендуєтьÑÑ Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñимволів бібліотек операційної ÑиÑтеми.&lt;/p&gt;&lt;p&gt;&lt;i&gt;Примітка:&lt;/i&gt; Ðеобхідне швидке з&apos;Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· Internet Ð´Ð»Ñ Ð·Ñ€ÑƒÑ‡Ð½Ð¾Ñ— роботи. Також можливао затримка під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÑˆÐ¾Ð³Ð¾ підключеннÑ.&lt;/p&gt;&lt;p&gt;Бажаєте налаштувати?&lt;/p&gt;&lt;/br&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The debugger is not configured to use the public &lt;a href=&quot;%1&quot;&gt;Microsoft Symbol Server&lt;/a&gt;. This is recommended for retrieval of the symbols of the operating system libraries.&lt;/p&gt;&lt;p&gt;&lt;i&gt;Note:&lt;/i&gt; A fast internet connection is required for this to work smoothly. Also, a delay might occur when connecting for the first time.&lt;/p&gt;&lt;p&gt;Would you like to set it up?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Зневаджувач не налаштовано Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð¿ÑƒÐ±Ð»Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ &lt;a href=&quot;%1&quot;&gt;Ñерверу Ñимволів Microsoft&lt;/a&gt;. РекомендуєтьÑÑ Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñимволів бібліотек операційної ÑиÑтеми.&lt;/p&gt;&lt;p&gt;&lt;i&gt;Примітка:&lt;/i&gt; Ðеобхідне швидке з&apos;Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· Internet Ð´Ð»Ñ Ð·Ñ€ÑƒÑ‡Ð½Ð¾Ñ— роботи. Також можлива затримка під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÑˆÐ¾Ð³Ð¾ підключеннÑ.&lt;/p&gt;&lt;p&gt;Бажаєте налаштувати?&lt;/p&gt;&lt;/br&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Symbol Server</source>
@@ -5056,68 +4942,6 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
</message>
</context>
<context>
- <name>Debugger::Internal::CodaGdbAdapter</name>
- <message>
- <source>Process started, PID: 0x%1, thread id: 0x%2, code segment: 0x%3, data segment: 0x%4.</source>
- <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð¾, PID: 0x%1, id нитки: 0x%2, Ñегмент коду: 0x%3, Ñегмент даних: 0x%4.</translation>
- </message>
- <message>
- <source>Connecting to CODA server adapter failed:
-</source>
- <translation>Збій Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ адаптера Ñервера CODA:
-</translation>
- </message>
- <message>
- <source>Could not obtain device.</source>
- <translation>Ðе вдалоÑÑŒ отримати приÑтрій.</translation>
- </message>
-</context>
-<context>
- <name>Debugger::Internal::CoreGdbAdapter</name>
- <message>
- <source>The name of the binary file cannot be extracted from this core file.</source>
- <translation>Ðеможливо отримати ім&apos;Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾ Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð· цього файлу core.</translation>
- </message>
- <message>
- <source>Try to specify the binary using the &lt;i&gt;Debug-&gt;Start Debugging-&gt;Attach to Core&lt;/i&gt; dialog.</source>
- <translation>Спробуйте вказати виконуваний модуль, викориÑтовуючи діалог &lt;i&gt;ЗневадженнÑ-&gt;Почати зневадженнÑ-&gt;Під&apos;єднатиÑÑŒ до Core&lt;/i&gt;.</translation>
- </message>
- <message>
- <source>Loading core file failed</source>
- <translation>Збій Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ core</translation>
- </message>
- <message>
- <source>Attach to core failed.</source>
- <translation>Збій під&apos;Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð´Ð¾ core.</translation>
- </message>
- <message>
- <source>Attached to core temporarily.</source>
- <translation>ТимчаÑово під&apos;єднано до core.</translation>
- </message>
- <message>
- <source>Symbols found.</source>
- <translation>Символи знайдено.</translation>
- </message>
- <message>
- <source>No symbols found in core file &lt;i&gt;%1&lt;/i&gt;.</source>
- <translation>Ðе знайдено Ñимволів в файлі core &lt;i&gt;%1&lt;/i&gt;.</translation>
- </message>
- <message>
- <source>This can be caused by a path length limitation in the core file.</source>
- <translation>Це могло трапитиÑÑŒ через Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° довжину шлÑху в файлі core.</translation>
- </message>
- <message>
- <source>Attached to core.</source>
- <translation>Під&apos;єднано до core.</translation>
- </message>
- <message>
- <source>Attach to core &quot;%1&quot; failed:
-</source>
- <translation>Збій під&apos;Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð´Ð¾ core &quot;%1:
-</translation>
- </message>
-</context>
-<context>
<name>Debugger::Internal::DebuggerMainWindowPrivate</name>
<message>
<source>Memory...</source>
@@ -5216,22 +5040,6 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
<translation>Ðеможливо під&apos;єднатиÑÑŒ до процеÑу з PID 0</translation>
</message>
<message>
- <source>Debugger attached to %1</source>
- <translation>Зневаджувач під&apos;єднано до %1</translation>
- </message>
- <message>
- <source>gdbserver is now listening at %1</source>
- <translation>gdbserver зараз Ñлухає на %1</translation>
- </message>
- <message>
- <source>Cannot find local executable for remote process &quot;%1&quot;.</source>
- <translation>Ðе вдалоÑÑŒ знайти локальний виконуваний модуль Ð´Ð»Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ð³Ð¾ процеÑу &quot;%1&quot;.</translation>
- </message>
- <message>
- <source>Cannot find ABI for remote process &quot;%1&quot;.</source>
- <translation>Ðе вдалоÑÑŒ знайти ABI Ð´Ð»Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ð³Ð¾ процеÑу &quot;%1&quot;.</translation>
- </message>
- <message>
<source>Remove Breakpoint %1</source>
<translation>Видалити точку перепину %1</translation>
</message>
@@ -5280,34 +5088,10 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
<translation>ДизаÑемблювати функцію &quot;%1&quot;</translation>
</message>
<message>
- <source>Open Qt Options</source>
- <translation>Відкрити опції Qt</translation>
- </message>
- <message>
- <source>Turn off Helper Usage</source>
- <translation>Вимкнути викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð¾Ð¼Ñ–Ñ‡Ð½Ð¸ÐºÐ°</translation>
- </message>
- <message>
- <source>Continue Anyway</source>
- <translation>Ð’Ñе одно продовжити</translation>
- </message>
- <message>
- <source>Debugging Helper Missing</source>
- <translation>ВідÑтуній помічник зневадженнÑ</translation>
- </message>
- <message>
- <source>The debugger could not load the debugging helper library.</source>
- <translation>Зневаджувачу не вдалоÑÑŒ завантажити бібліотеку помічника зневадженнÑ.</translation>
- </message>
- <message>
<source>Debugger finished.</source>
<translation>Зневаджувач завершивÑÑ.</translation>
</message>
<message>
- <source>The debugging helper is used to nicely format the values of some Qt and Standard Library data types. It must be compiled for each used Qt version separately. In the Qt Creator Build and Run preferences page, select a Qt version, expand the Details section and click Build All.</source>
- <translation>Помічник Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð·Ð°ÑтоÑовуєтьÑÑ Ð´Ð»Ñ Ð·Ñ€ÑƒÑ‡Ð½Ð¾Ð³Ð¾ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´ÐµÑких типів даних Qt та Ñтандартної бібліотеки. Він має бути Ñкомпільований окремо Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ñ— верÑÑ–Ñ— Qt. Ðа Ñторінці налаштувань &quot;Збірка та запуÑк&quot;, оберіть верÑÑ–ÑŽ Qt, розгорніть розділ &quot;Детально&quot; та клацніть &quot;Зібрати вÑе&quot;.</translation>
- </message>
- <message>
<source>Starting debugger &quot;%1&quot; for ABI &quot;%2&quot;...</source>
<translation>ЗапуÑкаєтьÑÑ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÑƒÐ²Ð°Ñ‡ &quot;%1&quot; Ð´Ð»Ñ ABI &quot;%2&quot;...</translation>
</message>
@@ -5316,10 +5100,6 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
<translation>Продовжити</translation>
</message>
<message>
- <source>Exit Debugger</source>
- <translation>Вийти зі зневаджувача</translation>
- </message>
- <message>
<source>Interrupt</source>
<translation>Перервати</translation>
</message>
@@ -5368,10 +5148,6 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
<translation>Ð’Ñтановити/прибрати точку перепину</translation>
</message>
<message>
- <source>Add to Watch Window</source>
- <translation>Додати вікно наглÑду</translation>
- </message>
- <message>
<source>Reverse Direction</source>
<translation>Зворотній напрÑмок</translation>
</message>
@@ -5400,22 +5176,10 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
<translation>ЗапуÑтити та зневадити зовнішню програму...</translation>
</message>
<message>
- <source>Start and Debug External Application with External Engine...</source>
- <translation>ЗапуÑтити та зневадити зовнішню програму за допомогою зовнішнього рушіÑ...</translation>
- </message>
- <message>
- <source>Attach to Running Local Application...</source>
- <translation>Під&apos;єднатиÑÑŒ до запущеної локальної програми...</translation>
- </message>
- <message>
<source>Load Core File...</source>
<translation>Завантажити файл Core...</translation>
</message>
<message>
- <source>Start and Debug Remote Application...</source>
- <translation>ЗапуÑтити та зневадити віддалену програму...</translation>
- </message>
- <message>
<source>Attach to Remote Debug Server...</source>
<translation>Під&apos;єднатиÑÑŒ до віддаленого Ñервера зневадженнÑ...</translation>
</message>
@@ -5424,16 +5188,12 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
<translation>ЗапуÑтити Ñервер віддаленого Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´&apos;єднаним до процеÑу...</translation>
</message>
<message>
- <source>Attach to Running Remote Process...</source>
- <translation>Під&apos;єднатиÑÑŒ до віддаленого процеÑу, що виконуєтьÑÑ...</translation>
- </message>
- <message>
<source>Attach to QML Port...</source>
<translation>Під&apos;єднатиÑÑŒ до порту QML...</translation>
</message>
<message>
<source>Attach to Remote CDB Session...</source>
- <translation>Під&apos;єднатиÑÑŒ до віддаленго ÑеанÑу CDB...</translation>
+ <translation>Під&apos;єднатиÑÑŒ до віддаленого ÑеанÑу CDB...</translation>
</message>
<message>
<source>Detach Debugger</source>
@@ -5444,10 +5204,6 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
<translation>ЗапуÑтити Gdbserver</translation>
</message>
<message>
- <source>Attach to Remote Process</source>
- <translation>Під&apos;єднатиÑÑŒ до віддаленого процеÑу</translation>
- </message>
- <message>
<source>Interrupt Debugger</source>
<translation>Перервати зневаджувач</translation>
</message>
@@ -5456,10 +5212,112 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
<translation>Зупинити зневаджувач</translation>
</message>
<message>
+ <source>Process Already Under Debugger Control</source>
+ <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ Ð²Ð¶Ðµ під контролем зневаджувача</translation>
+ </message>
+ <message>
+ <source>The process %1 is already under the control of a debugger.
+Qt Creator cannot attach to it.</source>
+ <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ %1 вже під контролем зневаджувача.
+Qt Creator не може під&apos;єднатиÑÑŒ до нього.</translation>
+ </message>
+ <message>
+ <source>Ctrl+Y</source>
+ <translation>Ctrl+Y</translation>
+ </message>
+ <message>
+ <source>F5</source>
+ <translation>F5</translation>
+ </message>
+ <message>
+ <source>Add Expression Evaluator</source>
+ <translation>Додати обчиÑлюваний вираз</translation>
+ </message>
+ <message>
+ <source>Attach to Running Application...</source>
+ <translation>Під&apos;єднатиÑÑŒ до запущеної програми...</translation>
+ </message>
+ <message>
+ <source>Attach to Running Application</source>
+ <translation>Під&apos;єднатиÑÑŒ до запущеної програми</translation>
+ </message>
+ <message>
+ <source>Shift+Ctrl+Y</source>
+ <translation>Shift+Ctrl+Y</translation>
+ </message>
+ <message>
+ <source>Shift+F5</source>
+ <translation>Shift+F5</translation>
+ </message>
+ <message>
<source>Reset Debugger</source>
<translation>Скинути зневаджувач</translation>
</message>
<message>
+ <source>Ctrl+Shift+O</source>
+ <translation>Ctrl+Shift+O</translation>
+ </message>
+ <message>
+ <source>F10</source>
+ <translation>F10</translation>
+ </message>
+ <message>
+ <source>Ctrl+Shift+I</source>
+ <translation>Ctrl+Shift+I</translation>
+ </message>
+ <message>
+ <source>F11</source>
+ <translation>F11</translation>
+ </message>
+ <message>
+ <source>Ctrl+Shift+T</source>
+ <translation>Ctrl+Shift+T</translation>
+ </message>
+ <message>
+ <source>Shift+F11</source>
+ <translation>Shift+F11</translation>
+ </message>
+ <message>
+ <source>Shift+F8</source>
+ <translation>Shift+F8</translation>
+ </message>
+ <message>
+ <source>Ctrl+F10</source>
+ <translation>Ctrl+F10</translation>
+ </message>
+ <message>
+ <source>Ctrl+F6</source>
+ <translation>Ctrl+F6</translation>
+ </message>
+ <message>
+ <source>F12</source>
+ <translation>F12</translation>
+ </message>
+ <message>
+ <source>F8</source>
+ <translation>F8</translation>
+ </message>
+ <message>
+ <source>F9</source>
+ <translation>F9</translation>
+ </message>
+ <message>
+ <source>Apply Changes on Save</source>
+ <translation>ЗаÑтоÑувати зміни при збереженні</translation>
+ </message>
+ <message>
+ <source>Show Application On Top</source>
+ <translation>Показувати програму зверху</translation>
+ </message>
+ <message>
+ <source>Select</source>
+ <translation>Вибрати</translation>
+ </message>
+ <message>
+ <source>Zoom</source>
+ <translation>МаÑштаб</translation>
+ </message>
+ <message>
<source>Threads:</source>
<translation>Ðитки:</translation>
</message>
@@ -5547,12 +5405,32 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
<translation>Ð’Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ‚ÑŒ до запитів до моделі коду C++ за інформацією про облаÑÑ‚ÑŒ видимоÑÑ‚Ñ– змінної. Це може призвеÑти до дещо швидшого зневадженнÑ, але може не Ñпрацьовувати Ð´Ð»Ñ Ð¾Ð¿Ñ‚Ð¸Ð¼Ñ–Ð·Ð¾Ð²Ð°Ð½Ð¾Ð³Ð¾ коду.</translation>
</message>
<message>
+ <source>Break on &quot;abort&quot;</source>
+ <translation>ПерепинÑти на &quot;abort&quot;</translation>
+ </message>
+ <message>
+ <source>Use Tooltips in Locals View when Debugging</source>
+ <translation>ВикориÑтовувати Ñпливаючі підказки у переглÑді локальних змінних під Ñ‡Ð°Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ</translation>
+ </message>
+ <message>
+ <source>Use Tooltips in Breakpoints View when Debugging</source>
+ <translation>ВикориÑтовувати Ñпливаючі підказки у переглÑді точок перепину під Ñ‡Ð°Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ</translation>
+ </message>
+ <message>
+ <source>Show Address Data in Breakpoints View when Debugging</source>
+ <translation>Показувати адреÑу даних в переглÑді точок перепину під Ñ‡Ð°Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ</translation>
+ </message>
+ <message>
+ <source>Show Address Data in Stack View when Debugging</source>
+ <translation>Показувати адреÑу даних в переглÑді Ñтеку під Ñ‡Ð°Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ</translation>
+ </message>
+ <message>
<source>This switches the Locals&amp;&amp;Watchers view to automatically dereference pointers. This saves a level in the tree view, but also loses data for the now-missing intermediate level.</source>
- <translation>Вмикає автоматичне Ñ€Ð¾Ð·Ñ–Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÑ–Ð² у переглÑді локальних змінних. Цим зберігаєтьÑÑ Ð¾Ð´Ð¸Ð½ рівень в відображенні деревом, однак втрачаютьÑÑ Ð´Ð°Ð½Ñ– з проміжного рівнÑ, що тепер буде відÑтунім.</translation>
+ <translation>Вмикає автоматичне Ñ€Ð¾Ð·Ñ–Ð¼ÐµÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÑ–Ð² у переглÑді локальних змінних. Цим зберігаєтьÑÑ Ð¾Ð´Ð¸Ð½ рівень в відображенні деревом, однак втрачаютьÑÑ Ð´Ð°Ð½Ñ– з проміжного рівнÑ, що тепер буде відÑутнім.</translation>
</message>
<message>
<source>Debugger Font Size Follows Main Editor</source>
- <translation>Розмір шрифта зневаджувач відповідає головному редактору</translation>
+ <translation>Розмір шрифту зневаджувач відповідає головному редактору</translation>
</message>
<message>
<source>Sort Members of Classes and Structs Alphabetically</source>
@@ -5587,10 +5465,6 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
<translation>ПерепинÑти на &quot;qFatal&quot;</translation>
</message>
<message>
- <source>Break on &quot;raise&quot;</source>
- <translation>ПерепинÑти на &quot;raise&quot;</translation>
- </message>
- <message>
<source>Use Dynamic Object Type for Display</source>
<translation>ВикориÑтовувати динамічний тип об&apos;єкта Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ</translation>
</message>
@@ -5607,33 +5481,16 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
<translation>Вмикає Ñпливаючі підказки Ð´Ð»Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ змінних під Ñ‡Ð°Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ. Типово вимкнуто, оÑкільки це може уповільнити Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð° не надає надійної інформації, бо облаÑÑ‚ÑŒ видимоÑÑ‚Ñ– не враховуєтьÑÑ.</translation>
</message>
<message>
- <source>Use Tooltips in Locals View When Debugging</source>
- <translation>ВикориÑтовувати Ñпливаючі підказки у переглÑді локальних змінних під Ñ‡Ð°Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ</translation>
- </message>
- <message>
<source>Checking this will enable tooltips in the locals view during debugging.</source>
<translation>Вмикає Ñпливаючі підказки в переглÑді локальних змінних під Ñ‡Ð°Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ.</translation>
</message>
<message>
- <source>Use Tooltips in Breakpoints View When Debugging</source>
- <translation>ВикориÑтовувати Ñпливаючі підказки у переглÑді точок перепину під Ñ‡Ð°Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ</translation>
- </message>
- <message>
<source>Checking this will enable tooltips in the breakpoints view during debugging.</source>
<translation>Вмикає Ñпливаючі підказки в переглÑді точок перепину під Ñ‡Ð°Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ.</translation>
</message>
<message>
- <source>Show Address Data in Breakpoints View When Debugging</source>
- <translation>Показувати адреÑу даних в переглÑді точок перепину під Ñ‡Ð°Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ</translation>
- </message>
- <message>
<source>Checking this will show a column with address information in the breakpoint view during debugging.</source>
- <translatorcomment>Вмикає Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ ÑÑ‚Ð¾Ð²Ð¿Ñ†Ñ Ð· інформацією про адреÑу в переглÑді точок перепину під Ñ‡Ð°Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ.</translatorcomment>
- <translation></translation>
- </message>
- <message>
- <source>Show Address Data in Stack View When Debugging</source>
- <translation>Показувати адреÑу даних в переглÑді Ñтеку під Ñ‡Ð°Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ</translation>
+ <translation>Вмикає Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ ÑÑ‚Ð¾Ð²Ð¿Ñ†Ñ Ð· інформацією про адреÑу в переглÑді точок перепину під Ñ‡Ð°Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ.</translation>
</message>
<message>
<source>Checking this will show a column with address information in the stack view during debugging.</source>
@@ -5728,17 +5585,6 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
</message>
</context>
<context>
- <name>Debugger::Internal::DebuggerToolChainComboBox</name>
- <message>
- <source>%1 (%2)</source>
- <translation></translation>
- </message>
- <message>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;ABI:&lt;/td&gt;&lt;td&gt;&lt;i&gt;%1&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Debugger:&lt;/td&gt;&lt;td&gt;%2&lt;/td&gt;&lt;/tr&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;ABI:&lt;/td&gt;&lt;td&gt;&lt;i&gt;%1&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Зневаджувач:&lt;/td&gt;&lt;td&gt;%2&lt;/td&gt;&lt;/tr&gt;</translation>
- </message>
-</context>
-<context>
<name>Debugger::Internal::DebuggerToolTipWidget</name>
<message>
<source>Previous</source>
@@ -5770,8 +5616,7 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
</message>
<message>
<source>The debugging helper library was not found at %1.</source>
- <translatorcomment>Бібліотеку помічника Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð½Ðµ знайдено в %1.</translatorcomment>
- <translation></translation>
+ <translation>Бібліотеку помічника Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð½Ðµ знайдено в %1.</translation>
</message>
<message numerus="yes">
<source>Dumper version %1, %n custom dumpers found.</source>
@@ -5793,7 +5638,7 @@ GDB дозволÑÑ” задавати поÑлідовніÑÑ‚ÑŒ команд, Ñ
<source>The Qt version used to build the debugging helpers (%1) does not match the Qt version used to build the debugged application (%2).
This might yield incorrect results.</source>
<translation>ВерÑÑ–Ñ Qt, що викориÑтовувалаÑÑŒ Ð´Ð»Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸ помічників Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ (%1) не збігаєтьÑÑ Ð· верÑією Qt, що викориÑтовувалаÑÑŒ Ð´Ð»Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸ програми, що зневаджуєтьÑÑ (%2).
-Це може призвеÑти до некорректних результатів.</translation>
+Це може призвеÑти до некоректних результатів.</translation>
</message>
<message>
<source>&lt;n/a&gt;</source>
@@ -5810,7 +5655,7 @@ This might yield incorrect results.</source>
</message>
<message>
<source>The last waitFor...() function timed out. The state of QProcess is unchanged, and you can try calling waitFor...() again.</source>
- <translation>У оÑтанньої фукнції waitFor...() вичерпано чаÑ.Стан QProcess не змінивÑÑ, ви можете Ñпробувати викликати waitFor...() знову.</translation>
+ <translation>У оÑтанньої функції waitFor...() вичерпано чаÑ.Стан QProcess не змінивÑÑ, ви можете Ñпробувати викликати waitFor...() знову.</translation>
</message>
<message>
<source>Library %1 loaded</source>
@@ -5869,16 +5714,12 @@ This might yield incorrect results.</source>
<translation>Збій виконуваного модулÑ: %1</translation>
</message>
<message>
- <source>&lt;unknown&gt;</source>
- <translation>&lt;невідомий&gt;</translation>
- </message>
- <message>
<source>Jumped. Stopped</source>
<translation>Перехід здійÑнено. Зупинено</translation>
</message>
<message>
<source>Target line hit. Stopped</source>
- <translation>ДоÑÑгнуто вказанутого Ñ€Ñдка. Зупинено</translation>
+ <translation>ДоÑÑгнуто вказаного Ñ€Ñдка. Зупинено</translation>
</message>
<message>
<source>Application exited with exit code %1</source>
@@ -5893,10 +5734,6 @@ This might yield incorrect results.</source>
<translation>Програма завершилаÑÑŒ нормально</translation>
</message>
<message>
- <source>Loading %1...</source>
- <translation>Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ %1...</translation>
- </message>
- <message>
<source>Stopped.</source>
<translation>Зупинено.</translation>
</message>
@@ -5911,7 +5748,7 @@ This might yield incorrect results.</source>
<message>
<source>Cannot continue debugged process:
</source>
- <translation>Ðеможливо продовжити процеÑ, що зневажуєтÑÑŒÑ:
+ <translation>Ðеможливо продовжити процеÑ, що зневаджуєтьÑÑ:
</translation>
</message>
<message>
@@ -5927,18 +5764,12 @@ This might yield incorrect results.</source>
<translation>Запитано запуÑк...</translation>
</message>
<message>
- <source>The gdb process failed to start. Either the invoked program &apos;%1&apos; is missing, or you may have insufficient permissions to invoke the program.
-%2</source>
- <translation>Збій запуÑку процеÑу gdb. Ðбо програма %1, що викликаєтьÑÑ Ð²Ñ–Ð´ÑутнÑ, або, можливо, ви маєте недоÑтатньо прав Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку програми.
-%2</translation>
- </message>
- <message>
<source>The gdb process crashed some time after starting successfully.</source>
<translation>ÐŸÑ€Ð¾Ñ†ÐµÑ gdb завершивÑÑ Ð°Ð²Ð°Ñ€Ñ–Ð¹Ð½Ð¾ через деÑкий Ñ‡Ð°Ñ Ð¿Ñ–ÑÐ»Ñ ÑƒÑпішного запуÑку.</translation>
</message>
<message>
<source>An error occurred when attempting to write to the gdb process. For example, the process may not be running, or it may have closed its input channel.</source>
- <translation>СталаÑÑŒ помилка під Ñ‡Ð°Ñ Ñпроби запиÑу до процеÑу gdb. Ðаприклад, Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¼Ð¾Ð¶Ðµ не виконуватиÑÑŒ або закрити Ñвій канал введенÑ.</translation>
+ <translation>СталаÑÑŒ помилка під Ñ‡Ð°Ñ Ñпроби запиÑу до процеÑу gdb. Ðаприклад, Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¼Ð¾Ð¶Ðµ не виконуватиÑÑŒ або закрити Ñвій канал введеннÑ.</translation>
</message>
<message>
<source>An error occurred when attempting to read from the gdb process. For example, the process may not be running.</source>
@@ -5976,18 +5807,6 @@ This might yield incorrect results.</source>
<source>Process failed to start</source>
<translation>Збій запуÑку процеÑу</translation>
</message>
- <message numerus="yes">
- <source>The gdb process has not responded to a command within %n second(s). This could mean it is stuck in an endless loop or taking longer than expected to perform the operation.
-You can choose between waiting longer or abort debugging.</source>
- <translation>
- <numerusform>ÐŸÑ€Ð¾Ñ†ÐµÑ gdb не відповів на команду протÑгом %n Ñекунди. Це може означати, що він заÑÑ‚Ñ€Ñг в неÑкінченному циклі або Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ— займає більше чаÑу, ніж очікувалоÑÑŒ.
-Ви можете обрати між продовженнÑм Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ перервати зневадженÑ.</numerusform>
- <numerusform>ÐŸÑ€Ð¾Ñ†ÐµÑ gdb не відповів на команду протÑгом %n Ñекунд. Це може означати, що він заÑÑ‚Ñ€Ñг в неÑкінченному циклі або Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ— займає більше чаÑу, ніж очікувалоÑÑŒ.
-Ви можете обрати між продовженнÑм Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ перервати зневадженÑ.</numerusform>
- <numerusform>ÐŸÑ€Ð¾Ñ†ÐµÑ gdb не відповів на команду протÑгом %n Ñекунд. Це може означати, що він заÑÑ‚Ñ€Ñг в неÑкінченному циклі або Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ— займає більше чаÑу, ніж очікувалоÑÑŒ.
-Ви можете обрати між продовженнÑм Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ перервати зневадженÑ.</numerusform>
- </translation>
- </message>
<message>
<source>The gdb process was ended forcefully</source>
<translation>ÐŸÑ€Ð¾Ñ†ÐµÑ gdb було завершено примуÑово</translation>
@@ -6005,10 +5824,6 @@ You can choose between waiting longer or abort debugging.</source>
<translation>Відображений</translation>
</message>
<message>
- <source>There is no gdb binary available for binaries in format &apos;%1&apos;</source>
- <translation>ВідÑутній gdb Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ñ… модулів формату &apos;%1&apos;</translation>
- </message>
- <message>
<source>Step requested...</source>
<translation>Запитано крок...</translation>
</message>
@@ -6057,22 +5872,10 @@ You can choose between waiting longer or abort debugging.</source>
<translation>Ðе вдалоÑÑŒ знайти віджет.</translation>
</message>
<message>
- <source>The gdb location must be given as an absolute path in the debugger settings (%1).</source>
- <translation>Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ gdb повинне бути вказане Ñк абÑолютний шлÑÑ… в налаштуваннÑÑ… зневаджувача (%1).</translation>
- </message>
- <message>
<source>GDB I/O Error</source>
<translation>Помилка введеннÑ/Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ GDB</translation>
</message>
<message>
- <source>The gdb process crashed.</source>
- <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ gdb завершивÑÑ Ð°Ð²Ð°Ñ€Ñ–Ð¹Ð½Ð¾.</translation>
- </message>
- <message>
- <source>The gdb process exited unexpectedly (code %1)</source>
- <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ gdb неÑподівано завершивÑÑ (код %1)</translation>
- </message>
- <message>
<source>Unexpected GDB Exit</source>
<translation>ÐеÑподіване Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ GDB</translation>
</message>
@@ -6081,6 +5884,34 @@ You can choose between waiting longer or abort debugging.</source>
<translation>ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´Ð¿Ñ€Ð¾Ñ†ÐµÑу...</translation>
</message>
<message>
+ <source>The gdb process failed to start. Either the invoked program &quot;%1&quot; is missing, or you may have insufficient permissions to invoke the program.
+%2</source>
+ <translation>Збій запуÑку процеÑу gdb. Ðбо програма &quot;%1&quot;, що викликаєтьÑÑ Ð²Ñ–Ð´ÑутнÑ, або, можливо, ви маєте недоÑтатньо прав Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку програми.
+%2</translation>
+ </message>
+ <message>
+ <source>Missing debug information for %1
+Try: %2</source>
+ <translation>ВідÑÑƒÑ‚Ð½Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÑƒÐ²Ð°Ð»ÑŒÐ½Ð° Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð´Ð»Ñ %1
+Спробуйте: %2</translation>
+ </message>
+ <message numerus="yes">
+ <source>The gdb process has not responded to a command within %n second(s). This could mean it is stuck in an endless loop or taking longer than expected to perform the operation.
+You can choose between waiting longer or aborting debugging.</source>
+ <translation>
+ <numerusform>ÐŸÑ€Ð¾Ñ†ÐµÑ gdb не відповів на команду протÑгом %n Ñекунди. Це може означати, що він заÑÑ‚Ñ€Ñг в неÑкінченному циклі або Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ— займає більше чаÑу, ніж очікувалоÑÑŒ.
+Ви можете обрати між продовженнÑм Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ перериваннÑм зневадженнÑ.</numerusform>
+ <numerusform>ÐŸÑ€Ð¾Ñ†ÐµÑ gdb не відповів на команду протÑгом %n Ñекунд. Це може означати, що він заÑÑ‚Ñ€Ñг в неÑкінченному циклі або Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ— займає більше чаÑу, ніж очікувалоÑÑŒ.
+Ви можете обрати між продовженнÑм Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ перериваннÑм зневадженнÑ.</numerusform>
+ <numerusform>ÐŸÑ€Ð¾Ñ†ÐµÑ gdb не відповів на команду протÑгом %n Ñекунд. Це може означати, що він заÑÑ‚Ñ€Ñг в неÑкінченному циклі або Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ— займає більше чаÑу, ніж очікувалоÑÑŒ.
+Ви можете обрати між продовженнÑм Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ перериваннÑм зневадженнÑ.</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>There is no GDB binary available for binaries in format &apos;%1&apos;</source>
+ <translation>ВідÑутній GDB Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¸Ñ… модулів в форматі &apos;%1&apos;</translation>
+ </message>
+ <message>
<source>Retrieving data for stack view thread 0x%1...</source>
<translation>ÐžÑ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду Ñтеку нитки 0x%1...</translation>
</message>
@@ -6128,6 +5959,14 @@ You can choose between waiting longer or abort debugging.</source>
<translation>ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÑƒÐ²Ð°Ñ‡Ð° вказують на файл Ñкрипту в &apos;%1&apos;, Ñкий недоÑтупний. Якщо файл Ñкрипту не потрібен, очиÑÑ‚Ñ–Ñ‚ÑŒ те поле, щоб уникнути цього попередженнÑ. </translation>
</message>
<message>
+ <source>The gdb process terminated.</source>
+ <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ gdb завершивÑÑ.</translation>
+ </message>
+ <message>
+ <source>The gdb process terminated unexpectedly (code %1)</source>
+ <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ gdb неÑподівано завершивÑÑ (код %1)</translation>
+ </message>
+ <message>
<source>Adapter start failed</source>
<translation>Збій запуÑку адаптера</translation>
</message>
@@ -6147,6 +5986,62 @@ You can choose between waiting longer or abort debugging.</source>
<source>Adapter crashed</source>
<translation>Ðдаптер завершивÑÑ Ð°Ð²Ð°Ñ€Ñ–Ð¹Ð½Ð¾</translation>
</message>
+ <message>
+ <source>This does not seem to be a &quot;Debug&quot; build.
+Setting breakpoints by file name and line number may fail.
+</source>
+ <translation>Це не Ñхоже на зневаджувальну збірку.
+Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡Ð¾Ðº перепину за іменем файлу та номером Ñ€Ñдка може не Ñпрацювати.
+</translation>
+ </message>
+ <message>
+ <source>Found.</source>
+ <translation>Знайдено.</translation>
+ </message>
+ <message>
+ <source>Not Found.</source>
+ <translation>Ðе знайдено.</translation>
+ </message>
+ <message>
+ <source>
+Section %1: %2</source>
+ <translation>
+Ð¡ÐµÐºÑ†Ñ–Ñ %1: %2</translation>
+ </message>
+ <message>
+ <source>Warning</source>
+ <translation>ПопередженнÑ</translation>
+ </message>
+ <message>
+ <source>The gdb process could not be stopped:
+%1</source>
+ <translation>Ðе вдалоÑÑŒ зупинити Ð¿Ñ€Ð¾Ñ†ÐµÑ gdb:
+%1</translation>
+ </message>
+ <message>
+ <source>Application process could not be stopped:
+%1</source>
+ <translation>Ðе вдалоÑÑŒ зупинити Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸:
+%1</translation>
+ </message>
+ <message>
+ <source>Application started</source>
+ <translation>Програму запущено</translation>
+ </message>
+ <message>
+ <source>Application running</source>
+ <translation>Програма виконуєтьÑÑ</translation>
+ </message>
+ <message>
+ <source>Attached to stopped application</source>
+ <translation>Під&apos;єднано до зупиненої програми</translation>
+ </message>
+ <message>
+ <source>Connecting to remote server failed:
+%1</source>
+ <translation>Збій Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ віддаленого Ñервера:
+%1</translation>
+ </message>
</context>
<context>
<name>Debugger::Internal::GdbOptionsPage</name>
@@ -6159,18 +6054,6 @@ You can choose between waiting longer or abort debugging.</source>
<translation>Ð§Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ GDB:</translation>
</message>
<message>
- <source>This is the number of seconds Qt Creator will wait before
-it terminates a non-responsive GDB process. The default value of 20 seconds
-should be sufficient for most applications, but there are situations when
-loading big libraries or listing source files takes much longer than that
-on slow machines. In this case, the value should be increased.</source>
- <translation>КількіÑÑ‚ÑŒ Ñекунд, Ñкі має чекати Qt Creator, до того Ñк
-він завершить Ð¿Ñ€Ð¾Ñ†ÐµÑ GDB, що не відповідає. Типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ 20 Ñекунд
-має бути доÑтатнім Ð´Ð»Ñ Ð±Ñ–Ð»ÑŒÑˆÐ¾ÑÑ‚Ñ– програм, але Ñ” Ñитуації, коли
-Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð²ÐµÐ»Ð¸ÐºÐ¸Ñ… бібліотек чи Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² коду триває значно довше
-на повільних машинах. Ð’ цьому разі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути збільшене.</translation>
- </message>
- <message>
<source>sec</source>
<translation> Ñ</translation>
</message>
@@ -6179,22 +6062,31 @@ on slow machines. In this case, the value should be increased.</source>
<translation>ПропуÑкати відомі кадри під Ñ‡Ð°Ñ Ð¿Ð¾ÐºÑ€Ð¾ÐºÐ¾Ð²Ð¾Ð³Ð¾ зневадженнÑ</translation>
</message>
<message>
- <source>Allows &apos;Step Into&apos; to compress several steps into one step
-for less noisy debugging. For example, the atomic reference
-counting code is skipped, and a single &apos;Step Into&apos; for a signal
-emission ends up directly in the slot connected to it.</source>
- <translation>ДозволÑÑ” команді &quot;Увійти в&quot; ÑтиÑнути декілька кроків в один
-Ð´Ð»Ñ Ð¼ÐµÐ½Ñˆ &quot;гамірного&quot; зневадженнÑ. Ðаприклад, код атомарних
-лічильників пропуÑкаєтьÑÑ, а одна команда &quot;Увійти в&quot; длÑ
-надÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñигналу закінчуєтьÑÑ Ð±ÐµÐ·Ð¿Ð¾Ñередньо в Ñлоті,
-що підключений до нього.</translation>
- </message>
- <message>
<source>Show a message box when receiving a signal</source>
<translation>Показувати вікно повідомленнÑ, коли отримано Ñигнал</translation>
</message>
<message>
- <source>This will show a message box as soon as your application
+ <source>The number of seconds Qt Creator will wait before it terminates
+a non-responsive GDB process. The default value of 20 seconds should
+be sufficient for most applications, but there are situations when
+loading big libraries or listing source files takes much longer than
+that on slow machines. In this case, the value should be increased.</source>
+ <translation>КількіÑÑ‚ÑŒ Ñекунд, Ñкі має чекати Qt Creator, до того Ñк
+він завершить Ð¿Ñ€Ð¾Ñ†ÐµÑ GDB, що не відповідає. Типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ 20 Ñекунд
+має бути доÑтатнім Ð´Ð»Ñ Ð±Ñ–Ð»ÑŒÑˆÐ¾ÑÑ‚Ñ– програм, але Ñ” Ñитуації, коли
+Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð²ÐµÐ»Ð¸ÐºÐ¸Ñ… бібліотек чи Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² коду триває значно довше
+на повільних машинах. Ð’ цьому разі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” бути збільшене.</translation>
+ </message>
+ <message>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Allows &lt;i&gt;Step Into&lt;/i&gt; to compress several steps into one step
+for less noisy debugging. For example, the atomic reference
+counting code is skipped, and a single &lt;i&gt;Step Into&lt;/i&gt; for a signal
+emission ends up directly in the slot connected to it.</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;ДозволÑÑ” команді &lt;i&gt;Увійти в&lt;/i&gt; ÑтиÑнути декілька кроків в один Ð´Ð»Ñ Ð¼ÐµÐ½Ñˆ &quot;гамірного&quot; зневадженнÑ. Ðаприклад, код атомарних лічильників
+пропуÑкаєтьÑÑ, а одна команда &lt;i&gt;Увійти в&lt;/i&gt; Ð´Ð»Ñ Ð½Ð°Ð´ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñигналу закінчуєтьÑÑ Ð±ÐµÐ·Ð¿Ð¾Ñередньо в Ñлоті, що підключений до нього.</translation>
+ </message>
+ <message>
+ <source>Displays a message box as soon as your application
receives a signal like SIGSEGV during debugging.</source>
<translation>Вмикає Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ, коли ваша програма
отримує Ñигнал (наприклад, SIGSEGV) під Ñ‡Ð°Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ.</translation>
@@ -6219,64 +6111,74 @@ markers in the source code editor.</source>
<translation>ВикориÑтовувати динамічний тип об&apos;єкта Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ</translation>
</message>
<message>
- <source>This specifies whether the dynamic or the static type of objects will bedisplayed. Choosing the dynamic type might be slower.</source>
+ <source>Specifies whether the dynamic or the static type of objects will be displayed. Choosing the dynamic type might be slower.</source>
<translation>Це визначає Ñкий тип об&apos;єкта (динамічний чи Ñтатичний) буде відображено. Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð¸Ð½Ð°Ð¼Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ типу може бути повільнішим.</translation>
</message>
<message>
- <source>Load .gdbinit file on startup</source>
- <translation>Завантажувати файо .gdbinit під Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку</translation>
- </message>
- <message>
- <source>This allows or inhibits reading the user&apos;s default
+ <source>Allows or inhibits reading the user&apos;s default
.gdbinit file on debugger startup.</source>
<translation>Це дозволÑÑ” або заборонÑÑ” Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð³Ð¾ файлу
кориÑтувача .gdbinit під Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку зневаджувача.</translation>
</message>
<message>
- <source>The options below should be used with care.</source>
- <translation>Ðижченаведені опції мають викориÑтовуватиÑÑŒ з обережніÑÑ‚ÑŽ.</translation>
+ <source>Warn when debugging &quot;Release&quot; builds</source>
+ <translation>Попереджати при зневадженні збірок &quot;Release&quot;</translation>
</message>
<message>
- <source>Use asynchronous mode to control the inferior</source>
- <translation>ВикориÑтовувати аÑинхронний режим Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ð¿Ñ–Ð´Ð¿Ñ€Ð¾Ñ†ÐµÑом</translation>
+ <source>Show a warning when starting the debugger on a binary with insufficient debug information.</source>
+ <translation>Показувати Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸ запуÑку зневаджувача з виконуваним модулем без зневаджувальної інформації.</translation>
</message>
<message>
- <source>Use common locations for debug information</source>
- <translation>ВикориÑтовувати типові Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¾Ñ— інформації</translation>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;Add common paths to locations of debug information such as &lt;i&gt;/usr/src/debug&lt;/i&gt; when starting GDB.&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;Додати типові шлÑхи Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¾Ñ— інформації, такі Ñк &lt;i&gt;/usr/src/debug&lt;/i&gt;, при запуÑку GDB.&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
- <source>This adds common paths to locations of debug information
-at debugger startup.</source>
- <translation>Додає типові шлÑхи до розташувань зневаджувальної
-інформації під Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку зневаджувача.</translation>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Enable stepping backwards.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This feature is very slow and unstable on the GDB side. It exhibits unpredictable behavior when going backwards over system calls and is very likely to destroy your debugging session.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Вмикає зворотнє зневадженнÑ.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Примітка:&lt;/b&gt;Ð¦Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð´ÑƒÐ¶Ðµ повільна та неÑтабільна зі Ñторони GDB. Вона може призводити до непередбачуваної поведінки під Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð°Ð´ зі ÑиÑтемних викликів, що Ñкоріше за вÑе знищить ваш ÑÐµÐ°Ð½Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ.&lt;/p&gt;&lt;body&gt;&lt;/html&gt;</translation>
</message>
<message>
- <source>Stop when a qWarning is issued</source>
- <translation>ЗупинÑти, коли траплÑєтьÑÑ qWarning</translation>
+ <source>Attempt quick start</source>
+ <translation>ÐамагатиÑÑŒ заÑтоÑовувати швидкий запуÑк</translation>
</message>
<message>
- <source>Stop when a qFatal is issued</source>
- <translation>ЗупинÑти, коли траплÑєтьÑÑ qFatal</translation>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;Postpone reading debug information as long as possible. This can result in faster startup times at the price of not being able to set breakpoints by file and number.&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;Ðе читати зневаджувальну інформацію так довго, Ñк можливо. Це може приÑкорити запуÑк, однак ціною буде неможливіÑÑ‚ÑŒ вÑтановлювати точки перепину за файлом та Ñ€Ñдком.&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
- <source>Stop when raise() is called</source>
- <translation>ЗупинÑти, коли викликаєтьÑÑ raise()</translation>
+ <source>Load .gdbinit file on startup</source>
+ <translation>Завантажувати файл .gdbinit під Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку</translation>
</message>
<message>
- <source>Enable reverse debugging</source>
- <translation>Увімкнути зворотнє зневадженнÑ</translation>
+ <source>The options below should be used with care.</source>
+ <translation>Ðижченаведені опції мають викориÑтовуватиÑÑŒ з обережніÑÑ‚ÑŽ.</translation>
+ </message>
+ <message>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;The options below give access to advanced or experimental functions of GDB. Enabling them may negatively impact your debugging experience.&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;Ðижченаведені Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð´Ð°ÑŽÑ‚ÑŒ доÑтуп до проÑунутих та екÑпериментальних функцій GDB. Їх Ð²Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ðµ мати негативний вплив на Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ.&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <source>Use asynchronous mode to control the inferior</source>
+ <translation>ВикориÑтовувати аÑинхронний режим Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ð¿Ñ–Ð´Ð¿Ñ€Ð¾Ñ†ÐµÑом</translation>
+ </message>
+ <message>
+ <source>Use common locations for debug information</source>
+ <translation>ВикориÑтовувати типові Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¾Ñ— інформації</translation>
</message>
<message>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Selecting this enables reverse debugging.&lt;/p&gt;&lt;.p&gt;&lt;b&gt;Note:&lt;/b&gt; This feature is very slow and unstable on the GDB side.It exhibits unpredictable behavior when going backwards over system calls and is very likely to destroy your debugging session.&lt;/p&gt;&lt;body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Вмикає зворотнє зневадженнÑ.&lt;/p&gt;&lt;.p&gt;&lt;b&gt;Примітка:&lt;/b&gt;Ð¦Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð´ÑƒÐ¶Ðµ повільна та неÑтабільна зі Ñторони GDB. Вона може призводити до непередбачуваної поведнки під Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð°Ð´ зі ÑиÑтемних викликів, що Ñкоріш за вÑе знищить ваш ÑÐµÐ°Ð½Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ.&lt;/p&gt;&lt;body&gt;&lt;/html&gt;</translation>
+ <source>Enable reverse debugging</source>
+ <translation>Увімкнути зворотнє зневадженнÑ</translation>
</message>
<message>
<source>Additional Startup Commands</source>
<translation>Додаткові команди запуÑку</translation>
</message>
<message>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;GDB commands entered here will be executed after GDB has been started and the debugging helpers have been initialized.&lt;/p&gt;&lt;p&gt;You can add commands to load further debugging helpers here, or modify existing ones.&lt;/p&gt;&lt;p&gt;To execute arbitrary Python scripts, use &lt;i&gt;python execfile(&apos;/path/to/script.py&apos;)&lt;/i&gt;.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Введені тут команди GDB будуть виконані піÑÐ»Ñ Ð·Ð°Ð¿ÑƒÑку GDB та ініціалізації помічників зневадженнÑ.&lt;/p&gt;&lt;p&gt;Ви можете додати тут команди Ð´Ð»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ñ… помічників Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ змінити Ñ–Ñнуючі.&lt;/p&gt;&lt;p&gt;Щоб виконати довільні Ñкрипти Python, викориÑтайте &lt;i&gt;python execfile(&apos;/шлÑÑ…/до/script.py&apos;)&lt;/i&gt;.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
<source>GDB</source>
- <translation></translation>
+ <translation>GDB</translation>
</message>
</context>
<context>
@@ -6312,24 +6214,7 @@ at debugger startup.</source>
<name>Debugger::Internal::LldbOptionsPage</name>
<message>
<source>LLDB</source>
- <translation></translation>
- </message>
-</context>
-<context>
- <name>Debugger::Internal::LocalPlainGdbAdapter</name>
- <message>
- <source>Cannot set up communication with child process: %1</source>
- <translation>Ðеможливо вÑтановити зв&apos;Ñзок з дочірнім процеÑом: %1</translation>
- </message>
- <message>
- <source>Warning</source>
- <translation>ПопередженнÑ</translation>
- </message>
- <message>
- <source>This does not seem to be a &quot;Debug&quot; build.
-Setting breakpoints by file name and line number may fail.</source>
- <translation>Це не Ñхоже на зневаджувальну збірку.
-Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡Ð¾Ðº перепину за іменем файлу та номером Ñ€Ñдка може не Ñпрацювати.</translation>
+ <translation>LLDB</translation>
</message>
</context>
<context>
@@ -6363,118 +6248,29 @@ Setting breakpoints by file name and line number may fail.</source>
</message>
</context>
<context>
- <name>Debugger::Internal::ModulesModel</name>
- <message>
- <source>yes</source>
- <translation>так</translation>
- </message>
- <message>
- <source>no</source>
- <translation>ні</translation>
- </message>
- <message>
- <source>Module name</source>
- <translation>Ðазва модулÑ</translation>
- </message>
- <message>
- <source>Module path</source>
- <translation>ШлÑÑ… до модулÑ</translation>
- </message>
- <message>
- <source>Symbols read</source>
- <translation>Символів прочитано</translation>
- </message>
- <message>
- <source>Symbols type</source>
- <translation>Тип Ñимволів</translation>
- </message>
- <message>
- <source>Start address</source>
- <translation>Початкова адреÑа</translation>
- </message>
- <message>
- <source>End address</source>
- <translation>Кінцева адреÑа</translation>
- </message>
- <message>
- <source>unknown</source>
- <translation>невідомо</translation>
- </message>
- <message>
- <source>plain</source>
- <translation>проÑтий</translation>
- </message>
- <message>
- <source>fast</source>
- <translation>швидкий</translation>
- </message>
- <message>
- <source>&lt;unknown&gt;</source>
- <comment>address</comment>
- <extracomment>End address of loaded module</extracomment>
- <translation>&lt;невідома&gt;</translation>
- </message>
-</context>
-<context>
<name>Debugger::Internal::ModulesWindow</name>
<message>
<source>Modules</source>
<translation>Модулі</translation>
</message>
+</context>
+<context>
+ <name>Debugger::Internal::MultiBreakPointsDialog</name>
<message>
- <source>Update Module List</source>
- <translation>Оновити ÑпиÑок модулів</translation>
- </message>
- <message>
- <source>Show Source Files for Module &quot;%1&quot;</source>
- <translation>Показати файли коду Ð¼Ð¾Ð´ÑƒÐ»Ñ &quot;%1&quot;</translation>
- </message>
- <message>
- <source>Load Symbols for All Modules</source>
- <translation>Завантажити Ñимволи з уÑÑ–Ñ… модулів</translation>
- </message>
- <message>
- <source>Examine All Modules</source>
- <translation>ПереглÑнути уÑÑ– модулі</translation>
- </message>
- <message>
- <source>Load Symbols for Module</source>
- <translation>Завантажити Ñимволи Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ</translation>
- </message>
- <message>
- <source>Edit File</source>
- <translation>Редагувати файл</translation>
- </message>
- <message>
- <source>Show Symbols</source>
- <translation>Показати Ñимволи</translation>
- </message>
- <message>
- <source>Show Dependencies</source>
- <translation>Показати залежноÑÑ‚Ñ–</translation>
- </message>
- <message>
- <source>Load Symbols for Module &quot;%1&quot;</source>
- <translation>Завантажити Ñимволи Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ &quot;%1&quot;</translation>
- </message>
- <message>
- <source>Edit File &quot;%1&quot;</source>
- <translation>Редагувати файл &quot;%1&quot;</translation>
+ <source>Edit Breakpoint Properties</source>
+ <translation>Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð»Ð°ÑтивоÑтей точки перепину</translation>
</message>
<message>
- <source>Show Symbols in File &quot;%1&quot;</source>
- <translation>Показати Ñимволи з файлу &quot;%1&quot;</translation>
+ <source>&amp;Condition:</source>
+ <translation>&amp;Умова:</translation>
</message>
<message>
- <source>Show Dependencies of &quot;%1&quot;</source>
- <translation>Показати залежноÑÑ‚Ñ– &quot;%1&quot;</translation>
+ <source>&amp;Ignore count:</source>
+ <translation>&amp;КількіÑÑ‚ÑŒ пропуÑків:</translation>
</message>
-</context>
-<context>
- <name>Debugger::Internal::MultiBreakPointsDialog</name>
<message>
- <source>Edit Breakpoint Properties</source>
- <translation>Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð»Ð°ÑтивоÑтей точки перепину</translation>
+ <source>&amp;Thread specification:</source>
+ <translation>&amp;Ð¡Ð¿ÐµÑ†Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Ð½Ð¸Ñ‚ÐºÐ¸:</translation>
</message>
</context>
<context>
@@ -6536,11 +6332,11 @@ Setting breakpoints by file name and line number may fail.</source>
</message>
<message>
<source>The last waitFor...() function timed out. The state of QProcess is unchanged, and you can try calling waitFor...() again.</source>
- <translation>У оÑтанньої фукнції waitFor...() вичерпано чаÑ.Стан QProcess не змінивÑÑ, ви можете Ñпробувати викликати waitFor...() знову.</translation>
+ <translation>У оÑтанньої функції waitFor...() вичерпано чаÑ.Стан QProcess не змінивÑÑ, ви можете Ñпробувати викликати waitFor...() знову.</translation>
</message>
<message>
<source>An error occurred when attempting to write to the Pdb process. For example, the process may not be running, or it may have closed its input channel.</source>
- <translation>СталаÑÑŒ помилка під Ñ‡Ð°Ñ Ñпроби запиÑу до процеÑу Pdb. Ðаприклад, Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¼Ð¾Ð¶Ðµ не виконуватиÑÑŒ або закрити Ñвій канал введенÑ.</translation>
+ <translation>СталаÑÑŒ помилка під Ñ‡Ð°Ñ Ñпроби запиÑу до процеÑу Pdb. Ðаприклад, Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¼Ð¾Ð¶Ðµ не виконуватиÑÑŒ або закрити Ñвій канал введеннÑ.</translation>
</message>
<message>
<source>An error occurred when attempting to read from the Pdb process. For example, the process may not be running.</source>
@@ -6562,6 +6358,10 @@ Setting breakpoints by file name and line number may fail.</source>
<translation>&lt;p&gt;СталаÑÑ Ð½Ðµ оброблена виключна ÑÐ¸Ñ‚ÑƒÐ°Ñ†Ñ–Ñ Ð² %1:&lt;/p&gt;&lt;p&gt;%2&lt;/p&gt;</translation>
</message>
<message>
+ <source>No Local Variables</source>
+ <translation>Ðемає локальних змінних</translation>
+ </message>
+ <message>
<source>Uncaught Exception</source>
<translation>Ðеоброблена виключна ÑитуаціÑ</translation>
</message>
@@ -6584,14 +6384,18 @@ Setting breakpoints by file name and line number may fail.</source>
<context>
<name>Debugger::Internal::QmlEngine</name>
<message>
+ <source>No application output received in time</source>
+ <translation>Ðе отримано вчаÑно жодного Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð· програми</translation>
+ </message>
+ <message>
<source>Qt Creator</source>
- <translation></translation>
+ <translation>Qt Creator</translation>
</message>
<message>
<source>Could not connect to the in-process QML debugger.
Do you want to retry?</source>
<translation>Ðе вдалоÑÑŒ підключитиÑÑŒ до вбудованого в Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÑƒÐ²Ð°Ñ‡Ð° QML.
-Бажаєто Ñпробувати знову?</translation>
+Бажаєте Ñпробувати знову?</translation>
</message>
<message>
<source>Could not connect to the in-process QML debugger.
@@ -6612,6 +6416,10 @@ Do you want to retry?</source>
<translation>Код JS Ð´Ð»Ñ %1</translation>
</message>
<message>
+ <source>Run to line %1 (%2) requested...</source>
+ <translation>Запитано Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð´Ð¾ Ñ€Ñдка %1 (%2)...</translation>
+ </message>
+ <message>
<source>Context: </source>
<translation>КонтекÑÑ‚:</translation>
</message>
@@ -6628,14 +6436,6 @@ Do you want to retry?</source>
<translation>Збій запуÑку програми: %1</translation>
</message>
<message>
- <source>Run to line %1 (%2) requested...</source>
- <translation>Запитано Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð´Ð¾ Ñ€Ñдка %1 (%2)...</translation>
- </message>
- <message>
- <source>Stopped.</source>
- <translation>Зупинено.</translation>
- </message>
- <message>
<source>QML Debugger disconnected.</source>
<translation>Зневаджувач QML відключено.</translation>
</message>
@@ -6668,54 +6468,6 @@ Do you want to retry?</source>
<source>Registers</source>
<translation>РегіÑтри</translation>
</message>
- <message>
- <source>Reload Register Listing</source>
- <translation>Перезавантажити ÑпиÑок регіÑтрів</translation>
- </message>
- <message>
- <source>Open Memory Editor</source>
- <translation>Відкрити редактор пам&apos;ÑÑ‚Ñ–</translation>
- </message>
- <message>
- <source>Open Disassembler...</source>
- <translation>Відкрити дизаÑемблер...</translation>
- </message>
- <message>
- <source>Open Memory Editor at 0x%1</source>
- <translation>Відкрити редактор пам&apos;ÑÑ‚Ñ– в 0x%1</translation>
- </message>
- <message>
- <source>Hexadecimal</source>
- <translation>ШіÑтнадцÑтковий</translation>
- </message>
- <message>
- <source>Open Memory View at Value of Register %1 0x%2</source>
- <translation>Відкрити переглÑд пам&apos;ÑÑ‚Ñ– по значенню регіÑтра %1 0x%2</translation>
- </message>
- <message>
- <source>Decimal</source>
- <translation>ДеÑÑтковий</translation>
- </message>
- <message>
- <source>Open Disassembler at 0x%1</source>
- <translation>Відкрити дизаÑемблер в 0x%1</translation>
- </message>
- <message>
- <source>Octal</source>
- <translation>Ð’Ñ–Ñімковий</translation>
- </message>
- <message>
- <source>Open Memory View at Value of Register</source>
- <translation>Відкрити переглÑд пам&apos;ÑÑ‚Ñ– по значенню регіÑтра</translation>
- </message>
- <message>
- <source>Binary</source>
- <translation>Двійковий</translation>
- </message>
- <message>
- <source>Open Disassembler</source>
- <translation>Відкрити дизаÑемблер</translation>
- </message>
</context>
<context>
<name>Debugger::Internal::RemoteGdbProcess</name>
@@ -6741,51 +6493,6 @@ Do you want to retry?</source>
</message>
</context>
<context>
- <name>Debugger::Internal::RemoteGdbServerAdapter</name>
- <message>
- <source>The upload process failed to start. Shell missing?</source>
- <translation>Збій запуÑку процеÑу вивантаженнÑ. ВідÑÑƒÑ‚Ð½Ñ Ð¾Ð±Ð¾Ð»Ð¾Ð½ÐºÐ°?</translation>
- </message>
- <message>
- <source>The upload process crashed some time after starting successfully.</source>
- <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ Ð²Ð¸Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð²ÑÑ Ð°Ð²Ð°Ñ€Ñ–Ð¹Ð½Ð¾ через деÑкий Ñ‡Ð°Ñ Ð¿Ñ–ÑÐ»Ñ ÑƒÑпішного запуÑку.</translation>
- </message>
- <message>
- <source>The last waitFor...() function timed out. The state of QProcess is unchanged, and you can try calling waitFor...() again.</source>
- <translation>У оÑтанньої фукнції waitFor...() вичерпано чаÑ.Стан QProcess не змінивÑÑ, ви можете Ñпробувати викликати waitFor...() знову.</translation>
- </message>
- <message>
- <source>An error occurred when attempting to write to the upload process. For example, the process may not be running, or it may have closed its input channel.</source>
- <translation>СталаÑÑŒ помилка під Ñ‡Ð°Ñ Ñпроби запиÑу до процеÑу вивантаженнÑ. Ðаприклад, Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¼Ð¾Ð¶Ðµ не виконуватиÑÑŒ або закрити Ñвій канал введенÑ.</translation>
- </message>
- <message>
- <source>An error occurred when attempting to read from the upload process. For example, the process may not be running.</source>
- <translation>СталаÑÑŒ помилка під Ñ‡Ð°Ñ Ñпроби Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð· процеÑу вивантаженнÑ. Ðаприклад, Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¼Ð¾Ð¶Ðµ не виконуватиÑÑŒ.</translation>
- </message>
- <message>
- <source>An unknown error in the upload process occurred. This is the default return value of error().</source>
- <translation>ТрапилаÑÑŒ невідома помилка в процеÑÑ– вивантаженнÑ. Це типове значеннÑ, що повертає error().</translation>
- </message>
- <message>
- <source>Error</source>
- <translation>Помилка</translation>
- </message>
- <message>
- <source>No symbol file given.</source>
- <translation>Файл Ñимволів не надано.</translation>
- </message>
- <message>
- <source>Reading debug information failed:
-</source>
- <translation>Збій Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¾Ñ— інформації:
-</translation>
- </message>
- <message>
- <source>Interrupting not possible</source>
- <translation>ÐŸÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ð½Ðµ можливе</translation>
- </message>
-</context>
-<context>
<name>Debugger::Internal::ScriptEngine</name>
<message>
<source>Error:</source>
@@ -6833,23 +6540,15 @@ Do you want to retry?</source>
<source>Snapshots</source>
<translation>Знімки</translation>
</message>
- <message>
- <source>Create Snapshot</source>
- <translation>Створити знімок</translation>
- </message>
- <message>
- <source>Remove Snapshot</source>
- <translation>Видалити знімок</translation>
- </message>
</context>
<context>
<name>Debugger::Internal::SourceFilesHandler</name>
<message>
- <source>Internal name</source>
+ <source>Internal Name</source>
<translation>Внутрішнє ім&apos;Ñ</translation>
</message>
<message>
- <source>Full name</source>
+ <source>Full Name</source>
<translation>Повне ім&apos;Ñ</translation>
</message>
</context>
@@ -6859,18 +6558,6 @@ Do you want to retry?</source>
<source>Source Files</source>
<translation>Файли коду</translation>
</message>
- <message>
- <source>Reload Data</source>
- <translation>Перезавантажити дані</translation>
- </message>
- <message>
- <source>Open File</source>
- <translation>Відкрити файл</translation>
- </message>
- <message>
- <source>Open File &quot;%1&quot;&apos;</source>
- <translation>Відкрити файл &quot;%1&quot;&apos;</translation>
- </message>
</context>
<context>
<name>Debugger::Internal::StackHandler</name>
@@ -6902,110 +6589,59 @@ Do you want to retry?</source>
<source>Address</source>
<translation>ÐдреÑа</translation>
</message>
-</context>
-<context>
- <name>Debugger::Internal::StackWindow</name>
<message>
- <source>Stack</source>
- <translation>Стек</translation>
+ <source>Address:</source>
+ <translation>ÐдреÑа:</translation>
</message>
<message>
<source>Function:</source>
<translation>ФункціÑ:</translation>
</message>
<message>
- <source>Disassemble Function</source>
- <translation>ДизаÑемблювати функцію</translation>
- </message>
- <message>
- <source>Copy Contents to Clipboard</source>
- <translation>Скопіювати зміÑÑ‚ до буферу обміну</translation>
- </message>
- <message>
- <source>Open Memory Editor</source>
- <translation>Відкрити редактор пам&apos;ÑÑ‚Ñ–</translation>
- </message>
- <message>
- <source>Open Memory Editor at 0x%1</source>
- <translation>Відкрити редактор пам&apos;ÑÑ‚Ñ– в 0x%1</translation>
+ <source>File:</source>
+ <translation>Файл:</translation>
</message>
<message>
- <source>Open Disassembler at Address...</source>
- <translation>Відкрити дизаÑемблер за адреÑою...</translation>
+ <source>Line:</source>
+ <translation>РÑдок:</translation>
</message>
<message>
- <source>Disassemble Function...</source>
- <translation>ДизаÑемблювати функцію...</translation>
+ <source>From:</source>
+ <translation>З:</translation>
</message>
<message>
- <source>Open Disassembler at 0x%1</source>
- <translation>Відкрити дизаÑемблер в 0x%1</translation>
+ <source>To:</source>
+ <translation>До:</translation>
</message>
<message>
- <source>Memory at Frame #%1 (%2) 0x%3</source>
- <translation>Пам&apos;ÑÑ‚ÑŒ в кадрі #%1 (%2) 0x%3</translation>
+ <source>Note:</source>
+ <translation>Примітка:</translation>
</message>
<message>
- <source>Frame #%1 (%2)</source>
- <translation>Кадр #%1 (%2)</translation>
+ <source>Sources for this frame are available.&lt;br&gt;Double-click on the file name to open an editor.</source>
+ <translation>Код Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ фрейма не доÑтупний.&lt;br&gt;Двічі клацніть на назві файлу, щоб відкрити редактор.</translation>
</message>
<message>
- <source>Open Disassembler</source>
- <translation>Відкрити дизаÑемблер</translation>
+ <source>Binary debug information is not accessible for this frame. This either means the core was not compiled with debug information, or the debug information is not accessible. Note that most distributions ship debug information in separate packages.</source>
+ <translation>Двійкова зневаджувальна Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð½Ðµ доÑтупна Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ фрейма. Це може означати, що код було Ñкомпільовано без зневаджувальної інформації, або вона недоÑтупна. Майте на увазі, що більшіÑÑ‚ÑŒ диÑтрибутивів поÑтачають зневаджувальну інформацію в окремих пакунках.</translation>
</message>
<message>
- <source>Try to Load Unknown Symbols</source>
- <translation>Спробувати завантажити невідомі Ñимволи</translation>
+ <source>Binary debug information is accessible for this frame. However, matching sources have not been found. Note that some distributions ship debug sources in separate packages.</source>
+ <translation>Двійкова зневаджувальна Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð´Ð¾Ñтупна Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ фрейма. Однак, відповідний код не було знайдено. Майте на увазі, що деÑкі диÑтрибутиви поÑтачають зневаджувальний код в окремих пакунках.</translation>
</message>
</context>
<context>
- <name>Debugger::Internal::StartExternalDialog</name>
- <message>
- <source>Select Executable</source>
- <translation>Виберіть виконуваний модуль</translation>
- </message>
- <message>
- <source>Select Working Directory</source>
- <translation>Оберіть робочу теку</translation>
- </message>
- <message>
- <source>Start Debugger</source>
- <translation>ЗапуÑтити зневаджувач</translation>
- </message>
- <message>
- <source>&amp;Executable:</source>
- <translation>Виконуваний &amp;модуль:</translation>
- </message>
- <message>
- <source>&amp;Arguments:</source>
- <translation>&amp;Ðргументи:</translation>
- </message>
- <message>
- <source>Run in &amp;terminal:</source>
- <translation>ЗапуÑкати в &amp;терміналі:</translation>
- </message>
- <message>
- <source>&amp;Working directory:</source>
- <translation>&amp;Робоча тека:</translation>
- </message>
- <message>
- <source>&amp;Tool chain:</source>
- <translation>Ðабір &amp;інÑтрументів:</translation>
- </message>
- <message>
- <source>Break at &apos;&amp;main&apos;:</source>
- <translation>&amp;ЗупинитиÑÑŒ в &apos;main&apos;:</translation>
- </message>
+ <name>Debugger::Internal::StackWindow</name>
<message>
- <source>&amp;Recent:</source>
- <translation>&amp;Ðещодавні:</translation>
+ <source>Stack</source>
+ <translation>Стек</translation>
</message>
</context>
<context>
<name>Debugger::Internal::StartRemoteCdbDialog</name>
<message>
- <source>&lt;html&gt;&lt;body&gt;&lt;p&gt;The remote CDB needs to load the matching Qt Creator CDB extension (&lt;code&gt;%1&lt;/code&gt; or &lt;code&gt;%2&lt;/code&gt;, respectively).&lt;/p&gt;&lt;p&gt;Copy it onto the remote machine and set the environment variable &lt;code&gt;%3&lt;/code&gt; to point to its folder.&lt;/p&gt;&lt;p&gt;Launch the remote CDB as &lt;code&gt;%4 &amp;lt;executable&amp;gt;&lt;/code&gt; to use TCP/IP as communication protocol.&lt;/p&gt;&lt;p&gt;Enter the connection parameters as:&lt;/p&gt;&lt;pre&gt;%5&lt;/pre&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;body&gt;&lt;p&gt;Відалений CDB має завантажити відповідне Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Qt Creator Ð´Ð»Ñ CDB (&lt;code&gt;%1&lt;/code&gt; або &lt;code&gt;%2&lt;/code&gt;, відповідно).&lt;/p&gt;&lt;p&gt;Скопіюйте його на віддалену машину та вÑтановіть в змінній Ñередовища &lt;code&gt;%3&lt;/code&gt; шлÑÑ… до теки з ним.&lt;/p&gt;&lt;p&gt;ЗапуÑÑ‚Ñ–Ñ‚ÑŒ віддалений CDB так: &lt;code&gt;%4 &amp;lt;виконуваний модуль&amp;gt;&lt;/code&gt;, щоб викориÑтати TCP/IP в ÑкоÑÑ‚Ñ– комунікаційного протоколу.&lt;/p&gt;&lt;p&gt;Введіть параметри Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ‚Ð°Ðº:&lt;/p&gt;&lt;pre&gt;%5&lt;/pre&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <source>&lt;html&gt;&lt;body&gt;&lt;p&gt;The remote CDB needs to load the matching Qt Creator CDB extension (&lt;code&gt;%1&lt;/code&gt; or &lt;code&gt;%2&lt;/code&gt;, respectively).&lt;/p&gt;&lt;p&gt;Copy it onto the remote machine and set the environment variable &lt;code&gt;%3&lt;/code&gt; to point to its folder.&lt;/p&gt;&lt;p&gt;Launch the remote CDB as &lt;code&gt;%4 &amp;lt;executable&amp;gt;&lt;/code&gt; to use TCP/IP as communication protocol.&lt;/p&gt;&lt;p&gt;Enter the connection parameters as:&lt;/p&gt;&lt;pre&gt;%5&lt;/pre&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;body&gt;&lt;p&gt;Віддалений CDB має завантажити відповідне Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Qt Creator Ð´Ð»Ñ CDB (&lt;code&gt;%1&lt;/code&gt; або &lt;code&gt;%2&lt;/code&gt;, відповідно).&lt;/p&gt;&lt;p&gt;Скопіюйте його на віддалену машину та вÑтановіть в змінній Ñередовища &lt;code&gt;%3&lt;/code&gt; шлÑÑ… до теки з ним.&lt;/p&gt;&lt;p&gt;ЗапуÑÑ‚Ñ–Ñ‚ÑŒ віддалений CDB так: &lt;code&gt;%4 &amp;lt;виконуваний модуль&amp;gt;&lt;/code&gt;, щоб викориÑтати TCP/IP в ÑкоÑÑ‚Ñ– комунікаційного протоколу.&lt;/p&gt;&lt;p&gt;Введіть параметри Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ‚Ð°Ðº:&lt;/p&gt;&lt;pre&gt;%5&lt;/pre&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Start a CDB Remote Session</source>
@@ -7017,84 +6653,6 @@ Do you want to retry?</source>
</message>
</context>
<context>
- <name>Debugger::Internal::StartRemoteDialog</name>
- <message>
- <source>Select Location of Debugging Information</source>
- <translation>Оберіть Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¾Ñ— інформації</translation>
- </message>
- <message>
- <source>Select Executable</source>
- <translation>Виберіть виконуваний модуль</translation>
- </message>
- <message>
- <source>Select Sysroot</source>
- <translation>Оберіть sysroot</translation>
- </message>
- <message>
- <source>Select GDB Start Script</source>
- <translation>Оберіть Ñкрипт запуÑку GDB</translation>
- </message>
- <message>
- <source>Select Server Start Script</source>
- <translation>Оберіть Ñкрипт запуÑку Ñервера</translation>
- </message>
- <message>
- <source>Remote: &quot;%1&quot;</source>
- <translation>Віддалено: &quot;%1&quot;</translation>
- </message>
- <message>
- <source>Start Debugger</source>
- <translation>ЗапуÑтити зневаджувач</translation>
- </message>
- <message>
- <source>Tool &amp;chain:</source>
- <translation>Ðабір &amp;інÑтрументів:</translation>
- </message>
- <message>
- <source>Local &amp;executable:</source>
- <translation>Локальний виконуваний &amp;модуль:</translation>
- </message>
- <message>
- <source>&amp;Host and port:</source>
- <translation>&amp;Вузол та порт:</translation>
- </message>
- <message>
- <source>&amp;Architecture:</source>
- <translation>&amp;Ðрхітектура:</translation>
- </message>
- <message>
- <source>Sys&amp;root:</source>
- <translation>Sys&amp;root:</translation>
- </message>
- <message>
- <source>Location of debugging &amp;information:</source>
- <translation>Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¾Ñ— ін&amp;формації:</translation>
- </message>
- <message>
- <source>Override host GDB s&amp;tart script:</source>
- <translation>Інший Ñкрипт &amp;запуÑку GDB вузла:</translation>
- </message>
- <message>
- <source>&amp;Use server start script:</source>
- <translation>Вико&amp;риÑтовувати Ñкрипт запуÑку Ñервера:</translation>
- </message>
- <message>
- <source>&amp;Server start script:</source>
- <translation>&amp;Скрипт запуÑку Ñервера:</translation>
- </message>
- <message>
- <source>&amp;Recent:</source>
- <translation>&amp;Ðещодавні:</translation>
- </message>
-</context>
-<context>
- <name>Debugger::Internal::TermGdbAdapter</name>
- <message>
- <source>Debugger Error</source>
- <translation>Помилка зневаджувача</translation>
- </message>
-</context>
-<context>
<name>Debugger::Internal::ThreadsHandler</name>
<message>
<source>Thread&amp;nbsp;id:</source>
@@ -7118,11 +6676,11 @@ Do you want to retry?</source>
</message>
<message>
<source>Stopped&amp;nbsp;at:</source>
- <translation>Зупенено&amp;nbsp;в:</translation>
+ <translation>Зупинено&amp;nbsp;в:</translation>
</message>
<message>
<source>ID</source>
- <translation></translation>
+ <translation>ID</translation>
</message>
<message>
<source>Function</source>
@@ -7160,8 +6718,8 @@ Do you want to retry?</source>
<context>
<name>Debugger::Internal::ThreadsWindow</name>
<message>
- <source>Thread</source>
- <translation>Ðитка</translation>
+ <source>Threads</source>
+ <translation>Ðитки</translation>
</message>
</context>
<context>
@@ -7212,38 +6770,22 @@ Do you want to retry?</source>
<translation>ÐдреÑа, на Ñку вказуєтьÑÑ</translation>
</message>
<message>
- <source>Size</source>
- <translation>Розмір</translation>
+ <source>Static Object Size</source>
+ <translation>Розмір Ñтатичного об&apos;єкта</translation>
+ </message>
+ <message numerus="yes">
+ <source>%n bytes</source>
+ <translation>
+ <numerusform>%n байт</numerusform>
+ <numerusform>%n байти</numerusform>
+ <numerusform>%n байтів</numerusform>
+ </translation>
</message>
<message>
<source>Internal ID</source>
<translation>Внутрішній ID</translation>
</message>
<message>
- <source>Generation</source>
- <translation>ПоколіннÑ</translation>
- </message>
- <message>
- <source>Root</source>
- <translation>Корінь</translation>
- </message>
- <message>
- <source>Return Value</source>
- <translation>ЗначеннÑ, що повертаєтÑÑŒÑ</translation>
- </message>
- <message>
- <source>Locals</source>
- <translation>Локальні змінні</translation>
- </message>
- <message>
- <source>Watchers</source>
- <translation>Під наглÑдом</translation>
- </message>
- <message>
- <source>Tooltip</source>
- <translation>Підказка</translation>
- </message>
- <message>
<source>&lt;Edit&gt;</source>
<translation>&lt;Змініть&gt;</translation>
</message>
@@ -7280,6 +6822,21 @@ Do you want to retry?</source>
</translation>
</message>
<message>
+ <source>%1 Object at %2</source>
+ <translation>Об&apos;єкт %1 в %2</translation>
+ </message>
+ <message>
+ <source>%1 Object at Unknown Address</source>
+ <translation>Об&apos;єкт %1 за невідомою адреÑою</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::WatchModel</name>
+ <message>
+ <source>&lt;Edit&gt;</source>
+ <translation>&lt;Змінити&gt;</translation>
+ </message>
+ <message>
<source>Raw pointer</source>
<translation>Вказівник</translation>
</message>
@@ -7320,23 +6877,32 @@ Do you want to retry?</source>
<translation>Ð’Ñ–Ñімковий</translation>
</message>
<message>
- <source>%1 Object at %2</source>
- <translation>Об&apos;єкт %1 в %2</translation>
+ <source>returned value</source>
+ <translation>повернене значеннÑ</translation>
</message>
<message>
- <source>%1 Object at Unknown Address</source>
- <translation>Об&apos;єкт %1 за невідомою адреÑою</translation>
+ <source>Root</source>
+ <translation>Корінь</translation>
</message>
-</context>
-<context>
- <name>Debugger::Internal::WatchModel</name>
<message>
- <source>&lt;Edit&gt;</source>
- <translation>&lt;Змінити&gt;</translation>
+ <source>Locals</source>
+ <translation>Локальні змінні</translation>
</message>
<message>
- <source>returned value</source>
- <translation>повернене значеннÑ</translation>
+ <source>Inspector</source>
+ <translation>ІнÑпектор</translation>
+ </message>
+ <message>
+ <source>Expressions</source>
+ <translation>Вирази</translation>
+ </message>
+ <message>
+ <source>Return Value</source>
+ <translation>ЗначеннÑ, що повертаєтьÑÑ</translation>
+ </message>
+ <message>
+ <source>Tooltip</source>
+ <translation>Підказка</translation>
</message>
<message>
<source>Name</source>
@@ -7354,277 +6920,9 @@ Do you want to retry?</source>
<context>
<name>Debugger::Internal::WatchWindow</name>
<message>
- <source>Automatic</source>
- <translation>Ðвтоматичний</translation>
- </message>
- <message>
- <source>Open Memory Editor at Object&apos;s Address (0x%1)</source>
- <translation>Відкрити редактор пам&apos;ÑÑ‚Ñ– за адреÑою об&apos;єкта (0x%1)</translation>
- </message>
- <message>
- <source>Open Memory Editor at Referenced Address (0x%1)</source>
- <translation>Відкрити редактор пам&apos;ÑÑ‚Ñ– за адреÑою, на Ñку поÑилаютьÑÑ (0x%1)</translation>
- </message>
- <message>
- <source>Treat All Characters as Printable</source>
- <translation>Вважати уÑÑ– Ñимволи друкованими</translation>
- </message>
- <message>
- <source>Show Unprintable Characters as Octal</source>
- <translation>Показувати недруковані Ñимволи Ñк віÑімкові</translation>
- </message>
- <message>
- <source>Show Unprintable Characters as Hexadecimal</source>
- <translation>Показувати недруковані Ñимволи Ñк шіÑтнадцÑткові</translation>
- </message>
- <message>
- <source>Change Display for Type &quot;%1&quot;:</source>
- <translation>Змінити формат Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñƒ &quot;%1&quot;:</translation>
- </message>
- <message>
- <source>Change Display for Object Named &quot;%1&quot;:</source>
- <translation>Змінити формат Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¾Ð±&apos;єктів з назвою &quot;%1&quot;:</translation>
- </message>
- <message>
- <source>&lt;i&gt;%1&lt;/i&gt; %2 at #%3</source>
- <extracomment>HTML tooltip of a variable in the memory editor</extracomment>
- <translation>&lt;i&gt;%1&lt;/i&gt; %2 в #%3</translation>
- </message>
- <message>
- <source>&lt;i&gt;%1&lt;/i&gt; %2</source>
- <extracomment>HTML tooltip of a variable in the memory editor</extracomment>
- <translation></translation>
- </message>
- <message>
- <source>Register &lt;i&gt;%1&lt;/i&gt;</source>
- <translation>РегіÑÑ‚Ñ€ &lt;i&gt;%1&lt;/i&gt;</translation>
- </message>
- <message>
- <source>Change Display for Type or Item...</source>
- <translation>Змінити Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñƒ чи елемента...</translation>
- </message>
- <message>
- <source>Open Memory Editor at Object&apos;s Address</source>
- <translation>Відкрити редактор пам&apos;ÑÑ‚Ñ– за адреÑою об&apos;єкта</translation>
- </message>
- <message>
- <source>Cannot Display Stack Layout</source>
- <translation>Ðеможливо відобразити ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñтеку</translation>
- </message>
- <message>
- <source>Open Memory Editor at Referenced Address</source>
- <translation>Відкрити редактор пам&apos;ÑÑ‚Ñ– за адреÑою, на Ñку поÑилаютьÑÑ</translation>
- </message>
- <message>
- <source>Could not determine a suitable address range.</source>
- <translation>Ðе вдалоÑÑŒ визначити підходÑщий діапазон адреÑ.</translation>
- </message>
- <message>
- <source>Copy Contents to Clipboard</source>
- <translation>Скопіювати зміÑÑ‚ до буферу обміну</translation>
- </message>
- <message>
- <source>Memory Layout of Local Variables at 0x%1</source>
- <translation>ÐšÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼&apos;ÑÑ‚Ñ– локальних змінних в 0x%1</translation>
- </message>
- <message>
- <source>Show View Contents in Editor</source>
- <translation>Показти зміÑÑ‚ виду в редакторі</translation>
- </message>
- <message>
<source>Locals and Expressions</source>
<translation>Локальні змінні та вирази</translation>
</message>
- <message>
- <source>Close Editor Tooltips</source>
- <translation>Закрити підказки редактора</translation>
- </message>
- <message>
- <source>Enter watch expression</source>
- <translation>Введіть вираз Ð´Ð»Ñ Ð½Ð°Ð³Ð»Ñду</translation>
- </message>
- <message>
- <source>Expression:</source>
- <translation>Вираз:</translation>
- </message>
- <message>
- <source>Locals &amp; Watchers</source>
- <translation>Локальні змінні та об&apos;єкти під наглÑдом</translation>
- </message>
- <message>
- <source>Evaluate Expression</source>
- <translation>ОбчиÑлити вираз</translation>
- </message>
- <message>
- <source>Memory Referenced by Pointer &quot;%1&quot; (0x%2)</source>
- <translation>Пам&apos;ÑÑ‚ÑŒ, на Ñку поÑилаєтьÑÑ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸Ðº &quot;%1&quot; (0x%2)</translation>
- </message>
- <message>
- <source>Memory at Variable &quot;%1&quot; (0x%2)</source>
- <translation>Пам&apos;ÑÑ‚ÑŒ в змінній &quot;%1&quot; (0x%2)</translation>
- </message>
- <message>
- <source>Evaluate Expression &quot;%1&quot;</source>
- <translation>ОбчиÑлити вираз &quot;%1&quot;</translation>
- </message>
- <message>
- <source>Remove Evaluated Expression</source>
- <translation>Видалити вираз, щоб обчиÑлюєтьÑÑ</translation>
- </message>
- <message>
- <source>Remove Evaluated Expression &quot;%1&quot;</source>
- <translation>Видалити вираз, щоб обчиÑлюєтьÑÑ &quot;%1&quot;</translation>
- </message>
- <message>
- <source>Change Local Display Format...</source>
- <translation>Змінити локальний формат відображеннÑ...</translation>
- </message>
- <message>
- <source>Show Unprintable Characters as Escape Sequences</source>
- <translation>Показувати недруковані Ñимволи Ñк ESC-поÑлідовноÑÑ–Ñ‚</translation>
- </message>
- <message>
- <source>Use Format for Type (Currently %1)</source>
- <translation>ВикориÑтовувати формат типу (зараз %1)</translation>
- </message>
- <message>
- <source>Use Display Format Based on Type </source>
- <translation>ВикориÑтовувати формат Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° оÑнові типу </translation>
- </message>
- <message>
- <source>Add Data Breakpoint...</source>
- <translation>Додати точку перепину за даними...</translation>
- </message>
- <message>
- <source>Add Data Breakpoint at Object&apos;s Address (0x%1)</source>
- <translation>Додати точку перепину за даними в об&apos;єкті за адреÑою (0x%1)</translation>
- </message>
- <message>
- <source>Add Data Breakpoint at Referenced Address (0x%1)</source>
- <translation>Додати точку перепину по данимі за адреÑою, на Ñку поÑилаютьÑÑ (0x%1)</translation>
- </message>
- <message>
- <source>Add Data Breakpoint</source>
- <translation>Додати точку перепину за даними</translation>
- </message>
- <message>
- <source>Setting a data breakpoint on an address will cause the program to stop when the data at the address is modified.</source>
- <translation>Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ перепину по даним за адреÑою призводитиме до зупинки програми, коли дані за адреÑою будуть змінюватиÑÑŒ.</translation>
- </message>
- <message>
- <source>Add Data Breakpoint at Expression</source>
- <translation>Додати точку перепину за даними Ð´Ð»Ñ Ð²Ð¸Ñ€Ð°Ð·Ñƒ</translation>
- </message>
- <message>
- <source>Add Data Breakpoint at Expression &quot;%1&quot;</source>
- <translation>Додати точку перепину за даними Ð´Ð»Ñ Ð²Ð¸Ñ€Ð°Ð·Ñƒ (0x%1)</translation>
- </message>
- <message>
- <source>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.</source>
- <translation>Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ перепину по даним за виразом призводитиме до зупинки програми, коли дані за адреÑою, вказаною у виразі, будуть змінюватиÑÑŒ.</translation>
- </message>
- <message>
- <source>Insert New Evaluated Expression</source>
- <translation>Ð’Ñтавити новий вираз Ð´Ð»Ñ Ð¾Ð±Ñ‡Ð¸ÑленнÑ</translation>
- </message>
- <message>
- <source>Change Global Display Formats...</source>
- <translation>Змінити глобальні формати відображеннÑ...</translation>
- </message>
- <message>
- <source>Remove All Evaluated Expressions</source>
- <translation>Видалити уÑÑ– вираз, щоб обчиÑлюютьÑÑ</translation>
- </message>
- <message>
- <source>Open Memory View at Object&apos;s Address (0x%1)</source>
- <translation>Відкрити переглÑд пам&apos;ÑÑ‚Ñ– за адреÑою об&apos;єкта (0x%1)</translation>
- </message>
- <message>
- <source>Open Memory View at Object&apos;s Address</source>
- <translation>Відкрити переглÑд пам&apos;ÑÑ‚Ñ– за адреÑою об&apos;єкта</translation>
- </message>
- <message>
- <source>Open Memory View at Referenced Address (0x%1)</source>
- <translation>Відкрити переглÑд пам&apos;ÑÑ‚Ñ– за адреÑою, на Ñку поÑилаютьÑÑ (0x%1)</translation>
- </message>
- <message>
- <source>Open Memory View at Referenced Address</source>
- <translation>Відкрити переглÑд пам&apos;ÑÑ‚Ñ– за адреÑою, на Ñку поÑилаютьÑÑ</translation>
- </message>
- <message>
- <source>Open Memory Editor Showing Stack Layout</source>
- <translation>Відкрити редактор пам&apos;ÑÑ‚Ñ–, що показує ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñтеку</translation>
- </message>
- <message>
- <source>Copy Value to Clipboard</source>
- <translation>Копіювати значеннÑÑ– до буферу обміну</translation>
- </message>
- <message>
- <source>Select Widget to Watch</source>
- <translation>Оберіть віджет Ð´Ð»Ñ Ð½Ð°Ð³Ð»Ñду</translation>
- </message>
- <message>
- <source>Open Memory Editor...</source>
- <translation>Відкрити редактор пам&apos;ÑÑ‚Ñ–...</translation>
- </message>
- <message>
- <source>Refresh Code Model Snapshot</source>
- <translation>Оновити знімок моделі коду</translation>
- </message>
-</context>
-<context>
- <name>Debugger::QmlAdapter</name>
- <message>
- <source>Connecting to debug server on %1</source>
- <translation>ÐŸÑ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ Ñеревера Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð½Ð° %1</translation>
- </message>
- <message>
- <source>Connecting to debug server %1:%2</source>
- <translation>ÐŸÑ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ Ñеревера Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð½Ð° %1: %2</translation>
- </message>
- <message>
- <source>Error: (%1) %2</source>
- <comment>%1=error code, %2=error message</comment>
- <translation>Помилка: (%1) %2</translation>
- </message>
- <message>
- <source>disconnected.
-
-</source>
- <translation>відключено.
-
-</translation>
- </message>
- <message>
- <source>resolving host...</source>
- <translation>Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ð¼ÐµÐ½Ñ– вузла...</translation>
- </message>
- <message>
- <source>connecting to debug server...</source>
- <translation>Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ Ñеревера зневадженнÑ...</translation>
- </message>
- <message>
- <source>connected.
-</source>
- <translation>підключено.
-</translation>
- </message>
- <message>
- <source>closing...</source>
- <translation>закриттÑ...</translation>
- </message>
- <message>
- <source>Status of &apos;%1&apos; changed to &apos;unavailable&apos;.</source>
- <translation>Стан &apos;%1&apos; змінивÑÑ Ð½Ð° &apos;недоÑтупно&apos;.</translation>
- </message>
- <message>
- <source>Status of &apos;%1&apos; changed to &apos;enabled&apos;.</source>
- <translation>Стан &apos;%1&apos; змінивÑÑ Ð½Ð° &apos;увімкнено&apos;.</translation>
- </message>
- <message>
- <source>Status of &apos;%1&apos; changed to &apos;not connected&apos;.</source>
- <translation>Стан &apos;%1&apos; змінивÑÑ Ð½Ð° &apos;не підключено&apos;.</translation>
- </message>
</context>
<context>
<name>DebuggerEngine</name>
@@ -7634,21 +6932,6 @@ Do you want to retry?</source>
</message>
</context>
<context>
- <name>DebuggerRunControl</name>
- <message>
- <source>Debug</source>
- <translation>ЗневадженнÑ</translation>
- </message>
- <message>
- <source>Debugger</source>
- <translation>Зневаджувач</translation>
- </message>
- <message>
- <source>Unable to create a debugger engine of the type &apos;%1&apos;</source>
- <translation>Ðеможливо Ñтворити рушій Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ñƒ &apos;%1&apos;</translation>
- </message>
-</context>
-<context>
<name>DependenciesModel</name>
<message>
<source>Unable to Add Dependency</source>
@@ -7699,22 +6982,6 @@ Rebuilding the project might help.</source>
<source>Form Editor</source>
<translation>Редактор форм</translation>
</message>
- <message>
- <source>The file name is empty.</source>
- <translation>Порожнє ім&apos;Ñ Ñ„Ð°Ð¹Ð»Ñƒ.</translation>
- </message>
- <message>
- <source>XML error on line %1, col %2: %3</source>
- <translation>Помилка XML в Ñ€Ñдку %1, Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ %2: %3</translation>
- </message>
- <message>
- <source>The &lt;RCC&gt; root element is missing.</source>
- <translation>ВідÑутній кореневий елемент &lt;RCC&gt;.</translation>
- </message>
- <message>
- <source>Cannot write file. Disk full?</source>
- <translation>Ðеможливо запиÑати файл. ДиÑк заповнено?</translation>
- </message>
</context>
<context>
<name>Designer::FormWindowEditor</name>
@@ -7858,7 +7125,7 @@ Rebuilding the project might help.</source>
</message>
<message>
<source>F3</source>
- <translation></translation>
+ <translation>F3</translation>
</message>
<message>
<source>Edit Signals/Slots</source>
@@ -7866,7 +7133,7 @@ Rebuilding the project might help.</source>
</message>
<message>
<source>F4</source>
- <translation></translation>
+ <translation>F4</translation>
</message>
<message>
<source>Edit Buddies</source>
@@ -7877,40 +7144,40 @@ Rebuilding the project might help.</source>
<translation>Редагувати порÑдок обходу</translation>
</message>
<message>
- <source>Meta+H</source>
- <translation></translation>
+ <source>Ctrl+H</source>
+ <translation>Ctrl+H</translation>
</message>
<message>
- <source>Ctrl+H</source>
- <translation></translation>
+ <source>Meta+Shift+H</source>
+ <translation>Meta+Shift+H</translation>
</message>
<message>
<source>Meta+L</source>
- <translation></translation>
+ <translation>Meta+L</translation>
</message>
<message>
<source>Ctrl+L</source>
- <translation></translation>
+ <translation>Ctrl+L</translation>
</message>
<message>
- <source>Meta+G</source>
- <translation></translation>
+ <source>Ctrl+G</source>
+ <translation>Ctrl+G</translation>
</message>
<message>
- <source>Ctrl+G</source>
- <translation></translation>
+ <source>Meta+Shift+G</source>
+ <translation>Meta+Shift+G</translation>
</message>
<message>
<source>Meta+J</source>
- <translation></translation>
+ <translation>Meta+J</translation>
</message>
<message>
<source>Ctrl+J</source>
- <translation></translation>
+ <translation>Ctrl+J</translation>
</message>
<message>
<source>Alt+Shift+R</source>
- <translation></translation>
+ <translation>Alt+Shift+R</translation>
</message>
<message>
<source>Switch Source/Form</source>
@@ -7918,7 +7185,7 @@ Rebuilding the project might help.</source>
</message>
<message>
<source>Shift+F4</source>
- <translation></translation>
+ <translation>Shift+F4</translation>
</message>
<message>
<source>About Qt Designer plugins....</source>
@@ -7972,7 +7239,7 @@ Rebuilding the project might help.</source>
<source>The class containing &apos;%1&apos; could not be found in %2.
Please verify the #include-directives.</source>
<translation>Ðе вдалоÑÑŒ знайти клаÑ, що міÑтить &apos;%1&apos; в %2.
-Будь-лаÑка, перевірте директиви #include.</translation>
+Будь лаÑка, перевірте директиви #include.</translation>
</message>
<message>
<source>Error finding/adding a slot.</source>
@@ -8094,15 +7361,15 @@ Rebuilding the project might help.</source>
<context>
<name>EditorSettingsPanel</name>
<message>
- <source>Editor Settings</source>
- <translation>ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ð°</translation>
+ <source>Editor</source>
+ <translation>Редактор</translation>
</message>
</context>
<context>
<name>EditorSettingsPanelFactory</name>
<message>
- <source>Editor Settings</source>
- <translation>ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ð°</translation>
+ <source>Editor</source>
+ <translation>Редактор</translation>
</message>
</context>
<context>
@@ -8128,11 +7395,11 @@ Rebuilding the project might help.</source>
</message>
<message>
<source>x Offset: </source>
- <translation type="unfinished"></translation>
+ <translation>Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ð¾ x: </translation>
</message>
<message>
<source>y Offset: </source>
- <translation type="unfinished"></translation>
+ <translation>Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ð¾ y: </translation>
</message>
</context>
<context>
@@ -8170,7 +7437,7 @@ Rebuilding the project might help.</source>
</message>
<message>
<source>Copyright:</source>
- <translation></translation>
+ <translation>ÐвторÑькі права:</translation>
</message>
<message>
<source>License:</source>
@@ -8190,7 +7457,7 @@ Rebuilding the project might help.</source>
</message>
<message>
<source>URL:</source>
- <translation></translation>
+ <translation>URL:</translation>
</message>
</context>
<context>
@@ -8385,7 +7652,7 @@ Reason: %3</source>
</message>
<message>
<source>FakeVim</source>
- <translation></translation>
+ <translation>FakeVim</translation>
</message>
<message>
<source>Ex Trigger Expression</source>
@@ -8397,7 +7664,7 @@ Reason: %3</source>
</message>
<message>
<source>Ex Command</source>
- <translation>Розиширена команда</translation>
+ <translation>Розширена команда</translation>
</message>
</context>
<context>
@@ -8440,7 +7707,7 @@ Reason: %3</source>
</message>
<message>
<source>&quot;%1&quot; %2L, %3C</source>
- <translation type="unfinished"></translation>
+ <translation>&quot;%1&quot; %2L, %3C</translation>
</message>
<message numerus="yes">
<source>%n lines filtered</source>
@@ -8475,6 +7742,10 @@ Reason: %3</source>
<translation>Зразок не знайдено: %1</translation>
</message>
<message>
+ <source>Invalid regular expression: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Already at oldest change</source>
<translation type="unfinished"></translation>
</message>
@@ -8482,12 +7753,20 @@ Reason: %3</source>
<source>Already at newest change</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Unknown option: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Argument must be positive: %1=%2</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>FakeVim::Internal::FakeVimHandler::Private</name>
<message>
<source> [New] </source>
- <translation type="unfinished"></translation>
+ <translation> [Ðовий] </translation>
</message>
<message>
<source>Not an editor command: %1</source>
@@ -8502,7 +7781,7 @@ Reason: %3</source>
</message>
<message>
<source>FakeVim</source>
- <translation></translation>
+ <translation>FakeVim</translation>
</message>
<message>
<source>Use FakeVim</source>
@@ -8592,14 +7871,34 @@ Reason: %3</source>
<source>Set Plain Style</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Use smartcase</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>FakeVim::Internal::FakeVimPluginPrivate</name>
<message>
+ <source>Meta+V,Meta+V</source>
+ <translation>Meta+V,Meta+V</translation>
+ </message>
+ <message>
+ <source>Alt+V,Alt+V</source>
+ <translation>Alt+V,Alt+V</translation>
+ </message>
+ <message>
<source>Execute User Action #%1</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Meta+V,%1</source>
+ <translation>Meta+V,%1</translation>
+ </message>
+ <message>
+ <source>Alt+V,%1</source>
+ <translation>Alt+V,%1</translation>
+ </message>
+ <message>
<source>File not saved</source>
<translation type="unfinished"></translation>
</message>
@@ -8643,14 +7942,7 @@ Reason: %3</source>
</message>
<message>
<source>FakeVim</source>
- <translation></translation>
- </message>
-</context>
-<context>
- <name>Feedback</name>
- <message>
- <source>Feedback</source>
- <translation>Зворотній зв&apos;Ñзок</translation>
+ <translation>FakeVim</translation>
</message>
</context>
<context>
@@ -8691,7 +7983,7 @@ Reason: %3</source>
</message>
<message>
<source>Ctrl+Shift+F</source>
- <translation></translation>
+ <translation>Ctrl+Shift+F</translation>
</message>
</context>
<context>
@@ -8718,7 +8010,7 @@ Reason: %3</source>
</message>
<message>
<source>, </source>
- <translation></translation>
+ <translation>, </translation>
</message>
</context>
<context>
@@ -8756,11 +8048,11 @@ Reason: %3</source>
<name>Find::Internal::FindToolBar</name>
<message>
<source>Shift+Enter</source>
- <translation></translation>
+ <translation>Shift+Enter</translation>
</message>
<message>
<source>Shift+Return</source>
- <translation></translation>
+ <translation>Shift+Return</translation>
</message>
<message>
<source>Find/Replace</source>
@@ -8772,7 +8064,7 @@ Reason: %3</source>
</message>
<message>
<source>Ctrl+E</source>
- <translation></translation>
+ <translation>Ctrl+E</translation>
</message>
<message>
<source>Find Next</source>
@@ -8783,6 +8075,22 @@ Reason: %3</source>
<translation>Знайти попередній</translation>
</message>
<message>
+ <source>Find Next (Selected)</source>
+ <translation>Знайти наÑтупний (виділене)</translation>
+ </message>
+ <message>
+ <source>Ctrl+F3</source>
+ <translation>Ctrl+F3</translation>
+ </message>
+ <message>
+ <source>Find Previous (Selected)</source>
+ <translation>Знайти попереднє (виділене)</translation>
+ </message>
+ <message>
+ <source>Ctrl+Shift+F3</source>
+ <translation>Ctrl+Shift+F3</translation>
+ </message>
+ <message>
<source>Replace</source>
<translation>Замінити</translation>
</message>
@@ -8792,7 +8100,7 @@ Reason: %3</source>
</message>
<message>
<source>Ctrl+=</source>
- <translation></translation>
+ <translation>Ctrl+=</translation>
</message>
<message>
<source>Replace &amp;&amp; Find Previous</source>
@@ -8827,7 +8135,7 @@ Reason: %3</source>
</message>
<message>
<source>...</source>
- <translation></translation>
+ <translation>...</translation>
</message>
<message>
<source>Replace with:</source>
@@ -8853,6 +8161,10 @@ Reason: %3</source>
<context>
<name>Find::Internal::SearchResultWidget</name>
<message>
+ <source>Search was canceled.</source>
+ <translation>Пошук було ÑкаÑовано.</translation>
+ </message>
+ <message>
<source>Cancel</source>
<translation>СкаÑувати</translation>
</message>
@@ -8884,6 +8196,18 @@ Reason: %3</source>
<source>Do not warn again</source>
<translation>Ðе попереджувати знову</translation>
</message>
+ <message numerus="yes">
+ <source>The search resulted in more than %n items, do you still want to continue?</source>
+ <translation>
+ <numerusform>Знайдено більше ніж %n елемент, бажаєте продовжити?</numerusform>
+ <numerusform>Знайдено більше ніж %n елементи, бажаєте продовжити?</numerusform>
+ <numerusform>Знайдено більше ніж %n елементів, бажаєте продовжити?</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Continue</source>
+ <translation>Продовжити</translation>
+ </message>
<message>
<source>No matches found.</source>
<translation>Збігів не виÑвлено.</translation>
@@ -8921,23 +8245,6 @@ Reason: %3</source>
</message>
</context>
<context>
- <name>FindExportedCppTypes</name>
- <message>
- <source>The type will only be available in Qt Creator&apos;s QML editors when the type name is a string literal</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The module URI cannot be determined by static analysis. The type will be available
-globally in the QML editor. You can add a &quot;// @uri My.Module.Uri&quot; annotation to let
-Qt Creator know about a likely URI.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>must be a string literal to be available in the QML editor</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
<name>FlickableGroupBox</name>
<message>
<source>Flickable</source>
@@ -8957,7 +8264,7 @@ Qt Creator know about a likely URI.</source>
</message>
<message>
<source>Behavior</source>
- <translation type="unfinished">Поведінка</translation>
+ <translation>Поведінка</translation>
</message>
<message>
<source>Bounds behavior</source>
@@ -9015,29 +8322,10 @@ Qt Creator know about a likely URI.</source>
</message>
</context>
<context>
- <name>FunctionDeclDefLink</name>
- <message>
- <source>Target file was changed, could not apply changes</source>
- <translation>Ðе вдалоÑÑŒ заÑтоÑувати зміни, оÑкільки цільовий файл було змінено</translation>
- </message>
- <message>
- <source>Apply changes to definition</source>
- <translation>ЗаÑтоÑувати зміни до визначеннÑ</translation>
- </message>
- <message>
- <source>Apply changes to declaration</source>
- <translation>ЗаÑтоÑувати зміни до оголошеннÑ</translation>
- </message>
- <message>
- <source>Apply function signature changes</source>
- <translation>ЗаÑтоÑувати зміни Ñигнатури функції</translation>
- </message>
-</context>
-<context>
<name>GLSLEditor</name>
<message>
<source>GLSL</source>
- <translation></translation>
+ <translation>GLSL</translation>
</message>
</context>
<context>
@@ -9052,7 +8340,7 @@ Qt Creator know about a likely URI.</source>
<message>
<source>GLSL</source>
<extracomment>GLSL sub-menu in the Tools menu</extracomment>
- <translation></translation>
+ <translation>GLSL</translation>
</message>
<message>
<source>Creates a fragment shader in the OpenGL/ES 2.0 Shading Language (GLSL/ES). Fragment shaders generate the final pixel colors for triangles, points and lines rendered with OpenGL.</source>
@@ -9136,23 +8424,23 @@ Qt Creator know about a likely URI.</source>
<translation>Тека збірки:</translation>
</message>
<message>
- <source>Tool chain:</source>
- <translation>Ðабір інÑтрументів:</translation>
- </message>
- <message>
<source>Generic Manager</source>
<translation>Загальний менеджер</translation>
</message>
- <message>
- <source>&lt;Invalid tool chain&gt;</source>
- <translation>&lt;Ðеправильний набір інÑтрументів&gt;</translation>
- </message>
</context>
<context>
<name>GenericProjectManager::Internal::GenericMakeStep</name>
<message>
<source>Make</source>
- <translation></translation>
+ <translation>Make</translation>
+ </message>
+ <message>
+ <source>Qt Creator needs a compiler set up to build. Configure a compiler in the kit options.</source>
+ <translation>Qt Creator потребує компілÑтора Ð´Ð»Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸. Сконфігуруйте компілÑтор в налаштуваннÑÑ… інÑтрументарію.</translation>
+ </message>
+ <message>
+ <source>Configuration is faulty. Check the Issues view for details.</source>
+ <translation>ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð·Ð±Ñ–Ð¹Ð½Ð°. Перевірте вид &quot;Проблеми&quot; Ð´Ð»Ñ Ð´ÐµÑ‚Ð°Ð»ÐµÐ¹.</translation>
</message>
<message>
<source>Override %1:</source>
@@ -9172,7 +8460,7 @@ Qt Creator know about a likely URI.</source>
<message>
<source>Make</source>
<comment>GenericMakestep display name.</comment>
- <translation></translation>
+ <translation>Make</translation>
</message>
<message>
<source>Override %1:</source>
@@ -9278,7 +8566,7 @@ These files are preserved.</source>
</message>
<message>
<source>Position</source>
- <translation type="unfinished">ПоложеннÑ</translation>
+ <translation>ПоложеннÑ</translation>
</message>
<message>
<source>Size</source>
@@ -9369,6 +8657,14 @@ These files are preserved.</source>
<translation>Гілки</translation>
</message>
<message>
+ <source>Checkout</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Checkout branch?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Would you like to delete the &lt;b&gt;unmerged&lt;/b&gt; branch &apos;%1&apos;?</source>
<translation type="unfinished"></translation>
</message>
@@ -9386,11 +8682,11 @@ These files are preserved.</source>
</message>
<message>
<source>&amp;Add...</source>
- <translation type="unfinished">&amp;Додати...</translation>
+ <translation>&amp;Додати...</translation>
</message>
<message>
<source>&amp;Remove</source>
- <translation type="unfinished">&amp;Видалити</translation>
+ <translation>&amp;Видалити</translation>
</message>
<message>
<source>&amp;Diff</source>
@@ -9466,7 +8762,7 @@ These files are preserved.</source>
</message>
<message>
<source>Ignore Whitespace</source>
- <translation type="unfinished">Ігнорувати пропуÑки</translation>
+ <translation>Ігнорувати пропуÑки</translation>
</message>
<message>
<source>Ignore whitespace only changes.</source>
@@ -9524,6 +8820,10 @@ These files are preserved.</source>
<extracomment>Meaning of the arguments: %1: Branch, %2: Repository, %3: Error message</extracomment>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Cannot obtain log of &quot;%1&quot;: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
<message numerus="yes">
<source>Cannot add %n file(s) to &quot;%1&quot;: %2</source>
<translation type="unfinished">
@@ -9632,10 +8932,6 @@ These files are preserved.</source>
<source>Cannot determine git version: %1</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <source>You did not checkout a branch.</source>
- <translation type="unfinished"></translation>
- </message>
<message numerus="yes">
<source>Committed %n file(s).
</source>
@@ -9747,7 +9043,7 @@ These files are preserved.</source>
<name>Git::Internal::GitPlugin</name>
<message>
<source>&amp;Git</source>
- <translation></translation>
+ <translation>&amp;Git</translation>
</message>
<message>
<source>Diff Current File</source>
@@ -9755,7 +9051,7 @@ These files are preserved.</source>
</message>
<message>
<source>Alt+G,Alt+D</source>
- <translation></translation>
+ <translation>Alt+G,Alt+D</translation>
</message>
<message>
<source>Log of &quot;%1&quot;</source>
@@ -9763,7 +9059,7 @@ These files are preserved.</source>
</message>
<message>
<source>Alt+G,Alt+L</source>
- <translation></translation>
+ <translation>Alt+G,Alt+L</translation>
</message>
<message>
<source>Blame for &quot;%1&quot;</source>
@@ -9771,7 +9067,7 @@ These files are preserved.</source>
</message>
<message>
<source>Alt+G,Alt+B</source>
- <translation></translation>
+ <translation>Alt+G,Alt+B</translation>
</message>
<message>
<source>Undo Unstaged Changes</source>
@@ -9791,7 +9087,7 @@ These files are preserved.</source>
</message>
<message>
<source>Alt+G,Alt+U</source>
- <translation></translation>
+ <translation>Alt+G,Alt+U</translation>
</message>
<message>
<source>Stage File for Commit</source>
@@ -9802,20 +9098,36 @@ These files are preserved.</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Meta+G,Meta+B</source>
+ <translation>Meta+G,Meta+B</translation>
+ </message>
+ <message>
<source>Diff of &quot;%1&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Meta+G,Meta+D</source>
+ <translation>Meta+G,Meta+D</translation>
+ </message>
+ <message>
<source>Log Current File</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Meta+G,Meta+L</source>
+ <translation>Meta+G,Meta+L</translation>
+ </message>
+ <message>
<source>Stage &quot;%1&quot; for Commit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Alt+G,Alt+A</source>
- <translation></translation>
+ <translation>Alt+G,Alt+A</translation>
+ </message>
+ <message>
+ <source>Meta+G,Meta+A</source>
+ <translation>Meta+G,Meta+A</translation>
</message>
<message>
<source>Unstage File from Commit</source>
@@ -9826,6 +9138,10 @@ These files are preserved.</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Meta+G,Meta+U</source>
+ <translation>Meta+G,Meta+U</translation>
+ </message>
+ <message>
<source>Diff Current Project</source>
<translation type="unfinished"></translation>
</message>
@@ -9835,7 +9151,11 @@ These files are preserved.</source>
</message>
<message>
<source>Alt+G,Alt+Shift+D</source>
- <translation></translation>
+ <translation>Alt+G,Alt+Shift+D</translation>
+ </message>
+ <message>
+ <source>Meta+G,Meta+Shift+D</source>
+ <translation>Meta+G,Meta+Shift+D</translation>
</message>
<message>
<source>Log Project</source>
@@ -9847,7 +9167,11 @@ These files are preserved.</source>
</message>
<message>
<source>Alt+G,Alt+K</source>
- <translation></translation>
+ <translation>Alt+G,Alt+K</translation>
+ </message>
+ <message>
+ <source>Meta+G,Meta+K</source>
+ <translation>Meta+G,Meta+K</translation>
</message>
<message>
<source>Clean Project...</source>
@@ -9858,28 +9182,31 @@ These files are preserved.</source>
<translation>ОчиÑтити проект &quot;%1&quot;...</translation>
</message>
<message>
- <source>Remotes...</source>
+ <source>Reset...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Show...</source>
+ <source>Launch repository browser</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Apply &quot;%1&quot;</source>
+ <source>Remotes...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Diff &amp;Selected Files</source>
- <translation type="unfinished"></translation>
+ <source>Show...</source>
+ <translation>Показати...</translation>
</message>
<message>
- <source>Undo all pending changes to the repository
-%1?</source>
+ <source>Apply &quot;%1&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Undo Changes</source>
+ <source>Meta+G,Meta+C</source>
+ <translation>Meta+G,Meta+C</translation>
+ </message>
+ <message>
+ <source>Diff &amp;Selected Files</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -9916,10 +9243,6 @@ These files are preserved.</source>
</message>
<message>
<source>Status</source>
- <translation type="unfinished">СтатуÑ</translation>
- </message>
- <message>
- <source>Undo Uncommitted Changes...</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -9952,7 +9275,7 @@ These files are preserved.</source>
</message>
<message>
<source>Alt+G,Alt+C</source>
- <translation></translation>
+ <translation>Alt+G,Alt+C</translation>
</message>
<message>
<source>Amend Last Commit...</source>
@@ -9972,11 +9295,11 @@ These files are preserved.</source>
</message>
<message>
<source>Subversion</source>
- <translation></translation>
+ <translation>Subversion</translation>
</message>
<message>
<source>Log</source>
- <translation type="unfinished">Журнал</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Closing Git Editor</source>
@@ -10113,7 +9436,11 @@ These files are preserved.</source>
</message>
<message>
<source>Email:</source>
- <translation></translation>
+ <translation>Email:</translation>
+ </message>
+ <message>
+ <source>By&amp;pass hooks</source>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -10128,7 +9455,7 @@ These files are preserved.</source>
</message>
<message>
<source>URL:</source>
- <translation></translation>
+ <translation>URL:</translation>
</message>
</context>
<context>
@@ -10143,7 +9470,7 @@ These files are preserved.</source>
</message>
<message>
<source>&amp;Add...</source>
- <translation type="unfinished">&amp;Додати...</translation>
+ <translation>&amp;Додати...</translation>
</message>
<message>
<source>F&amp;etch</source>
@@ -10151,7 +9478,7 @@ These files are preserved.</source>
</message>
<message>
<source>&amp;Remove</source>
- <translation type="unfinished">&amp;Видалити</translation>
+ <translation>&amp;Видалити</translation>
</message>
<message>
<source>Delete Remote</source>
@@ -10198,7 +9525,7 @@ These files are preserved.</source>
</message>
<message>
<source>Git</source>
- <translation type="unfinished"></translation>
+ <translation>Git</translation>
</message>
<message>
<source>Git Settings</source>
@@ -10210,7 +9537,7 @@ These files are preserved.</source>
</message>
<message>
<source>Gitk</source>
- <translation type="unfinished"></translation>
+ <translation>Gitk</translation>
</message>
<message>
<source>Arguments:</source>
@@ -10232,6 +9559,14 @@ These files are preserved.</source>
<source>Prepend to PATH:</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Repository browser</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Command:</source>
+ <translation>Команда:</translation>
+ </message>
</context>
<context>
<name>Git::Internal::SettingsPageWidget</name>
@@ -10250,6 +9585,10 @@ instead of its installation directory when run outside git bash.</source>
<source>currently set to &apos;%1&apos;</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Git Repository Browser Command</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Git::Internal::StashDialog</name>
@@ -10568,7 +9907,7 @@ You can choose between stashing the changes or discarding them.</source>
</message>
<message>
<source>Range</source>
- <translation type="unfinished">Діапазон</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Highlight range</source>
@@ -10644,6 +9983,22 @@ You can choose between stashing the changes or discarding them.</source>
<translation>Файли довідки Qt (*.qch)</translation>
</message>
<message>
+ <source>Invalid documentation file:</source>
+ <translation>Ðеправильний файл документації:</translation>
+ </message>
+ <message>
+ <source>Namespace already registered:</source>
+ <translation>ПроÑÑ‚Ñ–Ñ€ імен вже зареєÑтровано:</translation>
+ </message>
+ <message>
+ <source>Registration failed</source>
+ <translation>Збій реєÑтрації</translation>
+ </message>
+ <message>
+ <source>Unable to register documentation.</source>
+ <translation>Ðеможливо зареєÑтрувати документацію.</translation>
+ </message>
+ <message>
<source>Add and remove compressed help files, .qch.</source>
<translation>Додати та видалити ÑтиÑнені файли довідки, .qch.</translation>
</message>
@@ -10698,16 +10053,6 @@ You can choose between stashing the changes or discarding them.</source>
<translation>Ðемає доÑтупних визначених кориÑтувачем фільтрів або фільтр не обрано.</translation>
</message>
<message>
- <source>&lt;html&gt;&lt;body&gt;
-&lt;p&gt;
-Add, modify, and remove document filters, which determine the documentation set displayed in the Help mode. The attributes are defined in the documents. Select them to display a set of relevant documentation. Note that some attributes are defined in several documents.
-&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;body&gt;
-&lt;p&gt;
-Додавайте, змінюйте та видалÑйте фільтри документів, Ñкі задають набір документації, що відображаєтьÑÑ Ð² режимі довідки. Ðтрибути визначені в документах. Оберіть Ñ—Ñ… Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð°Ð±Ð¾Ñ€Ñƒ відповідної документації. Майте на увазі, що деÑкі атрибути визначені в кількох документах.
-&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
- </message>
- <message>
<source>Attributes</source>
<translation>Ðтрибути</translation>
</message>
@@ -10723,12 +10068,22 @@ Add, modify, and remove document filters, which determine the documentation set
<source>Remove</source>
<translation>Видалити</translation>
</message>
+ <message>
+ <source>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;
+Add, modify, and remove document filters, which determine the documentation set displayed in the Help mode. The attributes are defined in the documents. Select them to display a set of relevant documentation. Note that some attributes are defined in several documents.
+&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;body&gt;
+&lt;p&gt;
+Додавайте, змінюйте та видалÑйте фільтри документів, Ñкі задають набір документації, що відображаєтьÑÑ Ð² режимі довідки. Ðтрибути визначені в документах. Оберіть Ñ—Ñ… Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð°Ð±Ð¾Ñ€Ñƒ відповідної документації. Майте на увазі, що деÑкі атрибути визначені в кількох документах.
+&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
</context>
<context>
<name>Help::Internal::GeneralSettingsPage</name>
<message>
- <source>General Settings</source>
- <translation>Загальні налаштуваннÑ</translation>
+ <source>General</source>
+ <translation>Загальне</translation>
</message>
<message>
<source>Import Bookmarks</source>
@@ -10827,18 +10182,6 @@ Add, modify, and remove document filters, which determine the documentation set
<translation>Скинути</translation>
</message>
<message>
- <source>Help Bookmarks</source>
- <translation>Закладки довідки</translation>
- </message>
- <message>
- <source>Import...</source>
- <translation>Імпортувати...</translation>
- </message>
- <message>
- <source>Export...</source>
- <translation>ЕкÑпортувати...</translation>
- </message>
- <message>
<source>Behaviour</source>
<translation>Поведінка</translation>
</message>
@@ -10850,6 +10193,18 @@ Add, modify, and remove document filters, which determine the documentation set
<source>Return to editor on closing the last page</source>
<translation>ПовернутиÑÑŒ до редактора при закритті оÑтанньої Ñторінки</translation>
</message>
+ <message>
+ <source>Note: This setting takes effect only if the HTML file does not use a style sheet.</source>
+ <translation>Примітка: Ці Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ñ–ÑŽÑ‚ÑŒ, лише Ñкщо файл HTML не викориÑтовує таблицю Ñтилів.</translation>
+ </message>
+ <message>
+ <source>Import Bookmarks...</source>
+ <translation>Імпортувати закладки...</translation>
+ </message>
+ <message>
+ <source>Export Bookmarks...</source>
+ <translation>ЕкÑпортувати закладки...</translation>
+ </message>
</context>
<context>
<name>Help::Internal::HelpIndexFilter</name>
@@ -10892,6 +10247,14 @@ Add, modify, and remove document filters, which determine the documentation set
<translation>Покажчик</translation>
</message>
<message>
+ <source>Meta+M</source>
+ <translation>Meta+M</translation>
+ </message>
+ <message>
+ <source>Ctrl+M</source>
+ <translation>Ctrl+M</translation>
+ </message>
+ <message>
<source>Context Help</source>
<translation>КонтекÑтна довідка</translation>
</message>
@@ -10920,14 +10283,62 @@ Add, modify, and remove document filters, which determine the documentation set
<translation>Ðктивувати покажчик в режимі довідки</translation>
</message>
<message>
+ <source>Meta+I</source>
+ <translation>Meta+I</translation>
+ </message>
+ <message>
+ <source>Ctrl+Shift+I</source>
+ <translation>Ctrl+Shift+I</translation>
+ </message>
+ <message>
<source>Activate Contents in Help mode</source>
<translation>Ðктивувати зміÑÑ‚ в режимі довідки</translation>
</message>
<message>
+ <source>Meta+Shift+C</source>
+ <translation>Meta+Shift+C</translation>
+ </message>
+ <message>
+ <source>Ctrl+Shift+C</source>
+ <translation>Ctrl+Shift+C</translation>
+ </message>
+ <message>
+ <source>Meta+/</source>
+ <translation>Meta+/</translation>
+ </message>
+ <message>
+ <source>Ctrl+Shift+/</source>
+ <translation>Ctrl+Shift+/</translation>
+ </message>
+ <message>
+ <source>Meta+B</source>
+ <translation>Meta+B</translation>
+ </message>
+ <message>
+ <source>Ctrl+Shift+B</source>
+ <translation>Ctrl+Shift+B</translation>
+ </message>
+ <message>
+ <source>Meta+O</source>
+ <translation>Meta+O</translation>
+ </message>
+ <message>
+ <source>Ctrl+Shift+O</source>
+ <translation>Ctrl+Shift+O</translation>
+ </message>
+ <message>
+ <source>Show Sidebar</source>
+ <translation>Показати бічну панель</translation>
+ </message>
+ <message>
<source>Close current page</source>
<translation>Закрити поточну Ñторінку</translation>
</message>
<message>
+ <source>Hide Sidebar</source>
+ <translation>Сховати бічну панель</translation>
+ </message>
+ <message>
<source>Search</source>
<translation>Пошук</translation>
</message>
@@ -10998,6 +10409,14 @@ Add, modify, and remove document filters, which determine the documentation set
<source>Reload</source>
<translation>Перезавантажити</translation>
</message>
+ <message>
+ <source>Error loading: %1</source>
+ <translation>Помилка завантаженнÑ: %1</translation>
+ </message>
+ <message>
+ <source>Unknown or unsupported Content!</source>
+ <translation>Ðевідомий або непідтримуваний зміÑÑ‚!</translation>
+ </message>
</context>
<context>
<name>Help::Internal::OpenPagesManager</name>
@@ -11027,10 +10446,6 @@ Add, modify, and remove document filters, which determine the documentation set
<context>
<name>Help::Internal::RemoteFilterOptions</name>
<message>
- <source>Filter configuration</source>
- <translation>ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€Ð°</translation>
- </message>
- <message>
<source>Prefix:</source>
<translation>ПрефікÑ:</translation>
</message>
@@ -11050,6 +10465,10 @@ Add, modify, and remove document filters, which determine the documentation set
<source>Double-click to edit item.</source>
<translation>Клацніть двічі, щоб змінити елемент.</translation>
</message>
+ <message>
+ <source>Edit Filter Configuration</source>
+ <translation>Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ— фільтра</translation>
+ </message>
</context>
<context>
<name>Help::Internal::RemoteHelpFilter</name>
@@ -11104,12 +10523,36 @@ Add, modify, and remove document filters, which determine the documentation set
<name>HelpViewer</name>
<message>
<source>&lt;title&gt;about:blank&lt;/title&gt;</source>
- <translation></translation>
+ <translation>&lt;title&gt;about:blank&lt;/title&gt;</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head&gt;&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;&lt;title&gt;Error 404...&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;The page could not be found&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;&lt;/body&gt;</source>
<translation>&lt;html&gt;&lt;head&gt;&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;&lt;title&gt;Помилка 404...&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;div align=&quot;center&quot;&gt;&lt;br&gt;&lt;br&gt;&lt;h1&gt;Ðе вдалоÑÑŒ знайти Ñторінку&lt;/h1&gt;&lt;br&gt;&lt;h3&gt;&apos;%1&apos;&lt;/h3&gt;&lt;/div&gt;&lt;/body&gt;</translation>
</message>
+ <message>
+ <source>Error 404...</source>
+ <translation>Помилка 404...</translation>
+ </message>
+ <message>
+ <source>The page could not be found!</source>
+ <translation>Ðе вдалоÑÑŒ знайти Ñторінку!</translation>
+ </message>
+ <message>
+ <source>&lt;li&gt;Check that you have one or more documentation sets installed.&lt;/li&gt;</source>
+ <translation>&lt;li&gt;Перевірте, що вÑтановлено один чи більше наборів документації.&lt;/li&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;li&gt;Check that you have installed the appropriate browser plug-in to support the file your loading.&lt;/li&gt;</source>
+ <translation>&lt;li&gt;Перевірте, чи вÑтановлено відповідний додаток Ð´Ð»Ñ Ð¾Ð³Ð»Ñдача Ð´Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ файлу, що завантажуєтьÑÑ.&lt;/li&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;li&gt;If you try to access a public URL, make sure to have a network connection.&lt;/li&gt;</source>
+ <translation>&lt;li&gt;Якщо ви намагаєтеÑÑŒ отримати доÑтуп до публічного URL, переконайтеÑÑŒ, що ви маєте з&apos;Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· мережею.&lt;/li&gt;</translation>
+ </message>
+ <message>
+ <source>&lt;li&gt;If your computer or network is protected by a firewall or proxy, make sure the application is permitted to access the network.&lt;/li&gt;</source>
+ <translation>&lt;li&gt;Якщо ваш комп&apos;ютер або мережа захищена мережевим екраном або прокÑÑ–, переконайтеÑÑŒ, що програмі дозволено доÑтуп до мережі.&lt;/li&gt;</translation>
+ </message>
</context>
<context>
<name>ImageSpecifics</name>
@@ -11119,7 +10562,7 @@ Add, modify, and remove document filters, which determine the documentation set
</message>
<message>
<source>Source</source>
- <translation type="unfinished">Код</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Fill mode</source>
@@ -11136,6 +10579,14 @@ Add, modify, and remove document filters, which determine the documentation set
<source>Cannot open image file %1.</source>
<translation>Ðеможливо відкрити файл Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ %1.</translation>
</message>
+ <message>
+ <source>Play Animation</source>
+ <translation>Відтворити анімацію</translation>
+ </message>
+ <message>
+ <source>Pause Animation</source>
+ <translation>Призупинити анімацію</translation>
+ </message>
</context>
<context>
<name>ImageViewer::Internal::ImageViewerActionHandler</name>
@@ -11145,7 +10596,7 @@ Add, modify, and remove document filters, which determine the documentation set
</message>
<message>
<source>Ctrl++</source>
- <translation></translation>
+ <translation>Ctrl++</translation>
</message>
<message>
<source>Zoom Out</source>
@@ -11153,7 +10604,7 @@ Add, modify, and remove document filters, which determine the documentation set
</message>
<message>
<source>Ctrl+-</source>
- <translation></translation>
+ <translation>Ctrl+-</translation>
</message>
<message>
<source>Original Size</source>
@@ -11161,7 +10612,11 @@ Add, modify, and remove document filters, which determine the documentation set
</message>
<message>
<source>Ctrl+0</source>
- <translation></translation>
+ <translation>Ctrl+0</translation>
+ </message>
+ <message>
+ <source>Meta+0</source>
+ <translation>Meta+0</translation>
</message>
<message>
<source>Fit To Screen</source>
@@ -11169,7 +10624,7 @@ Add, modify, and remove document filters, which determine the documentation set
</message>
<message>
<source>Ctrl+=</source>
- <translation></translation>
+ <translation>Ctrl+=</translation>
</message>
<message>
<source>Switch Background</source>
@@ -11180,12 +10635,16 @@ Add, modify, and remove document filters, which determine the documentation set
<translation>Увімкнути/вимкнути оглÑд</translation>
</message>
<message>
+ <source>Toggle Animation</source>
+ <translation>Відтворити/призупинити анімацію</translation>
+ </message>
+ <message>
<source>Ctrl+[</source>
- <translation></translation>
+ <translation>Ctrl+[</translation>
</message>
<message>
<source>Ctrl+]</source>
- <translation></translation>
+ <translation>Ctrl+]</translation>
</message>
</context>
<context>
@@ -11286,7 +10745,7 @@ QML component instance objects and properties directly.</source>
</message>
<message>
<source>Target</source>
- <translation type="unfinished">Ціль</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Margin</source>
@@ -11304,7 +10763,7 @@ QML component instance objects and properties directly.</source>
<name>LinksBar</name>
<message>
<source>Qt Creator</source>
- <translation></translation>
+ <translation>Qt Creator</translation>
</message>
</context>
<context>
@@ -11359,7 +10818,7 @@ QML component instance objects and properties directly.</source>
</message>
<message>
<source>Range</source>
- <translation type="unfinished">Діапазон</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Highlight range</source>
@@ -11530,10 +10989,6 @@ To do this, you type this shortcut and a space in the Locator entry field, and t
<context>
<name>Locator::Internal::FileSystemFilterOptions</name>
<message>
- <source>Filter configuration</source>
- <translation>ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€Ð°</translation>
- </message>
- <message>
<source>Prefix:</source>
<translation>ПрефікÑ:</translation>
</message>
@@ -11549,6 +11004,10 @@ To do this, you type this shortcut and a space in the Locator entry field, and t
<source>Filter:</source>
<translation>Фільтр:</translation>
</message>
+ <message>
+ <source>Add Filter Configuration</source>
+ <translation>Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ— фільтра</translation>
+ </message>
</context>
<context>
<name>Locator::Internal::LocatorFiltersFilter</name>
@@ -11561,7 +11020,7 @@ To do this, you type this shortcut and a space in the Locator entry field, and t
<name>Locator::Internal::LocatorPlugin</name>
<message>
<source>Ctrl+K</source>
- <translation></translation>
+ <translation>Ctrl+K</translation>
</message>
<message>
<source>Type to locate</source>
@@ -11701,23 +11160,23 @@ To do this, you type this shortcut and a space in the Locator entry field, and t
</message>
<message>
<source>Ctrl+(</source>
- <translation></translation>
+ <translation>Ctrl+(</translation>
</message>
<message>
<source>Alt+(</source>
- <translation></translation>
+ <translation>Alt+(</translation>
</message>
<message>
<source>Stop Recording Macro</source>
- <translation>Зупинити Ð·Ð°Ð¿Ð¸Ñ Ð¼Ð°ÐºÑ€Ð¾Ñа</translation>
+ <translation>Зупинити Ð·Ð°Ð¿Ð¸Ñ Ð¼Ð°ÐºÑ€Ð¾Ñу</translation>
</message>
<message>
<source>Ctrl+)</source>
- <translation></translation>
+ <translation>Ctrl+)</translation>
</message>
<message>
<source>Alt+)</source>
- <translation></translation>
+ <translation>Alt+)</translation>
</message>
<message>
<source>Play Last Macro</source>
@@ -11725,7 +11184,11 @@ To do this, you type this shortcut and a space in the Locator entry field, and t
</message>
<message>
<source>Alt+R</source>
- <translation></translation>
+ <translation>Alt+R</translation>
+ </message>
+ <message>
+ <source>Meta+R</source>
+ <translation>Meta+R</translation>
</message>
<message>
<source>Save Last Macro</source>
@@ -11751,232 +11214,102 @@ To do this, you type this shortcut and a space in the Locator entry field, and t
<name>Macros::MacroManager</name>
<message>
<source>Playing Macro</source>
- <translation>Ð’Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¼Ð°ÐºÑ€Ð¾Ñа</translation>
+ <translation>Ð’Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¼Ð°ÐºÑ€Ð¾Ñу</translation>
</message>
<message>
<source>An error occurred while replaying the macro, execution stopped.</source>
- <translation>Під Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð²Ð°Ð½Ð½Ñ Ð¼Ð°ÐºÑ€Ð¾Ñа ÑталаÑÑŒ помилка, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·ÑƒÐ¿Ð¸Ð½ÐµÐ½Ð¾.</translation>
+ <translation>Під Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð²Ð°Ð½Ð½Ñ Ð¼Ð°ÐºÑ€Ð¾Ñу ÑталаÑÑŒ помилка, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·ÑƒÐ¿Ð¸Ð½ÐµÐ½Ð¾.</translation>
</message>
<message>
<source>Macro mode. Type &quot;%1&quot; to stop recording and &quot;%2&quot; to play it</source>
- <translation>Режим макроÑа. ÐатиÑніть &quot;%1&quot;, щоб зупинити Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ð° щоб &quot;%2&quot; програти його</translation>
+ <translation>Режим макроÑу. ÐатиÑніть &quot;%1&quot;, щоб зупинити Ð·Ð°Ð¿Ð¸Ñ Ñ‚Ð° щоб &quot;%2&quot; програти його</translation>
</message>
<message>
<source>Stop Recording Macro</source>
- <translation>Зупинити Ð·Ð°Ð¿Ð¸Ñ Ð¼Ð°ÐºÑ€Ð¾Ñа</translation>
- </message>
-</context>
-<context>
- <name>Madde::Internal::AbstractDebBasedQt4MaemoTarget</name>
- <message>
- <source>Debian changelog file &apos;%1&apos; has unexpected format.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Refusing to update changelog file: Already contains version &apos;%1&apos;.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Cannot update changelog: Invalid format (no maintainer entry found).</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Invalid icon data in Debian control file.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Could not read image file &apos;%1&apos;.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Could not export image file &apos;%1&apos;.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Unable to create Debian templates: No Qt version set.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Unable to create Debian templates: dh_make failed (%1).</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Unable to create debian templates: dh_make failed (%1).</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Unable to move new debian directory to &apos;%1&apos;.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Madde::Internal::AbstractMaddeUploadAndInstallPackageAction</name>
- <message>
- <source>Cannot deploy: Qemu was not running. It has now been started up for you, but it will take a bit of time until it is ready. Please try again then.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Cannot deploy: You want to deploy to Qemu, but it is not enabled for this Qt version.</source>
- <translation type="unfinished"></translation>
+ <translation>Зупинити Ð·Ð°Ð¿Ð¸Ñ Ð¼Ð°ÐºÑ€Ð¾Ñу</translation>
</message>
</context>
<context>
<name>Madde::Internal::AbstractMaemoDeployByMountService</name>
<message>
- <source>Cannot deploy: Qemu was not running. It has now been started up for you, but it will take a bit of time until it is ready. Please try again then.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Cannot deploy: You want to deploy to Qemu, but it is not enabled for this Qt version.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Missing build configuration.</source>
- <translation type="unfinished"></translation>
+ <translation>ВідÑÑƒÑ‚Ð½Ñ ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸.</translation>
</message>
</context>
<context>
<name>Madde::Internal::AbstractMaemoInstallPackageToSysrootStep</name>
<message>
- <source>Cannot install to sysroot without build configuration.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Cannot install package to sysroot without packaging step.</source>
- <translation type="unfinished"></translation>
+ <translation>Ðеможливо вÑтановити пакунок до sysroot без кроку пакуваннÑ.</translation>
</message>
<message>
<source>Cannot install package to sysroot without a Qt version.</source>
- <translation type="unfinished"></translation>
+ <translation>Ðеможливо вÑтановити пакунок до sysroot без верÑÑ–Ñ— Qt.</translation>
</message>
<message>
<source>Installing package to sysroot...</source>
- <translation type="unfinished"></translation>
+ <translation>Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°ÐºÑƒÐ½ÐºÐ° до sysroot...</translation>
</message>
<message>
<source>Installation to sysroot failed, continuing anyway.</source>
- <translation type="unfinished"></translation>
+ <translation>Збій вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð¾ sysroot, вÑе одно продовжуємо.</translation>
</message>
</context>
<context>
<name>Madde::Internal::AbstractMaemoInstallPackageToSysrootWidget</name>
<message>
<source>Cannot deploy to sysroot: No packaging step found.</source>
- <translation type="unfinished"></translation>
+ <translation>Ðеможливо розгорнути до sysroot: Ðемає кроку пакуваннÑ.</translation>
</message>
</context>
<context>
<name>Madde::Internal::AbstractMaemoPackageCreationStep</name>
<message>
<source>Package up to date.</source>
- <translation type="unfinished"></translation>
+ <translation>Пакунок актуальний.</translation>
</message>
<message>
<source>Package created.</source>
- <translation type="unfinished"></translation>
+ <translation>Пакунок Ñтворено.</translation>
</message>
<message>
<source>Packaging failed: No Qt version.</source>
- <translation type="unfinished"></translation>
+ <translation>Збій пакуваннÑ: Ðемає верÑÑ–Ñ— Qt.</translation>
</message>
<message>
- <source>No Qt4 build configuration</source>
- <translation type="unfinished"></translation>
+ <source>No Qt build configuration</source>
+ <translation>Ðемає конфігурації збірки Qt</translation>
</message>
<message>
<source>Creating package file...</source>
- <translation type="unfinished"></translation>
+ <translation>Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ пакунка...</translation>
</message>
<message>
<source>Package Creation: Running command &apos;%1&apos;.</source>
- <translation type="unfinished"></translation>
+ <translation>Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð°ÐºÑƒÐ½ÐºÐ°: Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ &apos;%1&apos;.</translation>
</message>
<message>
<source>Packaging failed: Could not start command &apos;%1&apos;. Reason: %2</source>
- <translation type="unfinished"></translation>
+ <translation>Збій пакуваннÑ: Ðе вдалоÑÑŒ запуÑтити команду &apos;%1&apos;. Причина: %2</translation>
</message>
<message>
<source>Packaging Error: Command &apos;%1&apos; failed.</source>
- <translation type="unfinished"></translation>
+ <translation>Помилка пакуваннÑ: Збій команди &apos;%1&apos;.</translation>
</message>
<message>
<source> Reason: %1</source>
- <translation type="unfinished"></translation>
+ <translation> Причина: %1</translation>
</message>
<message>
<source>Exit code: %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Madde::Internal::AbstractQt4MaemoTarget</name>
- <message>
- <source>Cannot open file &apos;%1&apos;: %2</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Add Packaging Files to Project</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&lt;html&gt;Qt Creator has set up the following files to enable packaging:
- %1
-Do you want to add them to the project?&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Qt Creator</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Do you want to remove the packaging files associated with the target &apos;%1&apos;?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error creating packaging directory &apos;%1&apos;.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error creating MeeGo templates</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Madde::Internal::MaddeDeviceConfigurationFactory</name>
- <message>
- <source>Device with MADDE support (Fremantle, Harmattan, MeeGo)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Maemo5/Fremantle</source>
- <translation></translation>
- </message>
- <message>
- <source>MeeGo 1.2 Harmattan</source>
- <translation></translation>
- </message>
- <message>
- <source>Other MeeGo OS</source>
- <translation>Інша ОС MeeGo</translation>
- </message>
- <message>
- <source>Test</source>
- <translation>ТеÑÑ‚</translation>
- </message>
- <message>
- <source>Remote Processes...</source>
- <translation type="unfinished">Віддалені процеÑи...</translation>
- </message>
- <message>
- <source>Deploy Public Key...</source>
- <translation type="unfinished">Розгорнути файл публічного ключа...</translation>
+ <translation>Код завершеннÑ: %1</translation>
</message>
</context>
<context>
<name>Madde::Internal::MaddeDeviceTester</name>
<message>
<source>Checking for Qt libraries...</source>
- <translation type="unfinished"></translation>
+ <translation>Перевірка бібліотек Qt...</translation>
</message>
<message>
<source>SSH connection error: %1
@@ -11987,12 +11320,12 @@ Do you want to add them to the project?&lt;/html&gt;</source>
<message>
<source>Error checking for Qt libraries: %1
</source>
- <translation type="unfinished"></translation>
+ <translation>Помилка перевірки бібліотек Qt: %1</translation>
</message>
<message>
<source>Error checking for Qt libraries.
</source>
- <translation type="unfinished"></translation>
+ <translation>Помилка перевірки бібліотек Qt.</translation>
</message>
<message>
<source>Checking for connectivity support...</source>
@@ -12061,15 +11394,15 @@ Do you want to add them to the project?&lt;/html&gt;</source>
<name>Madde::Internal::MaemoCopyToSysrootStep</name>
<message>
<source>Cannot copy to sysroot without build configuration.</source>
- <translation type="unfinished"></translation>
+ <translation>Ðеможливо Ñкопіювати до sysroot без конфігурації збірки.</translation>
</message>
<message>
<source>Cannot copy to sysroot without valid Qt version.</source>
- <translation type="unfinished"></translation>
+ <translation>Ðеможливо Ñкопіювати до sysroot без правильної верÑÑ–Ñ— Qt.</translation>
</message>
<message>
<source>Copying files to sysroot...</source>
- <translation type="unfinished"></translation>
+ <translation>ÐšÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² до sysroot...</translation>
</message>
<message>
<source>Sysroot installation failed: %1
@@ -12078,14 +11411,14 @@ Do you want to add them to the project?&lt;/html&gt;</source>
</message>
<message>
<source>Copy files to sysroot</source>
- <translation type="unfinished">Копіювати файли до sysroot</translation>
+ <translation>Копіювати файли до sysroot</translation>
</message>
</context>
<context>
<name>Madde::Internal::MaemoDebianPackageCreationStep</name>
<message>
<source>Create Debian Package</source>
- <translation type="unfinished"></translation>
+ <translation>Створити пакунок Debian</translation>
</message>
<message>
<source>Packaging failed: Could not get package name.</source>
@@ -12169,7 +11502,7 @@ We will try to work around that, but you may experience problems.</source>
</message>
<message>
<source>Form</source>
- <translation type="unfinished">Форма</translation>
+ <translation>Форма</translation>
</message>
<message>
<source>Add Desktop File</source>
@@ -12220,7 +11553,7 @@ We will try to work around that, but you may experience problems.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Creating keys... </source>
+ <source>Creating keys...</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -12237,7 +11570,7 @@ We will try to work around that, but you may experience problems.</source>
</message>
<message>
<source>WizardPage</source>
- <translation type="unfinished">Сторінка майÑтра</translation>
+ <translation>Сторінка майÑтра</translation>
</message>
<message>
<source>Qt Creator will now generate a new pair of keys. Please enter the directory to save the key files in and then press &quot;Create Keys&quot;.</source>
@@ -12245,7 +11578,7 @@ We will try to work around that, but you may experience problems.</source>
</message>
<message>
<source>Directory:</source>
- <translation type="unfinished">Тека:</translation>
+ <translation>Тека:</translation>
</message>
<message>
<source>Create Keys</source>
@@ -12259,8 +11592,8 @@ We will try to work around that, but you may experience problems.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Deploying... </source>
- <translation type="unfinished"></translation>
+ <source>Deploying...</source>
+ <translation>РозгортаннÑ...</translation>
</message>
<message>
<source>Key Deployment Failure</source>
@@ -12280,7 +11613,7 @@ We will try to work around that, but you may experience problems.</source>
</message>
<message>
<source>WizardPage</source>
- <translation type="unfinished">Сторінка майÑтра</translation>
+ <translation>Сторінка майÑтра</translation>
</message>
<message>
<source>To deploy the public key to your device, please execute the following steps:
@@ -12299,7 +11632,7 @@ We will try to work around that, but you may experience problems.</source>
</message>
<message>
<source>Password:</source>
- <translation type="unfinished">Пароль:</translation>
+ <translation>Пароль:</translation>
</message>
<message>
<source>Deploy Key</source>
@@ -12321,7 +11654,7 @@ We will try to work around that, but you may experience problems.</source>
</message>
<message>
<source>WizardPage</source>
- <translation type="unfinished">Сторінка майÑтра</translation>
+ <translation>Сторінка майÑтра</translation>
</message>
<message>
<source>Do you want to re-use an existing pair of keys or should a new one be created?</source>
@@ -12355,16 +11688,16 @@ We will try to work around that, but you may experience problems.</source>
<translation>ПриÑтрій MeeGo</translation>
</message>
<message>
- <source>WizardPage</source>
- <translation type="unfinished">Сторінка майÑтра</translation>
+ <source>%1 Device</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <source>The name to identify this configuration:</source>
- <translation type="unfinished">Ðазва Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— конфігурації:</translation>
+ <source>WizardPage</source>
+ <translation>Сторінка майÑтра</translation>
</message>
<message>
- <source>The system running on the device:</source>
- <translation type="unfinished"></translation>
+ <source>The name to identify this configuration:</source>
+ <translation>Ðазва Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— конфігурації:</translation>
</message>
<message>
<source>The kind of device:</source>
@@ -12372,7 +11705,7 @@ We will try to work around that, but you may experience problems.</source>
</message>
<message>
<source>Emulator</source>
- <translation type="unfinished">ЕмулÑтор</translation>
+ <translation>ЕмулÑтор</translation>
</message>
<message>
<source>Hardware Device</source>
@@ -12380,7 +11713,7 @@ We will try to work around that, but you may experience problems.</source>
</message>
<message>
<source>The device&apos;s host name or IP address:</source>
- <translation type="unfinished">Ðазва вузла чи IP-адреÑа приÑтрою:</translation>
+ <translation>Ðазва вузла чи IP-адреÑа приÑтрою:</translation>
</message>
<message>
<source>The SSH server port:</source>
@@ -12402,18 +11735,19 @@ We will try to work around that, but you may experience problems.</source>
</message>
<message>
<source>Deploy package via UTFS mount</source>
- <translation>Розгорнути пакуноу через Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ UTFS</translation>
+ <translation>Розгорнути пакунок через Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ UTFS</translation>
</message>
</context>
<context>
- <name>Madde::Internal::MaemoInstallRpmPackageToSysrootStep</name>
+ <name>Madde::Internal::MaemoMakeInstallToSysrootStep</name>
<message>
- <source>Install RPM package to sysroot</source>
- <translation>Ð’Ñтановити пакунок RPM до sysroot</translation>
+ <source>Cannot deploy: No active build dconfiguration.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot deploy: Unusable build configuration.</source>
+ <translation type="unfinished"></translation>
</message>
-</context>
-<context>
- <name>Madde::Internal::MaemoMakeInstallToSysrootStep</name>
<message>
<source>Copy files to sysroot</source>
<translation>Копіювати файли до sysroot</translation>
@@ -12521,7 +11855,7 @@ We will try to work around that, but you may experience problems.</source>
</message>
<message>
<source>Edit...</source>
- <translation type="unfinished">Редагувати...</translation>
+ <translation>Редагувати...</translation>
</message>
<message>
<source>Edit spec file</source>
@@ -12599,7 +11933,7 @@ We will try to work around that, but you may experience problems.</source>
</message>
<message>
<source>Failed to create directory &apos;%1&apos;.</source>
- <translation type="unfinished">Збій ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÐ¸ &apos;%1&apos;.</translation>
+ <translation>Збій ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÐ¸ &apos;%1&apos;.</translation>
</message>
<message>
<source>Could not set execute permissions for rules file: %1</source>
@@ -12610,6 +11944,10 @@ We will try to work around that, but you may experience problems.</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Make distclean failed: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Error: Failed to start dpkg-buildpackage.</source>
<translation type="unfinished"></translation>
</message>
@@ -12707,7 +12045,7 @@ We will try to work around that, but you may experience problems.</source>
</message>
<message>
<source>WizardPage</source>
- <translation type="unfinished">Сторінка майÑтра</translation>
+ <translation>Сторінка майÑтра</translation>
</message>
<message>
<source>Upload Settings</source>
@@ -12727,7 +12065,7 @@ We will try to work around that, but you may experience problems.</source>
</message>
<message>
<source>Private key file:</source>
- <translation type="unfinished">Файл приватного ключа:</translation>
+ <translation>Файл приватного ключа:</translation>
</message>
<message>
<source>Server address:</source>
@@ -12757,7 +12095,7 @@ We will try to work around that, but you may experience problems.</source>
</message>
<message>
<source>Build Settings</source>
- <translation type="unfinished">ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸</translation>
+ <translation>ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸</translation>
</message>
<message>
<source>Upload Settings</source>
@@ -12794,6 +12132,10 @@ We will try to work around that, but you may experience problems.</source>
<context>
<name>Madde::Internal::MaemoQemuManager</name>
<message>
+ <source>MeeGo Emulator</source>
+ <translation>ЕмулÑтор MeeGo</translation>
+ </message>
+ <message>
<source>Start MeeGo Emulator</source>
<translation type="unfinished"></translation>
</message>
@@ -12829,7 +12171,7 @@ We will try to work around that, but you may experience problems.</source>
<name>Madde::Internal::MaemoRemoteCopyFacility</name>
<message>
<source>Connection failed: %1</source>
- <translation type="unfinished">Збій з&apos;єднаннÑ: %1</translation>
+ <translation>Збій з&apos;єднаннÑ: %1</translation>
</message>
<message>
<source>Error: Copy command failed.</source>
@@ -12913,21 +12255,10 @@ stderr was: %1</source>
</message>
</context>
<context>
- <name>Madde::Internal::MaemoRpmPackageCreationStep</name>
- <message>
- <source>Create RPM Package</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Packaging failed: Could not move package file from %1 to %2.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
<name>Madde::Internal::MaemoRunConfiguration</name>
<message>
<source>Not enough free ports on the device.</source>
- <translation>ÐедоÑтатньо вільних портів в приÑтрої</translation>
+ <translation>ÐедоÑтатньо вільних портів в приÑтрої.</translation>
</message>
</context>
<context>
@@ -12978,51 +12309,6 @@ stderr was: %1</source>
</message>
</context>
<context>
- <name>Madde::Internal::MaemoSshRunner</name>
- <message>
- <source>Qemu was not running. It has now been started up for you, but it will take a bit of time until it is ready. Please try again then.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You want to run on Qemu, but it is not enabled for this Qt version.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Mounting host directories...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Potentially unmounting left-over host directory mounts...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Unmounting host directories...</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Madde::Internal::MaemoToolChainConfigWidget</name>
- <message>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Path to MADDE:&lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Path to MADDE target:&lt;/td&gt;&lt;td&gt;%2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Debugger:&lt;/td/&gt;&lt;td&gt;%3&lt;/td&gt;&lt;/tr&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;ШлÑÑ… до MADDE:&lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ШлÑÑ… до цілі MADDE:&lt;/td&gt;&lt;td&gt;%2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Зневаджувач:&lt;/td/&gt;&lt;td&gt;%3&lt;/td&gt;&lt;/tr&gt;&lt;/body&gt;&lt;/html&gt;</translation>
- </message>
-</context>
-<context>
- <name>Madde::Internal::MaemoToolChainFactory</name>
- <message>
- <source>Maemo GCC</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Maemo GCC for %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>%1 GCC (%2)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
<name>Madde::Internal::MaemoUploadAndInstallPackageStep</name>
<message>
<source>No Debian package creation step found.</source>
@@ -13034,17 +12320,6 @@ stderr was: %1</source>
</message>
</context>
<context>
- <name>Madde::Internal::MeegoUploadAndInstallPackageStep</name>
- <message>
- <source>No RPM package creation step found.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Deploy RPM package via SFTP upload</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
<name>Madde::Internal::Qt4MaemoDeployConfigurationFactory</name>
<message>
<source>Copy Files to Maemo5 Device</source>
@@ -13058,10 +12333,6 @@ stderr was: %1</source>
<source>Build Debian Package and Install to Harmattan Device</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <source>Build RPM Package and Install to MeeGo Device</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>MainView</name>
@@ -13170,14 +12441,14 @@ stderr was: %1</source>
</message>
<message>
<source>Email:</source>
- <translation></translation>
+ <translation>Email:</translation>
</message>
</context>
<context>
<name>Mercurial::Internal::MercurialControl</name>
<message>
<source>Mercurial</source>
- <translation></translation>
+ <translation>Mercurial</translation>
</message>
</context>
<context>
@@ -13206,7 +12477,7 @@ stderr was: %1</source>
<name>Mercurial::Internal::MercurialPlugin</name>
<message>
<source>Mercurial</source>
- <translation type="unfinished"></translation>
+ <translation>Mercurial</translation>
</message>
<message>
<source>Annotate Current File</source>
@@ -13226,7 +12497,11 @@ stderr was: %1</source>
</message>
<message>
<source>Alt+H,Alt+D</source>
- <translation></translation>
+ <translation>Alt+H,Alt+D</translation>
+ </message>
+ <message>
+ <source>Meta+H,Meta+D</source>
+ <translation>Meta+H,Meta+D</translation>
</message>
<message>
<source>Log Current File</source>
@@ -13238,7 +12513,11 @@ stderr was: %1</source>
</message>
<message>
<source>Alt+H,Alt+L</source>
- <translation></translation>
+ <translation>Alt+H,Alt+L</translation>
+ </message>
+ <message>
+ <source>Meta+H,Meta+L</source>
+ <translation>Meta+H,Meta+L</translation>
</message>
<message>
<source>Status Current File</source>
@@ -13250,7 +12529,11 @@ stderr was: %1</source>
</message>
<message>
<source>Alt+H,Alt+S</source>
- <translation></translation>
+ <translation>Alt+H,Alt+S</translation>
+ </message>
+ <message>
+ <source>Meta+H,Meta+S</source>
+ <translation>Meta+H,Meta+S</translation>
</message>
<message>
<source>Add</source>
@@ -13282,7 +12565,7 @@ stderr was: %1</source>
</message>
<message>
<source>Log</source>
- <translation type="unfinished">Журнал</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Revert...</source>
@@ -13322,7 +12605,11 @@ stderr was: %1</source>
</message>
<message>
<source>Alt+H,Alt+C</source>
- <translation></translation>
+ <translation>Alt+H,Alt+C</translation>
+ </message>
+ <message>
+ <source>Meta+H,Meta+C</source>
+ <translation>Meta+H,Meta+C</translation>
</message>
<message>
<source>Create Repository...</source>
@@ -13365,10 +12652,6 @@ stderr was: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Unable to generate a temporary file for the commit editor.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Unable to create an editor for the commit.</source>
<translation type="unfinished"></translation>
</message>
@@ -13445,7 +12728,7 @@ stderr was: %1</source>
</message>
<message>
<source>Mercurial</source>
- <translation></translation>
+ <translation>Mercurial</translation>
</message>
<message>
<source>The number of recent commit logs to show, choose 0 to see all entries.</source>
@@ -13557,6 +12840,10 @@ stderr was: %1</source>
</message>
<message>
<source>Automake based Makefile</source>
+ <translation>Makefile на базі Automake</translation>
+ </message>
+ <message>
+ <source>ClearCase submit template</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -13597,11 +12884,11 @@ stderr was: %1</source>
</message>
<message>
<source>Generic Qt Creator Project file</source>
- <translation type="unfinished"></translation>
+ <translation>Файл звичайного проекту Qt Creator</translation>
</message>
<message>
<source>Generic Project Files</source>
- <translation type="unfinished"></translation>
+ <translation>Файли звичайного проекту</translation>
</message>
<message>
<source>Generic Project Include Paths</source>
@@ -13613,27 +12900,27 @@ stderr was: %1</source>
</message>
<message>
<source>GLSL Shader file</source>
- <translation type="unfinished"></translation>
+ <translation>Файл шейдера GLSL</translation>
</message>
<message>
<source>GLSL Fragment Shader file</source>
- <translation type="unfinished"></translation>
+ <translation>Файл фрагментного шейдера GLSL</translation>
</message>
<message>
<source>GLSL/ES Fragment Shader file</source>
- <translation type="unfinished"></translation>
+ <translation>Файл фрагментного шейдера GLSL/ES</translation>
</message>
<message>
<source>GLSL Vertex Shader file</source>
- <translation type="unfinished"></translation>
+ <translation>Файл вершинного шейдера GLSL</translation>
</message>
<message>
<source>GLSL/ES Vertex Shader file</source>
- <translation type="unfinished"></translation>
+ <translation>Файл вершинного шейдера GLSL/ES</translation>
</message>
<message>
<source>GLSL/ES Geometry Shader file</source>
- <translation type="unfinished"></translation>
+ <translation>Файл геометричного шейдера GLSL/ES</translation>
</message>
<message>
<source>Perforce submit template</source>
@@ -13645,19 +12932,19 @@ stderr was: %1</source>
</message>
<message>
<source>Qt Script file</source>
- <translation type="unfinished"></translation>
+ <translation>Файл Ñкрипту Qt</translation>
</message>
<message>
<source>JSON file</source>
- <translation type="unfinished"></translation>
+ <translation>Файл JSON</translation>
</message>
<message>
<source>QML Project file</source>
- <translation type="unfinished"></translation>
+ <translation>Файл проекту QML</translation>
</message>
<message>
<source>Qt Project file</source>
- <translation type="unfinished"></translation>
+ <translation>Файл проекту Qt</translation>
</message>
<message>
<source>Qt Project include file</source>
@@ -13669,7 +12956,7 @@ stderr was: %1</source>
</message>
<message>
<source>message catalog</source>
- <translation type="unfinished"></translation>
+ <translation>каталог повідомлень</translation>
</message>
<message>
<source>Qt Resource file</source>
@@ -13685,15 +12972,15 @@ stderr was: %1</source>
</message>
<message>
<source>Plain text document</source>
- <translation type="unfinished"></translation>
+ <translation>ПроÑтий текÑтовий документ</translation>
</message>
<message>
<source>XML document</source>
- <translation type="unfinished"></translation>
+ <translation>Документ XML</translation>
</message>
<message>
<source>Assembler</source>
- <translation type="unfinished"></translation>
+ <translation>ÐÑемблер</translation>
</message>
<message>
<source>Qt Creator Generic Assembler</source>
@@ -13701,7 +12988,7 @@ stderr was: %1</source>
</message>
<message>
<source>Differences between files</source>
- <translation type="unfinished"></translation>
+ <translation>Ð Ñ–Ð·Ð½Ð¸Ñ†Ñ Ð¼Ñ–Ð¶ файлами</translation>
</message>
</context>
<context>
@@ -13714,7 +13001,9 @@ stderr was: %1</source>
<source>Creates a Qt application optimized for mobile devices with a Qt Designer-based main window.
Preselects Qt for Simulator and mobile targets if available.</source>
- <translation type="unfinished"></translation>
+ <translation>Створює програму Qt оптимізовану Ð´Ð»Ñ Ð¼Ð¾Ð±Ñ–Ð»ÑŒÐ½Ð¸Ñ… приÑтроїв з головним вікном на оÑнові Qt Designer.
+
+Обирає Qt Ð´Ð»Ñ Simulator та мобільних цілей, Ñкщо доÑтупно.</translation>
</message>
</context>
<context>
@@ -13740,7 +13029,7 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
<message>
<source>Enabled</source>
- <translation type="unfinished">Увімкнено</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>This property holds whether the item accepts mouse events.</source>
@@ -13786,11 +13075,11 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
<message>
<source>Qt Designer</source>
- <translation></translation>
+ <translation>Qt Designer</translation>
</message>
<message>
<source>Qt Linguist</source>
- <translation></translation>
+ <translation>Qt Linguist</translation>
</message>
<message>
<source>.pro File Editor</source>
@@ -13968,7 +13257,7 @@ Preselects Qt for Simulator and mobile targets if available.</source>
<name>Perforce::Internal::PerforcePlugin</name>
<message>
<source>&amp;Perforce</source>
- <translation></translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Diff Current File</source>
@@ -13996,7 +13285,11 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
<message>
<source>Alt+P,Alt+F</source>
- <translation></translation>
+ <translation>Alt+P,Alt+F</translation>
+ </message>
+ <message>
+ <source>Meta+P,Meta+F</source>
+ <translation>Meta+P,Meta+F</translation>
</message>
<message>
<source>Edit</source>
@@ -14008,7 +13301,11 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
<message>
<source>Alt+P,Alt+E</source>
- <translation></translation>
+ <translation>Alt+P,Alt+E</translation>
+ </message>
+ <message>
+ <source>Meta+P,Meta+E</source>
+ <translation>Meta+P,Meta+E</translation>
</message>
<message>
<source>Edit File</source>
@@ -14024,7 +13321,11 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
<message>
<source>Alt+P,Alt+A</source>
- <translation></translation>
+ <translation>Alt+P,Alt+A</translation>
+ </message>
+ <message>
+ <source>Meta+P,Meta+A</source>
+ <translation>Meta+P,Meta+A</translation>
</message>
<message>
<source>Add File</source>
@@ -14052,7 +13353,11 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
<message>
<source>Alt+P,Alt+R</source>
- <translation></translation>
+ <translation>Alt+P,Alt+R</translation>
+ </message>
+ <message>
+ <source>Meta+P,Meta+R</source>
+ <translation>Meta+P,Meta+R</translation>
</message>
<message>
<source>Revert File</source>
@@ -14068,7 +13373,11 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
<message>
<source>Alt+P,Alt+D</source>
- <translation></translation>
+ <translation>Alt+P,Alt+D</translation>
+ </message>
+ <message>
+ <source>Meta+P,Meta+D</source>
+ <translation>Meta+P,Meta+D</translation>
</message>
<message>
<source>Log Project</source>
@@ -14088,7 +13397,11 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
<message>
<source>Alt+P,Alt+S</source>
- <translation></translation>
+ <translation>Alt+P,Alt+S</translation>
+ </message>
+ <message>
+ <source>Meta+P,Meta+S</source>
+ <translation>Meta+P,Meta+S</translation>
</message>
<message>
<source>Update Current Project</source>
@@ -14124,7 +13437,11 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
<message>
<source>Alt+P,Alt+O</source>
- <translation></translation>
+ <translation>Alt+P,Alt+O</translation>
+ </message>
+ <message>
+ <source>Meta+P,Meta+O</source>
+ <translation>Meta+P,Meta+O</translation>
</message>
<message>
<source>Repository Log</source>
@@ -14168,7 +13485,7 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
<message>
<source>p4 revert</source>
- <translation></translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>The file has been changed. Do you want to revert it?</source>
@@ -14188,23 +13505,23 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
<message>
<source>p4 annotate</source>
- <translation></translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>p4 annotate %1</source>
- <translation></translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>p4 filelog</source>
- <translation></translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>p4 filelog %1</source>
- <translation></translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Could not start perforce &apos;%1&apos;. Please check your settings in the preferences.</source>
- <translation>Ðе вдалоÑÑŒ запуÑтити perforce &apos;%1&apos;. Будь-лаÑка, перевірте ваші налаштуваннÑ.</translation>
+ <translation>Ðе вдалоÑÑŒ запуÑтити perforce &apos;%1&apos;. Будь лаÑка, перевірте ваші налаштуваннÑ.</translation>
</message>
<message>
<source>Perforce did not respond within timeout limit (%1 ms).</source>
@@ -14216,7 +13533,7 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
<message>
<source>The process terminated with exit code %1.</source>
- <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð²Ñ Ð· кодом %1.</translation>
+ <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð²ÑÑ Ð· кодом %1.</translation>
</message>
<message>
<source>Unable to write input data to process %1: %2</source>
@@ -14228,11 +13545,11 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
<message>
<source>p4 diff %1</source>
- <translation></translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>p4 describe %1</source>
- <translation></translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Closing p4 Editor</source>
@@ -14292,7 +13609,7 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
<message>
<source>OK</source>
- <translation></translation>
+ <translation>OK</translation>
</message>
</context>
<context>
@@ -14347,7 +13664,7 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
<message>
<source>Perforce</source>
- <translation></translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Automatically open files when editing</source>
@@ -14527,6 +13844,10 @@ Preselects Qt for Simulator and mobile targets if available.</source>
<source>Qt Application</source>
<translation>Програма Qt</translation>
</message>
+ <message>
+ <source>Devices</source>
+ <translation>ПриÑтрої</translation>
+ </message>
</context>
<context>
<name>ProjectExplorer::AbiWidget</name>
@@ -14587,7 +13908,7 @@ Preselects Qt for Simulator and mobile targets if available.</source>
<message>
<source>untitled</source>
<extracomment>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.</extracomment>
- <translation></translation>
+ <translation>untitled</translation>
</message>
</context>
<context>
@@ -14651,8 +13972,8 @@ Preselects Qt for Simulator and mobile targets if available.</source>
<translation>СкаÑована збірка/розгортаннÑ.</translation>
</message>
<message>
- <source>Error while building/deploying project %1 (target: %2)</source>
- <translation>Помилка під Ñ‡Ð°Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸/Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñƒ %1 (ціль: %2)</translation>
+ <source>Error while building/deploying project %1 (kit: %2)</source>
+ <translation>Помилка під Ñ‡Ð°Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸/Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñƒ %1 (інÑтрументарій: %2)</translation>
</message>
<message>
<source>When executing step &apos;%1&apos;</source>
@@ -14717,40 +14038,6 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
</context>
<context>
- <name>ProjectExplorer::CustomExecutableRunConfiguration</name>
- <message>
- <source>Custom Executable</source>
- <translation>КориÑтувацький виконуваний модуль</translation>
- </message>
- <message>
- <source>Could not find the executable, please specify one.</source>
- <translation>Ðе вдалоÑÑŒ знайти виконуваний модуль, будь лаÑка, вкажіть його.</translation>
- </message>
- <message>
- <source>Clean Environment</source>
- <translation>ЧиÑте Ñередовище</translation>
- </message>
- <message>
- <source>System Environment</source>
- <translation>СиÑтемне Ñередовище</translation>
- </message>
- <message>
- <source>Build Environment</source>
- <translation>Середовище збірки</translation>
- </message>
- <message>
- <source>Run %1</source>
- <translation>Виконати %1</translation>
- </message>
-</context>
-<context>
- <name>ProjectExplorer::CustomExecutableRunConfigurationFactory</name>
- <message>
- <source>Custom Executable</source>
- <translation>КориÑтувацький виконуваний модуль</translation>
- </message>
-</context>
-<context>
<name>ProjectExplorer::CustomWizard</name>
<message>
<source>Details</source>
@@ -14767,11 +14054,11 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
<message>
<source>Creates a plain C project using CMake, not using the Qt library.</source>
- <translation type="unfinished"></translation>
+ <translation>Створює проÑтий проект C з викориÑтаннÑм CMake, але без бібліотеки Qt.</translation>
</message>
<message>
<source>Plain C Project (CMake Build)</source>
- <translation type="unfinished"></translation>
+ <translation>ПроÑтий проект C (збірка CMake)</translation>
</message>
<message>
<source>Creates a plain C++ project using qmake, not using the Qt library.</source>
@@ -14782,10 +14069,6 @@ Preselects Qt for Simulator and mobile targets if available.</source>
<translation>Створює додаток C++, Ñкий дозволÑÑ” надавати розширеннÑ, Ñкі можуть бути динамічно завантажені в програми за допомогою клаÑу QDeclarativeEngine.</translation>
</message>
<message>
- <source>Custom QML Extension Plugin</source>
- <translation>КориÑтувацький додаток Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ QML</translation>
- </message>
- <message>
<source>Custom QML Extension Plugin Parameters</source>
<translation>Параметри кориÑтувацького додатку Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ QML</translation>
</message>
@@ -14795,7 +14078,7 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
<message>
<source>URI:</source>
- <translation></translation>
+ <translation>URI:</translation>
</message>
<message>
<source>The project name and the object class-name cannot be the same.</source>
@@ -14807,7 +14090,7 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
<message>
<source>URL:</source>
- <translation></translation>
+ <translation>URL:</translation>
</message>
<message>
<source>Plain C Project</source>
@@ -14834,6 +14117,58 @@ Preselects Qt for Simulator and mobile targets if available.</source>
<translation>Додаток Qt Creator</translation>
</message>
<message>
+ <source>Creates an application descriptor file.</source>
+ <translation>Створює файл опиÑу програми.</translation>
+ </message>
+ <message>
+ <source>Application descriptor</source>
+ <translation>ÐžÐ¿Ð¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸</translation>
+ </message>
+ <message>
+ <source>BlackBerry</source>
+ <translation>BlackBerry</translation>
+ </message>
+ <message>
+ <source>Creates a Qt Gui application for BlackBerry.</source>
+ <translation>Створює графічну програму Qt Ð´Ð»Ñ BlackBerry.</translation>
+ </message>
+ <message>
+ <source>BlackBerry Qt Gui Application</source>
+ <translation>Графічна програма Qt Ð´Ð»Ñ BlackBerry</translation>
+ </message>
+ <message>
+ <source>Creates an Qt5 application descriptor file.</source>
+ <translation>Створює файл опиÑу програми Qt5.</translation>
+ </message>
+ <message>
+ <source>Qt5 Application descriptor</source>
+ <translation>ÐžÐ¿Ð¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Qt5</translation>
+ </message>
+ <message>
+ <source>Creates an experimental Qt5 Gui application for BlackBerry 10. You need an own Qt5 build for BlackBerry 10 since Qt5 is not provided in the current BlackBerry 10 NDK and is not included in DevAlpha devices.</source>
+ <translation>Створює екÑпериментальну графічну програму Qt5 Ð´Ð»Ñ BlackBerry 10. Вам потрібна влаÑна збірка Qt5 Ð´Ð»Ñ BlackBerry 10, оÑкільки Qt5 не надаєтьÑÑ Ð² BlackBerry 10 NDK та не включено до приÑтроїв DevAlpha.</translation>
+ </message>
+ <message>
+ <source>BlackBerry Qt5 Gui Application</source>
+ <translation>Графічна програму Qt5 Ð´Ð»Ñ BlackBerry</translation>
+ </message>
+ <message>
+ <source>Creates an experimental Qt Quick 2 application for BlackBerry 10. You need an own Qt5 build for BlackBerry 10 since Qt5 is not provided in the current BlackBerry 10 NDK and is not included in DevAlpha devices.</source>
+ <translation>Створює екÑпериментальну програму Qt Quick 2 Ð´Ð»Ñ BlackBerry 10. Вам потрібна влаÑна збірка Qt5 Ð´Ð»Ñ BlackBerry 10, оÑкільки Qt5 не надаєтьÑÑ Ð² BlackBerry 10 NDK та не включено до приÑтроїв DevAlpha.</translation>
+ </message>
+ <message>
+ <source>BlackBerry Qt Quick 2 Application</source>
+ <translation>Програма Qt Quick 2 Ð´Ð»Ñ BlackBerry</translation>
+ </message>
+ <message>
+ <source>Creates a Qt Quick application for BlackBerry.</source>
+ <translation>Створює програму Qt Quick Ð´Ð»Ñ BlackBerry.</translation>
+ </message>
+ <message>
+ <source>BlackBerry Qt Quick Application</source>
+ <translation>Програма Qt Quick Ð´Ð»Ñ BlackBerry</translation>
+ </message>
+ <message>
<source>Plugin Information</source>
<translation>Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ додаток</translation>
</message>
@@ -14847,7 +14182,7 @@ Preselects Qt for Simulator and mobile targets if available.</source>
</message>
<message>
<source>Copyright:</source>
- <translation></translation>
+ <translation>ÐвторÑькі права:</translation>
</message>
<message>
<source>License:</source>
@@ -14858,6 +14193,18 @@ Preselects Qt for Simulator and mobile targets if available.</source>
<translation>ОпиÑ:</translation>
</message>
<message>
+ <source>Qt Quick 1 Extension Plugin</source>
+ <translation>Додаток Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Qt Quick 1</translation>
+ </message>
+ <message>
+ <source>Creates a C++ plugin that makes it possible to offer extensions that can be loaded dynamically into applications using the QQmlEngine class.</source>
+ <translation>Створює додаток C++, Ñкий дозволÑÑ” надавати розширеннÑ, Ñкі можуть бути динамічно завантажені в програми за допомогою клаÑу QQmlEngine.</translation>
+ </message>
+ <message>
+ <source>Qt Quick 2 Extension Plugin</source>
+ <translation>Додаток Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Qt Quick 2</translation>
+ </message>
+ <message>
<source>Qt Creator sources:</source>
<translation>Коди Qt Creator:</translation>
</message>
@@ -14921,9 +14268,9 @@ Reason: %2</source>
<translation>РозгортаннÑ</translation>
</message>
<message>
- <source>No deployment</source>
+ <source>Deploy locally</source>
<extracomment>Default DeployConfiguration display name</extracomment>
- <translation>Без розгортаннÑ</translation>
+ <translation>Розгорнути локально</translation>
</message>
</context>
<context>
@@ -15182,7 +14529,7 @@ Reason: %2</source>
<name>ProjectExplorer::Internal::ClangToolChainFactory</name>
<message>
<source>Clang</source>
- <translation></translation>
+ <translation>Clang</translation>
</message>
</context>
<context>
@@ -15233,45 +14580,6 @@ Reason: %2</source>
</message>
</context>
<context>
- <name>ProjectExplorer::Internal::CustomExecutableConfigurationWidget</name>
- <message>
- <source>Executable:</source>
- <translation>Виконуваний модуль:</translation>
- </message>
- <message>
- <source>Arguments:</source>
- <translation>Ðргументи:</translation>
- </message>
- <message>
- <source>Working directory:</source>
- <translation>Робоча тека:</translation>
- </message>
- <message>
- <source>Run in &amp;terminal</source>
- <translation>ЗапуÑкати в &amp;терміналі</translation>
- </message>
- <message>
- <source>Base environment for this run configuration:</source>
- <translation>Базове Ñередовище Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— конфігурації запуÑку:</translation>
- </message>
- <message>
- <source>Run Environment</source>
- <translation>Середовище виконаннÑ</translation>
- </message>
- <message>
- <source>Clean Environment</source>
- <translation>ЧиÑте Ñередовище</translation>
- </message>
- <message>
- <source>System Environment</source>
- <translation>СиÑтемне Ñередовище</translation>
- </message>
- <message>
- <source>Build Environment</source>
- <translation>Середовище збірки</translation>
- </message>
-</context>
-<context>
<name>ProjectExplorer::Internal::CustomWizardPage</name>
<message>
<source>Path:</source>
@@ -15289,7 +14597,7 @@ Reason: %2</source>
<name>ProjectExplorer::Internal::DoubleTabWidget</name>
<message>
<source>DoubleTabWidget</source>
- <translation></translation>
+ <translation>Віджет з двома закладками</translation>
</message>
</context>
<context>
@@ -15349,6 +14657,14 @@ Reason: %2</source>
<translation>Файлова ÑиÑтема</translation>
</message>
<message>
+ <source>Meta+Y</source>
+ <translation>Meta+Y</translation>
+ </message>
+ <message>
+ <source>Alt+Y</source>
+ <translation>Alt+Y</translation>
+ </message>
+ <message>
<source>Synchronize with Editor</source>
<translation>Синхронізувати з редактором</translation>
</message>
@@ -15361,21 +14677,21 @@ Reason: %2</source>
</message>
<message>
<source>&amp;ABI:</source>
- <translation></translation>
+ <translation>&amp;ABI:</translation>
</message>
</context>
<context>
<name>ProjectExplorer::Internal::GccToolChainFactory</name>
<message>
<source>GCC</source>
- <translation></translation>
+ <translation>GCC</translation>
</message>
</context>
<context>
<name>ProjectExplorer::Internal::LinuxIccToolChainFactory</name>
<message>
<source>Linux ICC</source>
- <translation></translation>
+ <translation>Linux ICC</translation>
</message>
</context>
<context>
@@ -15407,7 +14723,7 @@ Reason: %2</source>
<name>ProjectExplorer::Internal::MingwToolChainFactory</name>
<message>
<source>MinGW</source>
- <translation></translation>
+ <translation>MinGW</translation>
</message>
</context>
<context>
@@ -15417,14 +14733,14 @@ Reason: %2</source>
<translation>Проект</translation>
</message>
<message>
- <source>Target</source>
- <translation>Ціль</translation>
- </message>
- <message>
<source>Build</source>
<translation>Збірка</translation>
</message>
<message>
+ <source>Kit</source>
+ <translation>ІнÑтрументарій</translation>
+ </message>
+ <message>
<source>Deploy</source>
<translation>РозгортаннÑ</translation>
</message>
@@ -15441,8 +14757,12 @@ Reason: %2</source>
<translation>&lt;b&gt;Проект:&lt;/b&gt; %1</translation>
</message>
<message>
- <source>&lt;b&gt;Target:&lt;/b&gt; %1</source>
- <translation>&lt;b&gt;Ціль:&lt;/b&gt; %1</translation>
+ <source>&lt;b&gt;Kit:&lt;/b&gt; %1</source>
+ <translation>&lt;b&gt;ІнÑтрументарій:&lt;/b&gt; %1</translation>
+ </message>
+ <message>
+ <source>Kit: &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;</source>
+ <translation>ІнÑтрументарій: &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;</translation>
</message>
<message>
<source>&lt;b&gt;Build:&lt;/b&gt; %1</source>
@@ -15458,21 +14778,17 @@ Reason: %2</source>
</message>
<message>
<source>%1</source>
- <translation></translation>
+ <translation>%1</translation>
</message>
<message>
<source>&lt;html&gt;&lt;nobr&gt;%1&lt;/html&gt;</source>
- <translation></translation>
+ <translation>&lt;html&gt;&lt;nobr&gt;%1&lt;/html&gt;</translation>
</message>
<message>
<source>Project: &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;</source>
<translation>Проект: &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;</translation>
</message>
<message>
- <source>Target: &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;</source>
- <translation>Ціль: &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;</translation>
- </message>
- <message>
<source>Build: &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;</source>
<translation>Збірка: &lt;b&gt;%1&lt;/b&gt;&lt;br/&gt;</translation>
</message>
@@ -15490,41 +14806,17 @@ Reason: %2</source>
</message>
</context>
<context>
- <name>ProjectExplorer::Internal::MsvcDebuggerConfigLabel</name>
- <message>
- <source>&lt;html&gt;&lt;body&gt;&lt;p&gt;Specify the path to the &lt;a href=&quot;%1&quot;&gt;Windows Console Debugger executable&lt;/a&gt; (%2) here.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <extracomment>Label text for path configuration. %2 is &quot;x-bit version&quot;.</extracomment>
- <translation>&lt;html&gt;&lt;body&gt;&lt;p&gt;Вкажіть тут шлÑÑ… до &lt;a href=&quot;%1&quot;&gt;виконуваного Ð¼Ð¾Ð´ÑƒÐ»Ñ Windows Console Debugger&lt;/a&gt; (%2).&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
- </message>
- <message>
- <source>64-bit version</source>
- <translation>64-бітна верÑÑ–Ñ</translation>
- </message>
- <message>
- <source>32-bit version</source>
- <translation>32-бітна верÑÑ–Ñ</translation>
- </message>
-</context>
-<context>
<name>ProjectExplorer::Internal::MsvcToolChainConfigWidget</name>
<message>
<source>Initialization:</source>
<translation>ІніціалізаціÑ:</translation>
</message>
- <message>
- <source>No CDB debugger detected (neither 32bit nor 64bit).</source>
- <translation>Ðе вдалоÑÑŒ виÑвити зневаджувач CDB (ні 32-, ні 64- бітного).</translation>
- </message>
- <message>
- <source>No 64bit CDB debugger detected.</source>
- <translation>Ðе вдалоÑÑŒ виÑвити 64- бітний зневаджувач CDB.</translation>
- </message>
</context>
<context>
<name>ProjectExplorer::Internal::MsvcToolChainFactory</name>
<message>
<source>MSVC</source>
- <translation></translation>
+ <translation>MSVC</translation>
</message>
</context>
<context>
@@ -15558,8 +14850,8 @@ Reason: %2</source>
<translation>Робоча тека:</translation>
</message>
<message>
- <source>Command arguments:</source>
- <translation>Ðргументи команди:</translation>
+ <source>Arguments:</source>
+ <translation>Ðргументи:</translation>
</message>
</context>
<context>
@@ -15600,10 +14892,6 @@ Reason: %2</source>
<translation>ВикориÑтовувати jom заміÑÑ‚ÑŒ nmake</translation>
</message>
<message>
- <source>&lt;i&gt;jom&lt;/i&gt; is a drop-in replacement for &lt;i&gt;nmake&lt;/i&gt; which distributes the compilation process to multiple CPU cores. The latest binary is available at &lt;a href=&quot;ftp://ftp.qt.nokia.com/jom/&quot;&gt;ftp://ftp.qt.nokia.com/jom/&lt;/a&gt;. Disable it if you experience problems with your builds.</source>
- <translation>&lt;i&gt;jom&lt;/i&gt; - це заміна Ð´Ð»Ñ &lt;i&gt;nmake&lt;/i&gt;, Ñка розподілÑÑ” Ð¿Ñ€Ð¾Ñ†ÐµÑ ÐºÐ¾Ð¼Ð¿Ñ–Ð»Ñції на декілька Ñдер процеÑора. ÐайÑвіжіший виконуваний модуль доÑтупний за адреÑою &lt;a href=&quot;ftp://ftp.qt.nokia.com/jom/&quot;&gt;ftp://ftp.qt.nokia.com/jom/&lt;/a&gt;. Вимкніть викориÑÑ‚Ð°Ð½Ð½Ñ jom у випадку проблем зі збіркою.</translation>
- </message>
- <message>
<source>Always build project before deploying it</source>
<translation>Завжди збирати проект перед розгортаннÑм</translation>
</message>
@@ -15651,6 +14939,10 @@ Reason: %2</source>
<source>Open application output pane when debugging</source>
<translation>Відкрити панель Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ під Ñ‡Ð°Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ</translation>
</message>
+ <message>
+ <source>&lt;i&gt;jom&lt;/i&gt; is a drop-in replacement for &lt;i&gt;nmake&lt;/i&gt; which distributes the compilation process to multiple CPU cores. The latest binary is available at &lt;a href=&quot;http://releases.qt-project.org/jom/&quot;&gt;http://releases.qt-project.org/jom/&lt;/a&gt;. Disable it if you experience problems with your builds.</source>
+ <translation>&lt;i&gt;jom&lt;/i&gt; - це заміна Ð´Ð»Ñ &lt;i&gt;nmake&lt;/i&gt;, Ñка розподілÑÑ” Ð¿Ñ€Ð¾Ñ†ÐµÑ ÐºÐ¾Ð¼Ð¿Ñ–Ð»Ñції на декілька Ñдер процеÑора. ÐайÑвіжіший виконуваний модуль доÑтупний за адреÑою &lt;a href=&quot;http://releases.qt-project.org/jom/&quot;&gt;http://releases.qt-project.org/jom/&lt;/a&gt;. Вимкніть викориÑÑ‚Ð°Ð½Ð½Ñ jom у випадку проблем зі збіркою.</translation>
+ </message>
</context>
<context>
<name>ProjectExplorer::Internal::ProjectFileFactory</name>
@@ -15660,6 +14952,10 @@ Reason: %2</source>
<translation>Фабрика файлів проекту</translation>
</message>
<message>
+ <source>Failed to open project</source>
+ <translation>Збій Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñƒ</translation>
+ </message>
+ <message>
<source>All Projects</source>
<translation>УÑÑ– проекти</translation>
</message>
@@ -15725,6 +15021,14 @@ to project &apos;%2&apos;.</source>
<translation>Проекти</translation>
</message>
<message>
+ <source>Meta+X</source>
+ <translation>Meta+X</translation>
+ </message>
+ <message>
+ <source>Alt+X</source>
+ <translation>Alt+X</translation>
+ </message>
+ <message>
<source>Filter Tree</source>
<translation>Фільтрувати дерево</translation>
</message>
@@ -15779,25 +15083,6 @@ to project &apos;%2&apos;.</source>
</message>
</context>
<context>
- <name>ProjectExplorer::Internal::RemoveFileDialog</name>
- <message>
- <source>Remove File</source>
- <translation>Видалити файл</translation>
- </message>
- <message>
- <source>File to remove:</source>
- <translation>Файл Ð´Ð»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ:</translation>
- </message>
- <message>
- <source>&amp;Delete file permanently</source>
- <translation>&amp;Видалити файл назавжди</translation>
- </message>
- <message>
- <source>&amp;Remove from Version Control</source>
- <translation>Видалити з &amp;контролю верÑій</translation>
- </message>
-</context>
-<context>
<name>ProjectExplorer::Internal::RunSettingsWidget</name>
<message>
<source>Remove Run Configuration?</source>
@@ -15877,21 +15162,6 @@ to project &apos;%2&apos;.</source>
</message>
</context>
<context>
- <name>ProjectExplorer::Internal::S60ProjectChecker</name>
- <message>
- <source>The Symbian SDK and the project sources must reside on the same drive.</source>
- <translation>Symbian SDK та коди проекту мають знаходитиÑÑŒ на одному диÑку.</translation>
- </message>
- <message>
- <source>The Symbian tool chain does not handle spaces in the project path &apos;%1&apos;.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The Symbian tool chain does not handle special characters in the project name &apos;%1&apos; well.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
<name>ProjectExplorer::Internal::SessionDialog</name>
<message>
<source>Session Manager</source>
@@ -15918,8 +15188,8 @@ to project &apos;%2&apos;.</source>
<translation>&amp;ПеремкнутиÑÑŒ до</translation>
</message>
<message>
- <source>&lt;a href=&quot;qthelp://org.qt-project.qtcreator/doc/creator-project-managing-sessions.html&quot;&gt;What is a Session?&lt;/a&gt;</source>
- <translation>&lt;a href=&quot;qthelp://org.qt-project.qtcreator/doc/creator-project-managing-sessions.html&quot;&gt;Що таке ÑеÑÑ–Ñ?&lt;/a&gt;</translation>
+ <source>&lt;a href=&quot;qthelp://com.nokia.qtcreator/doc/creator-project-managing-sessions.html&quot;&gt;What is a Session?&lt;/a&gt;</source>
+ <translation>&lt;a href=&quot;qthelp://com.nokia.qtcreator/doc/creator-project-managing-sessions.html&quot;&gt;Що таке ÑеÑÑ–Ñ?&lt;/a&gt;</translation>
</message>
<message>
<source>New session name</source>
@@ -15957,7 +15227,7 @@ to project &apos;%2&apos;.</source>
</message>
<message>
<source>Show task location in an editor.</source>
- <translation>Показти Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð´Ð°Ñ‡Ñ– в редакторі.</translation>
+ <translation>Показати Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð´Ð°Ñ‡Ñ– в редакторі.</translation>
</message>
</context>
<context>
@@ -15985,45 +15255,53 @@ to project &apos;%2&apos;.</source>
<context>
<name>ProjectExplorer::Internal::TargetSettingsPanelWidget</name>
<message>
- <source>No target defined.</source>
- <translation>Ціль не визначена.</translation>
+ <source>No kit defined in this project.</source>
+ <translation>Ð’ цьому проекті не визначено жодного інÑтрументарію.</translation>
</message>
<message>
- <source>Cancel Build &amp;&amp; Remove Target</source>
- <translation>СкаÑувати збірку та видалити ціль</translation>
+ <source>Cancel Build &amp;&amp; Remove Kit</source>
+ <translation>СкаÑувати збірку та видалити інÑтрументарій</translation>
</message>
<message>
<source>Do Not Remove</source>
<translation>Ðе видалÑти</translation>
</message>
<message>
- <source>Remove Target %1?</source>
- <translation>Видалити ціль %1?</translation>
- </message>
- <message>
- <source>The target &lt;b&gt;%1&lt;/b&gt; is currently being built.</source>
- <translation>Ціль &lt;b&gt;%1&lt;/b&gt; зараз збираєтьÑÑ.</translation>
+ <source>Remove Kit %1?</source>
+ <translation>Видалити інÑтрументарій %1?</translation>
</message>
<message>
- <source>Do you want to cancel the build process and remove the Target anyway?</source>
- <translation>Бажаєте ÑкаÑувати Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð±Ñ–Ñ€ÐºÐ¸ та вÑе одно видалити ціль?</translation>
+ <source>The kit &lt;b&gt;%1&lt;/b&gt; is currently being built.</source>
+ <translation>ІнÑтрументарій &lt;b&gt;%1&lt;/b&gt; зараз збираєтьÑÑ.</translation>
</message>
<message>
- <source>Qt Creator</source>
- <translation></translation>
+ <source>Do you want to cancel the build process and remove the Kit anyway?</source>
+ <translation>Бажаєте ÑкаÑувати Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð±Ñ–Ñ€ÐºÐ¸ та вÑе одно видалити інÑтрументарій?</translation>
</message>
<message>
<source>Do you really want to remove the
-&quot;%1&quot; target?</source>
+&quot;%1&quot; kit?</source>
<translation>Ви дійÑно бажаєте видалити
-ціль &quot;%1&quot;?</translation>
+інÑтрументарій &quot;%1&quot;?</translation>
+ </message>
+ <message>
+ <source>Qt Creator</source>
+ <translation>Qt Creator</translation>
</message>
</context>
<context>
<name>ProjectExplorer::Internal::TargetSettingsWidget</name>
<message>
<source>TargetSettingsWidget</source>
- <translation></translation>
+ <translation>Віджет налаштувань цілі</translation>
+ </message>
+ <message>
+ <source>Add Kit</source>
+ <translation>Додати інÑтрументарій</translation>
+ </message>
+ <message>
+ <source>Manage Kits...</source>
+ <translation>Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ñ–Ð½ÑтрументаріÑми...</translation>
</message>
</context>
<context>
@@ -16060,7 +15338,7 @@ to project &apos;%2&apos;.</source>
</message>
<message>
<source>&lt;nobr&gt;&lt;b&gt;ABI:&lt;/b&gt; %1</source>
- <translation></translation>
+ <translation>&lt;nobr&gt;&lt;b&gt;ABI:&lt;/b&gt; %1</translation>
</message>
<message>
<source>not up-to-date</source>
@@ -16075,27 +15353,23 @@ to project &apos;%2&apos;.</source>
<translation>Тип</translation>
</message>
<message>
- <source>Duplicate Tool Chain detected</source>
- <translation>ВиÑвлено повторний набір інÑтрументів</translation>
- </message>
- <message>
- <source>The following tool chain was already configured:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;It was not configured again.</source>
- <translation>ÐаÑтупний набір інÑтрументів вже Ñконфігуровано:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;Його не буде Ñконфігуровано знову.</translation>
+ <source>Duplicate Compilers Detected</source>
+ <translation>ВиÑвлено повторні компілÑтори</translation>
</message>
<message>
- <source>Duplicate Tool Chains detected</source>
- <translation>ВиÑвлено повторний наборт інÑтрументів</translation>
+ <source>The following compiler was already configured:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;It was not configured again.</source>
+ <translation>ÐаÑтупний компілÑтор вже Ñконфігуровано:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;Його не буде Ñконфігуровано знову.</translation>
</message>
<message>
- <source>The following tool chains were already configured:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;They were not configured again.</source>
- <translation>ÐаÑтупні набори інÑтрументів вже Ñконфігуровано:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;Їх не буде Ñконфігуровано знову.</translation>
+ <source>The following compilers were already configured:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;They were not configured again.</source>
+ <translation>ÐаÑтупні компілÑтори вже Ñконфігуровано:&lt;br&gt;&amp;nbsp;%1&lt;br&gt;Їх не буде Ñконфігуровано знову.</translation>
</message>
</context>
<context>
<name>ProjectExplorer::Internal::ToolChainOptionsPage</name>
<message>
- <source>Tool Chains</source>
- <translation>Ðабори інÑтрументів</translation>
+ <source>Compilers</source>
+ <translation>КомпілÑтори</translation>
</message>
<message>
<source>Add</source>
@@ -16187,7 +15461,7 @@ to project &apos;%2&apos;.</source>
</message>
<message>
<source>Ctrl+Shift+N</source>
- <translation></translation>
+ <translation>Ctrl+Shift+N</translation>
</message>
<message>
<source>Load Project...</source>
@@ -16195,7 +15469,7 @@ to project &apos;%2&apos;.</source>
</message>
<message>
<source>Ctrl+Shift+O</source>
- <translation></translation>
+ <translation>Ctrl+Shift+O</translation>
</message>
<message>
<source>Open File</source>
@@ -16218,16 +15492,12 @@ to project &apos;%2&apos;.</source>
<translation>Закрити проект &quot;%1&quot;</translation>
</message>
<message>
- <source>Close All Projects</source>
- <translation>Закрити уÑÑ– проекти</translation>
- </message>
- <message>
<source>Build All</source>
<translation>Зібрати вÑе</translation>
</message>
<message>
<source>Ctrl+Shift+B</source>
- <translation></translation>
+ <translation>Ctrl+Shift+B</translation>
</message>
<message>
<source>Rebuild All</source>
@@ -16251,7 +15521,7 @@ to project &apos;%2&apos;.</source>
</message>
<message>
<source>Ctrl+B</source>
- <translation></translation>
+ <translation>Ctrl+B</translation>
</message>
<message>
<source>Rebuild Project</source>
@@ -16307,13 +15577,21 @@ to project &apos;%2&apos;.</source>
</message>
<message>
<source>Ctrl+R</source>
- <translation></translation>
+ <translation>Ctrl+R</translation>
</message>
<message>
<source>Cancel Build</source>
<translation>СкаÑувати збірку</translation>
</message>
<message>
+ <source>Close All Projects and Editors</source>
+ <translation>Закрити уÑÑ– проекти та редактори</translation>
+ </message>
+ <message>
+ <source>Rebuild</source>
+ <translation>Перезібрати</translation>
+ </message>
+ <message>
<source>Add New...</source>
<translation>Додати новий...</translation>
</message>
@@ -16335,10 +15613,26 @@ to project &apos;%2&apos;.</source>
<translation>Перейменувати...</translation>
</message>
<message>
+ <source>Set &quot;%1&quot; as Active Project</source>
+ <translation>Ð’Ñтановити &quot;%1&quot; Ñк активний проект</translation>
+ </message>
+ <message>
<source>Collapse All</source>
<translation>Згорнути вÑе</translation>
</message>
<message>
+ <source>Open Build and Run Kit Selector...</source>
+ <translation>Відкрити вибір інÑтрументарію збірки/запуÑку...</translation>
+ </message>
+ <message>
+ <source>Quick Switch Kit Selector</source>
+ <translation>Швидке Ð¿ÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ñ–Ð½Ñтрументарію</translation>
+ </message>
+ <message>
+ <source>Full build path of the current project&apos;s active build configuration.</source>
+ <translation>Повний шлÑÑ… до теки збірки активної конфігурації збірки поточного проекту.</translation>
+ </message>
+ <message>
<source>Failed to open project</source>
<translation>Збій Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñƒ</translation>
</message>
@@ -16363,10 +15657,35 @@ to project &apos;%2&apos;.</source>
<translation>Бажаєте ÑкаÑувати Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð±Ñ–Ñ€ÐºÐ¸ та вÑе одно вивантажити проект?</translation>
</message>
<message>
+ <source>Failed to Open Project</source>
+ <translation>Збій Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñƒ</translation>
+ </message>
+ <message>
+ <source>Unknown error</source>
+ <translation>Ðевідома помилка</translation>
+ </message>
+ <message>
+ <source>Could Not Run</source>
+ <translation>Ðе вдалоÑÑŒ запуÑтити</translation>
+ </message>
+ <message>
+ <source>Build</source>
+ <comment>Build step</comment>
+ <translation>Зібрати</translation>
+ </message>
+ <message>
<source>No project loaded</source>
<translation>Проект не завантажено</translation>
</message>
<message>
+ <source>Project Editing Failed</source>
+ <translation>Збій Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñƒ</translation>
+ </message>
+ <message>
+ <source>The file %1 was renamed to %2, but the project file %3 could not be automatically changed.</source>
+ <translation>Файл %1 було перейменовано на %2, однак не вдалоÑÑŒ автоматично змінити файл проекту %3.</translation>
+ </message>
+ <message>
<source>Project has no build settings</source>
<translation>Проект немає налаштувань збірки</translation>
</message>
@@ -16397,10 +15716,6 @@ to project &apos;%2&apos;.</source>
<translation>Збій Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² до проекту</translation>
</message>
<message>
- <source>Adding to Version Control Failed</source>
- <translation>Збій Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð´Ð¾ контролю верÑій</translation>
- </message>
- <message>
<source>Removing File Failed</source>
<translation>Збій Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ</translation>
</message>
@@ -16417,10 +15732,6 @@ to project &apos;%2&apos;.</source>
<translation>Ðовий підпроект...</translation>
</message>
<message>
- <source>Open Build/Run Target Selector...</source>
- <translation>Відкрити вибір цілі збірки/запуÑку...</translation>
- </message>
- <message>
<source>Set as Active Project</source>
<translation>Ð’Ñтановити Ñк активний проект</translation>
</message>
@@ -16429,12 +15740,8 @@ to project &apos;%2&apos;.</source>
<translation>ЗапуÑтити без розгортаннÑ</translation>
</message>
<message>
- <source>Quick Switch Target Selector</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Ctrl+T</source>
- <translation></translation>
+ <translation>Ctrl+T</translation>
</message>
<message>
<source>Full path of the current project&apos;s main file, including file name.</source>
@@ -16442,7 +15749,7 @@ to project &apos;%2&apos;.</source>
</message>
<message>
<source>Full path of the current project&apos;s main file, excluding file name.</source>
- <translation>Повний шлÑÑ… до головного файлу поточного проекту бкз імені файлу.</translation>
+ <translation>Повний шлÑÑ… до головного файлу поточного проекту без імені файлу.</translation>
</message>
<message>
<source>Load Project</source>
@@ -16469,7 +15776,7 @@ Do you want to ignore them?</source>
</message>
<message>
<source>Clean</source>
- <translation>ОчиÑтка</translation>
+ <translation>ОчиÑтити</translation>
</message>
<message>
<source>Build</source>
@@ -16522,14 +15829,6 @@ Do you want to ignore them?</source>
<translation>Ðемає активного проекту.</translation>
</message>
<message>
- <source>The project &apos;%1&apos; has no active target.</source>
- <translation>Проект &apos;%1&apos; не має активної цілі.</translation>
- </message>
- <message>
- <source>The target &apos;%1&apos; for the project &apos;%2&apos; has no active run configuration.</source>
- <translation>Ціль &apos;%1&apos; проекту &apos;%2&apos; не має активної конфігурації запуÑку.</translation>
- </message>
- <message>
<source>Cannot run &apos;%1&apos;.</source>
<translation>Ðеможливо запуÑтити &apos;%1&apos;.</translation>
</message>
@@ -16558,24 +15857,6 @@ Do you want to ignore them?</source>
</translation>
</message>
<message>
- <source>Add to Version Control</source>
- <translation>Додати до контролю верÑій</translation>
- </message>
- <message>
- <source>Add files
-%1
-to version control (%2)?</source>
- <translation>Додати файли
-%1
-до контролю верÑій (%2)?</translation>
- </message>
- <message>
- <source>Could not add following files to version control (%1)
-</source>
- <translation>Ðе вдалоÑÑŒ додати до контролю верÑій (%1) наÑтупні файли
-</translation>
- </message>
- <message>
<source>Could not remove file %1 from project %2.</source>
<translation>Ðе вдалоÑÑŒ видалити файл %1 з проекту %2.</translation>
</message>
@@ -16588,6 +15869,14 @@ to version control (%2)?</source>
<translation>Видалити файл</translation>
</message>
<message>
+ <source>The project &apos;%1&apos; has no active kit.</source>
+ <translation>Проект &apos;%1&apos; не має активного інÑтрументарію.</translation>
+ </message>
+ <message>
+ <source>The kit &apos;%1&apos; for the project &apos;%2&apos; has no active run configuration.</source>
+ <translation>ІнÑтрументарій &apos;%1&apos; проекту &apos;%2&apos; не має активної конфігурації запуÑку.</translation>
+ </message>
+ <message>
<source>Delete %1 from file system?</source>
<translation>Видалити %1 з файлової ÑиÑтеми?</translation>
</message>
@@ -16637,7 +15926,7 @@ Reason: %2</source>
</message>
<message>
<source>PID %1</source>
- <translation></translation>
+ <translation>PID %1</translation>
</message>
<message>
<source>Invalid</source>
@@ -16739,16 +16028,12 @@ Do you still want to load the settings file?</source>
<translation>Ðепідтримуваний файл Ñпільних налаштувань</translation>
</message>
<message>
- <source>The version of your .shared file is not yet supported by this Qt Creator version. Only settings that are still compatible will be taken into account.
-
-Do you want to continue?
+ <source>The version of your .shared file is not supported by this Qt Creator version. Only settings that are still compatible will be taken into account.
-If you choose not to continue Qt Creator will not try to load the .shared file.</source>
- <translation>ВерÑÑ–Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ файлу .shared ще не підтримуєтьÑÑ Ñ†Ñ–Ñ”ÑŽ верÑією Qt Creator. Лише ÑуміÑні Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐ´ÑƒÑ‚ÑŒ прийнÑÑ‚Ñ– до уваги.
+Do you want to try loading it?</source>
+ <translation>ВерÑÑ–Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ файлу .shared не підтримуєтьÑÑ Ñ†Ñ–Ñ”ÑŽ верÑією Qt Creator. Лише ÑуміÑні Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐ´ÑƒÑ‚ÑŒ прийнÑÑ‚Ñ– до уваги.
-Бажаєте продовжувати?
-
-Якщо ви вирішете не продовжувати, Qt Creator не буде намагатиÑÑŒ завантажити файл .shared.</translation>
+Бажаєте продовжувати?</translation>
</message>
</context>
<context>
@@ -16761,24 +16046,8 @@ If you choose not to continue Qt Creator will not try to load the .shared file.<
<context>
<name>ProjectExplorer::ToolChainConfigWidget</name>
<message>
- <source>&amp;Debugger:</source>
- <translation>Зневад&amp;жувач:</translation>
- </message>
- <message>
- <source>Autodetect</source>
- <translation>ÐвтовизначеннÑ</translation>
- </message>
- <message>
- <source>mkspec:</source>
- <translation></translation>
- </message>
- <message>
- <source>All possible mkspecs separated by a semicolon (&apos;;&apos;).</source>
- <translation>УÑÑ– можливі mkspec&apos;и розділені крапкою з комою (&apos;;&apos;).</translation>
- </message>
- <message>
- <source>Reset</source>
- <translation>Скинути</translation>
+ <source>Name:</source>
+ <translation>Ðазва:</translation>
</message>
</context>
<context>
@@ -16791,10 +16060,6 @@ If you choose not to continue Qt Creator will not try to load the .shared file.<
<source>Deploy to Maemo device</source>
<translation>Ð Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ð° приÑтрій Maemo</translation>
</message>
- <message>
- <source>Deploy to Symbian device</source>
- <translation>Ð Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ð° приÑтрій Symbian</translation>
- </message>
</context>
<context>
<name>QmlDesigner::ComponentAction</name>
@@ -16982,7 +16247,7 @@ If you choose not to continue Qt Creator will not try to load the .shared file.<
</message>
<message>
<source>%3 (%1:%2)</source>
- <translation></translation>
+ <translation>%3 (%1:%2)</translation>
</message>
<message>
<source>Internal error (%1)</source>
@@ -17048,7 +16313,7 @@ If you choose not to continue Qt Creator will not try to load the .shared file.<
<message>
<source>Items</source>
<comment>Title of library items view</comment>
- <translation type="unfinished"></translation>
+ <translation>Елементи</translation>
</message>
<message>
<source>Resources</source>
@@ -17058,14 +16323,14 @@ If you choose not to continue Qt Creator will not try to load the .shared file.<
<message>
<source>&lt;Filter&gt;</source>
<comment>Library search input hint text</comment>
- <translation type="unfinished"></translation>
+ <translation>&lt;Фільтр&gt;</translation>
</message>
</context>
<context>
<name>QmlDesigner::ModelNodeContextMenu</name>
<message>
<source>Selection</source>
- <translation type="unfinished">ВиділеннÑ</translation>
+ <translation>ВиділеннÑ</translation>
</message>
<message>
<source>Select parent: %1</source>
@@ -17125,7 +16390,7 @@ If you choose not to continue Qt Creator will not try to load the .shared file.<
</message>
<message>
<source>Reset</source>
- <translation type="unfinished">Скинути</translation>
+ <translation>Скинути</translation>
</message>
<message>
<source>Layout</source>
@@ -17319,6 +16584,10 @@ If you choose not to continue Qt Creator will not try to load the .shared file.<
<source>No import statements found</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Unsupported QtQuick version</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QmlDesigner::XUIFileDialog</name>
@@ -17447,14 +16716,7 @@ For qmlproject projects, use the importPaths property to add import paths.</sour
<name>QmlJSEditor</name>
<message>
<source>Qt Quick</source>
- <translation></translation>
- </message>
-</context>
-<context>
- <name>QmlJSEditor::ComponentFromObjectDef</name>
- <message>
- <source>Move Component into separate file</source>
- <translation type="unfinished"></translation>
+ <translation>Qt Quick</translation>
</message>
</context>
<context>
@@ -17483,20 +16745,16 @@ For qmlproject projects, use the importPaths property to add import paths.</sour
<translation type="unfinished"></translation>
</message>
<message>
- <source>Dialog</source>
- <translation type="unfinished">Діалог</translation>
- </message>
- <message>
<source>Component name:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Path:</source>
- <translation type="unfinished">ШлÑÑ…:</translation>
+ <translation>ШлÑÑ…:</translation>
</message>
<message>
- <source>Choose...</source>
- <translation type="unfinished">Оберіть...</translation>
+ <source>Move Component into Separate File</source>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -17517,24 +16775,28 @@ For qmlproject projects, use the importPaths property to add import paths.</sour
<context>
<name>QmlJSEditor::Internal::QmlJSEditorPlugin</name>
<message>
- <source>Creates a QML file.</source>
+ <source>Creates a JavaScript file.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>QML File</source>
- <translation type="unfinished"></translation>
+ <source>JS File</source>
+ <translation>Файл JS</translation>
</message>
<message>
- <source>Creates a JavaScript file.</source>
+ <source>Creates a QML file with boilerplate code, starting with &quot;import QtQuick 1.1&quot;.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>JS File</source>
+ <source>QML File (Qt Quick 1)</source>
+ <translation>Файли QML (Qt Quick 1)</translation>
+ </message>
+ <message>
+ <source>Creates a QML file with boilerplate code, starting with &quot;import QtQuick 2.0&quot;.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Follow Symbol Under Cursor</source>
- <translation>Йти за Ñимволом під курÑором</translation>
+ <source>QML File (Qt Quick 2)</source>
+ <translation>Файли QML (Qt Quick 2)</translation>
</message>
<message>
<source>Find Usages</source>
@@ -17542,7 +16804,7 @@ For qmlproject projects, use the importPaths property to add import paths.</sour
</message>
<message>
<source>Ctrl+Shift+U</source>
- <translation></translation>
+ <translation>Ctrl+Shift+U</translation>
</message>
<message>
<source>Rename Symbol Under Cursor</source>
@@ -17550,7 +16812,7 @@ For qmlproject projects, use the importPaths property to add import paths.</sour
</message>
<message>
<source>Ctrl+Shift+R</source>
- <translation></translation>
+ <translation>Ctrl+Shift+R</translation>
</message>
<message>
<source>Run Checks</source>
@@ -17558,7 +16820,7 @@ For qmlproject projects, use the importPaths property to add import paths.</sour
</message>
<message>
<source>Ctrl+Shift+C</source>
- <translation></translation>
+ <translation>Ctrl+Shift+C</translation>
</message>
<message>
<source>Reformat File</source>
@@ -17570,7 +16832,7 @@ For qmlproject projects, use the importPaths property to add import paths.</sour
</message>
<message>
<source>QML</source>
- <translation></translation>
+ <translation>QML</translation>
</message>
<message>
<source>QML Analysis</source>
@@ -17598,6 +16860,10 @@ For qmlproject projects, use the importPaths property to add import paths.</sour
<context>
<name>QmlJSEditor::Internal::QmlJSPreviewRunner</name>
<message>
+ <source>No file specified.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Failed to preview Qt Quick file</source>
<translation type="unfinished"></translation>
</message>
@@ -17611,7 +16877,7 @@ For qmlproject projects, use the importPaths property to add import paths.</sour
<name>QmlJSEditor::Internal::QmlJSSnippetProvider</name>
<message>
<source>QML</source>
- <translation></translation>
+ <translation>QML</translation>
</message>
</context>
<context>
@@ -17664,131 +16930,6 @@ For qmlproject projects, use the importPaths property to add import paths.</sour
</message>
</context>
<context>
- <name>QmlJSEditor::QuickFix</name>
- <message>
- <source>Split initializer</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>QmlJSInspector::Internal::ContextCrumblePath</name>
- <message>
- <source>[no context]</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>QmlJSInspector::Internal::InspectorUi</name>
- <message>
- <source>Context Path</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>QML Inspector</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Filter properties</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>QmlJSInspector::Internal::QmlJSLiveTextPreview</name>
- <message>
- <source>Disable Live Preview</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You changed a QML file in Live Preview mode, which modifies the running QML application. In case of unexpected behavior, please reload the QML application.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The %1 attribute at line %2, column %3 cannot be changed without reloading the QML application. </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The %1 element at line %2, column %3 cannot be changed without reloading the QML application. </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>You can continue debugging, but behavior can be unexpected.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>QmlJSInspector::Internal::QmlJSPropertyInspector</name>
- <message>
- <source>Enter expression</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Choose color</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>JavaScript expression for %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Color selection for %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>QmlJSInspector::Internal::QmlJsInspectorToolBar</name>
- <message>
- <source>Apply Changes on Save</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Show application on top</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Play/Pause Animations</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Select</source>
- <translation type="unfinished">Вибрати</translation>
- </message>
- <message>
- <source>Zoom</source>
- <translation>МаÑштаб</translation>
- </message>
- <message>
- <source>Color Picker</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>1x</source>
- <translation>1x</translation>
- </message>
- <message>
- <source>0.5x</source>
- <translation>0.5x</translation>
- </message>
- <message>
- <source>0.25x</source>
- <translation>0.25x</translation>
- </message>
- <message>
- <source>0.125x</source>
- <translation>0.125x</translation>
- </message>
- <message>
- <source>0.1x</source>
- <translation>0.1x</translation>
- </message>
-</context>
-<context>
- <name>QmlJSInspector::ToolBarColorBox</name>
- <message>
- <source>Copy Color</source>
- <translation>Копіювати колір</translation>
- </message>
-</context>
-<context>
<name>QmlJSTools</name>
<message>
<source>Code Style</source>
@@ -17796,7 +16937,7 @@ For qmlproject projects, use the importPaths property to add import paths.</sour
</message>
<message>
<source>Qt Quick</source>
- <translation></translation>
+ <translation>Qt Quick</translation>
</message>
</context>
<context>
@@ -17861,7 +17002,7 @@ Error: %2</source>
<name>QmlJSTools::Internal::QmlJSToolsPlugin</name>
<message>
<source>&amp;QML/JS</source>
- <translation></translation>
+ <translation>&amp;QML/JS</translation>
</message>
<message>
<source>Reset Code Model</source>
@@ -17877,7 +17018,7 @@ Error: %2</source>
</message>
<message>
<source>Qt</source>
- <translation></translation>
+ <translation>Qt</translation>
</message>
<message>
<source>Old Creator</source>
@@ -17885,57 +17026,6 @@ Error: %2</source>
</message>
</context>
<context>
- <name>QmlJsDebugClient::QmlProfilerEventList</name>
- <message>
- <source>&lt;bytecode&gt;</source>
- <translation>&lt;байт-код&gt;</translation>
- </message>
- <message>
- <source>Source code not available</source>
- <translation>Початковий код не доÑтупний</translation>
- </message>
- <message>
- <source>&lt;program&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Main Program</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Animation Timer Update</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&lt;Animation Update&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No data to save</source>
- <translation>Ðемає даних Ð´Ð»Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ</translation>
- </message>
- <message>
- <source>Could not open %1 for writing</source>
- <translation>Ðе вдалоÑÑŒ відкрити %1 Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу</translation>
- </message>
- <message>
- <source>Could not open %1 for reading</source>
- <translation>Ðе вдалоÑÑŒ відкрити %1 Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ</translation>
- </message>
- <message>
- <source>Error while parsing %1</source>
- <translation>Помилка під Ñ‡Ð°Ñ Ñ€Ð¾Ð·Ð±Ð¾Ñ€Ñƒ %1</translation>
- </message>
- <message>
- <source>Invalid version of QML Trace file.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>%1 animations at %2 FPS</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
<name>QmlManager</name>
<message>
<source>&lt;Current File&gt;</source>
@@ -17989,7 +17079,7 @@ Error: %2</source>
<name>QmlProfiler::Internal::QmlProfilerAttachDialog</name>
<message>
<source>QML Profiler</source>
- <translation type="unfinished"></translation>
+ <translation>Профайлер QML</translation>
</message>
<message>
<source>&amp;Host:</source>
@@ -17997,7 +17087,7 @@ Error: %2</source>
</message>
<message>
<source>localhost</source>
- <translation></translation>
+ <translation>localhost</translation>
</message>
<message>
<source>&amp;Port:</source>
@@ -18005,7 +17095,7 @@ Error: %2</source>
</message>
<message>
<source>Sys&amp;root:</source>
- <translation type="unfinished">Sys&amp;root:</translation>
+ <translation>Sys&amp;root:</translation>
</message>
</context>
<context>
@@ -18015,13 +17105,8 @@ Error: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Application finished before loading profiled data.
- Please use the stop button instead.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Qt Creator</source>
- <translation></translation>
+ <translation>Qt Creator</translation>
</message>
<message>
<source>Could not connect to the in-process QML debugger:
@@ -18032,14 +17117,14 @@ Error: %2</source>
</message>
<message>
<source>QML Profiler</source>
- <translation type="unfinished"></translation>
+ <translation>Профайлер QML</translation>
</message>
</context>
<context>
<name>QmlProfiler::Internal::QmlProfilerTool</name>
<message>
<source>QML Profiler</source>
- <translation type="unfinished"></translation>
+ <translation>Профайлер QML</translation>
</message>
<message>
<source>The QML Profiler can be used to find performance bottlenecks in applications using QML.</source>
@@ -18058,27 +17143,8 @@ Error: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Copy Row</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Copy Table</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Extended Event Statistics</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Limit Events Pane to Current Range</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Reset Events Pane</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Reset Zoom</source>
+ <source>Application finished before loading profiled data.
+Please use the stop button instead.</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -18088,18 +17154,6 @@ Do you want to continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Events</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Timeline</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>JavaScript</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>%1 s</source>
<translation type="unfinished"></translation>
</message>
@@ -18123,54 +17177,25 @@ Do you want to continue?</source>
<source>Enable profiling</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <source>Qt Creator</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Could not connect to the in-process QML profiler.
-Do you want to retry?</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>QmlProfiler::Internal::RemoteLinuxQmlProfilerRunner</name>
<message>
- <source>Not enough free ports on device for analyzing.
-</source>
+ <source>Gathering ports failed: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Starting remote process ...
+ <source>Not enough free ports on device for analyzing.
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Finished running remote process. Exit code was %1.
+ <source>Starting remote process...
</source>
- <translation type="unfinished">Завершено Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ð³Ð¾ процеÑу. Код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ %1.</translation>
- </message>
-</context>
-<context>
- <name>QmlProfiler::Internal::TraceWindow</name>
- <message>
- <source>Jump to previous event</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Jump to next event</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Show zoom slider</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Select range</source>
- <translation type="unfinished"></translation>
+ <translation>ЗапуÑк віддаленого процеÑу...</translation>
</message>
<message>
- <source>View event information on mouseover</source>
+ <source>Failure running remote process.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -18182,22 +17207,7 @@ Do you want to retry?</source>
</message>
<message>
<source>Failed opening project &apos;%1&apos;: Project file is not a file</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>QmlProjectManager::Internal::QmlProjectApplicationWizard</name>
- <message>
- <source>Qt Quick UI</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Creates a Qt Quick UI project with a single QML file that contains the main view.
-
-You can review Qt Quick UI projects in the QML Viewer 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 projects.
-
-Requires &lt;b&gt;Qt 4.7.4&lt;/b&gt; or newer.</source>
- <translation type="unfinished"></translation>
+ <translation>Збій Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñƒ &apos;%1&apos;: Файл проекту не Ñ” файлом</translation>
</message>
</context>
<context>
@@ -18212,29 +17222,14 @@ Requires &lt;b&gt;Qt 4.7.4&lt;/b&gt; or newer.</source>
</message>
</context>
<context>
- <name>QmlProjectManager::Internal::QmlProjectRunConfigurationFactory</name>
- <message>
- <source>Run QML Script</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
<name>QmlProjectManager::Internal::QmlProjectRunConfigurationWidget</name>
<message>
- <source>Manage Qt versions...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Qt version:</source>
- <translation>ВерÑÑ–Ñ Qt:</translation>
- </message>
- <message>
<source>Arguments:</source>
<translation>Ðргументи:</translation>
</message>
<message>
<source>Main QML file:</source>
- <translation type="unfinished"></translation>
+ <translation>Головний файл QML:</translation>
</message>
<message>
<source>Run Environment</source>
@@ -18244,10 +17239,6 @@ Requires &lt;b&gt;Qt 4.7.4&lt;/b&gt; or newer.</source>
<source>System Environment</source>
<translation>СиÑтемне Ñередовище</translation>
</message>
- <message>
- <source>Invalid Qt version</source>
- <translation>Ðеправильна верÑÑ–Ñ Qt</translation>
- </message>
</context>
<context>
<name>QmlProjectManager::Internal::QmlProjectRunControl</name>
@@ -18260,7 +17251,7 @@ Requires &lt;b&gt;Qt 4.7.4&lt;/b&gt; or newer.</source>
<message>
<source>%1 exited with code %2
</source>
- <translation type="unfinished">%1 завершивÑÑ Ð· кодом %2
+ <translation>%1 завершивÑÑ Ð· кодом %2
</translation>
</message>
</context>
@@ -18289,6 +17280,14 @@ Requires &lt;b&gt;Qt 4.7.4&lt;/b&gt; or newer.</source>
<source>File &apos;%1&apos; does not exist or is not readable.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Device type is not desktop.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>No Qt version set in kit.</source>
+ <translation>ВерÑÑ–ÑŽ Qt не задано в інÑтрументарії.</translation>
+ </message>
</context>
<context>
<name>QmlProjectManager::QmlProjectPlugin</name>
@@ -18314,10 +17313,15 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
<context>
<name>QmlProjectManager::QmlProjectRunConfiguration</name>
<message>
- <source>No qmlviewer or qmlobserver found.</source>
+ <source>No qmlviewer or qmlscene found.</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>QML Scene</source>
+ <comment>QMLRunConfiguration display name.</comment>
+ <translation>QML Scene</translation>
+ </message>
+ <message>
<source>QML Viewer</source>
<comment>QMLRunConfiguration display name.</comment>
<translation>ПереглÑдач QML</translation>
@@ -18359,28 +17363,11 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
</message>
</context>
<context>
- <name>Qt4DefaultTargetSetupWidget</name>
- <message>
- <source>&lt;b&gt;Error:&lt;/b&gt; </source>
- <comment>Severity is Task::Error</comment>
- <translation>&lt;b&gt;Помилка:&lt;/b&gt; </translation>
- </message>
- <message>
- <source>&lt;b&gt;Warning:&lt;/b&gt; </source>
- <comment>Severity is Task::Warning</comment>
- <translation>&lt;b&gt;ПопередженнÑ:&lt;/b&gt; </translation>
- </message>
-</context>
-<context>
<name>Qt4ProjectManager</name>
<message>
<source>Qt Versions</source>
<translation>ВерÑÑ–Ñ— Qt</translation>
</message>
- <message>
- <source>Unconfigured Project</source>
- <translation>ÐеÑконфігурований проект</translation>
- </message>
</context>
<context>
<name>Qt4ProjectManager::AbstractMobileApp</name>
@@ -18392,20 +17379,16 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
<context>
<name>Qt4ProjectManager::AbstractMobileAppWizardDialog</name>
<message>
- <source>Qt Versions</source>
- <translation>ВерÑÑ–Ñ— Qt</translation>
- </message>
- <message>
<source>Mobile Options</source>
<translation>Мобільні параметри</translation>
</message>
<message>
- <source>Symbian Specific</source>
- <translation>Специфічно Ð´Ð»Ñ Symbian</translation>
+ <source>Targets</source>
+ <translation>Цілі</translation>
</message>
<message>
<source>Maemo5 And MeeGo Specific</source>
- <translation type="unfinished"></translation>
+ <translation>Специфічно Ð´Ð»Ñ Maemo5 та MeeGo</translation>
</message>
<message>
<source>Harmattan Specific</source>
@@ -18413,97 +17396,6 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
</message>
</context>
<context>
- <name>Qt4ProjectManager::CodaRunControl</name>
- <message>
- <source>No device is connected. Please connect a device and try again.
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Executable file: %1
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Connecting to &apos;%1&apos;...
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Unable to create CODA connection. Please try again.
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Could not open serial device: %1
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Connecting to %1:%2...
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error: %1
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Connected.
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Thread has crashed: %1
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Process has finished.
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The process is already running on the device. Please first close it.
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Launching: %1
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Launched.
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Launch failed: %1
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Waiting for CODA</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Qt Creator is waiting for the CODA application to connect.&lt;br&gt;Please make sure the application is running on your mobile phone and the right IP address and/or port are configured in the project settings.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Canceled.
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The device &apos;%1&apos; has been disconnected.
-</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
<name>Qt4ProjectManager::Internal::AddLibraryWizard</name>
<message>
<source>Add Library</source>
@@ -18529,8 +17421,8 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
<translation>Модулі</translation>
</message>
<message>
- <source>Targets</source>
- <translation>Цілі</translation>
+ <source>Kits</source>
+ <translation>ІнÑтрументарії</translation>
</message>
</context>
<context>
@@ -18573,7 +17465,7 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
</message>
<message>
<source>QWidget</source>
- <translation></translation>
+ <translation>QWidget</translation>
</message>
<message>
<source>Plugin class &amp;name:</source>
@@ -18629,7 +17521,7 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
</message>
<message>
<source>dom&amp;XML:</source>
- <translation></translation>
+ <translation>dom&amp;XML:</translation>
</message>
<message>
<source>Select Icon</source>
@@ -18673,15 +17565,15 @@ Preselects a desktop Qt for building the application if available.</source>
<context>
<name>Qt4ProjectManager::Internal::ConsoleAppWizardDialog</name>
<message>
- <source>This wizard generates a Qt4 console application project. The application derives from QCoreApplication and does not provide a GUI.</source>
- <translation>Цей майÑтер генерує проект конÑольної програми Qt4. Програма походить від QCoreApplication та не надає графічного інтерфейÑу кориÑтувача.</translation>
+ <source>This wizard generates a Qt console application project. The application derives from QCoreApplication and does not provide a GUI.</source>
+ <translation>Цей майÑтер генерує проект конÑольної програми Qt. Програма походить від QCoreApplication та не надає графічного інтерфейÑу кориÑтувача.</translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::Internal::CustomWidgetPluginWizardPage</name>
<message>
<source>WizardPage</source>
- <translation></translation>
+ <translation>Сторінка майÑтра</translation>
</message>
<message>
<source>Plugin and Collection Class Information</source>
@@ -18713,7 +17605,7 @@ Preselects a desktop Qt for building the application if available.</source>
</message>
<message>
<source>icons.qrc</source>
- <translation></translation>
+ <translation>icons.qrc</translation>
</message>
</context>
<context>
@@ -18736,7 +17628,7 @@ Preselects a desktop Qt for building the application if available.</source>
</message>
<message>
<source>...</source>
- <translation></translation>
+ <translation>...</translation>
</message>
</context>
<context>
@@ -18753,8 +17645,8 @@ Preselects a desktop Qt for building the application if available.</source>
<context>
<name>Qt4ProjectManager::Internal::CustomWidgetWizardDialog</name>
<message>
- <source>This wizard generates a Qt4 Designer Custom Widget or a Qt4 Designer Custom Widget Collection project.</source>
- <translation>Цей майÑтер генерує проект кориÑтувацького віджета Qt4 Designer або колекції кориÑтувацьких віджетів Qt4 Designer.</translation>
+ <source>This wizard generates a Qt Designer Custom Widget or a Qt Designer Custom Widget Collection project.</source>
+ <translation>Цей майÑтер генерує проект кориÑтувацького віджета Qt Designer або колекції кориÑтувацьких віджетів Qt Designer.</translation>
</message>
<message>
<source>Custom Widgets</source>
@@ -18825,8 +17717,8 @@ Preselects a desktop Qt for building the application if available.</source>
<context>
<name>Qt4ProjectManager::Internal::EmptyProjectWizardDialog</name>
<message>
- <source>This wizard generates an empty Qt4 project. Add files to it later on by using the other wizards.</source>
- <translation>Цей майÑтер генерує порожній проект Qt4. ВикориÑтовуйте інші майÑтри, щоб пізніше додати до нього файли.</translation>
+ <source>This wizard generates an empty Qt project. Add files to it later on by using the other wizards.</source>
+ <translation>Цей майÑтер генерує порожній проект Qt. ВикориÑтовуйте інші майÑтри, щоб пізніше додати до нього файли.</translation>
</message>
</context>
<context>
@@ -18852,21 +17744,6 @@ Preselects a desktop Qt for building the application if available.</source>
</message>
</context>
<context>
- <name>Qt4ProjectManager::Internal::GcceToolChainFactory</name>
- <message>
- <source>GCCE</source>
- <translation></translation>
- </message>
- <message>
- <source>GCCE from Qt version</source>
- <translation>GCCE з верÑÑ–Ñ— Qt</translation>
- </message>
- <message>
- <source>GCCE (%1)</source>
- <translation></translation>
- </message>
-</context>
-<context>
<name>Qt4ProjectManager::Internal::GuiAppWizard</name>
<message>
<source>Qt Gui Application</source>
@@ -18884,8 +17761,8 @@ Preselects a desktop Qt for building the application if available.</source>
<context>
<name>Qt4ProjectManager::Internal::GuiAppWizardDialog</name>
<message>
- <source>This wizard generates a Qt4 GUI application project. The application derives by default from QApplication and includes an empty widget.</source>
- <translation>Цей майÑтер генерує проект графічної програми Qt4. Програма походить від QApplication та включає порожній віджет.</translation>
+ <source>This wizard generates a Qt GUI application project. The application derives by default from QApplication and includes an empty widget.</source>
+ <translation>Цей майÑтер генерує проект графічної програми Qt. Програма походить від QApplication та включає порожній віджет.</translation>
</message>
<message>
<source>Details</source>
@@ -18896,12 +17773,12 @@ Preselects a desktop Qt for building the application if available.</source>
<name>Qt4ProjectManager::Internal::Html5AppWizard</name>
<message>
<source>HTML5 Application</source>
- <translation type="unfinished"></translation>
+ <translation>Програма HTML5</translation>
</message>
<message>
<source>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. For example, you can create signed Symbian Installation System (SIS) packages for this type of projects.</source>
+You can build the application and deploy it on desktop and mobile target platforms.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -18909,7 +17786,7 @@ You can build the application and deploy it on desktop and mobile target platfor
<name>Qt4ProjectManager::Internal::Html5AppWizardDialog</name>
<message>
<source>New HTML5 Application</source>
- <translation type="unfinished"></translation>
+ <translation>Ðова програма HTML5</translation>
</message>
<message>
<source>This wizard generates a HTML5 application project.</source>
@@ -18943,7 +17820,7 @@ You can build the application and deploy it on desktop and mobile target platfor
</message>
<message>
<source>Mac:</source>
- <translation></translation>
+ <translation>Mac:</translation>
</message>
<message>
<source>%1 Framework</source>
@@ -18974,19 +17851,15 @@ You can build the application and deploy it on desktop and mobile target platfor
</message>
<message>
<source>Linux</source>
- <translation></translation>
+ <translation>Linux</translation>
</message>
<message>
<source>Mac</source>
- <translation></translation>
+ <translation>Mac</translation>
</message>
<message>
<source>Windows</source>
- <translation></translation>
- </message>
- <message>
- <source>Symbian</source>
- <translation></translation>
+ <translation>Windows</translation>
</message>
<message>
<source>Linkage:</source>
@@ -19002,7 +17875,7 @@ You can build the application and deploy it on desktop and mobile target platfor
</message>
<message>
<source>Mac:</source>
- <translation></translation>
+ <translation>Mac:</translation>
</message>
<message>
<source>Library</source>
@@ -19014,7 +17887,7 @@ You can build the application and deploy it on desktop and mobile target platfor
</message>
<message>
<source>Windows:</source>
- <translation></translation>
+ <translation>Windows:</translation>
</message>
<message>
<source>Library inside &quot;debug&quot; or &quot;release&quot; subfolder</source>
@@ -19119,16 +17992,12 @@ Adds the library and include paths to the .pro file.</source>
<source>Details</source>
<translation>Деталі</translation>
</message>
- <message>
- <source>Symbian Specific</source>
- <translation>Специфічно Ð´Ð»Ñ Symbian</translation>
- </message>
</context>
<context>
<name>Qt4ProjectManager::Internal::MakeStepFactory</name>
<message>
<source>Make</source>
- <translation></translation>
+ <translation>Make</translation>
</message>
</context>
<context>
@@ -19147,7 +18016,7 @@ Adds the library and include paths to the .pro file.</source>
</message>
<message>
<source>WizardPage</source>
- <translation type="unfinished">Сторінка майÑтра</translation>
+ <translation>Сторінка майÑтра</translation>
</message>
<message>
<source>Orientation behavior:</source>
@@ -19195,20 +18064,12 @@ Adds the library and include paths to the .pro file.</source>
<name>Qt4ProjectManager::Internal::QMakeStepFactory</name>
<message>
<source>qmake</source>
- <translation></translation>
+ <translation>qmake</translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::Internal::Qt4ProjectConfigWidget</name>
<message>
- <source>Qt version:</source>
- <translation>ВерÑÑ–Ñ Qt:</translation>
- </message>
- <message>
- <source>Tool chain:</source>
- <translation>Ðабір інÑтрументів:</translation>
- </message>
- <message>
<source>Shadow build:</source>
<translation>Тіньова збірка:</translation>
</message>
@@ -19217,40 +18078,28 @@ Adds the library and include paths to the .pro file.</source>
<translation>Тека збірки:</translation>
</message>
<message>
- <source>&lt;a href=&quot;import&quot;&gt;Import existing build&lt;/a&gt;</source>
- <translation>&lt;a href=&quot;import&quot;&gt;Імпортувати Ñ–Ñнуючу збірку&lt;/a&gt;</translation>
- </message>
- <message>
<source>problemLabel</source>
- <translation></translation>
+ <translation>міткаПроблеми</translation>
</message>
<message>
<source>Shadow Build Directory</source>
<translation>Тека Ð´Ð»Ñ Ñ‚Ñ–Ð½ÑŒÐ¾Ð²Ð¾Ñ— збірки</translation>
</message>
<message>
- <source>using &lt;font color=&quot;#ff0000&quot;&gt;invalid&lt;/font&gt; Qt Version: &lt;b&gt;%1&lt;/b&gt;&lt;br&gt;%2</source>
- <translation>викориÑтовуючи &lt;font color=&quot;#ff0000&quot;&gt;неправильну&lt;/font&gt; верÑÑ–ÑŽ Qt: &lt;b&gt;%1&lt;/b&gt;&lt;br&gt;%2</translation>
- </message>
- <message>
- <source>No Qt Version found.</source>
- <translation>Ðе знайдено верÑій Qt.</translation>
- </message>
- <message>
- <source>using Qt version: &lt;b&gt;%1&lt;/b&gt;&lt;br&gt;with tool chain &lt;b&gt;%2&lt;/b&gt;&lt;br&gt;building in &lt;b&gt;%3&lt;/b&gt;</source>
- <translation>викориÑтовуючи Qt верÑÑ–Ñ—: &lt;b&gt;%1&lt;/b&gt;&lt;br&gt;з набором інÑтрументів &lt;b&gt;%2&lt;/b&gt;&lt;br&gt;, збираючи в &lt;b&gt;%3&lt;/b&gt;</translation>
+ <source>General</source>
+ <translation>Загальне</translation>
</message>
<message>
- <source>&lt;Invalid tool chain&gt;</source>
- <translation>&lt;Ðеправильний набір інÑтрументів&gt;</translation>
+ <source>building in &lt;b&gt;%1&lt;/b&gt;</source>
+ <translation>збірка в &lt;b&gt;%1&lt;/b&gt;</translation>
</message>
<message>
- <source>General</source>
- <translation>Загальне</translation>
+ <source>This kit cannot build this project since it does not define a Qt version.</source>
+ <translation>Ðеможливо зібрати проект цим інÑтрументарієм, оÑкільки він не задає верÑÑ–ÑŽ Qt.</translation>
</message>
<message>
- <source>Invalid Qt version</source>
- <translation>Ðеправильна верÑÑ–Ñ Qt</translation>
+ <source>The Qt version %1 does not support shadow builds, building might fail.</source>
+ <translation>Qt верÑÑ–Ñ— %1 не підтримує тіньові збірки, збірка може завершитиÑÑŒ з помилкою.</translation>
</message>
<message>
<source>Error:</source>
@@ -19266,28 +18115,10 @@ Adds the library and include paths to the .pro file.</source>
<translation>ÐеÑуміÑна збірка Ñ–Ñнує в %1, вона буде перезапиÑана.</translation>
</message>
<message>
- <source>&lt;No tool chain selected&gt;</source>
- <translation>&lt;Ðе обрано набір інÑтрументів&gt;</translation>
- </message>
- <message>
- <source>%1 Debug</source>
- <extracomment>Name of a debug build configuration to created by a project wizard, %1 being the Qt version name. We recommend not translating it.</extracomment>
- <translation></translation>
- </message>
- <message>
<source>A build for a different project exists in %1, which will be overwritten.</source>
<comment>%1 build directory</comment>
<translation>Збірка Ð´Ð»Ñ Ñ–Ð½ÑˆÐ¾Ð³Ð¾ проекту Ñ–Ñнує в %1, Ñка не буде перезапиÑана.</translation>
</message>
- <message>
- <source>%1 Release</source>
- <extracomment>Name of a release build configuration to created by a project wizard, %1 being the Qt version name. We recommend not translating it.</extracomment>
- <translation></translation>
- </message>
- <message>
- <source>Manage...</source>
- <translation>УправліннÑ...</translation>
- </message>
</context>
<context>
<name>Qt4ProjectManager::Internal::Qt4ProjectManagerPlugin</name>
@@ -19300,6 +18131,10 @@ Adds the library and include paths to the .pro file.</source>
<translation>Зібрати</translation>
</message>
<message>
+ <source>Build &quot;%1&quot;</source>
+ <translation>Зібрати &quot;%1&quot;</translation>
+ </message>
+ <message>
<source>Rebuild</source>
<translation>Перезібрати</translation>
</message>
@@ -19308,8 +18143,40 @@ Adds the library and include paths to the .pro file.</source>
<translation>ОчиÑтити</translation>
</message>
<message>
- <source>Jump to File Under Cursor</source>
- <translation>Перейти до файлу під курÑором</translation>
+ <source>Build Subproject</source>
+ <translation>Зібрати підпроект</translation>
+ </message>
+ <message>
+ <source>Build Subproject &quot;%1&quot;</source>
+ <translation>Зібрати підпроект &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <source>Rebuild Subproject</source>
+ <translation>Перезібрати підпроект</translation>
+ </message>
+ <message>
+ <source>Rebuild Subproject &quot;%1&quot;</source>
+ <translation>Перезібрати підпроект &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <source>Clean Subproject</source>
+ <translation>ОчиÑтити підпроект</translation>
+ </message>
+ <message>
+ <source>Clean Subproject &quot;%1&quot;</source>
+ <translation>ОчиÑтити підпроект &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <source>Build File</source>
+ <translation>Зібрати файл</translation>
+ </message>
+ <message>
+ <source>Build File &quot;%1&quot;</source>
+ <translation>Зібрати файл &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <source>Ctrl+Alt+B</source>
+ <translation>Ctrl+Alt+B</translation>
</message>
<message>
<source>Add Library...</source>
@@ -19319,12 +18186,8 @@ Adds the library and include paths to the .pro file.</source>
<context>
<name>Qt4ProjectManager::Internal::Qt4RunConfiguration</name>
<message>
- <source>The .pro file is currently being parsed.</source>
- <translation>ЗдійÑнюєтьÑÑ Ñ€Ð¾Ð·Ð±Ñ–Ñ€ файлу .pro.</translation>
- </message>
- <message>
- <source>The .pro file could not be parsed.</source>
- <translation>Ðе вдалоÑÑŒ розібрати файл .pro.</translation>
+ <source>The .pro file &apos;%1&apos; is currently being parsed.</source>
+ <translation>ЗдійÑнюєтьÑÑ Ñ€Ð¾Ð·Ð±Ñ–Ñ€ файлу .pro &apos;%1&apos;.</translation>
</message>
<message>
<source>Clean Environment</source>
@@ -19339,8 +18202,8 @@ Adds the library and include paths to the .pro file.</source>
<translation>Середовище збірки</translation>
</message>
<message>
- <source>Qt4 Run Configuration</source>
- <translation>ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð·Ð°Ð¿ÑƒÑку Qt4</translation>
+ <source>Qt Run Configuration</source>
+ <translation>ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð·Ð°Ð¿ÑƒÑку Qt</translation>
</message>
</context>
<context>
@@ -19371,7 +18234,7 @@ Adds the library and include paths to the .pro file.</source>
</message>
<message>
<source>Base environment for this run configuration:</source>
- <translation type="unfinished">Базове Ñередовище Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— конфігурації запуÑку:</translation>
+ <translation>Базове Ñередовище Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— конфігурації запуÑку:</translation>
</message>
<message>
<source>Use debug version of frameworks (DYLD_IMAGE_SUFFIX=_debug)</source>
@@ -19395,25 +18258,6 @@ Adds the library and include paths to the .pro file.</source>
</message>
</context>
<context>
- <name>Qt4ProjectManager::Internal::Qt4SymbianTarget</name>
- <message>
- <source>&lt;b&gt;Device:&lt;/b&gt; Not connected</source>
- <translation>&lt;b&gt;ПриÑтрій:&lt;/b&gt; Ðе під&apos;єднано</translation>
- </message>
- <message>
- <source>&lt;b&gt;Device:&lt;/b&gt; %1</source>
- <translation>&lt;b&gt;ПриÑтрій:&lt;/b&gt; %1</translation>
- </message>
- <message>
- <source>&lt;b&gt;Device:&lt;/b&gt; %1, %2</source>
- <translation>&lt;b&gt;ПриÑтрій:&lt;/b&gt; %1, %2</translation>
- </message>
- <message>
- <source>&lt;b&gt;IP address:&lt;/b&gt; %1:%2</source>
- <translation>&lt;b&gt;IP адреÑа:&lt;/b&gt; %1:%2</translation>
- </message>
-</context>
-<context>
<name>Qt4ProjectManager::Internal::Qt4Target</name>
<message>
<source>Desktop</source>
@@ -19421,16 +18265,6 @@ Adds the library and include paths to the .pro file.</source>
<translation>Стаціонарний комп&apos;ютер</translation>
</message>
<message>
- <source>Symbian Emulator</source>
- <comment>Qt4 Symbian Emulator target display name</comment>
- <translation>ЕмулÑтор Symbian</translation>
- </message>
- <message>
- <source>Symbian Device</source>
- <comment>Qt4 Symbian Device target display name</comment>
- <translation>ПриÑтрій Symbian</translation>
- </message>
- <message>
<source>Maemo Emulator</source>
<comment>Qt4 Maemo Emulator target display name</comment>
<translation>ЕмулÑтор Maemo</translation>
@@ -19479,7 +18313,7 @@ Adds the library and include paths to the .pro file.</source>
<name>Qt4ProjectManager::Internal::QtQuickComponentSetOptionsPage</name>
<message>
<source>Select QML File</source>
- <translation type="unfinished"></translation>
+ <translation>Виберіть файл QML</translation>
</message>
<message>
<source>Select Existing QML file</source>
@@ -19491,873 +18325,6 @@ Adds the library and include paths to the .pro file.</source>
</message>
</context>
<context>
- <name>Qt4ProjectManager::Internal::RvctToolChainConfigWidget</name>
- <message>
- <source>Form</source>
- <translation>Форма</translation>
- </message>
- <message>
- <source>ARM &amp;version:</source>
- <translation>&amp;ВерÑÑ–Ñ ARM:</translation>
- </message>
- <message>
- <source>Version 5</source>
- <translation>ВерÑÑ–Ñ 5</translation>
- </message>
- <message>
- <source>Version 6</source>
- <translation>ВерÑÑ–Ñ 6</translation>
- </message>
- <message>
- <source>&amp;Compiler path:</source>
- <translation>ШлÑÑ… до &amp;компілÑтора:</translation>
- </message>
- <message>
- <source>Environment Variables</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::RvctToolChainFactory</name>
- <message>
- <source>ARMv5</source>
- <translation></translation>
- </message>
- <message>
- <source>ARMv6</source>
- <translation></translation>
- </message>
- <message>
- <source>RVCT</source>
- <translation></translation>
- </message>
- <message>
- <source>RVCT (%1 %2.%3 Build %4)</source>
- <extracomment>%1 arm version, %2 major version, %3 minor version, %4 build number</extracomment>
- <translation></translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60CertificateInfo</name>
- <message>
- <source>The certificate &quot;%1&quot; has already expired and cannot be used.
-Expiration date: %2.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The certificate &quot;%1&quot; is not yet valid.
-Valid from: %2.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The certificate &quot;%1&quot; is not a valid X.509 certificate.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Type: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Developer certificate</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Self signed certificate</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Issued by: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Issued to: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Valid from: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Valid to: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Capabilities: </source>
- <translation type="unfinished"></translation>
- </message>
- <message numerus="yes">
- <source>Supporting %n device(s): </source>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
- <numerusform></numerusform>
- </translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60CommandPublishStep</name>
- <message>
- <source>Running %1</source>
- <extracomment>%1 is a name of the Publish Step i.e. Clean Step</extracomment>
- <translation>ВиконуєтьÑÑ %1</translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60CreatePackageParser</name>
- <message>
- <source>The binary package &apos;%1&apos; was patched to be installable after being self-signed.
-%2
-Use a developer certificate or any other signing option to prevent this patching from happening.</source>
- <extracomment>%1 package name, %2 will be replaced by a list of patching lines.</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Cannot create Smart Installer package as the Smart Installer&apos;s base file is missing. Please ensure that it is located in the SDK.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60CreatePackageStep</name>
- <message>
- <source>Create SIS Package</source>
- <extracomment>default create SIS package build step display name</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Could not find make command &apos;%1&apos; in the build environment</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Package Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&lt;p&gt;Qt modified your package &lt;b&gt;%1&lt;/b&gt;.&lt;/p&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Packages Modified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&lt;p&gt;Qt modified some of your packages.&lt;/p&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ignore patching for this packaging step.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No certificate file specified. Please specify one in the project settings.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Certificate file &quot;%1&quot; does not exist. Please specify an existing certificate file in the project settings.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No key file specified. Please specify one in the project settings.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Key file &quot;%1&quot; does not exist. Please specify an existing key file in the project settings.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The package created will not install on a device as some of the defined capabilities are not supported by the certificate: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The process &quot;%1&quot; exited normally.</source>
- <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ &quot;%1&quot; завершивÑÑ Ð½Ð¾Ñ€Ð¼Ð°Ð»ÑŒÐ½Ð¾.</translation>
- </message>
- <message>
- <source>The process &quot;%1&quot; exited with code %2.</source>
- <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ &quot;%1&quot; завершивÑÑ Ð· кодом %2.</translation>
- </message>
- <message>
- <source>The process &quot;%1&quot; crashed.</source>
- <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ &quot;%1&quot; завершивÑÑ Ð°Ð²Ð°Ñ€Ñ–Ð¹Ð½Ð¾.</translation>
- </message>
- <message>
- <source>Could not start process &quot;%1&quot; in %2</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>%1&lt;p&gt;&lt;em&gt;These changes were not part of your build system&lt;/em&gt; but are required to make sure the &lt;em&gt;self-signed&lt;/em&gt; package can be installed successfully on a device.&lt;/p&gt;&lt;p&gt;Check the Issues pane for more details on the modifications made.&lt;/p&gt;&lt;p&gt;Please see the &lt;a href=&quot;%2&quot;&gt;documentation&lt;/a&gt; for other signing options which remove the need for this patching.&lt;/p&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Starting: &quot;%1&quot; %2 in %3
-</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60CreatePackageStepConfigWidget</name>
- <message>
- <source>Reset Passphrases</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Do you want to reset all passphrases saved for keys used?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>signed with the certificate &quot;%1&quot; using the key &quot;%2&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>signed with a certificate and a key that need to be specified</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>not signed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>self-signed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&lt;b&gt;Create SIS Package:&lt;/b&gt; %1, using Smart Installer</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&lt;b&gt;Create SIS Package:&lt;/b&gt; %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60CreatePackageStepFactory</name>
- <message>
- <source>Create SIS Package</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60CreatePackageStepWidget</name>
- <message>
- <source>Self-signed certificate</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Custom certificate:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Key file:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Create Smart Installer package</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Resets saved passphrases for all used keys</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Reset Passphrases</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not signed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Choose certificate file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Certificate&apos;s details</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60DeployConfigurationWidget</name>
- <message>
- <source>Device:</source>
- <translation>ПриÑтрій:</translation>
- </message>
- <message>
- <source>Silent installation</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Serial:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>WLAN:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Installation file:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Silent installation is an installation mode that does not require user&apos;s intervention. In case it fails the non silent installation is launched.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Installation drive:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Serial port:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Communication Channel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Address:</source>
- <translation>ÐдреÑа:</translation>
- </message>
- <message>
- <source>Connecting</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Unable to create CODA connection. Please try again.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Currently there is no information about the device for this connection type.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No device information available</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Qt version: </source>
- <translation>ВерÑÑ–Ñ Qt:</translation>
- </message>
- <message>
- <source>Not installed on device</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Qt version:</source>
- <translation>ВерÑÑ–Ñ Qt:</translation>
- </message>
- <message>
- <source>Unrecognised Symbian version 0x%1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Unrecognised S60 version 0x%1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>OS version:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>unknown</source>
- <translation type="unfinished">невідомо</translation>
- </message>
- <message>
- <source>ROM version:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Release:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>CODA version: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error reading CODA version</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Qt Mobility version: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error reading Qt Mobility version</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Qt Quick components version: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Not installed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>QML Viewer version: </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Screen size:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Queries the device for information</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60DeployStep</name>
- <message>
- <source>Unable to remove existing file &apos;%1&apos;: %2</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Unable to rename file &apos;%1&apos; to &apos;%2&apos;: %3</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Renaming new package &apos;%1&apos; to &apos;%2&apos;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Removing old package &apos;%1&apos;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&apos;%1&apos;: Package file not found</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Failed to find package %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Could not write to file %1 on device: %2</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Copying &quot;%1&quot;...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Deploy SIS Package</source>
- <extracomment>Qt4 Deploystep display name</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No package has been found. Specify at least one installation package.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No device is connected. Connect a device and try again.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No address for a device has been defined. Define an address and try again.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Deploying application to &apos;%1&apos;...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No such port</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Could not open serial device: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Connecting to %1:%2...</source>
- <translation>ÐŸÑ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ %1:%2...</translation>
- </message>
- <message>
- <source>Error: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Installing package &quot;%1&quot; on drive %2:...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Continue the installation on your device.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Internal error: No filehandle obtained</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Could not open remote file: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Could not open local file %1: %2</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Installation has finished</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Installation failed: %1; see %2 for descriptions of the error codes</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Failed to close the remote file: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>A timeout while deploying has occurred. CODA might not be responding. Try reconnecting the device.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Installation</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Deployment has been cancelled.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The device &apos;%1&apos; has been disconnected</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Copy progress: %1%</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60DeployStepFactory</name>
- <message>
- <source>Deploy SIS Package</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60DeviceDebugRunControl</name>
- <message>
- <source>Debugger for Symbian Platform</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Debug on Device</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Warning: Cannot locate the symbol file belonging to %1.
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Launching debugger...
-</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60DeviceRunConfigurationWidget</name>
- <message>
- <source>Arguments:</source>
- <translation type="unfinished">Ðргументи:</translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60EmulatorRunConfiguration</name>
- <message>
- <source>%1 in Symbian Emulator</source>
- <extracomment>S60 emulator run configuration default display name, %1 is base pro-File name
-----------
-S60 emulator run configuration default display name, %1 is base pro-File name</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Run on Symbian Emulator</source>
- <extracomment>S60 emulator run configuration default display name (no pro-file name)</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The .pro file is currently being parsed.</source>
- <translation>ЗдійÑнюєтьÑÑ Ñ€Ð¾Ð·Ð±Ñ–Ñ€ файлу .pro.</translation>
- </message>
- <message>
- <source>The .pro file could not be parsed.</source>
- <translation>Ðе вдалоÑÑŒ розібрати файл .pro.</translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60EmulatorRunConfigurationFactory</name>
- <message>
- <source>%1 in Symbian Emulator</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60EmulatorRunConfigurationWidget</name>
- <message>
- <source>Executable:</source>
- <translation>Виконуваний модуль:</translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60EmulatorRunControl</name>
- <message>
- <source>Starting %1...
-</source>
- <translation>ЗапуÑк %1...</translation>
- </message>
- <message>
- <source>[Qt Message]</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>%1 exited with code %2
-</source>
- <translation>%1 завершивÑÑ Ð· кодом %2
-</translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60Manager</name>
- <message>
- <source>Run in Emulator</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Run on Device</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60PublisherOvi</name>
- <message>
- <source>Clean</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>qmake</source>
- <translation></translation>
- </message>
- <message>
- <source>Build</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Freeze</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Secondary clean</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Secondary qmake</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Secondary build</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Making SIS file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Done.
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>SIS file not created due to previous errors.
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Created %1.
-</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60PublishingBuildSettingsPageOvi</name>
- <message>
- <source>No valid Qt version has been detected.&lt;br&gt;Define a correct Qt version in &quot;Options &gt; Qt4&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No valid tool chain has been detected.&lt;br&gt;Define a correct tool chain in &quot;Options &gt; Tool Chains&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Form</source>
- <translation type="unfinished">Форма</translation>
- </message>
- <message>
- <source>Choose a build configuration:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Choose a tool chain:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Only Qt versions above 4.6.3 are made available in this wizard.
-Previous Qt versions have limitations in building suitable SIS files.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60PublishingResultsPageOvi</name>
- <message>
- <source>Open Containing Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Close</source>
- <translation>Закрити</translation>
- </message>
- <message>
- <source>Form</source>
- <translation type="unfinished">Форма</translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60PublishingSisSettingsPageOvi</name>
- <message>
- <source>This should be application&apos;s display name. &lt;br&gt;It cannot be empty.&lt;br&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The display name is quite long.&lt;br&gt;It might not be fully visible in the phone&apos;s menu.&lt;br&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&quot;%1&quot; is a default vendor name used for testing and development. &lt;br&gt;The Vendor_Name field cannot contain the name &apos;Nokia&apos;. &lt;br&gt;You are advised against using the default names &apos;Vendor&apos; and &apos;Vendor-EN&apos;. &lt;br&gt;You should also not leave the entry blank. &lt;br&gt;see &lt;a href=&quot;http://www.developer.nokia.com/Distribute/Packaging_and_signing.xhtml&quot;&gt;Packaging and Signing&lt;/a&gt; for guidelines.&lt;br&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>%1 is a default vendor name used for testing and development.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>%1 are default vendor names used for testing and development.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>%1 &lt;br&gt;The Vendor_Name field cannot contain the name &apos;Nokia&apos;. &lt;br&gt;You are advised against using the default names &apos;Vendor&apos; and &apos;Vendor-EN&apos;. &lt;br&gt;You should also not leave the entry blank. &lt;br&gt;See &lt;a href=&quot;http://www.developer.nokia.com/Distribute/Packaging_and_signing.xhtml&quot;&gt;Packaging and Signing&lt;/a&gt; for guidelines.&lt;br&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The application UID %1 is only for testing and development.&lt;br&gt;SIS packages built with it cannot be distributed via the Nokia Store.&lt;br&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The application UID %1 is a symbiansigned.com UID. &lt;br&gt;Applications with this UID will be rejected by Application Signing Services for Nokia Store.&lt;br&gt;If you want to continue with a symbiansigned.com UID, sign your application on symbiansigned.com and upload the signed application to Nokia Publish.&lt;br&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The application UID %1 is not an acceptable UID.&lt;br&gt;SIS packages built with it cannot be signed by Application Signing Services for Nokia Store.&lt;br&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Please verify that you have a released version of Qt. &lt;br&gt;&lt;a href=&quot;http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian&quot;&gt;Qt Packages Distributed by Smart Installer&lt;/a&gt; has a list of released Qt versions.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The application UID is a global unique indentifier of the SIS package.&lt;br&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>To get a unique application UID for your package file,&lt;br&gt;please register at &lt;a href=&quot;http://info.publish.ovi.com/&quot;&gt;publish.ovi.com&lt;/a&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>If this UID is from symbiansigned.com, It will be rejected by Application Signing Services for Nokia Store.&lt;br&gt;If you want to continue with a symbiansigned.com UID, sign your application on symbiansigned.com and upload the signed application to Nokia Publish.&lt;br&gt;It is, however, recommended that you obtain a UID from &lt;a href=&quot;http://info.publish.ovi.com/&quot;&gt;publish.ovi.com&lt;/a&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>%1 need(s) to be certified signed. Please go to &lt;a href=&quot;symbiansigned.com&quot;&gt;symbiansigned.com&lt;/a&gt; for guidance.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&lt;br&gt;%1 need(s) manufacturer approval.&lt;br&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Some capabilities might require a special kind of signing or approval from the manufacturer.&lt;br&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Form</source>
- <translation type="unfinished">Форма</translation>
- </message>
- <message>
- <source>Localised Vendor Names</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Current Global Vendor Name</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Display name:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Localised vendor names:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Capabilities:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Current UID3</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Application UID:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Current Qt Version</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Qt version used in builds:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Current set of capabilities</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Global vendor name:</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::S60PublishingWizardOvi</name>
- <message>
- <source>Publishing to Nokia Store</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Build Configuration</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Project File Checks</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Creating an Uploadable SIS File</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
<name>Qt4ProjectManager::Internal::SubdirsProjectWizard</name>
<message>
<source>Subdirs Project</source>
@@ -20384,8 +18351,8 @@ Previous Qt versions have limitations in building suitable SIS files.</source>
<context>
<name>Qt4ProjectManager::Internal::SubdirsProjectWizardDialog</name>
<message>
- <source>This wizard generates a Qt4 subdirs project. Add subprojects to it later on by using the other wizards.</source>
- <translation>Цей майÑтер генерує проект Qt4 з підтеками. ВикориÑтовуйте інші майÑтри, щоб пізніше додати до нього підпроекти.</translation>
+ <source>This wizard generates a Qt subdirs project. Add subprojects to it later on by using the other wizards.</source>
+ <translation>Цей майÑтер генерує проект Qt з підтеками. ВикориÑтовуйте інші майÑтри, щоб пізніше додати до нього підпроекти.</translation>
</message>
</context>
<context>
@@ -20400,32 +18367,6 @@ Previous Qt versions have limitations in building suitable SIS files.</source>
</message>
</context>
<context>
- <name>Qt4ProjectManager::Internal::SymbianQtConfigWidget</name>
- <message>
- <source>S60 SDK:</source>
- <translation></translation>
- </message>
- <message>
- <source>SBS v2 directory:</source>
- <translation>Тека SBS v2:</translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::TargetSetupPage</name>
- <message>
- <source>Qt Creator can set up the following targets:</source>
- <translation>Qt Creator може вÑтановити наÑтупні цілі:</translation>
- </message>
- <message>
- <source>Set up Targets for Your Project</source>
- <translation>Ð’Ñтановіть цілі Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ проекту</translation>
- </message>
- <message>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;No valid Qt versions found.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Please add a Qt version in &lt;span style=&quot; font-style:italic;&quot;&gt;Tools &amp;gt; Options &amp;gt; Build &amp;amp; Run&lt;/span&gt; (&lt;span style=&quot; font-style:italic;&quot;&gt;Qt Creator &amp;gt; Preferences &amp;gt; Build &amp;amp; Run&lt;/span&gt; on Mac OS) or via the maintenance tool of the SDK.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Ðе знайдено правильних верÑій Qt.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Будь-лаÑка, додайте верÑÑ–Ñ— Qt в &lt;span style=&quot; font-style:italic;&quot;&gt;ІнÑтрументи &amp;gt; Опції &amp;gt; Збірка та запуÑк&lt;/span&gt; (&lt;span style=&quot; font-style:italic;&quot;&gt;Qt Creator &amp;gt; ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ &amp;gt; Збірка та запуÑк&lt;/span&gt; під Mac OS) або за допомогою заÑобу обÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ SDK.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
- </message>
-</context>
-<context>
<name>Qt4ProjectManager::Internal::TestWizard</name>
<message>
<source>Qt Unit Test</source>
@@ -20451,7 +18392,7 @@ Previous Qt versions have limitations in building suitable SIS files.</source>
<name>Qt4ProjectManager::Internal::TestWizardPage</name>
<message>
<source>WizardPage</source>
- <translation></translation>
+ <translation>Сторінка майÑтра</translation>
</message>
<message>
<source>Specify basic information about the test class for which you want to generate skeleton source code file.</source>
@@ -20499,49 +18440,15 @@ Previous Qt versions have limitations in building suitable SIS files.</source>
</message>
</context>
<context>
- <name>Qt4ProjectManager::Internal::WinscwToolChainConfigWidget</name>
- <message>
- <source>Dialog</source>
- <translation>Діалог</translation>
- </message>
- <message>
- <source>Compiler path:</source>
- <translation>ШлÑÑ… до компілÑтора:</translation>
- </message>
- <message>
- <source>System include path:</source>
- <translation>ШлÑÑ… до ÑиÑтемних заголовків:</translation>
- </message>
- <message>
- <source>System library path:</source>
- <translation>ШлÑÑ… до ÑиÑтемних бібліотек:</translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Internal::WinscwToolChainFactory</name>
- <message>
- <source>WINSCW</source>
- <translation></translation>
- </message>
- <message>
- <source>WINSCW from Qt version</source>
- <translation>WINSCW з верÑÑ–Ñ— Qt</translation>
- </message>
-</context>
-<context>
<name>Qt4ProjectManager::MakeStep</name>
<message>
<source>Make</source>
- <comment>Qt4 MakeStep display name.</comment>
- <translation></translation>
+ <comment>Qt MakeStep display name.</comment>
+ <translation>Make</translation>
</message>
<message>
- <source>Qt Creator needs a build configuration set up to build. Configure a tool chain in Project mode.</source>
- <translation>Qt Creator потребує конфігурації збірки. Ðалаштуйте набір інÑтрументів в режимі &quot;Проект&quot;.</translation>
- </message>
- <message>
- <source>Qt Creator needs a tool chain set up to build. Configure a tool chain in Project mode.</source>
- <translation>Qt Creator потребує набору інÑтрументів, щоб вÑтановити збірку. Сконфігуруйте набір інÑтрументів в режимі &quot;Проект&quot;.</translation>
+ <source>Qt Creator needs a compiler set up to build. Configure a compiler in the kit options.</source>
+ <translation>Qt Creator потребує компілÑтора Ð´Ð»Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸. Сконфігуруйте компілÑтор в налаштуваннÑÑ… інÑтрументарію.</translation>
</message>
<message>
<source>Cannot find Makefile. Check your build settings.</source>
@@ -20560,10 +18467,14 @@ Previous Qt versions have limitations in building suitable SIS files.</source>
</message>
<message>
<source>Make:</source>
- <translation type="unfinished"></translation>
+ <translation>Make:</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Make:&lt;/b&gt; %1</source>
+ <translation>&lt;b&gt;Make:&lt;/b&gt; %1</translation>
</message>
<message>
- <source>No Qt4 build configuration.</source>
+ <source>&lt;b&gt;Make:&lt;/b&gt; No Qt build configuration.</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -20572,30 +18483,11 @@ Previous Qt versions have limitations in building suitable SIS files.</source>
</message>
</context>
<context>
- <name>Qt4ProjectManager::PassphraseForKeyDialog</name>
- <message>
- <source>Passphrase:</source>
- <translation>Пароль:</translation>
- </message>
- <message>
- <source>Save passphrase</source>
- <translation>Зберегти пароль</translation>
- </message>
- <message>
- <source>This is an insecure option. The password will be saved as plain text.</source>
- <translation>Ð¦Ñ Ð¾Ð¿Ñ†Ñ–Ñ Ð½Ðµ Ñ” безпечною. Пароль буде збережено проÑтим текÑтом.</translation>
- </message>
- <message>
- <source>Passphrase for %1</source>
- <translation>Пароль Ð´Ð»Ñ %1</translation>
- </message>
-</context>
-<context>
<name>Qt4ProjectManager::QMakeStep</name>
<message>
<source>qmake</source>
<extracomment>QMakeStep default display name</extracomment>
- <translation></translation>
+ <translation>qmake</translation>
</message>
<message>
<source>Configuration is faulty, please check the Issues view for details.</source>
@@ -20642,11 +18534,7 @@ Previous Qt versions have limitations in building suitable SIS files.</source>
</message>
<message>
<source>&lt;b&gt;qmake:&lt;/b&gt; %1 %2</source>
- <translation></translation>
- </message>
- <message>
- <source>&lt;b&gt;Warning:&lt;/b&gt; The tool chain suggests using another mkspec.</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;qmake:&lt;/b&gt; %1 %2</translation>
</message>
<message>
<source>Enable QML debugging:</source>
@@ -20694,7 +18582,7 @@ Reason: %2</source>
<name>Qt4ProjectManager::QmlDumpTool</name>
<message>
<source>qmldump</source>
- <translation></translation>
+ <translation>qmldump</translation>
</message>
<message>
<source>Only available for Qt for Desktop and Qt for Qt Simulator.</source>
@@ -20733,19 +18621,6 @@ Reason: %2</source>
</message>
</context>
<context>
- <name>Qt4ProjectManager::Qt4BaseTargetFactory</name>
- <message>
- <source>%1 Debug</source>
- <extracomment>Name of a debug build configuration to created by a project wizard, %1 being the Qt version name. We recommend not translating it.</extracomment>
- <translation></translation>
- </message>
- <message>
- <source>%1 Release</source>
- <extracomment>Name of a release build configuration to be created by a project wizard, %1 being the Qt version name. We recommend not translating it.</extracomment>
- <translation></translation>
- </message>
-</context>
-<context>
<name>Qt4ProjectManager::Qt4BuildConfiguration</name>
<message>
<source>Parsing the .pro file</source>
@@ -20755,8 +18630,8 @@ Reason: %2</source>
<context>
<name>Qt4ProjectManager::Qt4BuildConfigurationFactory</name>
<message>
- <source>Using Qt Version &quot;%1&quot;</source>
- <translation>ВикориÑтовуємо Qt верÑÑ–Ñ— &quot;%1&quot;</translation>
+ <source>Qmake based build</source>
+ <translation>Збірка на базі qmake</translation>
</message>
<message>
<source>New Configuration</source>
@@ -20769,106 +18644,33 @@ Reason: %2</source>
<message>
<source>%1 Debug</source>
<extracomment>Debug build configuration. We recommend not translating it.</extracomment>
- <translation></translation>
+ <translation>%1 Debug</translation>
</message>
<message>
<source>%1 Release</source>
<extracomment>Release build configuration. We recommend not translating it.</extracomment>
- <translation></translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::Qt4DefaultTargetSetupWidget</name>
- <message>
- <source>Add build from:</source>
- <translation>Додати збірку з:</translation>
- </message>
- <message>
- <source>Add Build</source>
- <translation>Додати збірку</translation>
- </message>
- <message>
- <source>debug</source>
- <extracomment>Debug build</extracomment>
- <translation></translation>
- </message>
- <message>
- <source>release</source>
- <extracomment>release build</extracomment>
- <translation></translation>
- </message>
- <message>
- <source>Create build configurations:</source>
- <translation>Створити конфігурацію збірки:</translation>
- </message>
- <message>
- <source>For Each Qt Version One Debug And One Release</source>
- <translation>Одну Debug та одну Release Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ñ— верÑÑ–Ñ— Qt</translation>
- </message>
- <message>
- <source>For One Qt Version One Debug And One Release</source>
- <translation>Одну Debug та одну Release Ð´Ð»Ñ Ð¾Ð´Ð½Ñ–Ñ”Ñ— верÑÑ–Ñ— Qt</translation>
- </message>
- <message>
- <source>Manually</source>
- <translation>Вручну</translation>
- </message>
- <message>
- <source>None</source>
- <translation>Ðемає</translation>
- </message>
- <message>
- <source>Shadow build</source>
- <translation>Тіньова збірка</translation>
- </message>
- <message>
- <source>Qt version:</source>
- <translation>ВерÑÑ–Ñ Qt:</translation>
- </message>
- <message>
- <source>No Build Found</source>
- <translation>Збірку не знайдено</translation>
- </message>
- <message>
- <source>Incompatible Build Found</source>
- <translation>Знайдено неÑуміÑну збірку</translation>
- </message>
- <message>
- <source>The build found in %1 is incompatible with this target.</source>
- <translation>Збірка знайдена в %1 неÑуміÑна з цією ціллю.</translation>
+ <translation>%1 Release</translation>
</message>
<message>
- <source>Already Imported Build</source>
- <translation>Збірку вже імпортовано</translation>
- </message>
- <message>
- <source>The build found in %1 is already imported.</source>
- <translation>Збірку знайдено в %1 вже імпортовано.</translation>
- </message>
- <message>
- <source>Import build from %1.</source>
- <translation>Імпортувати збірку з %1.</translation>
- </message>
- <message>
- <source>No build found in %1 matching project %2.</source>
- <translation>Ðе знайдено збірку в %1, Ñка б відповідала проекту %2.</translation>
- </message>
- <message>
- <source>&lt;b&gt;Error:&lt;/b&gt; </source>
- <comment>Severity is Task::Error</comment>
- <translation>&lt;b&gt;Помилка:&lt;/b&gt; </translation>
+ <source>Debug</source>
+ <extracomment>Name of a debug build configuration to created by a project wizard. We recommend not translating it.</extracomment>
+ <translation>Debug</translation>
</message>
<message>
- <source>&lt;b&gt;Warning:&lt;/b&gt; </source>
- <comment>Severity is Task::Warning</comment>
- <translation>&lt;b&gt;ПопередженнÑ:&lt;/b&gt; </translation>
+ <source>Release</source>
+ <extracomment>Name of a release build configuration to be created by a project wizard. We recommend not translating it.</extracomment>
+ <translation>Release</translation>
</message>
</context>
<context>
<name>Qt4ProjectManager::Qt4Manager</name>
<message>
- <source>Full path to the bin directory of the current project&apos;s Qt version.</source>
- <translation>Повний шлÑÑ… до теки bin верÑÑ–Ñ— Qt поточного проекту.</translation>
+ <source>Full path to the host bin directory of the current project&apos;s Qt version.</source>
+ <translation>Повний шлÑÑ… до host-теки bin верÑÑ–Ñ— Qt поточного проекту.</translation>
+ </message>
+ <message>
+ <source>Full path to the target bin directory of the current project&apos;s Qt version. You probably want %1 instead.</source>
+ <translation>Повний шлÑÑ… до target-теки bin верÑÑ–Ñ— Qt поточного проекту. Мабуть вам потрібен %1.</translation>
</message>
<message>
<source>Update of Generated Files</source>
@@ -20888,7 +18690,7 @@ Reason: %2</source>
</message>
<message>
<source>QMake</source>
- <translation></translation>
+ <translation>QMake</translation>
</message>
</context>
<context>
@@ -20911,7 +18713,7 @@ Reason: %2</source>
</message>
<message>
<source>QML</source>
- <translation></translation>
+ <translation>QML</translation>
</message>
<message>
<source>Other files</source>
@@ -20967,43 +18769,29 @@ Reason: %2</source>
<source>Evaluating</source>
<translation>Оцінка</translation>
</message>
-</context>
-<context>
- <name>Qt4ProjectManager::Qt4Target</name>
<message>
- <source>Desktop</source>
- <comment>Qt4 Desktop target display name</comment>
- <translation>Стаціонарний комп&apos;ютер</translation>
+ <source>No Qt version set in kit.</source>
+ <translation>ВерÑÑ–ÑŽ Qt не задано в інÑтрументарії.</translation>
</message>
<message>
- <source>Qt Simulator</source>
- <comment>Qt4 Simulator target display name</comment>
- <translation>СимулÑтор Qt</translation>
+ <source>The .pro file &apos;%1&apos; does not exist.</source>
+ <translation>Файл .pro &apos;%1&apos; не Ñ–Ñнує.</translation>
</message>
<message>
- <source>Maemo5</source>
- <comment>Qt4 Maemo5 target display name</comment>
- <translation></translation>
+ <source>The .pro file &apos;%1&apos; is not part of the project.</source>
+ <translation>Файл .pro &apos;%1&apos; не Ñ” чаÑтиною проекту.</translation>
</message>
<message>
- <source>Harmattan</source>
- <comment>Qt4 Harmattan target display name</comment>
- <translation></translation>
+ <source>The .pro file &apos;%1&apos; could not be parsed.</source>
+ <translation>Ðе вдалоÑÑŒ розібрати файл .pro &apos;%1&apos;.</translation>
</message>
<message>
- <source>MeeGo</source>
- <comment>Qt4 MeeGo target display name</comment>
- <translation></translation>
- </message>
- <message>
- <source>Symbian Emulator</source>
- <comment>Qt4 Symbian Emulator target display name</comment>
- <translation>ЕмулÑтор Symbian</translation>
+ <source>Debug</source>
+ <translation>Debug</translation>
</message>
<message>
- <source>Symbian Device</source>
- <comment>Qt4 Symbian Device target display name</comment>
- <translation>ПриÑтрій Symbian</translation>
+ <source>Release</source>
+ <translation>Release</translation>
</message>
</context>
<context>
@@ -21028,120 +18816,39 @@ Reason: %2</source>
</message>
</context>
<context>
- <name>Qt4ProjectManager::S60DeployConfiguration</name>
- <message>
- <source>Deploy %1 to Symbian device</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Deploy to Symbian device</source>
- <translation type="unfinished">Ð Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ð° приÑтрій Symbian</translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::S60DeployConfigurationFactory</name>
- <message>
- <source>%1 on Symbian Device</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Deploy to Symbian device</source>
- <translation type="unfinished">Ð Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ð° приÑтрій Symbian</translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::S60DeviceRunConfiguration</name>
- <message>
- <source>%1 on Symbian Device</source>
- <extracomment>S60 device runconfiguration default display name, %1 is base pro-File name</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Run on Symbian device</source>
- <extracomment>S60 device runconfiguration default display name (no profile set)</extracomment>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The .pro file is currently being parsed.</source>
- <translation>ЗдійÑнюєтьÑÑ Ñ€Ð¾Ð·Ð±Ñ–Ñ€ файлу .pro.</translation>
- </message>
- <message>
- <source>The .pro file could not be parsed.</source>
- <translation>Ðе вдалоÑÑŒ розібрати файл .pro.</translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::S60DeviceRunConfigurationFactory</name>
- <message>
- <source>%1 on Symbian Device</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::S60RunControlBase</name>
- <message>
- <source>Launching</source>
- <translation>ЗапуÑк</translation>
- </message>
- <message>
- <source>Please finalise the installation on your device.
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;center&gt;&lt;i&gt;%1&lt;/i&gt; is still running on the device.&lt;/center&gt;&lt;center&gt;Terminating it can leave the target in an inconsistent state.&lt;/center&gt;&lt;center&gt;Would you still like to terminate it?&lt;/center&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Application Still Running</source>
- <translation>Програма ще виконуєтьÑÑ</translation>
- </message>
+ <name>Qt4ProjectManager::TargetSetupPage</name>
<message>
- <source>Force Quit</source>
- <translation>ПримуÑовий вихід</translation>
+ <source>&lt;span style=&quot; font-weight:600;&quot;&gt;No valid kits found.&lt;/span&gt;</source>
+ <translation>&lt;span style=&quot; font-weight:600;&quot;&gt;Ðе знайдено інÑтрументаріїв.&lt;/span&gt;</translation>
</message>
<message>
- <source>Keep Running</source>
- <translation>Продовжувати виконаннÑ</translation>
+ <source>Please add a kit in the &lt;a href=&quot;buildandrun&quot;&gt;options&lt;/a&gt; or via the maintenance tool of the SDK.</source>
+ <translation>Будь лаÑка, додайте інÑтрументарій в &lt;a href=&quot;buildandrun&quot;&gt;налаштуваннÑÑ…&lt;/a&gt; або за допомогою заÑобу обÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ SDK.</translation>
</message>
<message>
- <source>Finished.
-</source>
- <translation type="unfinished"></translation>
+ <source>Select Kits for Your Project</source>
+ <translation>Оберіть інÑтрументарії Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ð³Ð¾ проекту</translation>
</message>
-</context>
-<context>
- <name>Qt4ProjectManager::SbsV2Parser</name>
<message>
- <source>SBSv2 build log</source>
- <translation>Журнал збірки SBSv2</translation>
+ <source>Kit Selection</source>
+ <translation>Вибір інÑтрументарію</translation>
</message>
<message>
- <source>The file &apos;%1&apos; is not a SBSv2 log file.</source>
- <translation>Файл &apos;%1&apos; не є файлом журналу SBSv2.</translation>
+ <source>%1 - temporary</source>
+ <translation>%1 - тимчаÑовий</translation>
</message>
<message>
- <source>Running command: %1
-</source>
- <translation>Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸: %1
-</translation>
+ <source>Qt Creator can use the following kits for project &lt;b&gt;%1&lt;/b&gt;:</source>
+ <comment>%1: Project name</comment>
+ <translation>Qt Creator може викориÑтовувати наÑтупні інÑтрументарії Ð´Ð»Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñƒ &lt;b&gt;%1&lt;/b&gt;:</translation>
</message>
<message>
- <source>Recipe %1 failed with exit code %2.</source>
- <extracomment>%1 is the SBSv2 build recipe name, %2 the return code of the failed command</extracomment>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Qt4ProjectManager::TargetSetupPage</name>
- <message>
- <source>Target Setup</source>
- <translation>ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ†Ñ–Ð»Ñ–</translation>
+ <source>No Build Found</source>
+ <translation>Збірку не знайдено</translation>
</message>
<message>
- <source>Qt Creator can set up the following targets for project &lt;b&gt;%1&lt;/b&gt;:</source>
- <comment>%1: Project name</comment>
- <translation>Qt Creator може вÑтановити наÑтупні цілі Ð´Ð»Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñƒ &lt;b&gt;%1&lt;/b&gt;:</translation>
+ <source>No build found in %1 matching project %2.</source>
+ <translation>Ðе знайдено збірку в %1, Ñка б відповідала проекту %2.</translation>
</message>
</context>
<context>
@@ -21153,21 +18860,36 @@ Reason: %2</source>
<message>
<source>ptrace: Operation not permitted.
-Could not attach to the process. Check the settings of
+Could not attach to the process. Make sure no other debugger traces this process.
+Check the settings of
/proc/sys/kernel/yama/ptrace_scope
-For more details, see/etc/sysctl.d/10-ptrace.conf
+For more details, see /etc/sysctl.d/10-ptrace.conf
</source>
- <translation type="unfinished"></translation>
+ <translation>ptrace: ÐžÐ¿ÐµÑ€Ð°Ñ†Ñ–Ñ Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð°.
+
+Ðе вдалоÑÑŒ приєднатиÑÑŒ до процеÑу. ПереконайтеÑÑŒ, що Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ðµ знаходитьÑÑ Ð¿Ñ–Ð´ управліннÑм іншого зневаджувача.
+Перевірте Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²
+/proc/sys/kernel/yama/ptrace_scope
+Детальніше, дивітьÑÑ Ð² /etc/sysctl.d/10-ptrace.conf
+</translation>
</message>
<message>
<source>ptrace: Operation not permitted.
-Could not attach to the process. If your uid matches the uid
+Could not attach to the process. Make sure no other debugger traces this process.
+If your uid matches the uid
of the target process, check the settings of
/proc/sys/kernel/yama/ptrace_scope
-For more details, see/etc/sysctl.d/10-ptrace.conf
+For more details, see /etc/sysctl.d/10-ptrace.conf
</source>
- <translation type="unfinished"></translation>
+ <translation>ptrace: ÐžÐ¿ÐµÑ€Ð°Ñ†Ñ–Ñ Ð·Ð°Ð±Ð¾Ñ€Ð¾Ð½ÐµÐ½Ð°.
+
+Ðе вдалоÑÑŒ приєднатиÑÑŒ до процеÑу. ПереконайтеÑÑŒ, що Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ðµ знаходитьÑÑ Ð¿Ñ–Ð´ управліннÑм іншого зневаджувача.
+Якщо ваш uid збігаєтьÑÑ Ð· uid
+цільового процеÑу, перевірте Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²
+/proc/sys/kernel/yama/ptrace_scope
+Детальніше, дивітьÑÑ Ð² /etc/sysctl.d/10-ptrace.conf
+</translation>
</message>
<message>
<source>&lt;none&gt;</source>
@@ -21257,7 +18979,7 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
</message>
<message>
<source>QML Dump:</source>
- <translation></translation>
+ <translation>QML Dump:</translation>
</message>
<message>
<source>A modified version of qmlviewer with support for QML/JS debugging.</source>
@@ -21296,8 +19018,8 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
<translation>Зібрати вÑе</translation>
</message>
<message>
- <source>Tool chain:</source>
- <translation>Ðабір інÑтрументів:</translation>
+ <source>Compiler:</source>
+ <translation>КомпілÑтор:</translation>
</message>
</context>
<context>
@@ -21315,17 +19037,13 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
</message>
<message>
<source>Auto-detected</source>
- <translation>Ðвтовизначені</translation>
+ <translation>Ðвтовизначенні</translation>
</message>
<message>
<source>Manual</source>
<translation>Задані вручну</translation>
</message>
<message>
- <source>Remove invalid Qt Versions</source>
- <translation>Видалити неправильні верÑÑ–Ñ— Qt</translation>
- </message>
- <message>
<source>Do you want to remove all invalid Qt Versions?&lt;br&gt;&lt;ul&gt;&lt;li&gt;%1&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;will be removed.</source>
<translation>Бажаєте видалити уÑÑ– неправильні верÑÑ–Ñ— Qt?&lt;br&gt;Будуть видалені: &lt;ul&gt;&lt;li&gt;%1&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;.</translation>
</message>
@@ -21334,16 +19052,8 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
<translation>Qt верÑÑ–Ñ— %1 Ð´Ð»Ñ %2</translation>
</message>
<message>
- <source>No tool chain can produce code for this Qt version. Please define one or more tool chains.</source>
- <translation>Жодний набір інÑтрументів не може Ñтворювати код Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— верÑÑ–Ñ— Qt. Будь-лаÑка, визначіть один чи більше набір інÑтрументів.</translation>
- </message>
- <message>
- <source>Not all possible target environments can be supported due to missing tool chains.</source>
- <translation>Ðе уÑÑ– можливі цільові Ñередовища можуть бути підтримані через відÑутніÑÑ‚ÑŒ наборів інÑтрументів.</translation>
- </message>
- <message>
<source>The following ABIs are currently not supported:&lt;ul&gt;&lt;li&gt;%1&lt;/li&gt;&lt;/ul&gt;</source>
- <translation>ÐаÑтупнів ABI наразі не підтримуютьÑÑ:&lt;ul&gt;&lt;li&gt;%1&lt;/li&gt;&lt;/ul&gt;</translation>
+ <translation>ÐаÑтупні ABI наразі не підтримуютьÑÑ:&lt;ul&gt;&lt;li&gt;%1&lt;/li&gt;&lt;/ul&gt;</translation>
</message>
<message>
<source>Building helpers</source>
@@ -21358,12 +19068,32 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
<translation>Оберіть виконуваний модуль qmake</translation>
</message>
<message>
- <source>Qt versions incompatible</source>
+ <source>Remove Invalid Qt Versions</source>
+ <translation>Видалити неправильні верÑÑ–Ñ— Qt</translation>
+ </message>
+ <message>
+ <source>No compiler can produce code for this Qt version. Please define one or more compilers.</source>
+ <translation>Жодний компілÑтор не може Ñтворювати код Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— верÑÑ–Ñ— Qt. Будь лаÑка, визначіть один чи більше компілÑтор.</translation>
+ </message>
+ <message>
+ <source>Not all possible target environments can be supported due to missing compilers.</source>
+ <translation>Ðе уÑÑ– можливі цільові Ñередовища можуть бути підтримані через відÑутніÑÑ‚ÑŒ компілÑторів.</translation>
+ </message>
+ <message>
+ <source>Qt known</source>
+ <translation>Відома Qt</translation>
+ </message>
+ <message>
+ <source>This Qt version was already registered as &quot;%1&quot;.</source>
+ <translation>Ð¦Ñ Ð²ÐµÑ€ÑÑ–Ñ Qt вже зареєÑтрована Ñк &quot;%1&quot;.</translation>
+ </message>
+ <message>
+ <source>Incompatible Qt Versions</source>
<translation>ÐеÑуміÑні верÑÑ–Ñ— Qt</translation>
</message>
<message>
- <source>The qt version selected must be for the same target.</source>
- <translation>Обрана верÑÑ–Ñ Qt повинна бути Ð´Ð»Ñ Ñ‚Ð°ÐºÐ¾Ñ— ж цілі.</translation>
+ <source>The Qt version selected must be for the same device type.</source>
+ <translation>Обрана верÑÑ–Ñ Qt повинна бути Ð´Ð»Ñ Ñ‚Ð°ÐºÐ¾Ð³Ð¾ ж типу приÑтрою.</translation>
</message>
<message>
<source>Helpers: None available</source>
@@ -21386,14 +19116,6 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
<source>&lt;i&gt;Cannot be compiled.&lt;/i&gt;</source>
<translation>&lt;i&gt;Ðеможливо Ñкомпілювати.&lt;/i&gt;</translation>
</message>
- <message>
- <source>S60 SDK:</source>
- <translation></translation>
- </message>
- <message>
- <source>SBS v2 directory:</source>
- <translation>Тека SBS v2:</translation>
- </message>
</context>
<context>
<name>QtSupport::Internal::QtVersionInfo</name>
@@ -21434,13 +19156,6 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
</message>
</context>
<context>
- <name>QtSupport::QtVersionManager</name>
- <message>
- <source>MinGW from %1</source>
- <translation>MinGW з %1</translation>
- </message>
-</context>
-<context>
<name>QtVersion</name>
<message>
<source>&lt;unknown&gt;</source>
@@ -21456,7 +19171,7 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
</message>
<message>
<source>Qt %1 (%2)</source>
- <translation></translation>
+ <translation>Qt %1 (%2)</translation>
</message>
<message>
<source>No qmake path set</source>
@@ -21467,6 +19182,14 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
<translation>qmake не Ñ–Ñнує або не Ñ” виконуваним модулем</translation>
</message>
<message>
+ <source>ABI detection failed: Make sure to use a matching compiler when building.</source>
+ <translation>Збій Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ABI: переконайтеÑÑŒ у викориÑтанні відповідного компілÑтора під Ñ‡Ð°Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸.</translation>
+ </message>
+ <message>
+ <source>Non-installed -prefix build - for internal development only.</source>
+ <translation>ÐевÑтановлена збірка з параметром -prefix - лише Ð´Ð»Ñ Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½ÑŒÐ¾Ñ— розробки.</translation>
+ </message>
+ <message>
<source>Qt version has no name</source>
<translation>ВерÑÑ–Ñ Qt не має імені</translation>
</message>
@@ -21483,50 +19206,32 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
<translation>Типове Ñимвольне поÑÐ¸Ð»Ð°Ð½Ð½Ñ mkspec зіпÑоване.</translation>
</message>
<message>
- <source>ABI detection failed: Make sure to use a matching tool chain when building.</source>
- <translation>Збій Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ABI: переконайтеÑÑŒ у викориÑтанні відповідного набору інÑтрументів під Ñ‡Ð°Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸.</translation>
+ <source>No qmlscene installed.</source>
+ <translation>qmlscene не вÑтановлено.</translation>
</message>
<message>
<source>No qmlviewer installed.</source>
<translation>qmlviewer не вÑтановлено.</translation>
</message>
<message>
- <source>The &quot;Open C/C++ plugin&quot; is not installed in the Symbian SDK or the Symbian SDK path is misconfigured</source>
- <translation>&quot;Open C/C++ plugin&quot; не вÑтановлено в Symbian SDK або невірно Ñконфігуровано шлÑÑ… до Symbian SDK</translation>
- </message>
- <message>
- <source>SBS was not found.</source>
- <translation>SBS не знайдено.</translation>
- </message>
- <message>
<source>Desktop</source>
<comment>Qt Version is meant for the desktop</comment>
<translation>Стаціонарний комп&apos;ютер</translation>
</message>
<message>
- <source>Symbian</source>
- <comment>Qt Version is meant for Symbian</comment>
- <translation></translation>
- </message>
- <message>
<source>Maemo</source>
<comment>Qt Version is meant for Maemo5</comment>
- <translation></translation>
+ <translation>Maemo</translation>
</message>
<message>
<source>Harmattan </source>
<comment>Qt Version is meant for Harmattan</comment>
- <translation></translation>
- </message>
- <message>
- <source>MeeGo</source>
- <comment>Qt Version is meant for MeeGo</comment>
- <translation></translation>
+ <translation>Harmattan </translation>
</message>
<message>
<source>Qt Simulator</source>
<comment>Qt Version is meant for Qt Simulator</comment>
- <translation></translation>
+ <translation>СимулÑтор Qt</translation>
</message>
<message>
<source>Cannot determine the installation path for Qt version &apos;%1&apos;.</source>
@@ -21561,15 +19266,15 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
<name>RangeDetails</name>
<message>
<source>Duration:</source>
- <translation type="unfinished">ТриваліÑÑ‚ÑŒ:</translation>
+ <translation>ТриваліÑÑ‚ÑŒ:</translation>
</message>
<message>
<source>Details:</source>
- <translation type="unfinished">Деталі:</translation>
+ <translation>Деталі:</translation>
</message>
<message>
<source>Location:</source>
- <translation type="unfinished">РозташуваннÑ:</translation>
+ <translation>РозташуваннÑ:</translation>
</message>
<message>
<source>Binding loop detected</source>
@@ -21596,7 +19301,7 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
</message>
<message>
<source>Border</source>
- <translation type="unfinished">ГраницÑ</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -21607,7 +19312,7 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
</message>
<message>
<source>Border</source>
- <translation type="unfinished">ГраницÑ</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Radius</source>
@@ -21628,92 +19333,6 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
<source>Deploy to Remote Linux Host</source>
<translation>Розгорнути на віддалений вузол Linux</translation>
</message>
- <message>
- <source>Linux Devices</source>
- <translation>Linux-приÑтрої</translation>
- </message>
- <message>
- <source>Unknown OS</source>
- <translation>Ðевідома ОС</translation>
- </message>
- <message>
- <source>(No device)</source>
- <translation>(Ðемає приÑтрою)</translation>
- </message>
-</context>
-<context>
- <name>RemoteLinux::AbstractRemoteLinuxApplicationRunner</name>
- <message>
- <source>Cannot run: %1</source>
- <translation>Ðеможливо запуÑтити: %1</translation>
- </message>
- <message>
- <source>Could not connect to host: %1</source>
- <translation>Ðе вдалоÑÑŒ під&apos;єднатиÑÑŒ до вузла: %1</translation>
- </message>
- <message>
- <source>Connection error: %1</source>
- <translation>Помилка з&apos;єднаннÑ: %1</translation>
- </message>
- <message>
- <source>Killing remote process(es)...</source>
- <translation>Ð—Ð½Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ð³Ð¾ процеÑу(-ів)...</translation>
- </message>
- <message>
- <source>Initial cleanup failed: %1</source>
- <translation>Збій початкового очищеннÑ: %1</translation>
- </message>
- <message>
- <source>Remote process started.</source>
- <translation>Віддалений Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð¾.</translation>
- </message>
- <message>
- <source>Gathering ports failed: %1
-Continuing anyway.</source>
- <translation>Збій Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ€Ñ‚Ñ–Ð²: %1
-Ð’Ñеодно продовжуємо.</translation>
- </message>
- <message>
- <source>No remote executable set.</source>
- <translation>Віддалений виконуваний модуль не вказано.</translation>
- </message>
- <message>
- <source>No device configuration set.</source>
- <translation>Конфігурації приÑтрою не вказана.</translation>
- </message>
- <message>
- <source>Connecting to device...</source>
- <translation>ÐŸÑ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ приÑтрою...</translation>
- </message>
- <message>
- <source>Error running remote process: %1</source>
- <translation>Помилка запуÑку відаленого процеÑу: %1</translation>
- </message>
-</context>
-<context>
- <name>RemoteLinux::AbstractRemoteLinuxDebugSupport</name>
- <message>
- <source>Preparing remote side...
-</source>
- <translation>Підготовка віддаленої Ñторони...
-</translation>
- </message>
- <message>
- <source>Remote application failed with exit code %1.</source>
- <translation>Віддалена програма завершилаÑÑŒ з кодом %1.</translation>
- </message>
- <message>
- <source>The gdbserver process closed unexpectedly.</source>
- <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ gdbserver неÑподівано завершивÑÑ.</translation>
- </message>
- <message>
- <source>Initial setup failed: %1</source>
- <translation>Збій початкового налаштуваннÑ: %1</translation>
- </message>
- <message>
- <source>Not enough free ports on device for debugging.</source>
- <translation>ÐедоÑтатньо вільних портів Ð´Ð»Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð² приÑтрої.</translation>
- </message>
</context>
<context>
<name>RemoteLinux::AbstractRemoteLinuxDeployService</name>
@@ -21758,7 +19377,7 @@ Is the device connected and set up for network access?</source>
</message>
<message>
<source>User requests deployment to stop; cleaning up.</source>
- <translation>КориÑтувач подав вимогу зупинити розгоратннÑ; очищаємо.</translation>
+ <translation>КориÑтувач подав вимогу зупинити розгортаннÑ; очищаємо.</translation>
</message>
<message>
<source>Deploy step failed.</source>
@@ -21781,52 +19400,6 @@ Is the device connected and set up for network access?</source>
</message>
</context>
<context>
- <name>RemoteLinux::AbstractRemoteLinuxProcessList</name>
- <message>
- <source>PID</source>
- <translation></translation>
- </message>
- <message>
- <source>Command Line</source>
- <translation>РÑдок команди</translation>
- </message>
- <message>
- <source>Connection failure: %1</source>
- <translation>Збій з&apos;єднаннÑ: %1</translation>
- </message>
- <message>
- <source>Error: Remote process failed to start: %1</source>
- <translation>Помилка: Збій запуÑку віддаленого процеÑу: %1</translation>
- </message>
- <message>
- <source>Error: Remote process crashed: %1</source>
- <translation>Помилка: Віддалений Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð²ÑÑ Ð°Ð²Ð°Ñ€Ñ–Ð¹Ð½Ð¾: %1</translation>
- </message>
- <message>
- <source>Remote process failed.</source>
- <translation>Збій віддаленого процеÑу.</translation>
- </message>
- <message>
- <source>
-Remote stderr was: %1</source>
- <translation>
-Віддалений stderr: %1</translation>
- </message>
-</context>
-<context>
- <name>RemoteLinux::AbstractRemoteLinuxRunControl</name>
- <message>
- <source>Starting remote process...
-</source>
- <translation>ЗапуÑк віддаленого процеÑу...</translation>
- </message>
- <message>
- <source>Finished running remote process. Exit code was %1.
-</source>
- <translation>Завершено Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ð³Ð¾ процеÑу. Код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ %1.</translation>
- </message>
-</context>
-<context>
<name>RemoteLinux::AbstractUploadAndInstallPackageService</name>
<message>
<source>Successfully uploaded package file.</source>
@@ -21855,10 +19428,6 @@ Remote stderr was: %1</source>
<context>
<name>RemoteLinux::DeployableFilesPerProFile</name>
<message>
- <source>&lt;no target path set&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Local File Path</source>
<translation>Локальний шлÑÑ… до файлу</translation>
</message>
@@ -21886,6 +19455,10 @@ Remote stderr was: %1</source>
<translation>Збій Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ &apos;%1&apos;.</translation>
</message>
<message>
+ <source>Failed to set executable flag.</source>
+ <translation>Збій вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ.</translation>
+ </message>
+ <message>
<source>Failed to upload file &apos;%1&apos;: Could not open for reading.</source>
<translation>Збій Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ &apos;%1&apos;: Ðе вдалоÑÑŒ відкрити Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ.</translation>
</message>
@@ -21913,53 +19486,38 @@ Remote stderr was: %1</source>
<name>RemoteLinux::GenericLinuxDeviceConfigurationFactory</name>
<message>
<source>Generic Linux Device</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Generic Linux</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Test</source>
- <translation type="unfinished">ТеÑÑ‚</translation>
- </message>
- <message>
- <source>Remote Processes...</source>
- <translation>Віддалені процеÑи...</translation>
- </message>
- <message>
- <source>Deploy Public Key...</source>
- <translation>Розгорнути файл публічного ключа...</translation>
+ <translation>Звичайний Linux-приÑтрій</translation>
</message>
</context>
<context>
<name>RemoteLinux::GenericLinuxDeviceConfigurationWizard</name>
<message>
<source>New Generic Linux Device Configuration Setup</source>
- <translation type="unfinished"></translation>
+ <translation>ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð¾Ð²Ð¾Ñ— конфігурації звичайного Linux-приÑтрою</translation>
</message>
</context>
<context>
<name>RemoteLinux::GenericLinuxDeviceConfigurationWizardFinalPage</name>
<message>
<source>Setup Finished</source>
- <translation type="unfinished"></translation>
+ <translation>ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾</translation>
</message>
<message>
<source>The new device configuration will now be created.
In addition, device connectivity will be tested.</source>
- <translation type="unfinished"></translation>
+ <translation>Зараз буде Ñтворено нова ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¸Ñтрою.
+Окрім того буде перевірено зв&apos;Ñзок з приÑтроєм.</translation>
</message>
</context>
<context>
<name>RemoteLinux::GenericLinuxDeviceConfigurationWizardSetupPage</name>
<message>
<source>Connection Data</source>
- <translation type="unfinished"></translation>
+ <translation>Дані підключеннÑ</translation>
</message>
<message>
<source>Generic Linux Device</source>
- <translation type="unfinished"></translation>
+ <translation>Звичайний Linux-приÑтрій</translation>
</message>
</context>
<context>
@@ -21969,6 +19527,10 @@ In addition, device connectivity will be tested.</source>
<translation>ÐŸÑ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ вузла...</translation>
</message>
<message>
+ <source>Checking kernel version...</source>
+ <translation>Перевірка верÑÑ–Ñ— Ñдра...</translation>
+ </message>
+ <message>
<source>SSH connection failure: %1
</source>
<translation>Збій з&apos;Ñ”Ð´Ð½Ð°Ð½Ð½Ñ SSH: %1
@@ -21977,125 +19539,51 @@ In addition, device connectivity will be tested.</source>
<message>
<source>uname failed: %1
</source>
- <translation type="unfinished"></translation>
+ <translation>Збій uname: %1
+</translation>
</message>
<message>
<source>uname failed.
</source>
- <translation type="unfinished"></translation>
+ <translation>Збій uname.
+</translation>
</message>
<message>
<source>Checking if specified ports are available...</source>
- <translation type="unfinished"></translation>
+ <translation>Перевірка чи вказані порти доÑтупні...</translation>
</message>
<message>
<source>Error gathering ports: %1
</source>
- <translation type="unfinished"></translation>
+ <translation>Помилка Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ€Ñ‚Ñ–Ð²: %1</translation>
+ </message>
+ <message>
+ <source>All specified ports are available.
+</source>
+ <translation>УÑÑ– вказані порти доÑтупні.</translation>
</message>
<message>
<source>The following specified ports are currently in use: %1
</source>
- <translation type="unfinished"></translation>
+ <translation>ÐаÑтупні вказані порти вже викориÑтовуютьÑÑ: %1</translation>
</message>
</context>
<context>
<name>RemoteLinux::GenericRemoteLinuxCustomCommandDeploymentStep</name>
<message>
<source>Run custom remote command</source>
- <translation type="unfinished"></translation>
+ <translation>Виконати віддалену кориÑтувацьку команду</translation>
</message>
</context>
<context>
<name>RemoteLinux::Internal::ConfigWidget</name>
<message>
<source>Incremental deployment</source>
- <translation type="unfinished"></translation>
+ <translation>Інкрементальне розгортаннÑ</translation>
</message>
<message>
<source>Command line:</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RemoteLinux::Internal::LinuxDeviceConfigurationsSettingsPage</name>
- <message>
- <source>Device Configurations</source>
- <translation>Конфігурації приÑтроїв</translation>
- </message>
-</context>
-<context>
- <name>RemoteLinux::Internal::LinuxDeviceConfigurationsSettingsWidget</name>
- <message>
- <source>Physical Device</source>
- <translation>Фізичний приÑтрій</translation>
- </message>
- <message>
- <source>Emulator</source>
- <translation>ЕмулÑтор</translation>
- </message>
- <message>
- <source>Linux Device Configurations</source>
- <translation>Конфігурації Linux-приÑтроїв</translation>
- </message>
- <message>
- <source>&amp;Configuration:</source>
- <translation>&amp;КонфігураціÑ:</translation>
- </message>
- <message>
- <source>General</source>
- <translation>Загальне</translation>
- </message>
- <message>
- <source>&amp;Name:</source>
- <translation>&amp;Ðазва:</translation>
- </message>
- <message>
- <source>OS type:</source>
- <translation>Тип ОС:</translation>
- </message>
- <message>
- <source>Device type:</source>
- <translation>Тип приÑтрою:</translation>
- </message>
- <message>
- <source>OS Type Specific</source>
- <translation>Специфічно до типу ОС</translation>
- </message>
- <message>
- <source>&amp;Add...</source>
- <translation>&amp;Додати...</translation>
- </message>
- <message>
- <source>&amp;Remove</source>
- <translation>&amp;Видалити</translation>
- </message>
- <message>
- <source>Set As Default</source>
- <translation>Ð’Ñтановити Ñк типову</translation>
- </message>
- <message>
- <source>Click here if you do not have an SSH key yet.</source>
- <translation>Клацніть тут, Ñкщо ви ще не маєте ключа SSH.</translation>
- </message>
- <message>
- <source>&amp;Generate SSH Key...</source>
- <translation>&amp;Згенерувати ключ SSH...</translation>
- </message>
-</context>
-<context>
- <name>RemoteLinux::Internal::LinuxDeviceFactorySelectionDialog</name>
- <message>
- <source>Start Wizard</source>
- <translation>ЗапуÑк майÑтра</translation>
- </message>
- <message>
- <source>Device Configuration Wizard Selection</source>
- <translation>Вибір майÑтра конфігурації приÑтрою</translation>
- </message>
- <message>
- <source>Available device types:</source>
- <translation>ДоÑтупні типи приÑтроїв:</translation>
+ <translation>РÑдок команди:</translation>
</message>
</context>
<context>
@@ -22113,18 +19601,14 @@ In addition, device connectivity will be tested.</source>
<name>RemoteLinux::Internal::MaemoPackageCreationFactory</name>
<message>
<source>Create Debian Package</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Create RPM Package</source>
- <translation type="unfinished"></translation>
+ <translation>Створити пакунок Debian</translation>
</message>
</context>
<context>
<name>RemoteLinux::Internal::PackageUploader</name>
<message>
<source>Preparing SFTP connection...</source>
- <translation type="unfinished"></translation>
+ <translation>Підготовка Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ SFTP...</translation>
</message>
<message>
<source>Connection failed: %1</source>
@@ -22132,22 +19616,26 @@ In addition, device connectivity will be tested.</source>
</message>
<message>
<source>SFTP error: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Помилка SFTP: %1</translation>
</message>
<message>
<source>Package upload failed: Could not open file.</source>
- <translation type="unfinished"></translation>
+ <translation>Збій Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð°ÐºÑƒÐ½ÐºÐ°: Ðе вдалоÑÑŒ відкрити файл.</translation>
+ </message>
+ <message>
+ <source>Starting upload...</source>
+ <translation>ЗапуÑк завантаженнÑ...</translation>
</message>
<message>
<source>Failed to upload package: %2</source>
- <translation type="unfinished"></translation>
+ <translation>Збій Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð°ÐºÑƒÐ½ÐºÐ° %2</translation>
</message>
</context>
<context>
<name>RemoteLinux::Internal::ProFilesUpdateDialog</name>
<message>
<source>Updateable Project Files</source>
- <translation type="unfinished"></translation>
+ <translation>Файли проекту, що можуть бути оновлені</translation>
</message>
<message>
<source>Maemo Deployment Issue</source>
@@ -22155,7 +19643,7 @@ In addition, device connectivity will be tested.</source>
</message>
<message>
<source>The project files listed below do not contain deployment information, which means the respective targets cannot be deployed to and/or run on a device. Qt Creator will add the missing information to these files if you check the respective rows below.</source>
- <translation>Файли проектів, вказані нижче, не міÑÑ‚ÑÑ‚ÑŒ інформації про розгортаннÑ, а отже відповідні цілі не можуть бути розгорнуті та/або запущені на приÑтрої. Qt Creator додаÑÑ‚ÑŒ відÑутню інформацію до цих файлів, Ñкщо ви відмітитее відповідні Ñ€Ñдки нижче.</translation>
+ <translation>Файли проектів, вказані нижче, не міÑÑ‚ÑÑ‚ÑŒ інформації про розгортаннÑ, а отже відповідні цілі не можуть бути розгорнуті та/або запущені на приÑтрої. Qt Creator додаÑÑ‚ÑŒ відÑутню інформацію до цих файлів, Ñкщо ви відмітите відповідні Ñ€Ñдки нижче.</translation>
</message>
<message>
<source>&amp;Check all</source>
@@ -22174,40 +19662,27 @@ In addition, device connectivity will be tested.</source>
</message>
<message>
<source>Error running remote process: %1</source>
- <translation type="unfinished">Помилка запуÑку відаленого процеÑу: %1</translation>
+ <translation>Помилка запуÑку віддаленого процеÑу: %1</translation>
</message>
<message>
<source>
Remote stderr was: &apos;%1&apos;</source>
- <translation type="unfinished"></translation>
+ <translation>
+Віддалений stderr: %1</translation>
</message>
</context>
<context>
<name>RemoteLinux::Internal::RemoteLinuxRunConfigurationFactory</name>
<message>
<source> (on Remote Generic Linux Host)</source>
- <translation type="unfinished"></translation>
+ <translation> (на віддаленому звичайному вузлі Linux)</translation>
</message>
</context>
<context>
<name>RemoteLinux::Internal::RemoteLinuxRunControlFactory</name>
<message>
<source>Run on remote Linux device</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RemoteLinux::Internal::TypeSpecificDeviceConfigurationListModel</name>
- <message>
- <source>(default)</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RemoteLinux::LinuxDeviceConfigurations</name>
- <message>
- <source>(default for %1)</source>
- <translation type="unfinished"></translation>
+ <translation>ЗапуÑтити на віддаленому Linux-приÑтрої</translation>
</message>
</context>
<context>
@@ -22218,30 +19693,30 @@ Remote stderr was: &apos;%1&apos;</source>
</message>
<message>
<source>Device test finished successfully.</source>
- <translation type="unfinished"></translation>
+ <translation>ТеÑÑ‚ приÑтрою завершено вдало.</translation>
</message>
<message>
<source>Device test failed.</source>
- <translation type="unfinished"></translation>
+ <translation>Збій теÑту приÑтрою.</translation>
</message>
</context>
<context>
<name>RemoteLinux::PublicKeyDeploymentDialog</name>
<message>
<source>Choose Public Key File</source>
- <translation type="unfinished"></translation>
+ <translation>Оберіть файл публічного ключа</translation>
</message>
<message>
<source>Public Key Files (*.pub);;All Files (*)</source>
- <translation type="unfinished"></translation>
+ <translation>Файли публічних ключів (*.pub);;УÑÑ– файли (*)</translation>
</message>
<message>
<source>Deploying...</source>
- <translation type="unfinished"></translation>
+ <translation>РозгортаннÑ...</translation>
</message>
<message>
<source>Deployment finished successfully.</source>
- <translation type="unfinished"></translation>
+ <translation>Ð Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾ вдало.</translation>
</message>
<message>
<source>Close</source>
@@ -22252,58 +19727,47 @@ Remote stderr was: &apos;%1&apos;</source>
<name>RemoteLinux::RemoteLinuxCustomCommandDeployService</name>
<message>
<source>No command line given.</source>
- <translation type="unfinished"></translation>
+ <translation>Командний Ñ€Ñдок не задано.</translation>
</message>
<message>
<source>Starting remote command &apos;%1&apos;...</source>
- <translation type="unfinished"></translation>
+ <translation>ЗапуÑк віддаленої команди &apos;%1&apos;...</translation>
</message>
<message>
<source>Remote process failed to start.</source>
- <translation type="unfinished"></translation>
+ <translation>Збій запуÑку віддаленого процеÑу.</translation>
</message>
<message>
<source>Remote process was killed by a signal.</source>
- <translation type="unfinished"></translation>
+ <translation>Віддалений Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð²Ð±Ð¸Ñ‚Ð¾ Ñигналом.</translation>
</message>
<message>
<source>Remote process finished with exit code %1.</source>
- <translation type="unfinished"></translation>
+ <translation>Віддалений Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð²ÑÑ Ð· кодом %1.</translation>
</message>
<message>
<source>Remote command finished successfully.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RemoteLinux::RemoteLinuxProcessesDialog</name>
- <message>
- <source>Remote Error</source>
- <translation type="unfinished"></translation>
+ <translation>Віддалена команда завершилаÑÑŒ уÑпішно.</translation>
</message>
</context>
<context>
<name>RemoteLinux::RemoteLinuxRunConfiguration</name>
<message>
- <source>The .pro file is being parsed.</source>
- <translation>ЗдійÑнюєтьÑÑ Ñ€Ð¾Ð·Ð±Ñ–Ñ€ файлу .pro.</translation>
- </message>
- <message>
- <source>The .pro file could not be parsed.</source>
- <translation>Ðе вдалоÑÑŒ розібрати файл .pro.</translation>
+ <source>The .pro file &apos;%1&apos; is being parsed.</source>
+ <translation>ЗдійÑнюєтьÑÑ Ñ€Ð¾Ð·Ð±Ñ–Ñ€ файлу .pro &apos;%1&apos;.</translation>
</message>
<message>
<source>No active build configuration.</source>
- <translation type="unfinished"></translation>
+ <translation>Ðемає активної конфігурації збірки.</translation>
</message>
<message>
<source>Don&apos;t know what to run.</source>
- <translation type="unfinished"></translation>
+ <translation>Ðе знаю, що запуÑкати.</translation>
</message>
<message>
<source>%1 (on Remote Device)</source>
<extracomment>%1 is the name of a project which is being run on remote Linux</extracomment>
- <translation type="unfinished"></translation>
+ <translation>%1 (на віддаленому приÑтрої)</translation>
</message>
<message>
<source>Run on Remote Device</source>
@@ -22323,35 +19787,23 @@ Remote stderr was: &apos;%1&apos;</source>
<name>RemoteLinux::RemoteLinuxRunConfigurationWidget</name>
<message>
<source>Fetch Device Environment</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&lt;a href=&quot;%1&quot;&gt;Manage device configurations&lt;/a&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&lt;a href=&quot;%1&quot;&gt;Set Debugger&lt;/a&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Device configuration:</source>
- <translation>ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¸Ñтрою:</translation>
+ <translation>Отримати Ñередовище приÑтрою</translation>
</message>
<message>
<source>Executable on host:</source>
- <translation type="unfinished"></translation>
+ <translation>Виконуваний модуль на вузлі:</translation>
</message>
<message>
<source>Executable on device:</source>
- <translation type="unfinished"></translation>
+ <translation>Виконуваний модуль на приÑтрої:</translation>
</message>
<message>
<source>Use this command instead</source>
- <translation type="unfinished"></translation>
+ <translation>ÐатоміÑÑ‚ÑŒ, викориÑтовувати цю команду </translation>
</message>
<message>
<source>Alternate executable on device:</source>
- <translation type="unfinished"></translation>
+ <translation>Ðльтернативний виконуваний модуль на приÑтрої:</translation>
</message>
<message>
<source>Arguments:</source>
@@ -22359,7 +19811,7 @@ Remote stderr was: &apos;%1&apos;</source>
</message>
<message>
<source>&lt;default&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;типово&gt;</translation>
</message>
<message>
<source>Working directory:</source>
@@ -22367,7 +19819,7 @@ Remote stderr was: &apos;%1&apos;</source>
</message>
<message>
<source>Base environment for this run configuration:</source>
- <translation type="unfinished">Базове Ñередовище Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— конфігурації запуÑку:</translation>
+ <translation>Базове Ñередовище Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— конфігурації запуÑку:</translation>
</message>
<message>
<source>Clean Environment</source>
@@ -22379,46 +19831,22 @@ Remote stderr was: &apos;%1&apos;</source>
</message>
<message>
<source>Cancel Fetch Operation</source>
- <translation type="unfinished"></translation>
+ <translation>СкаÑувати отриманнÑ</translation>
</message>
<message>
<source>Device Error</source>
- <translation type="unfinished"></translation>
+ <translation>Помилка приÑтрою</translation>
</message>
<message>
<source>Fetching environment failed: %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RemoteLinux::RemoteLinuxUsedPortsGatherer</name>
- <message>
- <source>Connection error: %1</source>
- <translation>Помилка з&apos;єднаннÑ: %1</translation>
- </message>
- <message>
- <source>Could not start remote process: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Remote process crashed: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Remote process failed; exit code was %1.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>
-Remote error output was: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Збій Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñередовища: %1</translation>
</message>
</context>
<context>
<name>RemoteLinux::SshKeyDeployer</name>
<message>
<source>Public key error: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Помилка публічного ключа: %1</translation>
</message>
<message>
<source>Connection failed: %1</source>
@@ -22426,122 +19854,54 @@ Remote error output was: %1</source>
</message>
<message>
<source>Key deployment failed: %1.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RemoteLinux::StartGdbServerDialog</name>
- <message>
- <source>Select Sysroot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&amp;Attach to Selected Process</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Close</source>
- <translation>Закрити</translation>
- </message>
- <message>
- <source>Device:</source>
- <translation>ПриÑтрій:</translation>
- </message>
- <message>
- <source>Sysroot:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&amp;Filter by process name:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>List of Remote Processes</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Remote Error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Process aborted</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Could not retrieve list of free ports:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Connection error: %1</source>
- <translation>Помилка з&apos;єднаннÑ: %1</translation>
- </message>
- <message>
- <source>Starting gdbserver...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Port %1 is now accessible.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Server started on %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Process gdbserver finished. Status: %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Running command: %1</source>
- <translation type="unfinished">Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸: %1
- {1?}</translation>
+ <translation>Збій Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð°: %1.</translation>
</message>
</context>
<context>
<name>RemoteLinux::TarPackageCreationStep</name>
<message>
<source>Packaging finished successfully.</source>
- <translation type="unfinished"></translation>
+ <translation>Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð°ÐºÑƒÐ½ÐºÑƒ завершено вдало.</translation>
</message>
<message>
<source>Packaging failed.</source>
- <translation type="unfinished"></translation>
+ <translation>Збій ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð°ÐºÑƒÐ½ÐºÑƒ.</translation>
</message>
<message>
<source>Creating tarball...</source>
- <translation type="unfinished"></translation>
+ <translation>Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð°Ñ€Ñ…Ñ–Ð²Ñƒ tar...</translation>
</message>
<message>
<source>Tarball up to date, skipping packaging.</source>
- <translation type="unfinished"></translation>
+ <translation>Ðрхів tarball не потребує оновленнÑ, пропуÑкаємо пакуваннÑ.</translation>
</message>
<message>
<source>Error: tar file %1 cannot be opened (%2).</source>
- <translation type="unfinished"></translation>
+ <translation>Помилка: неможливо відкрити файл tar %1 (%2).</translation>
</message>
<message>
<source>No remote path specified for file &apos;%1&apos;, skipping.</source>
- <translation type="unfinished"></translation>
+ <translation>Ðе вказано віддалений шлÑÑ… Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñƒ &apos;%1&apos;, пропуÑкаємо.</translation>
</message>
<message>
<source>Error writing tar file &apos;%1&apos;: %2.</source>
- <translation type="unfinished"></translation>
+ <translation>Помилка запиÑу файлу tar &apos;%1&apos;: %2.</translation>
</message>
<message>
<source>Error reading file &apos;%1&apos;: %2.</source>
- <translation type="unfinished"></translation>
+ <translation>Помилка Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ tar &apos;%1&apos;: %2.</translation>
</message>
<message>
<source>Adding file &apos;%1&apos; to tarball...</source>
- <translation type="unfinished"></translation>
+ <translation>Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ &apos;%1&apos; до архіву tar...</translation>
</message>
<message>
<source>Cannot add file &apos;%1&apos; to tar-archive: path too long.</source>
- <translation type="unfinished"></translation>
+ <translation>Ðеможливо додати файл &apos;%1&apos; до архіву tar: шлÑÑ… задовгий.</translation>
</message>
<message>
<source>Error writing tar file &apos;%1&apos;: %2</source>
- <translation type="unfinished"></translation>
+ <translation>Помилка запиÑу файлу tar &apos;%1&apos;: %2</translation>
</message>
<message>
<source>Create tarball</source>
@@ -22552,11 +19912,11 @@ Remote error output was: %1</source>
<name>RemoteLinux::UploadAndInstallTarPackageStep</name>
<message>
<source>No tarball creation step found.</source>
- <translation type="unfinished"></translation>
+ <translation>ВідÑутній крок Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð°Ñ€Ñ…Ñ–Ð²Ñƒ tar.</translation>
</message>
<message>
<source>Deploy tarball via SFTP upload</source>
- <translation type="unfinished"></translation>
+ <translation>Розгорнути архів tar через Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð¾ SFTP</translation>
</message>
</context>
<context>
@@ -22577,14 +19937,30 @@ Remote error output was: %1</source>
<source>&amp;Redo</source>
<translation>П&amp;овторити</translation>
</message>
+ <message>
+ <source>Recheck existence of referenced files</source>
+ <translation>Повторно перевірити Ñ–ÑÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð², на Ñкі поÑилаємоÑÑŒ</translation>
+ </message>
</context>
<context>
<name>ResourceEditor::Internal::ResourceEditorW</name>
<message>
+ <source>Open File</source>
+ <translation>Відкрити файл</translation>
+ </message>
+ <message>
<source>Open With</source>
<translation>Відкрити за допомогою</translation>
</message>
<message>
+ <source>Rename File...</source>
+ <translation>Перейменувати файл...</translation>
+ </message>
+ <message>
+ <source>Copy Resource Path to Clipboard</source>
+ <translation>Скопіювати шлÑÑ… до реÑурÑу до буфера обміну</translation>
+ </message>
+ <message>
<source>untitled</source>
<translation>без назви</translation>
</message>
@@ -22601,68 +19977,6 @@ Remote error output was: %1</source>
</message>
</context>
<context>
- <name>SharedTools::QrcEditor</name>
- <message>
- <source>Add Files</source>
- <translation>Додати файли</translation>
- </message>
- <message>
- <source>Add Prefix</source>
- <translation>Додати префікÑ</translation>
- </message>
- <message>
- <source>Invalid file location</source>
- <translation>Ðеправильне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ</translation>
- </message>
- <message>
- <source>Copy</source>
- <translation>Копіювати</translation>
- </message>
- <message>
- <source>Skip</source>
- <translation>ПропуÑтити</translation>
- </message>
- <message>
- <source>Choose Copy Location</source>
- <translation>Оберіть Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð¿Ñ–Ñ—</translation>
- </message>
- <message>
- <source>Overwriting Failed</source>
- <translation>Збій перезапиÑу</translation>
- </message>
- <message>
- <source>Copying Failed</source>
- <translation>Збій копіюваннÑ</translation>
- </message>
- <message>
- <source>Abort</source>
- <translation>Перервати</translation>
- </message>
- <message>
- <source>The file %1 is not in a subdirectory of the resource file. You now have the option to copy this file to a valid location.</source>
- <translation>Файл %1 не знаходитьÑÑ Ð² підтеці файлу реÑурÑів. У Ð²Ð°Ñ Ð·Ð°Ñ€Ð°Ð· Ñ” можливіÑÑ‚ÑŒ Ñкопіювати цей файл в правильне розташуваннÑ.</translation>
- </message>
- <message>
- <source>Could not overwrite file %1.</source>
- <translation>Ðе вдалоÑÑŒ перезапиÑати файл %1.</translation>
- </message>
- <message>
- <source>Could not copy the file to %1.</source>
- <translation>Ðе вдалоÑÑŒ Ñкопіювати файл до %1.</translation>
- </message>
-</context>
-<context>
- <name>SharedTools::ResourceView</name>
- <message>
- <source>Open File</source>
- <translation>Відкрити файл</translation>
- </message>
- <message>
- <source>All files (*)</source>
- <translation>Ð’ÑÑ– файли (*)</translation>
- </message>
-</context>
-<context>
<name>SshConnection</name>
<message>
<source>Server and client capabilities don&apos;t match. Client list was: %1.
@@ -22697,33 +20011,6 @@ with a password, which you can enter below.</source>
</message>
</context>
<context>
- <name>StackHandler</name>
- <message>
- <source>Address:</source>
- <translation>ÐдреÑа:</translation>
- </message>
- <message>
- <source>Function:</source>
- <translation>ФункціÑ:</translation>
- </message>
- <message>
- <source>File:</source>
- <translation>Файл:</translation>
- </message>
- <message>
- <source>Line:</source>
- <translation>РÑдок:</translation>
- </message>
- <message>
- <source>From:</source>
- <translation>З:</translation>
- </message>
- <message>
- <source>To:</source>
- <translation>До:</translation>
- </message>
-</context>
-<context>
<name>StandardTextColorGroupBox</name>
<message>
<source>Color</source>
@@ -22739,7 +20026,7 @@ with a password, which you can enter below.</source>
</message>
<message>
<source>Selection</source>
- <translation type="unfinished">ВиділеннÑ</translation>
+ <translation>ВиділеннÑ</translation>
</message>
<message>
<source>Selected</source>
@@ -22762,25 +20049,6 @@ with a password, which you can enter below.</source>
</message>
<message>
<source></source>
- <translation></translation>
- </message>
-</context>
-<context>
- <name>StatusDisplay</name>
- <message>
- <source>No QML events recorded</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Profiling application</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Loading data</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Application stopped before loading all data</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -22858,7 +20126,7 @@ with a password, which you can enter below.</source>
</message>
<message>
<source>Subversion</source>
- <translation></translation>
+ <translation>Subversion</translation>
</message>
</context>
<context>
@@ -22886,7 +20154,7 @@ with a password, which you can enter below.</source>
<name>Subversion::Internal::SubversionPlugin</name>
<message>
<source>&amp;Subversion</source>
- <translation></translation>
+ <translation>&amp;Subversion</translation>
</message>
<message>
<source>Diff Current File</source>
@@ -22898,7 +20166,11 @@ with a password, which you can enter below.</source>
</message>
<message>
<source>Alt+S,Alt+D</source>
- <translation></translation>
+ <translation>Alt+S,Alt+D</translation>
+ </message>
+ <message>
+ <source>Meta+S,Meta+D</source>
+ <translation>Meta+S,Meta+D</translation>
</message>
<message>
<source>Filelog Current File</source>
@@ -22926,7 +20198,11 @@ with a password, which you can enter below.</source>
</message>
<message>
<source>Alt+S,Alt+A</source>
- <translation></translation>
+ <translation>Alt+S,Alt+A</translation>
+ </message>
+ <message>
+ <source>Meta+S,Meta+A</source>
+ <translation>Meta+S,Meta+A</translation>
</message>
<message>
<source>Commit Current File</source>
@@ -22938,7 +20214,11 @@ with a password, which you can enter below.</source>
</message>
<message>
<source>Alt+S,Alt+C</source>
- <translation></translation>
+ <translation>Alt+S,Alt+C</translation>
+ </message>
+ <message>
+ <source>Meta+S,Meta+C</source>
+ <translation>Meta+S,Meta+C</translation>
</message>
<message>
<source>Delete...</source>
@@ -23093,7 +20373,7 @@ with a password, which you can enter below.</source>
<name>Subversion::Internal::SubversionSubmitEditor</name>
<message>
<source>Subversion Submit</source>
- <translation type="unfinished">ÐадÑÐ¸Ð»Ð°Ð½Ð½Ñ Subversion</translation>
+ <translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -23112,73 +20392,14 @@ with a password, which you can enter below.</source>
</message>
<message>
<source>Advanced</source>
- <translation type="unfinished">Додатково</translation>
- </message>
-</context>
-<context>
- <name>SymbianUtils::VirtualSerialDevice</name>
- <message>
- <source>The port %1 could not be opened: %2 (POSIX error %3)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Unable to retrieve terminal settings of port %1: %2 (POSIX error %3)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Unable to apply terminal settings to port %1: %2 (POSIX error %3)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Cannot write to port %1: %2 (POSIX error %3)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The function select() returned an error on port %1: %2 (POSIX error %3)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Port not found</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Port in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Timed out</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Port unreachable</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>The port %1 could not be opened: %2</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>An error occurred while waiting for read notifications from %1: %2</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>An error occurred while reading from %1: %2</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>An error occurred while writing to %1: %2</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>An error occurred while syncing on waitForBytesWritten for %1: %2</source>
- <translation type="unfinished"></translation>
+ <translation>Додатково</translation>
</message>
</context>
<context>
<name>TargetSettingsPanelFactory</name>
<message>
- <source>Targets</source>
- <translation>Цілі</translation>
+ <source>Build &amp; Run</source>
+ <translation>Збірка та запуÑк</translation>
</message>
</context>
<context>
@@ -23274,7 +20495,7 @@ with a password, which you can enter below.</source>
<name>TextEditor::BaseTextEditorWidget</name>
<message>
<source>CTRL+D</source>
- <translation></translation>
+ <translation>CTRL+D</translation>
</message>
<message>
<source>Print Document</source>
@@ -23289,6 +20510,14 @@ with a password, which you can enter below.</source>
<translation>Обрати кодуваннÑ</translation>
</message>
<message>
+ <source>Delete UTF-8 BOM on Save</source>
+ <translation>Видалити UTF-8 BOM при збереженні</translation>
+ </message>
+ <message>
+ <source>Add UTF-8 BOM on Save</source>
+ <translation>Додати UTF-8 BOM при збереженні</translation>
+ </message>
+ <message>
<source>File Error</source>
<translation>Помилка файлу</translation>
</message>
@@ -23347,8 +20576,8 @@ with a password, which you can enter below.</source>
<translation>Стилі коду (*.xml);;УÑÑ– файли (*)</translation>
</message>
<message>
- <source>Cannot import code style</source>
- <translation>Ðеможливо імпортувати Ñтиль коду</translation>
+ <source>Cannot import code style from %1</source>
+ <translation>Ðеможливо імпортувати Ñтиль коду з %1</translation>
</message>
<message>
<source>Export Code Style</source>
@@ -23356,7 +20585,7 @@ with a password, which you can enter below.</source>
</message>
<message>
<source>%1 [proxy: %2]</source>
- <translation>%1 [прокÑи: %2]</translation>
+ <translation>%1 [прокÑÑ–: %2]</translation>
</message>
<message>
<source>%1 [built-in]</source>
@@ -23559,7 +20788,7 @@ The following encodings are likely to fit:</source>
</message>
<message>
<source>x</source>
- <translation></translation>
+ <translation>x</translation>
</message>
<message>
<source>Erase foreground</source>
@@ -23823,16 +21052,24 @@ Please check the directory&apos;s access rights.</source>
<translation>Загальне</translation>
</message>
<message>
+ <source>Creates a scratch buffer using a temporary file.</source>
+ <translation>Створює чернетку викориÑтовуючи тимчаÑовий файл.</translation>
+ </message>
+ <message>
+ <source>Scratch Buffer</source>
+ <translation>Чернетка</translation>
+ </message>
+ <message>
<source>Triggers a completion in this scope</source>
<translation>Перемикає Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð² цій облаÑÑ‚Ñ–</translation>
</message>
<message>
<source>Ctrl+Space</source>
- <translation></translation>
+ <translation>Ctrl+Space</translation>
</message>
<message>
<source>Meta+Space</source>
- <translation></translation>
+ <translation>Meta+Space</translation>
</message>
<message>
<source>Triggers a quick fix in this scope</source>
@@ -23840,7 +21077,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Alt+Return</source>
- <translation></translation>
+ <translation>Alt+Return</translation>
</message>
<message>
<source>Selected text within the current document.</source>
@@ -23852,7 +21089,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Column number of the text cursor position in current document (starts with 0).</source>
- <translation>Ðомер ÑÑ‚Ð¾Ð²Ð±Ñ†Ñ Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÑтового курÑору в поточному документів (починаючи з 0).</translation>
+ <translation>Ðомер ÑÑ‚Ð¾Ð²Ð¿Ñ†Ñ Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÑтового курÑору в поточному документів (починаючи з 0).</translation>
</message>
<message>
<source>Number of lines visible in current document.</source>
@@ -23860,7 +21097,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Number of columns visible in current document.</source>
- <translation>КількіÑÑ‚ÑŒ Ñтовбців видимих в поточному документі.</translation>
+ <translation>КількіÑÑ‚ÑŒ Ñтовпців видимих в поточному документі.</translation>
</message>
<message>
<source>Current document&apos;s font size in points.</source>
@@ -23887,33 +21124,17 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Ctrl+I</source>
- <translation></translation>
- </message>
- <message>
- <source>Meta</source>
- <translation></translation>
- </message>
- <message>
- <source>Ctrl</source>
- <translation></translation>
+ <translation>Ctrl+I</translation>
</message>
<message>
<source>&amp;Rewrap Paragraph</source>
<translation>Пере&amp;робити переноÑи в абзаці</translation>
</message>
<message>
- <source>%1+E, R</source>
- <translation></translation>
- </message>
- <message>
<source>&amp;Visualize Whitespace</source>
<translation>&amp;Візуалізовувати пропуÑки</translation>
</message>
<message>
- <source>%1+E, %2+V</source>
- <translation></translation>
- </message>
- <message>
<source>Clean Whitespace</source>
<translation>ОчиÑтити пропуÑки</translation>
</message>
@@ -23922,12 +21143,8 @@ Please check the directory&apos;s access rights.</source>
<translation>Увімкнути &amp;перенеÑÐµÐ½Ð½Ñ Ñ‚ÐµÐºÑту</translation>
</message>
<message>
- <source>%1+E, %2+W</source>
- <translation></translation>
- </message>
- <message>
<source>Ctrl+/</source>
- <translation></translation>
+ <translation>Ctrl+/</translation>
</message>
<message>
<source>Cut &amp;Line</source>
@@ -23935,7 +21152,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Shift+Del</source>
- <translation></translation>
+ <translation>Shift+Del</translation>
</message>
<message>
<source>Delete &amp;Line</source>
@@ -23959,11 +21176,15 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Ctrl+&lt;</source>
- <translation></translation>
+ <translation>Ctrl+&lt;</translation>
</message>
<message>
<source>Ctrl+&gt;</source>
- <translation></translation>
+ <translation>Ctrl+&gt;</translation>
+ </message>
+ <message>
+ <source>Meta+0</source>
+ <translation>Meta+0</translation>
</message>
<message>
<source>Go to Block Start with Selection</source>
@@ -23974,12 +21195,20 @@ Please check the directory&apos;s access rights.</source>
<translation>Перейти на початок блока у виділеному</translation>
</message>
<message>
+ <source>Meta+Shift+U</source>
+ <translation>Meta+Shift+U</translation>
+ </message>
+ <message>
+ <source>Meta+U</source>
+ <translation>Meta+U</translation>
+ </message>
+ <message>
<source>Paste from Clipboard History</source>
<translation>Ð’Ñтавити з Ñ–Ñторії буферу обміну</translation>
</message>
<message>
<source>Ctrl+Shift+V</source>
- <translation></translation>
+ <translation>Ctrl+Shift+V</translation>
</message>
<message>
<source>Indent</source>
@@ -23990,6 +21219,14 @@ Please check the directory&apos;s access rights.</source>
<translation>СкаÑувати відÑтуп</translation>
</message>
<message>
+ <source>Follow Symbol Under Cursor</source>
+ <translation>Йти за Ñимволом під курÑором</translation>
+ </message>
+ <message>
+ <source>Jump To File Under Cursor</source>
+ <translation>Перейти до файлу під курÑором</translation>
+ </message>
+ <message>
<source>Go to Line Start</source>
<translation>Перейти на початок Ñ€Ñдка</translation>
</message>
@@ -24074,6 +21311,30 @@ Please check the directory&apos;s access rights.</source>
<translation>Згорнути</translation>
</message>
<message>
+ <source>Meta+E, R</source>
+ <translation>Meta+E, R</translation>
+ </message>
+ <message>
+ <source>Ctrl+E, R</source>
+ <translation>Ctrl+E, R</translation>
+ </message>
+ <message>
+ <source>Meta+E, Meta+V</source>
+ <translation>Meta+E, Meta+V</translation>
+ </message>
+ <message>
+ <source>Ctrl+E, Ctrl+V</source>
+ <translation>Ctrl+E, Ctrl+V</translation>
+ </message>
+ <message>
+ <source>Meta+E, Meta+W</source>
+ <translation>Meta+E, Meta+W</translation>
+ </message>
+ <message>
+ <source>Ctrl+E, Ctrl+W</source>
+ <translation>Ctrl+E, Ctrl+W</translation>
+ </message>
+ <message>
<source>Toggle Comment &amp;Selection</source>
<translation>Роз&amp;коментувати/закоментувати виділене</translation>
</message>
@@ -24083,7 +21344,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Ctrl+Ins</source>
- <translation></translation>
+ <translation>Ctrl+Ins</translation>
</message>
<message>
<source>Unfold</source>
@@ -24095,7 +21356,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Ctrl++</source>
- <translation></translation>
+ <translation>Ctrl++</translation>
</message>
<message>
<source>Decrease Font Size</source>
@@ -24103,7 +21364,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Ctrl+-</source>
- <translation></translation>
+ <translation>Ctrl+-</translation>
</message>
<message>
<source>Toggle &amp;Fold All</source>
@@ -24115,7 +21376,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Ctrl+0</source>
- <translation></translation>
+ <translation>Ctrl+0</translation>
</message>
<message>
<source>Go to Block Start</source>
@@ -24123,7 +21384,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Ctrl+[</source>
- <translation></translation>
+ <translation>Ctrl+[</translation>
</message>
<message>
<source>Go to Block End</source>
@@ -24131,15 +21392,15 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Ctrl+]</source>
- <translation></translation>
+ <translation>Ctrl+]</translation>
</message>
<message>
<source>Ctrl+{</source>
- <translation></translation>
+ <translation>Ctrl+{</translation>
</message>
<message>
<source>Ctrl+}</source>
- <translation></translation>
+ <translation>Ctrl+}</translation>
</message>
<message>
<source>Select Block Up</source>
@@ -24147,7 +21408,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Ctrl+U</source>
- <translation></translation>
+ <translation>Ctrl+U</translation>
</message>
<message>
<source>Select Block Down</source>
@@ -24159,7 +21420,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Ctrl+Shift+Up</source>
- <translation></translation>
+ <translation>Ctrl+Shift+Up</translation>
</message>
<message>
<source>Move Line Down</source>
@@ -24167,7 +21428,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Ctrl+Shift+Down</source>
- <translation></translation>
+ <translation>Ctrl+Shift+Down</translation>
</message>
<message>
<source>Copy Line Up</source>
@@ -24175,7 +21436,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Ctrl+Alt+Up</source>
- <translation></translation>
+ <translation>Ctrl+Alt+Up</translation>
</message>
<message>
<source>Copy Line Down</source>
@@ -24183,7 +21444,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Ctrl+Alt+Down</source>
- <translation></translation>
+ <translation>Ctrl+Alt+Down</translation>
</message>
<message>
<source>Join Lines</source>
@@ -24191,7 +21452,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Ctrl+J</source>
- <translation></translation>
+ <translation>Ctrl+J</translation>
</message>
<message>
<source>Insert Line Above Current Line</source>
@@ -24199,7 +21460,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Ctrl+Shift+Return</source>
- <translation></translation>
+ <translation>Ctrl+Shift+Return</translation>
</message>
<message>
<source>Insert Line Below Current Line</source>
@@ -24207,7 +21468,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Ctrl+Return</source>
- <translation></translation>
+ <translation>Ctrl+Return</translation>
</message>
<message>
<source>Uppercase Selection</source>
@@ -24215,7 +21476,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Alt+Shift+U</source>
- <translation></translation>
+ <translation>Alt+Shift+U</translation>
</message>
<message>
<source>Lowercase Selection</source>
@@ -24223,7 +21484,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Alt+U</source>
- <translation></translation>
+ <translation>Alt+U</translation>
</message>
<message>
<source>&lt;line number&gt;</source>
@@ -24237,174 +21498,360 @@ Please check the directory&apos;s access rights.</source>
<translation>ТекÑÑ‚</translation>
</message>
<message>
+ <source>Generic text.
+Applied to text, if no other rules matching.</source>
+ <translation>Звичайний текÑÑ‚.
+ЗаÑтоÑовуєтьÑÑ Ð´Ð¾ текÑту, коли інші правила не підходÑÑ‚ÑŒ.</translation>
+ </message>
+ <message>
<source>Link</source>
<translation>ПоÑиланнÑ</translation>
</message>
<message>
+ <source>Links that follow symbol under cursor.</source>
+ <translation>ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸ переході до Ñимволу під курÑором.</translation>
+ </message>
+ <message>
<source>Selection</source>
<translation>ВиділеннÑ</translation>
</message>
<message>
+ <source>Selected text.</source>
+ <translation>Виділений текÑÑ‚.</translation>
+ </message>
+ <message>
<source>Line Number</source>
<translation>Ðомер Ñ€Ñдка</translation>
</message>
<message>
+ <source>Line numbers located on the left side of the editor.</source>
+ <translation>Ðомери Ñ€Ñдків розташовані з лівого боку редактора.</translation>
+ </message>
+ <message>
<source>Search Result</source>
<translation>Результати пошуку</translation>
</message>
<message>
+ <source>Highlighted search results inside the editor.</source>
+ <translation>ПідÑвічені результати пошуку в редакторі.</translation>
+ </message>
+ <message>
<source>Search Scope</source>
<translation>ОблаÑÑ‚ÑŒ пошуку</translation>
</message>
<message>
+ <source>Section where the pattern is searched in.</source>
+ <translation>СекціÑ, де здійÑнюєтьÑÑ Ð¿Ð¾ÑˆÑƒÐº зразка.</translation>
+ </message>
+ <message>
<source>Parentheses</source>
- <translation>Круглі дужки</translation>
+ <translation>Дужки</translation>
+ </message>
+ <message>
+ <source>Displayed when matching parentheses, square brackets or curly brackets are found.</source>
+ <translation>ВідображаєтьÑÑ, коли знайдено відповідні круглі, квадратні або фігурні дужки.</translation>
</message>
<message>
<source>Current Line</source>
<translation>Поточний Ñ€Ñдок</translation>
</message>
<message>
+ <source>Line where the cursor is placed in.</source>
+ <translation>РÑдок, в Ñкому знаходитьÑÑ ÐºÑƒÑ€Ñор.</translation>
+ </message>
+ <message>
<source>Current Line Number</source>
<translation>Ðомер поточного Ñ€Ñдка</translation>
</message>
<message>
+ <source>Line number located on the left side of the editor where the cursor is placed in.</source>
+ <translation>Ðомер Ñ€Ñдка розташований з лівого боку редактора, в Ñкому знаходитьÑÑ ÐºÑƒÑ€Ñор.</translation>
+ </message>
+ <message>
<source>Occurrences</source>
<translation>Збіги</translation>
</message>
<message>
+ <source>Occurrences of the symbol under the cursor.
+(Only the background will be applied.)</source>
+ <translation>Збіги Ñимволу під курÑором.
+(ВикориÑтовуєтьÑÑ Ð»Ð¸ÑˆÐµ фон)</translation>
+ </message>
+ <message>
<source>Unused Occurrence</source>
<translation>ÐевикориÑтаний збіг</translation>
</message>
<message>
+ <source>Occurrences of unused variables.</source>
+ <translation>Збіги невикориÑтаних змінних.</translation>
+ </message>
+ <message>
<source>Renaming Occurrence</source>
<translation>Перейменований збіг</translation>
</message>
<message>
+ <source>Occurrences of a symbol that will be renamed.</source>
+ <translation>Збіги Ñимволів, що будуть перейменовані.</translation>
+ </message>
+ <message>
<source>Number</source>
<translation>ЧиÑло</translation>
</message>
<message>
+ <source>Number literal.</source>
+ <translation>ЧиÑловий літерал.</translation>
+ </message>
+ <message>
<source>String</source>
<translation>РÑдок</translation>
</message>
<message>
+ <source>Character and string literals.</source>
+ <translation>Символьний та Ñ€Ñдковий літерали.</translation>
+ </message>
+ <message>
<source>Type</source>
<translation>Тип</translation>
</message>
<message>
+ <source>Name of a type.</source>
+ <translation>Ðазва типу.</translation>
+ </message>
+ <message>
<source>Local</source>
<translation>Локальна змінна</translation>
</message>
<message>
+ <source>Local variables.</source>
+ <translation>Локальні змінні.</translation>
+ </message>
+ <message>
<source>Field</source>
<translation>Поле</translation>
</message>
<message>
- <source>Static</source>
- <translation>Статична змінна</translation>
+ <source>Class&apos; data members.</source>
+ <translation>Поле даних клаÑу.</translation>
+ </message>
+ <message>
+ <source>Enumeration</source>
+ <translation>Перелік</translation>
+ </message>
+ <message>
+ <source>Applied to Enumeration Items.</source>
+ <translation>ЗаÑтоÑовуєтьÑÑ Ð´Ð¾ елементів переліку.</translation>
+ </message>
+ <message>
+ <source>Function</source>
+ <translation>ФункціÑ</translation>
+ </message>
+ <message>
+ <source>Name of a function.</source>
+ <translation>Ðазва функції.</translation>
+ </message>
+ <message>
+ <source>QML item id within a QML file.</source>
+ <translation>Ідентифікатор елемента QML вÑередині файлу QML.</translation>
+ </message>
+ <message>
+ <source>QML root Object Property</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>QML property of a parent item.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>QML scope Object Property</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Property of the same QML item.</source>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Virtual Method</source>
<translation>Віртуальний метод</translation>
</message>
<message>
- <source>QML Binding</source>
- <translation type="unfinished"></translation>
+ <source>Name of method declared as virtual.</source>
+ <translation>Ðазва методу, оголошеного віртуальним.</translation>
</message>
<message>
- <source>QML Local Id</source>
+ <source>QML Binding</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>QML Root Object Property</source>
+ <source>QML item property, that allows a binding to another property.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>QML Scope Object Property</source>
+ <source>QML Local Id</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>QML State Name</source>
- <translation type="unfinished"></translation>
+ <translation>Ðазва Ñтану QML</translation>
+ </message>
+ <message>
+ <source>Name of a QML state.</source>
+ <translation>Ðазва Ñтану QML.</translation>
</message>
<message>
<source>QML Type Name</source>
- <translation type="unfinished"></translation>
+ <translation>Ðазва типу QML</translation>
+ </message>
+ <message>
+ <source>Name of a QML type.</source>
+ <translation>Ðазва типу QML.</translation>
</message>
<message>
<source>QML External Id</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>QML id defined in another QML file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>QML External Object Property</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>QML property defined in another QML file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>JavaScript Scope Var</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Variables defined inside the JavaScript file.</source>
+ <translation>Змінні визначені вÑередині файлу JavaScript.</translation>
+ </message>
+ <message>
<source>JavaScript Import</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>Name of a JavaScript import inside a QML file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>JavaScript Global Variable</source>
<translation>Глобальна змінна JavaScript</translation>
</message>
<message>
+ <source>Variables defined outside the script.</source>
+ <translation>Змінні визначені поза Ñкриптом.</translation>
+ </message>
+ <message>
<source>Keyword</source>
<translation>Ключове Ñлово</translation>
</message>
<message>
+ <source>Reserved keywords of the programming language.</source>
+ <translation>Зарезервовані Ñлова мови програмуваннÑ.</translation>
+ </message>
+ <message>
<source>Operator</source>
<translation>Оператор</translation>
</message>
<message>
+ <source>Operators. (for example operator++ operator-=)</source>
+ <translation>Оператори. (наприклад: operator++ operator-=)</translation>
+ </message>
+ <message>
<source>Preprocessor</source>
<translation>ПрепроцеÑор</translation>
</message>
<message>
+ <source>Preprocessor directives.</source>
+ <translation>Директиви препроцеÑора.</translation>
+ </message>
+ <message>
<source>Label</source>
<translation>Мітка</translation>
</message>
<message>
+ <source>Labels for goto statements.</source>
+ <translation>Мітки Ð´Ð»Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ñ–Ð² goto.</translation>
+ </message>
+ <message>
<source>Comment</source>
<translation>Коментар</translation>
</message>
<message>
+ <source>All style of comments except Doxygen comments.</source>
+ <translation>Ð’ÑÑ– Ñтилі коментарів, окрім Doxygen.</translation>
+ </message>
+ <message>
<source>Doxygen Comment</source>
<translation>Коментар Doxygen</translation>
</message>
<message>
+ <source>Doxygen comments.</source>
+ <translation>Коментарі Doxygen.</translation>
+ </message>
+ <message>
<source>Doxygen Tag</source>
<translation>Тег Doxygen</translation>
</message>
<message>
+ <source>Doxygen tags</source>
+ <translation>Теги Doxygen</translation>
+ </message>
+ <message>
<source>Visual Whitespace</source>
<translation>Ð’Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑків</translation>
</message>
<message>
+ <source>Whitespace
+Will not be applied to whitespace in comments and strings.</source>
+ <translation>ПропуÑки
+Ðе заÑтоÑовуєтьÑÑ Ð´Ð¾ пропуÑків в коментарÑÑ… та Ñ€Ñдках.</translation>
+ </message>
+ <message>
<source>Disabled Code</source>
<translation>Вимкнений код</translation>
</message>
<message>
+ <source>Code disabled by preprocessor directives.</source>
+ <translation>Код вимкнений директивами препроцеÑора.</translation>
+ </message>
+ <message>
<source>Added Line</source>
<translation>Доданий Ñ€Ñдок</translation>
</message>
<message>
+ <source>Applied to added lines in differences (in diff editor).</source>
+ <translation>ЗаÑтоÑовуєтьÑÑ Ð´Ð¾ доданих Ñ€Ñдків в порівнÑннÑÑ… (в редакторі змін).</translation>
+ </message>
+ <message>
<source>Removed Line</source>
<translation>Видалений Ñ€Ñдок</translation>
</message>
<message>
+ <source>Applied to removed lines in differences (in diff editor).</source>
+ <translation>ЗаÑтоÑовуєтьÑÑ Ð´Ð¾ видалених Ñ€Ñдків в порівнÑннÑÑ… (в редакторі змін).</translation>
+ </message>
+ <message>
<source>Diff File</source>
<translation>Diff файл</translation>
</message>
<message>
+ <source>Compared files (in diff editor).</source>
+ <translation>Файли, що порівнюютьÑÑ (в редакторі змін).</translation>
+ </message>
+ <message>
<source>Diff Location</source>
<translation>Diff позиціÑ</translation>
</message>
<message>
+ <source>Location in the files where the difference is (in diff editor).</source>
+ <translation>МіÑÑ†Ñ Ð² файлах, де Ñ” зміни (в редакторі змін).</translation>
+ </message>
+ <message>
<source>Behavior</source>
<translation>Поведінка</translation>
</message>
@@ -24503,7 +21950,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Center</source>
- <translation type="unfinished">По центру</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Right</source>
@@ -24546,14 +21993,14 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Id</source>
- <translation type="unfinished"></translation>
+ <translation>Id</translation>
</message>
</context>
<context>
<name>UpdateInfo::Internal::UpdateInfoPlugin</name>
<message>
<source>Could not determine location of maintenance tool. Please check your installation if you did not enable this plugin manually.</source>
- <translation>Ðе вдалоÑÑŒ визначити Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð½Ñтрумента обÑлуговуваннÑ. Будь-лаÑка, перевірте ваше вÑтановленнÑ, Ñкщо ви не вмикали цей додаток ÑамоÑтійно.</translation>
+ <translation>Ðе вдалоÑÑŒ визначити Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð½Ñтрумента обÑлуговуваннÑ. Будь лаÑка, перевірте ваше вÑтановленнÑ, Ñкщо ви не вмикали цей додаток ÑамоÑтійно.</translation>
</message>
<message>
<source>Could not find maintenance tool at &apos;%1&apos;. Check your installation.</source>
@@ -24836,155 +22283,6 @@ Please check the directory&apos;s access rights.</source>
</message>
</context>
<context>
- <name>Utils::Internal::SftpChannelPrivate</name>
- <message>
- <source>Server could not start sftp subsystem.</source>
- <translation>Серверу не вдалоÑÑŒ запуÑтити підÑиÑтему sftp.</translation>
- </message>
- <message>
- <source>Unexpected packet of type %1.</source>
- <translation>Ðеочікуваний пакет типу %1.</translation>
- </message>
- <message>
- <source>Protocol version mismatch: Expected %1, got %2</source>
- <translation>ВерÑÑ–Ñ— протоколів не збігаютьÑÑ: ОчікувалаÑÑŒ %1, отримана %2</translation>
- </message>
- <message>
- <source>Unknown error.</source>
- <translation>Ðевідома помилка.</translation>
- </message>
- <message>
- <source>Created remote directory &apos;%1&apos;.</source>
- <translation>Створено віддалену теку &apos;%1&apos;.</translation>
- </message>
- <message>
- <source>Remote directory &apos;%1&apos; already exists.</source>
- <translation>Віддалена тека &apos;%1&apos; вже Ñ–Ñнує.</translation>
- </message>
- <message>
- <source>Error creating directory &apos;%1&apos;: %2</source>
- <translation>Помилка ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÐ¸ &apos;%1&apos;: %2</translation>
- </message>
- <message>
- <source>Could not open local file &apos;%1&apos;: %2</source>
- <translation>Ðе вдалоÑÑŒ відкрити локальний файл &apos;%1&apos;: %2</translation>
- </message>
- <message>
- <source>Remote directory could not be opened for reading.</source>
- <translation>Ðе вдалоÑÑŒ відкрити віддалену теку Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ.</translation>
- </message>
- <message>
- <source>Failed to list remote directory contents.</source>
- <translation>Збій Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð·Ð¼Ñ–Ñту віддаленої теки.</translation>
- </message>
- <message>
- <source>Failed to close remote directory.</source>
- <translation>Збій Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ñ— теки.</translation>
- </message>
- <message>
- <source>Failed to open remote file for reading.</source>
- <translation>Збій Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ð³Ð¾ файлу Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ.</translation>
- </message>
- <message>
- <source>Failed retrieve information on the remote file (&apos;stat&apos; failed).</source>
- <translation>Збій Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ— про віддалений файл (Збій виклику &apos;stat&apos;).</translation>
- </message>
- <message>
- <source>Failed to read remote file.</source>
- <translation>Збій Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ð³Ð¾ файлу.</translation>
- </message>
- <message>
- <source>Failed to close remote file.</source>
- <translation>Збій Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ð³Ð¾ файлу.</translation>
- </message>
- <message>
- <source>Failed to open remote file for writing.</source>
- <translation>Збій Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ð³Ð¾ файлу Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу.</translation>
- </message>
- <message>
- <source>Failed to write remote file.</source>
- <translation>Збій запиÑу до віддаленого файлу.</translation>
- </message>
- <message>
- <source>Cannot append to remote file: Server does not support the file size attribute.</source>
- <translation>Ðеможливо доповнити віддалений файл: Сервер не підтримує атрибут &quot;розмір файлу&quot;.</translation>
- </message>
- <message>
- <source>Server could not start session: %1</source>
- <translation>Серверу не вдалоÑÑŒ розпочати ÑеÑÑ–ÑŽ: %1</translation>
- </message>
- <message>
- <source>Error reading local file: %1</source>
- <translation>Помилка Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ файлу: %1</translation>
- </message>
-</context>
-<context>
- <name>Utils::Internal::SshChannelManager</name>
- <message>
- <source>Invalid channel id %1</source>
- <translation>Ðеправильний ідентифікатор каналу %1</translation>
- </message>
-</context>
-<context>
- <name>Utils::Internal::SshConnectionPrivate</name>
- <message>
- <source>SSH Protocol error: %1</source>
- <translation>Помилка протоколу SSH: %1</translation>
- </message>
- <message>
- <source>Botan library exception: %1</source>
- <translation>Виключна ÑÐ¸Ñ‚ÑƒÐ°Ñ†Ñ–Ñ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ Botan: %1</translation>
- </message>
- <message>
- <source>Invalid protocol version: Expected &apos;2.0&apos;, got &apos;%1&apos;.</source>
- <translation>Ðеправильна верÑÑ–Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ñƒ: ОчікувалаÑÑŒ 2.0, отримана &apos;%1&apos;.</translation>
- </message>
- <message>
- <source>Invalid server id &apos;%1&apos;.</source>
- <translation>Ðеправильний ідентифікатор Ñервера %1.</translation>
- </message>
- <message>
- <source>Unexpected packet of type %1.</source>
- <translation>Ðеочікуваний пакет типу %1.</translation>
- </message>
- <message>
- <source>Password expired.</source>
- <translation>Термін дії Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð²Ð¸Ñ‡ÐµÑ€Ð¿Ð°Ð½Ð¾.</translation>
- </message>
- <message>
- <source>No private key file given.</source>
- <translation>Файл приватного ключа не надано.</translation>
- </message>
- <message>
- <source>Private key file error: %1</source>
- <translation>Помилка файлу приватного ключа: %1</translation>
- </message>
- <message>
- <source>Server rejected password.</source>
- <translation>Сервер відхилив пароль.</translation>
- </message>
- <message>
- <source>Server rejected key.</source>
- <translation>Сервер відхилив ключ.</translation>
- </message>
- <message>
- <source>The server sent an unexpected SSH packet of type SSH_MSG_UNIMPLEMENTED.</source>
- <translation>Сервер надіÑлав неочікуваний пакет SSH типу SSH_MSG_UNIMPLEMENTED.</translation>
- </message>
- <message>
- <source>Server closed connection: %1</source>
- <translation>Сервер закрив з&apos;єднаннÑ: %1</translation>
- </message>
- <message>
- <source>Connection closed unexpectedly.</source>
- <translation>З&apos;Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð½ÐµÑподівано закрите.</translation>
- </message>
- <message>
- <source>Timeout waiting for reply from server.</source>
- <translation>Перевищено Ñ‡Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ñ– від Ñервера.</translation>
- </message>
-</context>
-<context>
<name>Utils::IpAddressLineEdit</name>
<message>
<source>The IP address is not valid.</source>
@@ -24995,7 +22293,7 @@ Please check the directory&apos;s access rights.</source>
<name>Utils::LinearProgressWidget</name>
<message>
<source>...</source>
- <translation></translation>
+ <translation>...</translation>
</message>
</context>
<context>
@@ -25185,6 +22483,10 @@ Please check the directory&apos;s access rights.</source>
<source>Introduction and Project Location</source>
<translation>Ð’Ñтуп та Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñƒ</translation>
</message>
+ <message>
+ <source>Project:</source>
+ <translation>Проект:</translation>
+ </message>
</context>
<context>
<name>Utils::ProjectNameValidatingLineEdit</name>
@@ -25201,21 +22503,10 @@ Please check the directory&apos;s access rights.</source>
</message>
</context>
<context>
- <name>Utils::Ssh</name>
- <message>
- <source>Password Required</source>
- <translation>Ðеобхідний пароль</translation>
- </message>
- <message>
- <source>Please enter the password for your private key.</source>
- <translation>Будь-лаÑка, введіть пароль до вашого приватного ключа.</translation>
- </message>
-</context>
-<context>
<name>Utils::SubmitEditorWidget</name>
<message>
<source>Subversion Submit</source>
- <translation type="unfinished">ÐадÑÐ¸Ð»Ð°Ð½Ð½Ñ Subversion</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>F&amp;iles</source>
@@ -25488,6 +22779,26 @@ Please check the directory&apos;s access rights.</source>
<source>Bazaar Commit Log Editor</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>ClearCase Check In Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>ClearCase Command Log Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>ClearCase File Log Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>ClearCase Annotation Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>ClearCase Diff Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Valgrind::Callgrind::CallModel</name>
@@ -25531,6 +22842,10 @@ Please check the directory&apos;s access rights.</source>
<translation type="unfinished"></translation>
</message>
<message>
+ <source>An error occurred while trying to run %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Callgrind dumped profiling info</source>
<translation type="unfinished"></translation>
</message>
@@ -25562,7 +22877,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Object:</source>
- <translation type="unfinished"></translation>
+ <translation>Об&apos;єкт:</translation>
</message>
<message>
<source>Called:</source>
@@ -25578,7 +22893,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Events</source>
- <translation type="unfinished"></translation>
+ <translation>Події</translation>
</message>
<message>
<source>Self costs</source>
@@ -25586,7 +22901,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>(%)</source>
- <translation type="unfinished"></translation>
+ <translation>(%)</translation>
</message>
<message>
<source>Incl. costs</source>
@@ -25594,11 +22909,11 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>%1</source>
- <translation></translation>
+ <translation>%1</translation>
</message>
<message>
<source>(%1%)</source>
- <translation></translation>
+ <translation>(%1%)</translation>
</message>
<message>
<source>%1 cost spent in a given function excluding costs from called functions.</source>
@@ -25633,11 +22948,11 @@ Please check the directory&apos;s access rights.</source>
<name>Valgrind::Callgrind::Function</name>
<message>
<source>%1 in %2</source>
- <translation type="unfinished"></translation>
+ <translation>%1 в %2</translation>
</message>
<message>
<source>%1:%2 in %3</source>
- <translation type="unfinished"></translation>
+ <translation>%1:%2 в %3</translation>
</message>
</context>
<context>
@@ -25703,11 +23018,11 @@ Please check the directory&apos;s access rights.</source>
<name>Valgrind::Internal</name>
<message>
<source>%1 in %2</source>
- <translation type="unfinished"></translation>
+ <translation>%1 в %2</translation>
</message>
<message>
<source>in %1</source>
- <translation type="unfinished"></translation>
+ <translation>в %1</translation>
</message>
</context>
<context>
@@ -25745,7 +23060,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Functions</source>
- <translation type="unfinished"></translation>
+ <translation>Функції</translation>
</message>
<message>
<source>Callees</source>
@@ -25808,11 +23123,11 @@ Please check the directory&apos;s access rights.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Cycle Detection</source>
+ <source>Enable cycle detection to properly handle recursive or circular function calls.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Enable cycle detection to properly handle recursive or circular function calls.</source>
+ <source>This removes template parameter lists when displaying function names.</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -25825,7 +23140,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>Filter...</source>
- <translation type="unfinished"></translation>
+ <translation>Фільтр...</translation>
</message>
<message>
<source>Profiling aborted.</source>
@@ -25965,7 +23280,7 @@ Please check the directory&apos;s access rights.</source>
<name>Valgrind::Internal::ValgrindBaseSettings</name>
<message>
<source>Valgrind</source>
- <translation></translation>
+ <translation>Valgrind</translation>
</message>
</context>
<context>
@@ -26016,7 +23331,7 @@ Please check the directory&apos;s access rights.</source>
</message>
<message>
<source>%</source>
- <translation></translation>
+ <translation>%</translation>
</message>
<message>
<source>Show additional information for events in tooltips</source>
@@ -26071,10 +23386,6 @@ With cache simulation, further event counters are enabled:
<translation type="unfinished"></translation>
</message>
<message>
- <source>Visualisation: Minimum event cost:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>Valgrind Command</source>
<translation type="unfinished"></translation>
</message>
@@ -26086,6 +23397,10 @@ With cache simulation, further event counters are enabled:
<source>Valgrind Suppression File (*.supp);;All Files (*)</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Visualization: Minimum event cost:</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Valgrind::Internal::ValgrindEngine</name>
@@ -26134,25 +23449,6 @@ With cache simulation, further event counters are enabled:
</message>
</context>
<context>
- <name>Valgrind::Memcheck::MemcheckRunner</name>
- <message>
- <source>No network interface found for remote analysis.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Select Network Interface</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>More than one network interface was found on your machine. Please select which one you want to use for remote analysis.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>No Network Interface was chosen for remote analysis</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
<name>Valgrind::RemoteValgrindProcess</name>
<message>
<source>Could not determine remote PID.</source>
@@ -26175,7 +23471,7 @@ With cache simulation, further event counters are enabled:
</message>
<message>
<source>Object:</source>
- <translation type="unfinished"></translation>
+ <translation>Об&apos;єкт:</translation>
</message>
</context>
<context>
@@ -26284,7 +23580,7 @@ With cache simulation, further event counters are enabled:
<name>Valgrind::XmlProtocol::StackModel</name>
<message>
<source>Description</source>
- <translation type="unfinished">ОпиÑ</translation>
+ <translation>ОпиÑ</translation>
</message>
<message>
<source>Instruction Pointer</source>
@@ -26292,7 +23588,7 @@ With cache simulation, further event counters are enabled:
</message>
<message>
<source>Object</source>
- <translation type="unfinished"></translation>
+ <translation>Об&apos;єкт</translation>
</message>
<message>
<source>Function</source>
@@ -26357,11 +23653,11 @@ With cache simulation, further event counters are enabled:
<name>WebViewSpecifics</name>
<message>
<source>WebView</source>
- <translation></translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>URL</source>
- <translation></translation>
+ <translation>URL</translation>
</message>
<message>
<source>Pref Width</source>
@@ -26433,14 +23729,14 @@ With cache simulation, further event counters are enabled:
<name>emptyPane</name>
<message>
<source>None or multiple items selected.</source>
- <translation type="unfinished"></translation>
+ <translation>Ðе обрано жодного або обрано декілька елементів.</translation>
</message>
</context>
<context>
<name>text</name>
<message>
<source>text</source>
- <translation type="unfinished"></translation>
+ <translation>текÑÑ‚</translation>
</message>
</context>
<context>
@@ -26454,58 +23750,7 @@ With cache simulation, further event counters are enabled:
<name>textinput</name>
<message>
<source>text</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Analyzer::Internal::StartRemoteDialog</name>
- <message>
- <source>Start Remote Analysis</source>
- <translation>Почати віддалений аналіз</translation>
- </message>
- <message>
- <source>Remote</source>
- <translation>Віддалено</translation>
- </message>
- <message>
- <source>Host:</source>
- <translation>Вузол:</translation>
- </message>
- <message>
- <source>User:</source>
- <translation>КориÑтувач:</translation>
- </message>
- <message>
- <source>Port:</source>
- <translation>Порт:</translation>
- </message>
- <message>
- <source>You need to pass either a password or an SSH key.</source>
- <translation>Ви маєте вказати або пароль, або ключ SSH.</translation>
- </message>
- <message>
- <source>Password:</source>
- <translation>Пароль:</translation>
- </message>
- <message>
- <source>Private key:</source>
- <translation>Приватний ключ:</translation>
- </message>
- <message>
- <source>Target</source>
- <translation>Ціль</translation>
- </message>
- <message>
- <source>Executable:</source>
- <translation>Виконуваний модуль:</translation>
- </message>
- <message>
- <source>Arguments:</source>
- <translation>Ðргументи:</translation>
- </message>
- <message>
- <source>Working directory:</source>
- <translation>Робоча тека:</translation>
+ <translation>текÑÑ‚</translation>
</message>
</context>
<context>
@@ -26811,7 +24056,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>CVS</source>
- <translation></translation>
+ <translation>CVS</translation>
</message>
</context>
<context>
@@ -26821,17 +24066,13 @@ p, li { white-space: pre-wrap; }
<translation>ЗапуÑтити зневаджувач</translation>
</message>
<message>
- <source>&amp;Host:</source>
- <translation>&amp;Вузол:</translation>
+ <source>Kit:</source>
+ <translation>ІнÑтрументарій:</translation>
</message>
<message>
<source>&amp;Port:</source>
<translation>&amp;Порт:</translation>
</message>
- <message>
- <source>Sys&amp;root:</source>
- <translation>Sys&amp;root:</translation>
- </message>
</context>
<context>
<name>Debugger::Internal::CommonOptionsPage</name>
@@ -26845,11 +24086,11 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Change the font size in the debugger views when the font size in the main editor changes.</source>
- <translation>Змінювати розмір шрифту в виглÑді зневаджувача, коли змінюєтÑÑŒÑ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ шрифту головного редактора.</translation>
+ <translation>Змінювати розмір шрифту в виглÑді зневаджувача, коли змінюєтьÑÑ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€ шрифту головного редактора.</translation>
</message>
<message>
<source>Debugger font size follows main editor</source>
- <translation>Розмір шрифта зневаджувач відповідає головному редактору</translation>
+ <translation>Розмір шрифту зневаджувач відповідає головному редактору</translation>
</message>
<message>
<source>Use tooltips in main editor while debugging</source>
@@ -26887,6 +24128,34 @@ p, li { white-space: pre-wrap; }
<source>&lt;unlimited&gt;</source>
<translation>&lt;необмежено&gt;</translation>
</message>
+ <message>
+ <source>Bring Qt Creator to foreground when application interrupts</source>
+ <translation>Переходити до вікна Qt Creator, коли програма перериваєтьÑÑ</translation>
+ </message>
+ <message>
+ <source>Show QML object tree in Locals &amp; Expressions when connected and not stepping.</source>
+ <translation>Показувати дерево об&apos;єктів QML у виді &quot;Локальні змінні та вирази&quot;, коли підключені Ñ– не здійÑнюємо покрокове зневадженнÑ.</translation>
+ </message>
+ <message>
+ <source>Show QML object tree</source>
+ <translation>Показувати дерево об&apos;єктів QML</translation>
+ </message>
+ <message>
+ <source>Enable a full file path in breakpoints by default also for the GDB</source>
+ <translation>Увімкнути повний шлÑÑ… до файлу в точках перепину також Ð´Ð»Ñ GDB</translation>
+ </message>
+ <message>
+ <source>Breakpoints full path by default</source>
+ <translation>Повний шлÑÑ… до точок перепину</translation>
+ </message>
+ <message>
+ <source>Stop when %1() is called</source>
+ <translation>ЗупинÑти, коли викликаєтьÑÑ %1()</translation>
+ </message>
+ <message>
+ <source>Always add a breakpoint on the &lt;i&gt;%1()&lt;/i&gt; function.</source>
+ <translation>Завжди додавати точку перепину на функції &lt;i&gt;%1()&lt;/i&gt;.</translation>
+ </message>
</context>
<context>
<name>Debugger::Internal::DebuggingHelperOptionPage</name>
@@ -26894,7 +24163,7 @@ p, li { white-space: pre-wrap; }
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;
&lt;p&gt;The debugging helper is only used to produce a nice display of objects of certain types like QString or std::map in the &amp;quot;Locals and Expressions&amp;quot; view. It is not strictly necessary for debugging with Qt Creator. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;Помічник Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑтовуєтьÑÑ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ Ð·Ñ€ÑƒÑ‡Ð½Ð¾Ð³Ð¾ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð¾Ð±&apos;єктів певних типів, Ñк QString та std::map у виді &amp;quot;Локальних змінних та виразах під наглÑдом&amp;quot;. Він не Ñ” вкрай необхідним Ð´Ð»Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð·Ð° допомогою Qt Creator. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+&lt;p&gt;Помічник Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑтовуєтьÑÑ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ Ð·Ñ€ÑƒÑ‡Ð½Ð¾Ð³Ð¾ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð¾Ð±&apos;єктів певних типів, Ñк QString та std::map у виді &amp;quot;Локальних змінних та виразів&amp;quot;. Він не Ñ” вкрай необхідним Ð´Ð»Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð·Ð° допомогою Qt Creator. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Use Debugging Helper</source>
@@ -26916,6 +24185,22 @@ p, li { white-space: pre-wrap; }
<source>Display thread names</source>
<translation>Показувати імена ниток</translation>
</message>
+ <message>
+ <source>Show &apos;std::&apos; prefix for types from the standard library.</source>
+ <translation>Показувати Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ &apos;std::&apos; Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñ–Ð² зі Ñтандартної бібліотеки.</translation>
+ </message>
+ <message>
+ <source>Show &quot;std::&quot; namespace for types</source>
+ <translation>Показувати проÑÑ‚Ñ–Ñ€ імен &quot;std::&quot; Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñ–Ð²</translation>
+ </message>
+ <message>
+ <source>Show Qt namespace prefix for Qt types. This is only relevant if Qt was configured with &apos;-qtnamespace&apos;.</source>
+ <translation>Показувати Ð¿Ñ€ÐµÑ„Ñ–ÐºÑ Ð¿Ñ€Ð¾Ñтору імен Qt Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñ–Ð² Qt. Це має ÑенÑ, Ñкщо Qt було Ñконфігуровано з &apos;-qtnamespace&apos;.</translation>
+ </message>
+ <message>
+ <source>Show Qt&apos;s namespace for types</source>
+ <translation>Показувати проÑÑ‚Ñ–Ñ€ імен Qt Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñ–Ð²</translation>
+ </message>
</context>
<context>
<name>Debugger::Internal::LldbOptionsPageWidget</name>
@@ -26932,7 +24217,7 @@ p, li { white-space: pre-wrap; }
<name>Debugger::Internal::StartRemoteEngineDialog</name>
<message>
<source>Start Remote Engine</source>
- <translation>ЗапуÑтати віддалений рушій</translation>
+ <translation>ЗапуÑтити віддалений рушій</translation>
</message>
<message>
<source>&amp;Host:</source>
@@ -26959,7 +24244,7 @@ p, li { white-space: pre-wrap; }
<name>Madde::Internal::MaemoDeviceConfigWizardCheckPreviousKeySetupPage</name>
<message>
<source>WizardPage</source>
- <translation type="unfinished">Сторінка майÑтра</translation>
+ <translation>Сторінка майÑтра</translation>
</message>
<message>
<source>Has a passwordless (key-based) login already been set up for this device?</source>
@@ -26971,18 +24256,18 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>No</source>
- <translation type="unfinished">ÐÑ–</translation>
+ <translation>ÐÑ–</translation>
</message>
</context>
<context>
<name>Madde::Internal::MaemoPublishingWizardPageFremantleFree</name>
<message>
<source>WizardPage</source>
- <translation type="unfinished">Сторінка майÑтра</translation>
+ <translation>Сторінка майÑтра</translation>
</message>
<message>
<source>Choose build configuration:</source>
- <translation type="unfinished">Оберіть конфігурацію збірки:</translation>
+ <translation>Оберіть конфігурацію збірки:</translation>
</message>
<message>
<source>Only create source package, do not upload</source>
@@ -27005,7 +24290,7 @@ p, li { white-space: pre-wrap; }
<name>Madde::Internal::MaemoPublishingResultPageFremantleFree</name>
<message>
<source>WizardPage</source>
- <translation type="unfinished">Сторінка майÑтра</translation>
+ <translation>Сторінка майÑтра</translation>
</message>
<message>
<source>Progress</source>
@@ -27016,23 +24301,23 @@ p, li { white-space: pre-wrap; }
<name>Madde::Internal::MaemoQemuSettingsWidget</name>
<message>
<source>Form</source>
- <translation type="unfinished">Форма</translation>
+ <translation>Форма</translation>
</message>
<message>
<source>OpenGL Mode</source>
- <translation type="unfinished">Режим OpenGL</translation>
+ <translation>Режим OpenGL</translation>
</message>
<message>
<source>&amp;Hardware acceleration</source>
- <translation type="unfinished">&amp;Ðпаратне приÑкореннÑ</translation>
+ <translation>&amp;Ðпаратне приÑкореннÑ</translation>
</message>
<message>
<source>&amp;Software rendering</source>
- <translation type="unfinished">&amp;Програмне відмальовуваннÑ</translation>
+ <translation>&amp;Програмне відмальовуваннÑ</translation>
</message>
<message>
<source>&amp;Auto-detect</source>
- <translation type="unfinished">Ð&amp;втовизначеннÑ</translation>
+ <translation>Ð&amp;втовизначеннÑ</translation>
</message>
</context>
<context>
@@ -27050,11 +24335,11 @@ p, li { white-space: pre-wrap; }
<name>QmlDesigner::Internal::BehaviorDialog</name>
<message>
<source>Dialog</source>
- <translation type="unfinished">Діалог</translation>
+ <translation>Діалог</translation>
</message>
<message>
<source>Type:</source>
- <translation type="unfinished">Тип:</translation>
+ <translation>Тип:</translation>
</message>
<message>
<source>ID:</source>
@@ -27062,11 +24347,11 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Property name:</source>
- <translation type="unfinished">Ðазва влаÑтивоÑÑ‚Ñ–:</translation>
+ <translation>Ðазва влаÑтивоÑÑ‚Ñ–:</translation>
</message>
<message>
<source>Animation</source>
- <translation type="unfinished">ÐнімаціÑ</translation>
+ <translation>ÐнімаціÑ</translation>
</message>
<message>
<source>SpringFollow</source>
@@ -27074,11 +24359,11 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Settings</source>
- <translation type="unfinished">ÐалаштуваннÑ</translation>
+ <translation>ÐалаштуваннÑ</translation>
</message>
<message>
<source>Duration:</source>
- <translation type="unfinished">ТриваліÑÑ‚ÑŒ:</translation>
+ <translation>ТриваліÑÑ‚ÑŒ:</translation>
</message>
<message>
<source>Curve:</source>
@@ -27090,11 +24375,11 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Source:</source>
- <translation type="unfinished">Джерело:</translation>
+ <translation>Джерело:</translation>
</message>
<message>
<source>Velocity:</source>
- <translation type="unfinished">ШвидкіÑÑ‚ÑŒ:</translation>
+ <translation>ШвидкіÑÑ‚ÑŒ:</translation>
</message>
<message>
<source>Spring:</source>
@@ -27109,11 +24394,11 @@ p, li { white-space: pre-wrap; }
<name>SelectionRangeDetails</name>
<message>
<source>Selection</source>
- <translation type="unfinished">ВиділеннÑ</translation>
+ <translation>ВиділеннÑ</translation>
</message>
<message>
<source>Start</source>
- <translation type="unfinished">ЗапуÑтити</translation>
+ <translation>Початок</translation>
</message>
<message>
<source>End</source>
@@ -27121,7 +24406,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Duration</source>
- <translation type="unfinished">ТриваліÑÑ‚ÑŒ</translation>
+ <translation>ТриваліÑÑ‚ÑŒ</translation>
</message>
</context>
<context>
@@ -27163,41 +24448,34 @@ p, li { white-space: pre-wrap; }
</message>
</context>
<context>
- <name>Qt4ProjectManager::Internal::S60CertificateDetailsDialog</name>
- <message>
- <source>Details of Certificate</source>
- <translation type="unfinished">Деталі Ñертифікату</translation>
- </message>
-</context>
-<context>
<name>Qt4ProjectManager::Internal::Html5AppWizardSourcesPage</name>
<message>
<source>WizardPage</source>
- <translation type="unfinished">Сторінка майÑтра</translation>
+ <translation>Сторінка майÑтра</translation>
</message>
<message>
<source>Main HTML File</source>
- <translation type="unfinished">Головний файл HTML</translation>
+ <translation>Головний файл HTML</translation>
</message>
<message>
<source>Generate an index.html file</source>
- <translation type="unfinished">Генерувати файл index.html</translation>
+ <translation>Генерувати файл index.html</translation>
</message>
<message>
<source>Import an existing .html file</source>
- <translation type="unfinished">Імпортувати Ñ–Ñнуючий файл .html</translation>
+ <translation>Імпортувати Ñ–Ñнуючий файл .html</translation>
</message>
<message>
<source>Load a URL</source>
- <translation type="unfinished">Звантажити з URL</translation>
+ <translation>Звантажити з URL</translation>
</message>
<message>
<source>http://</source>
- <translation type="unfinished"></translation>
+ <translation>http://</translation>
</message>
<message>
<source>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.</source>
- <translation type="unfinished">Примітка: Якщо ви не обрали Ð·Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð· URL, то уÑÑ– файли та теки, що знаходÑÑ‚ÑŒÑÑ Ð² тій Ñамій теці, що й оÑновний файл HTML будуть розгорнуті. Ви можете змінити зміÑÑ‚ теки в будь-Ñкий Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ´ розгортаннÑм.</translation>
+ <translation>Примітка: Якщо ви не обрали Ð·Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð· URL, то уÑÑ– файли та теки, що знаходÑÑ‚ÑŒÑÑ Ð² тій Ñамій теці, що й оÑновний файл HTML будуть розгорнуті. Ви можете змінити зміÑÑ‚ теки в будь-Ñкий Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ´ розгортаннÑм.</translation>
</message>
<message>
<source>Touch optimized navigation</source>
@@ -27216,7 +24494,7 @@ p, li { white-space: pre-wrap; }
<name>Qt4ProjectManager::Internal::MobileAppWizardHarmattanOptionsPage</name>
<message>
<source>WizardPage</source>
- <translation type="unfinished">Сторінка майÑтра</translation>
+ <translation>Сторінка майÑтра</translation>
</message>
<message>
<source>Application icon (80x80):</source>
@@ -27235,7 +24513,7 @@ p, li { white-space: pre-wrap; }
<name>Qt4ProjectManager::Internal::MobileAppWizardMaemoOptionsPage</name>
<message>
<source>WizardPage</source>
- <translation type="unfinished">Сторінка майÑтра</translation>
+ <translation>Сторінка майÑтра</translation>
</message>
<message>
<source>Application icon (64x64):</source>
@@ -27243,42 +24521,15 @@ p, li { white-space: pre-wrap; }
</message>
</context>
<context>
- <name>Qt4ProjectManager::Internal::MobileAppWizardSymbianOptionsPage</name>
- <message>
- <source>WizardPage</source>
- <translation type="unfinished">Сторінка майÑтра</translation>
- </message>
- <message>
- <source>Application icon (.svg):</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Target UID3:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Enable network access</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
<name>Qt4ProjectManager::Internal::MobileLibraryWizardOptionPage</name>
<message>
<source>WizardPage</source>
- <translation type="unfinished">Сторінка майÑтра</translation>
- </message>
- <message>
- <source>Target UID3:</source>
- <translation type="unfinished"></translation>
+ <translation>Сторінка майÑтра</translation>
</message>
<message>
<source>Plugin&apos;s directory name:</source>
<translation type="unfinished"></translation>
</message>
- <message>
- <source>Enable network access</source>
- <translation type="unfinished"></translation>
- </message>
</context>
<context>
<name>QtSupport::Internal::ShowBuildLog</name>
@@ -27350,13 +24601,25 @@ p, li { white-space: pre-wrap; }
<translation>Файл приватного ключа:</translation>
</message>
<message>
- <source>Set as Default</source>
- <translation>Ð’Ñтановити Ñк типову</translation>
+ <source>Physical Device</source>
+ <translation>Фізичний приÑтрій</translation>
+ </message>
+ <message>
+ <source>Emulator</source>
+ <translation>ЕмулÑтор</translation>
</message>
<message>
<source>You will need at least one port.</source>
<translation>Вам буде необхідний хоча б один порт.</translation>
</message>
+ <message>
+ <source>Create New...</source>
+ <translation>Створити новий...</translation>
+ </message>
+ <message>
+ <source>Machine type:</source>
+ <translation>Тип машини:</translation>
+ </message>
</context>
<context>
<name>RemoteLinux::Internal::GenericLinuxDeviceConfigurationWizardSetupPage</name>
@@ -27411,94 +24674,12 @@ p, li { white-space: pre-wrap; }
<translation>Форма</translation>
</message>
<message>
- <source>Device configuration:</source>
- <translation>ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¸Ñтрою:</translation>
- </message>
- <message>
- <source>&lt;a href=&quot;irrelevant&quot;&gt;Manage device configurations&lt;/a&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
<source>These show the INSTALLS settings from the project file(s).</source>
- <translation type="unfinished"></translation>
+ <translation>Тут відображені Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ INSTALLS з файлу(ів) проекту.</translation>
</message>
<message>
<source>Files to install for subproject:</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RemoteLinux::Internal::RemoteLinuxProcessesDialog</name>
- <message>
- <source>List of Remote Processes</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&amp;Filter by process name:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&amp;Update List</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&amp;Kill Selected Process</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>RemoteLinux::Internal::SshKeyCreationDialog</name>
- <message>
- <source>SSH Key Configuration</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Options</source>
- <translation>Опції</translation>
- </message>
- <message>
- <source>Key algorithm:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&amp;RSA</source>
- <translation></translation>
- </message>
- <message>
- <source>&amp;DSA</source>
- <translation></translation>
- </message>
- <message>
- <source>Key &amp;size:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Private key file:</source>
- <translation>Файл приватного ключа:</translation>
- </message>
- <message>
- <source>Public key file:</source>
- <translation>Файл публічного ключа:</translation>
- </message>
- <message>
- <source>&amp;Generate And Save Key Pair</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&amp;Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Key Generation Failed</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Failure To Save Key File</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Failed to create directory: &apos;%1&apos;.</source>
- <translation type="unfinished"></translation>
+ <translation>Файли Ð´Ð»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¿Ñ–Ð´Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñƒ:</translation>
</message>
</context>
<context>
@@ -27640,8 +24821,8 @@ Specifies how backspace interacts with indentation.
&lt;p&gt;Як текÑтовий редактор має поводитиÑÑŒ з маркерами порÑдку байтів UTF-8. Варіанти:&lt;/p&gt;
&lt;ul &gt;&lt;li&gt;&lt;i&gt;Додавати, Ñкщо ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ UTF-8:&lt;/i&gt; завжди додає BOM при збереженні файлу в кодуванні UTF-8. Майте на увазі, що це не Ñпрацює, Ñкщо ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ &lt;i&gt;ÑиÑтемне&lt;/i&gt;, бо в цьому випадку Qt Creator не знає, Ñким воно Ñ” наÑправді.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Залишати, Ñкщо приÑутні: &lt;/i&gt;зберігати файл з BOM, Ñкщо він вже був, коли файл було завантажено.&lt;/li&gt;
-&lt;li&gt;&lt;i&gt;Завжди видалÑÑ‚ÑŒ:&lt;/i&gt; ніколи не запиÑувати UTF-8 BOM, можливо, видалÑючи вже Ñ–Ñнуюючі.&lt;/li&gt;&lt;/ul&gt;
-&lt;p&gt;Майте на увазі, що UTF-8 BOM Ñ” не типовимим та невірно оброблÑÑŽÑ‚ÑŒÑÑ Ð´ÐµÑкими редакторами, отже, зазвичай, немає великого ÑенÑу додавати Ñ—Ñ….&lt;/p&gt;
+&lt;li&gt;&lt;i&gt;Завжди видалÑти:&lt;/i&gt; ніколи не запиÑувати UTF-8 BOM, можливо, видалÑючи вже Ñ–Ñнуючі.&lt;/li&gt;&lt;/ul&gt;
+&lt;p&gt;Майте на увазі, що UTF-8 BOM Ñ” не типовими та невірно оброблÑÑŽÑ‚ÑŒÑÑ Ð´ÐµÑкими редакторами, отже, зазвичай, немає великого ÑенÑу додавати Ñ—Ñ….&lt;/p&gt;
&lt;p&gt;Ці Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ &lt;b&gt;не&lt;/b&gt; впливають на BOM Ð´Ð»Ñ UTF-16 або UTF-32.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
@@ -27658,7 +24839,7 @@ Specifies how backspace interacts with indentation.
</message>
<message>
<source>UTF-8 BOM:</source>
- <translation></translation>
+ <translation>UTF-8 BOM:</translation>
</message>
<message>
<source>Mouse and Keyboard</source>
@@ -27960,21 +25141,6 @@ Influences the indentation of continuation lines.
</message>
</context>
<context>
- <name>Todo::Internal::AddKeywordDialog</name>
- <message>
- <source>Keyword</source>
- <translation>Ключове Ñлово</translation>
- </message>
- <message>
- <source>Icon</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Color</source>
- <translation>Колір</translation>
- </message>
-</context>
-<context>
<name>Todo::Internal::OptionsDialog</name>
<message>
<source>Form</source>
@@ -27982,7 +25148,7 @@ Influences the indentation of continuation lines.
</message>
<message>
<source>Keywords</source>
- <translation type="unfinished"></translation>
+ <translation>Ключові Ñлова</translation>
</message>
<message>
<source>Add</source>
@@ -27990,7 +25156,7 @@ Influences the indentation of continuation lines.
</message>
<message>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>Редагувати</translation>
</message>
<message>
<source>Remove</source>
@@ -28041,7 +25207,7 @@ Influences the indentation of continuation lines.
</message>
<message>
<source>...</source>
- <translation></translation>
+ <translation>...</translation>
</message>
<message>
<source>Working Copy</source>
@@ -28132,7 +25298,7 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message>
<message>
<source>E-mail</source>
- <translation></translation>
+ <translation>E-mail</translation>
</message>
<message>
<source>Alias</source>
@@ -28144,13 +25310,6 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message>
</context>
<context>
- <name>VcsBase::Internal::VcsConfigurationPage</name>
- <message>
- <source>Configure...</source>
- <translation>Ðалаштувати...</translation>
- </message>
-</context>
-<context>
<name>develop</name>
<message>
<source>Develop</source>
@@ -28211,14 +25370,18 @@ should a repository require SSH-authentication (see documentation on SSH and the
<translation>ОглÑд IDE</translation>
</message>
<message>
- <source>To find out what kind of integrated enviroment (IDE) Qt Creator is.</source>
+ <source>To find out what kind of integrated environment (IDE) Qt Creator is.</source>
<translation>ДізнатиÑÑŒ Ñким інтегрованим Ñередовищем (IDE) Ñ” Qt Creator.</translation>
</message>
<message>
- <source>To become familar with the parts of the Qt Creator user interface and to learn how to use them.</source>
+ <source>To become familiar with the parts of the Qt Creator user interface and to learn how to use them.</source>
<translation>ОзнайомитиÑÑŒ з чаÑтинами інтерфейÑу кориÑтувача Qt Creator та навчитиÑÑŒ Ñк Ñ—Ñ… викориÑтовувати.</translation>
</message>
<message>
+ <source>Blogs</source>
+ <translation>Блоги</translation>
+ </message>
+ <message>
<source>User Interface</source>
<translation>Ð†Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÐºÐ¾Ñ€Ð¸Ñтувача</translation>
</message>
@@ -28230,10 +25393,6 @@ should a repository require SSH-authentication (see documentation on SSH and the
<source>Online Community</source>
<translation>Спільнота в мережі</translation>
</message>
- <message>
- <source>Labs</source>
- <translation>Лабораторії</translation>
- </message>
</context>
<context>
<name>tutorials</name>
@@ -28253,8 +25412,8 @@ should a repository require SSH-authentication (see documentation on SSH and the
<translation type="unfinished"></translation>
</message>
<message>
- <source>The 2D Painting example shows how QPainter and QGLWidget. The 2D Painting example shows how QPainter and QGLWidget work together.</source>
- <translation type="unfinished"></translation>
+ <source>The 2D Painting example shows how QPainter and QGLWidget work together.</source>
+ <translation>Приклад 2D ÐœÐ°Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾ÐºÐ°Ð·ÑƒÑ”, Ñк QPainter та QGLWidget працюють разом.</translation>
</message>
<message>
<source>Tags:</source>
@@ -28554,19 +25713,6 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message>
</context>
<context>
- <name>QmlJsDebugClient::QDeclarativeOutputParser</name>
- <message>
- <source>The port seems to be in use.</source>
- <extracomment>Error message shown after &apos;Could not connect ... debugger:&quot;</extracomment>
- <translation type="unfinished">ЗдаєтьÑÑ, порт вже викориÑтовуєтьÑÑ.</translation>
- </message>
- <message>
- <source>The application is not set up for QML/JS debugging.</source>
- <extracomment>Error message shown after &apos;Could not connect ... debugger:&quot;</extracomment>
- <translation type="unfinished">Програму не налаштовано Ð´Ð»Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ QML/JS.</translation>
- </message>
-</context>
-<context>
<name>Utils::SettingsSelector</name>
<message>
<source>Add</source>
@@ -28594,118 +25740,50 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message>
</context>
<context>
- <name>Utils::SftpFileSystemModel</name>
- <message>
- <source>File Type</source>
- <translation>Типи файлу</translation>
- </message>
- <message>
- <source>File Name</source>
- <translation>Ім&apos;Ñ Ñ„Ð°Ð¹Ð»Ñƒ</translation>
- </message>
- <message>
- <source>Error getting &apos;stat&apos; info about &apos;%1&apos;: %2</source>
- <translation>Помилка Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ— &apos;stat&apos; про &apos;%1&apos;: %2</translation>
- </message>
- <message>
- <source>Error listing contents of directory &apos;%1&apos;: %2</source>
- <translation>Помилка Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð·Ð¼Ñ–Ñту теки &apos;%1&apos;: %2</translation>
- </message>
-</context>
-<context>
- <name>Utils::Internal::SshRemoteProcessPrivate</name>
- <message>
- <source>Process killed by signal</source>
- <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ Ð²Ð±Ð¸Ñ‚Ð¾ Ñигналом</translation>
- </message>
- <message>
- <source>Server sent invalid signal &apos;%1&apos;</source>
- <translation>Сервер надіÑлав неправильний Ñигнал &apos;%1&apos;</translation>
- </message>
-</context>
-<context>
<name>ZeroConf::Internal::ZConfLib</name>
<message>
<source>AvahiZConfLib could not load the native library &apos;%1&apos;: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>%1 could not create a client (probably the daemon is not running)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>cAvahiClient, server collision</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>cAvahiClient, some kind of error happened on the client side</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>cAvahiClient, still connecting, no server available</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error: unexpected state %1 in cAvahiClientReply, ignoring it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Error: unexpected state %1 in cAvahiBrowseReply, ignoring it</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>%1 failed starting embedded daemon at %2</source>
+ <source>%1 cannot create a client. The daemon is probably not running.</source>
<translation type="unfinished"></translation>
</message>
-</context>
-<context>
- <name>ZeroConf</name>
<message>
- <source>DnsSdZConfLib could not load native library</source>
+ <source>cAvahiClient, server collision.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>MainConnection giving up on non Ok lib %1 (%2)</source>
+ <source>cAvahiClient, an error occurred on the client side.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>MainConnection has no valid library, aborting connection</source>
+ <source>cAvahiClient, still connecting, no server available.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>MainConnection giving up on lib %1, switching to lib %2</source>
+ <source>Unexpected state %1 in cAvahiClientReply.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>MainConnection giving up on lib %1, no fallback provided, aborting connection</source>
+ <source>Unexpected state %1 in cAvahiBrowseReply.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>MainConnection using lib %1 failed the initialization of mainRef with error %2</source>
+ <source>%1 failed to kill other daemons with &apos;%2&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>MainConnection using lib %1 failed because no daemon is running</source>
+ <source>%1 detected a file at /tmp/mdnsd, daemon startup will probably fail.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>MainConnection using lib %1 daemon starting seem successful, continuing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>MainConnection using lib %1 failed getProperty call with error %2</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>MainConnection::handleEvents called with m_status != Starting, aborting</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>MainConnection::handleEvents unexpected return status of handleEvent</source>
+ <source>%1: log of previous daemon run is: &apos;%2&apos;.
+</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>MainConnection for [%1] accumulated %2 consecutive errors, aborting</source>
+ <source>%1 failed starting embedded daemon at %2.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -28733,6 +25811,10 @@ should a repository require SSH-authentication (see documentation on SSH and the
<source>Analyzer</source>
<translation>Ðналізатор</translation>
</message>
+ <message>
+ <source>No analyzer tool selected</source>
+ <translation>ІнÑтрумент Ð´Ð»Ñ Ð°Ð½Ð°Ð»Ñ–Ð·Ñƒ не обрано</translation>
+ </message>
</context>
<context>
<name>Analyzer::AnalyzerRunConfigurationAspect</name>
@@ -28746,14 +25828,14 @@ should a repository require SSH-authentication (see documentation on SSH and the
<message>
<source>Autogen</source>
<comment>Display name for AutotoolsProjectManager::AutogenStep id.</comment>
- <translation></translation>
+ <translation>Autogen</translation>
</message>
</context>
<context>
<name>AutotoolsProjectManager::Internal::AutogenStep</name>
<message>
<source>Autogen</source>
- <translation></translation>
+ <translation>Autogen</translation>
</message>
<message>
<source>Configuration unchanged, skipping autogen step.</source>
@@ -28769,7 +25851,7 @@ should a repository require SSH-authentication (see documentation on SSH and the
<message>
<source>Autogen</source>
<comment>AutotoolsProjectManager::AutogenStepConfigWidget display name.</comment>
- <translation></translation>
+ <translation>Autogen</translation>
</message>
</context>
<context>
@@ -28777,14 +25859,14 @@ should a repository require SSH-authentication (see documentation on SSH and the
<message>
<source>Autoreconf</source>
<comment>Display name for AutotoolsProjectManager::AutoreconfStep id.</comment>
- <translation></translation>
+ <translation>Autoreconf</translation>
</message>
</context>
<context>
<name>AutotoolsProjectManager::Internal::AutoreconfStep</name>
<message>
<source>Autoreconf</source>
- <translation></translation>
+ <translation>Autoreconf</translation>
</message>
<message>
<source>Configuration unchanged, skipping autoreconf step.</source>
@@ -28800,7 +25882,7 @@ should a repository require SSH-authentication (see documentation on SSH and the
<message>
<source>Autoreconf</source>
<comment>AutotoolsProjectManager::AutoreconfStepConfigWidget display name.</comment>
- <translation></translation>
+ <translation>Autoreconf</translation>
</message>
</context>
<context>
@@ -28824,14 +25906,6 @@ should a repository require SSH-authentication (see documentation on SSH and the
<source>Build directory:</source>
<translation>Тека збірки:</translation>
</message>
- <message>
- <source>Tool chain:</source>
- <translation>Ðабір інÑтрументів:</translation>
- </message>
- <message>
- <source>&lt;Invalid tool chain&gt;</source>
- <translation>&lt;Ðеправильний набір інÑтрументів&gt;</translation>
- </message>
</context>
<context>
<name>AutotoolsProjectManager::Internal::AutotoolsManager</name>
@@ -28855,7 +25929,7 @@ should a repository require SSH-authentication (see documentation on SSH and the
<name>AutotoolsProjectManager::Internal::BuildPathPage</name>
<message>
<source>Please enter the directory in which you want to build your project. Qt Creator recommends to not use the source directory for building. This ensures that the source directory remains clean and enables multiple builds with different settings.</source>
- <translation>Будь-лаÑка, введіть теку, в Ñкій ви хочете зібрати ваш проект. Qt Creator рекомендує не викориÑтовувати теку з кодом Ð´Ð»Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸. Це гарантуватиме, що тека з кодом лишатиметьÑÑ Ñ‡Ð¸Ñтою, та дозволить здійÑнювати декілька збірок з різними налаштуваннÑми.</translation>
+ <translation>Будь лаÑка, введіть теку, в Ñкій ви хочете зібрати ваш проект. Qt Creator рекомендує не викориÑтовувати теку з кодом Ð´Ð»Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸. Це гарантуватиме, що тека з кодом лишатиметьÑÑ Ñ‡Ð¸Ñтою, та дозволить здійÑнювати декілька збірок з різними налаштуваннÑми.</translation>
</message>
<message>
<source>Build directory:</source>
@@ -28867,26 +25941,18 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message>
</context>
<context>
- <name>AutotoolsProjectManager::Internal::AutotoolsTarget</name>
- <message>
- <source>Desktop</source>
- <comment>Autotools Default target display name</comment>
- <translation>Стаціонарний комп&apos;ютер</translation>
- </message>
-</context>
-<context>
<name>AutotoolsProjectManager::Internal::ConfigureStepFactory</name>
<message>
<source>Configure</source>
<comment>Display name for AutotoolsProjectManager::ConfigureStep id.</comment>
- <translation></translation>
+ <translation>Configure</translation>
</message>
</context>
<context>
<name>AutotoolsProjectManager::Internal::ConfigureStep</name>
<message>
<source>Configure</source>
- <translation></translation>
+ <translation>Configure</translation>
</message>
<message>
<source>Configuration unchanged, skipping configure step.</source>
@@ -28902,7 +25968,7 @@ should a repository require SSH-authentication (see documentation on SSH and the
<message>
<source>Configure</source>
<comment>AutotoolsProjectManager::ConfigureStepConfigWidget display name.</comment>
- <translation></translation>
+ <translation>Configure</translation>
</message>
</context>
<context>
@@ -28921,14 +25987,22 @@ should a repository require SSH-authentication (see documentation on SSH and the
<message>
<source>Make</source>
<comment>Display name for AutotoolsProjectManager::MakeStep id.</comment>
- <translation></translation>
+ <translation>Make</translation>
</message>
</context>
<context>
<name>AutotoolsProjectManager::Internal::MakeStep</name>
<message>
<source>Make</source>
- <translation></translation>
+ <translation>Make</translation>
+ </message>
+ <message>
+ <source>Qt Creator needs a compiler set up to build. Configure a compiler in the kit options.</source>
+ <translation>Qt Creator потребує компілÑтора Ð´Ð»Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸. Сконфігуруйте компілÑтор в налаштуваннÑÑ… інÑтрументарію.</translation>
+ </message>
+ <message>
+ <source>Configuration is faulty. Check the Issues view for details.</source>
+ <translation>ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð·Ð±Ñ–Ð¹Ð½Ð°. Перевірте вид &quot;Проблеми&quot; Ð´Ð»Ñ Ð´ÐµÑ‚Ð°Ð»ÐµÐ¹.</translation>
</message>
</context>
<context>
@@ -28940,16 +26014,16 @@ should a repository require SSH-authentication (see documentation on SSH and the
<message>
<source>Make</source>
<comment>AutotoolsProjectManager::MakeStepConfigWidget display name.</comment>
- <translation></translation>
- </message>
- <message>
- <source>&lt;b&gt;Unknown tool chain&lt;/b&gt;</source>
- <translation>&lt;b&gt;Ðевідомий набір інÑтрументів&lt;/b&gt;</translation>
+ <translation>Make</translation>
</message>
</context>
<context>
<name>BinEditorDocument</name>
<message>
+ <source>The Binary Editor cannot open empty files.</source>
+ <translation>Двійковий редактор не може відкривати порожні файли.</translation>
+ </message>
+ <message>
<source>Cannot open %1: %2</source>
<translation>Ðеможливо відкрити %1: %2</translation>
</message>
@@ -29000,16 +26074,12 @@ should a repository require SSH-authentication (see documentation on SSH and the
<translation>Файл &lt;i&gt;%1&lt;/i&gt; лише Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ.</translation>
</message>
<message>
- <source>Open with VCS (%1)</source>
- <translation>Відкрити за допомогою VCS (%1)</translation>
- </message>
- <message>
- <source>Make Writable</source>
- <translation>Зробити придатним до запиÑу</translation>
+ <source>Make &amp;Writable</source>
+ <translation>Зробити придатним до &amp;запиÑу</translation>
</message>
<message>
- <source>Save As...</source>
- <translation>Зберегти Ñк...</translation>
+ <source>&amp;Save As...</source>
+ <translation>Зберегти &amp;Ñк...</translation>
</message>
<message>
<source>Cannot reload %1</source>
@@ -29019,8 +26089,8 @@ should a repository require SSH-authentication (see documentation on SSH and the
<context>
<name>Core::IDocument</name>
<message>
- <source>File was restored from auto-saved copy. Use &lt;i&gt;Save&lt;/i&gt; to confirm, or &lt;i&gt;Revert to Saved&lt;/i&gt; to discard changes.</source>
- <translation>Файл було відновлено з автоматично збереженої копії. ÐатиÑніÑÑ‚ÑŒ &lt;i&gt;Зберегти&lt;/i&gt;, щоб підтвердити, або &lt;i&gt;ПовернутиÑÑŒ до збереженого&lt;/i&gt;, щоб відкинути зміни.</translation>
+ <source>File was restored from auto-saved copy. Select Save to confirm or Revert to Saved to discard changes.</source>
+ <translation>Файл було відновлено з автоматично збереженої копії. ÐатиÑніть &quot;Зберегти&quot;, щоб підтвердити, або &quot;ПовернутиÑÑŒ до збереженого&quot;, щоб відкинути зміни.</translation>
</message>
</context>
<context>
@@ -29068,7 +26138,7 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message>
<message>
<source>Specify repository and path.</source>
- <translation type="unfinished"></translation>
+ <translation>Вкажіть Ñховище та шлÑÑ….</translation>
</message>
<message>
<source>Repository:</source>
@@ -29094,7 +26164,7 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message>
<message>
<source>&amp;CVS</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;CVS</translation>
</message>
<message>
<source>Diff Current File</source>
@@ -29106,7 +26176,11 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message>
<message>
<source>Alt+C,Alt+D</source>
- <translation></translation>
+ <translation>Alt+C,Alt+D</translation>
+ </message>
+ <message>
+ <source>Meta+C,Meta+D</source>
+ <translation>Meta+C,Meta+D</translation>
</message>
<message>
<source>Filelog Current File</source>
@@ -29134,7 +26208,11 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message>
<message>
<source>Alt+C,Alt+A</source>
- <translation></translation>
+ <translation>Alt+C,Alt+A</translation>
+ </message>
+ <message>
+ <source>Meta+C,Meta+A</source>
+ <translation>Meta+C,Meta+A</translation>
</message>
<message>
<source>Commit Current File</source>
@@ -29146,7 +26224,11 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message>
<message>
<source>Alt+C,Alt+C</source>
- <translation></translation>
+ <translation>Alt+C,Alt+C</translation>
+ </message>
+ <message>
+ <source>Meta+C,Meta+C</source>
+ <translation>Meta+C,Meta+C</translation>
</message>
<message>
<source>Delete...</source>
@@ -29396,6 +26478,10 @@ should a repository require SSH-authentication (see documentation on SSH and the
<translation>ÐамагаємоÑÑŒ перервати.</translation>
</message>
<message>
+ <source>Debug Information</source>
+ <translation>Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ</translation>
+ </message>
+ <message>
<source>Debugger Test</source>
<translation>Перевірка зневаджувача</translation>
</message>
@@ -29419,15 +26505,19 @@ should a repository require SSH-authentication (see documentation on SSH and the
<translation>Зневаджувальний порт:</translation>
</message>
<message>
- <source>&lt;a href=&quot;qthelp://org.qt-project.qtcreator/doc/creator-debugging-qml.html&quot;&gt;What are the prerequisites?&lt;/a&gt;</source>
- <translation>&lt;a href=&quot;qthelp://org.qt-project.qtcreator/doc/creator-debugging-qml.html&quot;&gt;Які передумови?&lt;/a&gt;</translation>
+ <source>&lt;a href=&quot;qthelp://com.nokia.qtcreator/doc/creator-debugging-qml.html&quot;&gt;What are the prerequisites?&lt;/a&gt;</source>
+ <translation>&lt;a href=&quot;qthelp://com.nokia.qtcreator/doc/creator-debugging-qml.html&quot;&gt;Які передумови?&lt;/a&gt;</translation>
+ </message>
+ <message>
+ <source>Enable Debugging of Subprocesses</source>
+ <translation>Увімкнути Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´Ð¿Ñ€Ð¾Ñ†ÐµÑів</translation>
</message>
</context>
<context>
<name>Debugger::Internal::QmlV8DebuggerClient</name>
<message>
- <source>anonymous function</source>
- <translation>анонімна функціÑ</translation>
+ <source>Anonymous Function</source>
+ <translation>Ðнонімна функціÑ</translation>
</message>
</context>
<context>
@@ -29475,14 +26565,26 @@ should a repository require SSH-authentication (see documentation on SSH and the
<translation>Журнал</translation>
</message>
<message>
+ <source>Show debug, log, and info messages.</source>
+ <translation>Показувати зневаджувальні, журналу та інформаційні повідомленнÑ.</translation>
+ </message>
+ <message>
<source>Warning</source>
<translation>ПопередженнÑ</translation>
</message>
<message>
+ <source>Show warning messages.</source>
+ <translation>Показувати попередженнÑ.</translation>
+ </message>
+ <message>
<source>Error</source>
<translation>Помилка</translation>
</message>
<message>
+ <source>Show error and fatal messages.</source>
+ <translation>Показувати помилки та фатальні повідомленнÑ.</translation>
+ </message>
+ <message>
<source>Clear Console</source>
<translation>ОчиÑтити конÑоль</translation>
</message>
@@ -29578,7 +26680,7 @@ Do you want to kill it?</source>
<name>ProjectExplorer::Internal::ProjectListWidget</name>
<message>
<source>%1 (%2)</source>
- <translation></translation>
+ <translation>%1 (%2)</translation>
</message>
</context>
<context>
@@ -29599,14 +26701,14 @@ Do you want to kill it?</source>
<name>ProjectExplorer::Internal::WinCEToolChainFactory</name>
<message>
<source>WinCE</source>
- <translation></translation>
+ <translation>WinCE</translation>
</message>
</context>
<context>
<name>ProjectExplorer::Internal::WinCEToolChainConfigWidget</name>
<message>
<source>SDK:</source>
- <translation></translation>
+ <translation>SDK:</translation>
</message>
<message>
<source>WinCE Version:</source>
@@ -29614,14 +26716,7 @@ Do you want to kill it?</source>
</message>
<message>
<source>ABI:</source>
- <translation></translation>
- </message>
-</context>
-<context>
- <name>QmlJSEditor::AddAnalysisMessageSuppressionComment</name>
- <message>
- <source>Add a comment to suppress this message</source>
- <translation type="unfinished"></translation>
+ <translation>ABI:</translation>
</message>
</context>
<context>
@@ -29648,21 +26743,14 @@ Do you want to kill it?</source>
</message>
</context>
<context>
- <name>QmlProfiler::Internal::QmlProfilerEventsWidget</name>
- <message>
- <source>Trace information from the v8 JavaScript engine. Available only in Qt5 based applications</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
<name>QmlProfiler::Internal::QmlProfilerEventsMainView</name>
<message>
<source>Location</source>
- <translation type="unfinished">РозташуваннÑ</translation>
+ <translation>РозташуваннÑ</translation>
</message>
<message>
<source>Type</source>
- <translation type="unfinished">Тип</translation>
+ <translation>Тип</translation>
</message>
<message>
<source>Time in Percent</source>
@@ -29702,23 +26790,36 @@ Do you want to kill it?</source>
</message>
<message>
<source>Details</source>
- <translation type="unfinished">Деталі</translation>
+ <translation>Деталі</translation>
</message>
<message>
- <source>Binding loop detected</source>
+ <source> (Opt)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Binding is evaluated by the optimized engine.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Binding not optimized (e.g. has side effects or assignments,
+references to elements in other files, loops, etc.)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Binding loop detected.</source>
<translation type="unfinished"></translation>
</message>
<message utf8="true">
<source> µs</source>
- <translation type="unfinished"></translation>
+ <translation> мкÑ</translation>
</message>
<message>
<source> ms</source>
- <translation type="unfinished"> мÑ</translation>
+ <translation> мÑ</translation>
</message>
<message>
<source> s</source>
- <translation type="unfinished"></translation>
+ <translation> Ñ</translation>
</message>
<message>
<source>Paint</source>
@@ -29726,7 +26827,7 @@ Do you want to kill it?</source>
</message>
<message>
<source>Compile</source>
- <translation type="unfinished">КомпілÑціÑ</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Create</source>
@@ -29744,7 +26845,7 @@ Do you want to kill it?</source>
<context>
<name>QmlProfiler::Internal::QmlProfilerEventsParentsAndChildrenView</name>
<message>
- <source>Part of binding loop</source>
+ <source>Part of binding loop.</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -29757,7 +26858,7 @@ Do you want to kill it?</source>
</message>
<message>
<source>Type</source>
- <translation type="unfinished">Тип</translation>
+ <translation type="unfinished"></translation>
</message>
<message>
<source>Total Time</source>
@@ -29777,26 +26878,6 @@ Do you want to kill it?</source>
</message>
</context>
<context>
- <name>Qt4ProjectManager::Internal::S60PublishingWizardFactoryOvi</name>
- <message>
- <source>Publish Qt Symbian Applications to Nokia Store</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>This wizard checks your project file to make sure it complies with Nokia Store submission criteria.
-
-The wizard creates SIS files that can be submitted to Nokia Publish.
-
-You cannot use it if you use application UIDs from Symbian Signed.
-
-You cannot use it for the Certified Signed and Manufacturer level capabilities:
-NetworkControl, MultimediaDD, CommDD, DiskAdmin, AllFiles, DRM and TCB.
-
-Your application will also be rejected by Nokia Store QA if you choose an unreleased Qt version on the next page.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
<name>Qt4ProjectManager::Internal::UnconfiguredProjectPanel</name>
<message>
<source>Configure Project</source>
@@ -29807,74 +26888,53 @@ Your application will also be rejected by Nokia Store QA if you choose an unrele
<name>Qt4ProjectManager::Internal::TargetSetupPageWrapper</name>
<message>
<source>Configure Project</source>
- <translation type="unfinished">ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñƒ</translation>
- </message>
- <message>
- <source>&lt;p&gt;The project &lt;b&gt;%1&lt;/b&gt; is not yet configured.&lt;/p&gt;&lt;p&gt;Qt Creator uses the Qt version: &lt;b&gt;%2&lt;/b&gt; and the tool chain: &lt;b&gt;%3&lt;/b&gt; to parse the project. You can edit these in the &lt;b&gt;&lt;a href=&quot;edit&quot;&gt;options.&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñƒ</translation>
</message>
<message>
- <source>&lt;p&gt;The project &lt;b&gt;%1&lt;/b&gt; is not yet configured.&lt;/p&gt;&lt;p&gt;Qt Creator uses the Qt version: &lt;b&gt;%2&lt;/b&gt; and &lt;b&gt;no tool chain&lt;/b&gt; to parse the project. You can edit these in the &lt;b&gt;&lt;a href=&quot;edit&quot;&gt;settings&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</source>
+ <source>The project &lt;b&gt;%1&lt;/b&gt; is not yet configured.&lt;br/&gt;Qt Creator cannot parse the project, because no kit has been set up.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>&lt;p&gt;The project &lt;b&gt;%1&lt;/b&gt; is not yet configured.&lt;/p&gt;&lt;p&gt;Qt Creator uses &lt;b&gt;no Qt version&lt;/b&gt; and the tool chain: &lt;b&gt;%2&lt;/b&gt; to parse the project. You can edit these in the &lt;b&gt;&lt;a href=&quot;edit&quot;&gt;settings&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</source>
+ <source>The project &lt;b&gt;%1&lt;/b&gt; is not yet configured.&lt;br/&gt;Qt Creator uses the kit &lt;b&gt;%2&lt;/b&gt; to parse the project.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>&lt;p&gt;The project &lt;b&gt;%1&lt;/b&gt; is not yet configured.&lt;/p&gt;&lt;p&gt;Qt Creator uses &lt;b&gt;no Qt version&lt;/b&gt; and &lt;b&gt;no tool chain&lt;/b&gt; to parse the project. You can edit these in the &lt;b&gt;&lt;a href=&quot;edit&quot;&gt;settings&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</source>
+ <source>The project &lt;b&gt;%1&lt;/b&gt; is not yet configured.&lt;br/&gt;Qt Creator uses the &lt;b&gt;invalid&lt;/b&gt; kit &lt;b&gt;%2&lt;/b&gt; to parse the project.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
- <name>Qt4ProjectManager::Internal::UnConfiguredSettingsWidget</name>
- <message>
- <source>Qt Creator can open qmake projects without configuring them for building.
-The C++ and QML code models need a Qt version and tool chain to offer code completion.
-</source>
- <translation>Qt Creator може відкривати проект qmake без ÐºÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ—Ñ… Ð´Ð»Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸.
-Моделі коду C++ та QML потребують верÑÑ–Ñ— Qt version та набору інÑтрументів Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ ÐºÐ¾Ð´Ñƒ.
-</translation>
- </message>
- <message>
- <source>Qt Version:</source>
- <translation>ВерÑÑ–Ñ Qt:</translation>
- </message>
- <message>
- <source>Tool Chain:</source>
- <translation>Ðабір інÑтрументів:</translation>
- </message>
-</context>
-<context>
<name>Qt4ProjectManager::Internal::QtQuickAppWizard</name>
<message>
- <source>Creates a Qt Quick application project that can contain both QML and C++ code and includes a QDeclarativeView.
+ <source>Creates a Qt Quick 1 application project that can contain both QML and C++ code and includes a QDeclarativeView.
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Qt Quick Application (Built-in Elements)</source>
+ <source>Qt Quick 1 Application (Built-in Elements)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>The built-in elements in the QtQuick namespace allow you to write cross-platform applications with a custom look and feel.
+ <source>The built-in elements in the QtQuick 1 namespace allow you to write cross-platform applications with a custom look and feel.
Requires &lt;b&gt;Qt 4.7.0&lt;/b&gt; or newer.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Qt Quick Application for Symbian</source>
+ <source>Qt Quick 2 Application (Built-in Elements)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>The Qt Quick Components for Symbian are a set of ready-made components that are designed with specific native appearance for the Symbian platform.
+ <source>Creates a Qt Quick 2 application project that can contain both QML and C++ code and includes a QQuickView.
-Requires &lt;b&gt;Qt 4.7.4&lt;/b&gt; or newer, and the component set installed for your Qt version.</source>
+The built-in elements in the QtQuick 2 namespace allow you to write cross-platform applications with a custom look and feel.
+
+Requires &lt;b&gt;Qt 5.0&lt;/b&gt; or newer.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <source>Qt Quick Application for MeeGo Harmattan</source>
+ <source>Qt Quick 1 Application for MeeGo Harmattan</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -29884,7 +26944,7 @@ Requires &lt;b&gt;Qt 4.7.4&lt;/b&gt; or newer, and the component set installed f
<translation type="unfinished"></translation>
</message>
<message>
- <source>Qt Quick Application (from Existing QML File)</source>
+ <source>Qt Quick 1 Application (from Existing QML File)</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -29937,7 +26997,7 @@ Requires &lt;b&gt;Qt 4.7.0&lt;/b&gt; or newer.</source>
<translation>Ðеможливо Ñкопіювати проект</translation>
</message>
<message>
- <source>Failed to open project</source>
+ <source>Failed to Open Project</source>
<translation>Збій Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñƒ</translation>
</message>
</context>
@@ -29945,11 +27005,11 @@ Requires &lt;b&gt;Qt 4.7.0&lt;/b&gt; or newer.</source>
<name>QtSupport</name>
<message>
<source>MeeGo/Harmattan</source>
- <translation></translation>
+ <translation>MeeGo/Harmattan</translation>
</message>
<message>
- <source>Symbian</source>
- <translation></translation>
+ <source>Maemo/Fremantle</source>
+ <translation>Maemo/Fremantle</translation>
</message>
<message>
<source>Desktop</source>
@@ -29961,32 +27021,18 @@ Requires &lt;b&gt;Qt 4.7.0&lt;/b&gt; or newer.</source>
</message>
<message>
<source>Windows CE</source>
- <translation></translation>
+ <translation>Windows CE</translation>
</message>
-</context>
-<context>
- <name>RemoteLinux::Internal::EmbeddedLinuxTargetFactory</name>
<message>
- <source>embedded</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Embedded Linux</source>
- <translation>Вбудований Linux</translation>
- </message>
-</context>
-<context>
- <name>RemoteLinux::Internal::GenericEmbeddedLinuxTarget</name>
- <message>
- <source>Embedded Linux</source>
- <translation>Вбудований Linux</translation>
+ <source>Android</source>
+ <translation>Android</translation>
</message>
</context>
<context>
<name>RemoteLinux::RemoteLinuxDeployConfigurationWidget</name>
<message>
<source>Double-click to edit the project file</source>
- <translation type="unfinished"></translation>
+ <translation>Клацніть двічі, щоб змінити файл проекту</translation>
</message>
</context>
<context>
@@ -30003,7 +27049,7 @@ Requires &lt;b&gt;Qt 4.7.0&lt;/b&gt; or newer.</source>
<translation>Відкриті документи</translation>
</message>
<message>
- <source>Open Documents:</source>
+ <source>Open documents:</source>
<translation>Відкриті документи:</translation>
</message>
<message>
@@ -30081,7 +27127,7 @@ Requires &lt;b&gt;Qt 4.7.0&lt;/b&gt; or newer.</source>
</message>
<message>
<source>The process terminated with exit code %1.</source>
- <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð²Ñ Ð· кодом %1.</translation>
+ <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð²ÑÑ Ð· кодом %1.</translation>
</message>
<message>
<source>The process returned exit code %1.</source>
@@ -30139,15 +27185,19 @@ Requires &lt;b&gt;Qt 4.7.0&lt;/b&gt; or newer.</source>
</message>
<message>
<source>Name</source>
- <translation type="unfinished"></translation>
+ <translation>Ðазва</translation>
</message>
<message>
<source>Repository: %1</source>
<translation>Сховище: %1</translation>
</message>
- <message>
- <source>%1 bytes, last modified %2</source>
- <translation>%1 байт(ів), воÑтаннє змінено %2</translation>
+ <message numerus="yes">
+ <source>%n bytes, last modified %1</source>
+ <translation>
+ <numerusform>%n байт, воÑтаннє змінено %1</numerusform>
+ <numerusform>%n байти, воÑтаннє змінено %1</numerusform>
+ <numerusform>%n байтів, воÑтаннє змінено %1</numerusform>
+ </translation>
</message>
<message>
<source>Delete</source>
@@ -30217,7 +27267,7 @@ Requires &lt;b&gt;Qt 4.7.0&lt;/b&gt; or newer.</source>
<translation>Контроль верÑій</translation>
</message>
<message>
- <source>Common</source>
+ <source>General</source>
<translation>Загальне</translation>
</message>
</context>
@@ -30273,28 +27323,6 @@ Requires &lt;b&gt;Qt 4.7.0&lt;/b&gt; or newer.</source>
</message>
</context>
<context>
- <name>VcsBase::Internal::UrlTextCursorHandler</name>
- <message>
- <source>Open URL in browser...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Copy URL location</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>VcsBase::Internal::EmailTextCursorHandler</name>
- <message>
- <source>Send email to...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Copy email address</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
<name>VcsBase::VcsBaseOutputWindow</name>
<message>
<source>Open &quot;%1&quot;</source>
@@ -30435,5 +27463,4996 @@ Requires &lt;b&gt;Qt 4.7.0&lt;/b&gt; or newer.</source>
<source>Please configure &lt;b&gt;%1&lt;/b&gt; now.</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Configure...</source>
+ <translation>Ðалаштувати...</translation>
+ </message>
+</context>
+<context>
+ <name>QSsh::SshKeyCreationDialog</name>
+ <message>
+ <source>SSH Key Configuration</source>
+ <translation>ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ ÐºÐ»ÑŽÑ‡Ð° SSH</translation>
+ </message>
+ <message>
+ <source>Options</source>
+ <translation>Опції</translation>
+ </message>
+ <message>
+ <source>Key algorithm:</source>
+ <translation>Ðлгоритм ключа:</translation>
+ </message>
+ <message>
+ <source>&amp;RSA</source>
+ <translation>&amp;RSA</translation>
+ </message>
+ <message>
+ <source>&amp;DSA</source>
+ <translation>&amp;DSA</translation>
+ </message>
+ <message>
+ <source>Key &amp;size:</source>
+ <translation>&amp;Розмір ключа:</translation>
+ </message>
+ <message>
+ <source>Private key file:</source>
+ <translation>Файл приватного ключа:</translation>
+ </message>
+ <message>
+ <source>Browse...</source>
+ <translation>ОглÑд...</translation>
+ </message>
+ <message>
+ <source>Public key file:</source>
+ <translation>Файл публічного ключа:</translation>
+ </message>
+ <message>
+ <source>&amp;Generate And Save Key Pair</source>
+ <translation>&amp;Згенерувати та зберегти пару ключів</translation>
+ </message>
+ <message>
+ <source>&amp;Cancel</source>
+ <translation>&amp;СкаÑувати</translation>
+ </message>
+ <message>
+ <source>Key Generation Failed</source>
+ <translation>Збій генерації ключа</translation>
+ </message>
+ <message>
+ <source>Choose Private Key File Name</source>
+ <translation>Оберіть назву файлу приватного ключа</translation>
+ </message>
+ <message>
+ <source>Cannot Save Key File</source>
+ <translation>Ðеможливо зберегти файл ключа</translation>
+ </message>
+ <message>
+ <source>Failed to create directory: &apos;%1&apos;.</source>
+ <translation>Збій ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÐ¸ &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <source>Cannot Save Private Key File</source>
+ <translation>Ðеможливо зберегти файл приватного ключа</translation>
+ </message>
+ <message>
+ <source>The private key file could not be saved: %1</source>
+ <translation>Ðе вдалоÑÑŒ зберегти файл приватного ключа: %1</translation>
+ </message>
+ <message>
+ <source>Cannot Save Public Key File</source>
+ <translation>Ðеможливо зберегти файл публічного ключа</translation>
+ </message>
+ <message>
+ <source>The public key file could not be saved: %1</source>
+ <translation>Ðе вдалоÑÑŒ зберегти файл публічного ключа: %1</translation>
+ </message>
+</context>
+<context>
+ <name>AddNewAVDDialog</name>
+ <message>
+ <source>Create new AVD</source>
+ <translation>Створити новий AVD</translation>
+ </message>
+ <message>
+ <source>Name:</source>
+ <translation>Ðазва:</translation>
+ </message>
+ <message>
+ <source>Kit:</source>
+ <translation>ІнÑтрументарій:</translation>
+ </message>
+ <message>
+ <source>SD card size:</source>
+ <translation>Розмір карти SD:</translation>
+ </message>
+ <message>
+ <source> MiB</source>
+ <translation> Мб</translation>
+ </message>
+</context>
+<context>
+ <name>AndroidCreateKeystoreCertificate</name>
+ <message>
+ <source>Create a keystore and a certificate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Keystore</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Password:</source>
+ <translation>Пароль:</translation>
+ </message>
+ <message>
+ <source>Retype password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Show password</source>
+ <translation>Показувати пароль</translation>
+ </message>
+ <message>
+ <source>&lt;span style=&quot; color:#ff0000;&quot;&gt;Password is too short&lt;/span&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Certificate</source>
+ <translation>Сертифікат</translation>
+ </message>
+ <message>
+ <source>Alias name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Aaaaaaaa; </source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Keysize:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Validity (days):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Certificate Distinguished Names</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>First and last name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Organizational unit (e.g. Necessitas):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Organization (e.g. KDE):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>City or locality:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>State or province:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Two-letter country code for this unit (e.g. RO):</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&gt;AA; </source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AndroidDeployStepWidget</name>
+ <message>
+ <source>Form</source>
+ <translation>Форма</translation>
+ </message>
+ <message>
+ <source>Use Qt libraries from device</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Push local Qt libraries to device.
+You must have Qt libraries compiled for that platform</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Deploy local Qt libraries</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Check this option to force the application to use local Qt libraries instead of system libraries.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Use local Qt libraries</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Edit Rules File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Choose and install Ministro system wide Qt shared libraries.
+This option is useful when you want to try your application on devices which don&apos;t have Android Market (e.g. Android Emulator).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Install Ministro, system-wide Qt shared libraries installer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Choose APK</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AndroidPackageCreationWidget</name>
+ <message>
+ <source>Manifest</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Android target SDK:&lt;/b&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Package name:&lt;/b&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;p align=&quot;justify&quot;&gt;Please choose a valid package name for your application (e.g. &quot;org.example.myapplication&quot;).&lt;/p&gt;
+&lt;p align=&quot;justify&quot;&gt;Packages are usually defined using a hierarchical naming pattern, with levels in the hierarchy separated by periods (.) (pronounced &quot;dot&quot;).&lt;/p&gt;
+&lt;p align=&quot;justify&quot;&gt;In general, a package name begins with the top level domain name of the organization and then the organization&apos;s domain and then any subdomains listed in reverse order. The organization can then choose a specific name for their package. Package names should be all lowercase characters whenever possible.&lt;/p&gt;
+&lt;p align=&quot;justify&quot;&gt;Complete conventions for disambiguating package names and rules for naming packages when the Internet domain name cannot be directly used as a package name are described in section 7.7 of the Java Language Specification.&lt;/p&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Version code:&lt;/b&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Version name:&lt;/b&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>1.0.0</source>
+ <translation>1.0.0</translation>
+ </message>
+ <message>
+ <source>Application</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Application name:&lt;/b&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Run:&lt;/b&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Application icon:&lt;/b&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Select low dpi icon</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Select medium dpi icon</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Select high dpi icon</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Permissions</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add</source>
+ <translation>Додати</translation>
+ </message>
+ <message>
+ <source>Remove</source>
+ <translation>Видалити</translation>
+ </message>
+ <message>
+ <source>Save</source>
+ <translation>Зберегти</translation>
+ </message>
+ <message>
+ <source>Discard</source>
+ <translation>Відкинути</translation>
+ </message>
+ <message>
+ <source>Name:</source>
+ <translation>Ðазва:</translation>
+ </message>
+ <message>
+ <source>Libraries</source>
+ <translation>Бібліотеки</translation>
+ </message>
+ <message>
+ <source>Automatically check required Qt libraries from compiled application</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Read information from application (must be compiled)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Required Qt libraries</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;center&gt;Prebundled libraries&lt;/center&gt;
+&lt;p align=&quot;justify&quot;&gt;Please be aware that the order is very important: If library &lt;i&gt;A&lt;/i&gt; depends on library &lt;i&gt;B&lt;/i&gt;, &lt;i&gt;B&lt;/i&gt; &lt;b&gt;must&lt;/b&gt; go before &lt;i&gt;A&lt;/i&gt;.&lt;/p&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Up</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Down</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Sign package</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Keystore:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Create</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Browse</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Open package location after is complete</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Certificate alias:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>AndroidSettingsWidget</name>
+ <message>
+ <source>Android Configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Android SDK location:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Browse</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Android NDK location:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Android NDK tool chain version:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ant location:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>ARM GDB location:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>ARM GDB server location:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>x86 GDB location:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>x86 GDB server location:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>OpenJDK location:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Start</source>
+ <translation>ЗапуÑтити</translation>
+ </message>
+ <message>
+ <source>AVD Manager</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>System/data partition size:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source> Mb</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Start Android AVD Manager</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add</source>
+ <translation>Додати</translation>
+ </message>
+ <message>
+ <source>Remove</source>
+ <translation>Видалити</translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::CheckOutDialog</name>
+ <message>
+ <source>Check Out</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Checkout comment:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Reserved</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Unreserved if already reserved</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Preserve file modification time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Use &amp;Hijacked file</source>
+ <extracomment>Hijack: Unset read-only flag without check-out. This is used for local changes which the user does not want to commit.</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::SettingsPage</name>
+ <message>
+ <source>Configuration</source>
+ <translation>КонфігураціÑ</translation>
+ </message>
+ <message>
+ <source>&amp;Command:</source>
+ <translation>Коман&amp;да:</translation>
+ </message>
+ <message>
+ <source>Diff</source>
+ <translation>ПорівнÑннÑ</translation>
+ </message>
+ <message>
+ <source>&amp;Graphical (Single file only)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;External</source>
+ <translation>Зо&amp;внішнє</translation>
+ </message>
+ <message>
+ <source>Arg&amp;uments:</source>
+ <translation>&amp;Ðргументи:</translation>
+ </message>
+ <message>
+ <source>Miscellaneous</source>
+ <translation>Різне</translation>
+ </message>
+ <message>
+ <source>&amp;History count:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Timeout:</source>
+ <translation>&amp;Ð§Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ:</translation>
+ </message>
+ <message>
+ <source>s</source>
+ <translation> Ñ</translation>
+ </message>
+ <message>
+ <source>&amp;Automatically check out files on edit</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Check this if you have a trigger that renames the activity automatically. You will not be prompted for activity name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Aut&amp;o assign activity names</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Prompt on check-in</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Di&amp;sable indexer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Index only VOBs:</source>
+ <extracomment>VOB: Versioned Object Base</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>VOBs list, separated by comma. Indexer will only traverse the specified VOBs. If left blank, all active VOBs will be indexed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>ClearCase</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::UndoCheckOut</name>
+ <message>
+ <source>Dialog</source>
+ <translation>Діалог</translation>
+ </message>
+ <message>
+ <source>The file was changed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Save copy of the file with a &apos;.keep&apos; extension</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::VersionSelector</name>
+ <message>
+ <source>Confirm Version to Check Out</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>There are multiple versions of &apos;%1&apos; which can be considered for checkout. Please select version to checkout:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Loaded Version</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Created by:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Created on:</source>
+ <extracomment>Date</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Version after &amp;update</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;b&gt;NOTE: You will not be able to check in this file without merging the changes (not supported by the plugin)&lt;/b&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Core::RemoveFileDialog</name>
+ <message>
+ <source>Remove File</source>
+ <translation>Видалити файл</translation>
+ </message>
+ <message>
+ <source>File to remove:</source>
+ <translation>Файл Ð´Ð»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ:</translation>
+ </message>
+ <message>
+ <source>&amp;Delete file permanently</source>
+ <translation>&amp;Видалити файл назавжди</translation>
+ </message>
+ <message>
+ <source>&amp;Remove from Version Control</source>
+ <translation>Видалити з &amp;контролю верÑій</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Internal::DeviceFactorySelectionDialog</name>
+ <message>
+ <source>Device Configuration Wizard Selection</source>
+ <translation>Вибір майÑтра конфігурації приÑтрою</translation>
+ </message>
+ <message>
+ <source>Available device types:</source>
+ <translation>ДоÑтупні типи приÑтроїв:</translation>
+ </message>
+ <message>
+ <source>Start Wizard</source>
+ <translation>ЗапуÑк майÑтра</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Internal::DeviceSettingsWidget</name>
+ <message>
+ <source>Linux Device Configurations</source>
+ <translation>Конфігурації Linux-приÑтроїв</translation>
+ </message>
+ <message>
+ <source>&amp;Device:</source>
+ <translation>&amp;ПриÑтрій:</translation>
+ </message>
+ <message>
+ <source>General</source>
+ <translation>Загальне</translation>
+ </message>
+ <message>
+ <source>&amp;Name:</source>
+ <translation>&amp;Ðазва:</translation>
+ </message>
+ <message>
+ <source>Type:</source>
+ <translation>Тип:</translation>
+ </message>
+ <message>
+ <source>Auto-detected:</source>
+ <translation>Ðвтовизначено:</translation>
+ </message>
+ <message>
+ <source>Current state:</source>
+ <translation>Поточний Ñтан:</translation>
+ </message>
+ <message>
+ <source>Type Specific</source>
+ <translation>Специфічно до типу</translation>
+ </message>
+ <message>
+ <source>&amp;Add...</source>
+ <translation>&amp;Додати...</translation>
+ </message>
+ <message>
+ <source>&amp;Remove</source>
+ <translation>&amp;Видалити</translation>
+ </message>
+ <message>
+ <source>Set As Default</source>
+ <translation>Ð’Ñтановити Ñк типову</translation>
+ </message>
+ <message>
+ <source>Yes (id is &quot;%1&quot;)</source>
+ <translation>Так (id &quot;%1&quot;)</translation>
+ </message>
+ <message>
+ <source>No</source>
+ <translation>ÐÑ–</translation>
+ </message>
+ <message>
+ <source>Remote Processes</source>
+ <translation>Віддалені процеÑи</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BarDescriptorFileImageWizardPage</name>
+ <message>
+ <source>WizardPage</source>
+ <translation>Сторінка майÑтра</translation>
+ </message>
+ <message>
+ <source>Icon:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Splash screens</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Landscape:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Portrait:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Images</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Images (*.jpg *.png)</source>
+ <translation>Ð—Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ (*.jpg *.png)</translation>
+ </message>
+ <message>
+ <source>&lt;font color=&quot;red&quot;&gt;Could not open &apos;%1&apos; for reading.&lt;/font&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;font color=&quot;red&quot;&gt;Incorrect icon size (%1x%2). The maximum size is %3x%4 pixels.&lt;/font&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;font color=&quot;red&quot;&gt;Incorrect landscape splash screen size (%1x%2). The maximum size is %3x%4 pixels.&lt;/font&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;font color=&quot;red&quot;&gt;Incorrect portrait splash screen size (%1x%2). The maximum size is %3x%4 pixels.&lt;/font&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeployConfigurationWidget</name>
+ <message>
+ <source>Packages to deploy:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeviceConfigurationWidget</name>
+ <message>
+ <source>&amp;Device name:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>IP or host name of the device</source>
+ <translation>IP або назва вузла приÑтрою</translation>
+ </message>
+ <message>
+ <source>Device &amp;password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Show password</source>
+ <translation>Показувати пароль</translation>
+ </message>
+ <message>
+ <source>Debug token:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Private key file:</source>
+ <translation>Файл приватного ключа:</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeviceConfigurationWizardSetupPage</name>
+ <message>
+ <source>WizardPage</source>
+ <translation>Сторінка майÑтра</translation>
+ </message>
+ <message>
+ <source>The name to identify this configuration:</source>
+ <translation>Ðазва Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— конфігурації:</translation>
+ </message>
+ <message>
+ <source>The device&apos;s host name or IP address:</source>
+ <translation>Ðазва вузла чи IP-адреÑа приÑтрою:</translation>
+ </message>
+ <message>
+ <source>Device password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Device type:</source>
+ <translation>Тип приÑтрою:</translation>
+ </message>
+ <message>
+ <source>Physical device</source>
+ <translation>Фізичний приÑтрій</translation>
+ </message>
+ <message>
+ <source>Simulator</source>
+ <translation>СимулÑтор</translation>
+ </message>
+ <message>
+ <source>Debug token:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Connection Details</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>BlackBerry Device</source>
+ <translation>ПриÑтрій BlackBerry</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeviceConfigurationWizardSshKeyPage</name>
+ <message>
+ <source>WizardPage</source>
+ <translation>Сторінка майÑтра</translation>
+ </message>
+ <message>
+ <source>Private key file:</source>
+ <translation>Файл приватного ключа:</translation>
+ </message>
+ <message>
+ <source>Public key file:</source>
+ <translation>Файл публічного ключа:</translation>
+ </message>
+ <message>
+ <source>Generate</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>SSH Key Setup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Please select an existing &lt;b&gt;4096&lt;/b&gt;-bit key or click &lt;b&gt;Generate&lt;/b&gt; to create a new one.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Key Generation Failed</source>
+ <translation>Збій генерації ключа</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryRunConfigurationWidget</name>
+ <message>
+ <source>Device:</source>
+ <translation>ПриÑтрій:</translation>
+ </message>
+ <message>
+ <source>Package:</source>
+ <translation>Пакунок:</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxBaseQtConfigWidget</name>
+ <message>
+ <source>SDK:</source>
+ <translation>SDK:</translation>
+ </message>
+</context>
+<context>
+ <name>RemoteLinuxCheckForFreeDiskSpaceStepWidget</name>
+ <message>
+ <source>Form</source>
+ <translation>Форма</translation>
+ </message>
+ <message>
+ <source>Remote path to check for free space:</source>
+ <translation>Віддалений шлÑÑ… Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ вільного проÑтору:</translation>
+ </message>
+ <message>
+ <source>Required disk space:</source>
+ <translation>Ðеобхідний диÑковий проÑÑ‚Ñ–Ñ€:</translation>
+ </message>
+</context>
+<context>
+ <name>Todo::Internal::KeywordDialog</name>
+ <message>
+ <source>Keyword</source>
+ <translation>Ключове Ñлово</translation>
+ </message>
+ <message>
+ <source>Icon</source>
+ <translation>Піктограма</translation>
+ </message>
+ <message>
+ <source>Color</source>
+ <translation>Колір</translation>
+ </message>
+ <message>
+ <source>errorLabel</source>
+ <translation>мітка помилки</translation>
+ </message>
+ <message>
+ <source>Keyword cannot be empty, contain spaces, colons, slashes or asterisks.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>There is already a keyword with this name.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QmlDebug::QmlOutputParser</name>
+ <message>
+ <source>The port seems to be in use.</source>
+ <extracomment>Error message shown after &apos;Could not connect ... debugger:&quot;</extracomment>
+ <translation>ЗдаєтьÑÑ, порт вже викориÑтовуєтьÑÑ.</translation>
+ </message>
+ <message>
+ <source>The application is not set up for QML/JS debugging.</source>
+ <extracomment>Error message shown after &apos;Could not connect ... debugger:&quot;</extracomment>
+ <translation>Програму не налаштовано Ð´Ð»Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ QML/JS.</translation>
+ </message>
+</context>
+<context>
+ <name>QSsh::Internal::SftpChannelPrivate</name>
+ <message>
+ <source>Server could not start SFTP subsystem.</source>
+ <translation>Серверу не вдалоÑÑŒ запуÑтити підÑиÑтему SFTP.</translation>
+ </message>
+ <message>
+ <source>Unexpected packet of type %1.</source>
+ <translation>Ðеочікуваний пакет типу %1.</translation>
+ </message>
+ <message>
+ <source>Protocol version mismatch: Expected %1, got %2</source>
+ <translation>ВерÑÑ–Ñ— протоколів не збігаютьÑÑ: ОчікувалаÑÑŒ %1, отримана %2</translation>
+ </message>
+ <message>
+ <source>Unknown error.</source>
+ <translation>Ðевідома помилка.</translation>
+ </message>
+ <message>
+ <source>Created remote directory &apos;%1&apos;.</source>
+ <translation>Створено віддалену теку &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <source>Remote directory &apos;%1&apos; already exists.</source>
+ <translation>Віддалена тека &apos;%1&apos; вже Ñ–Ñнує.</translation>
+ </message>
+ <message>
+ <source>Error creating directory &apos;%1&apos;: %2</source>
+ <translation>Помилка ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÐ¸ &apos;%1&apos;: %2</translation>
+ </message>
+ <message>
+ <source>Could not open local file &apos;%1&apos;: %2</source>
+ <translation>Ðе вдалоÑÑŒ відкрити локальний файл &apos;%1&apos;: %2</translation>
+ </message>
+ <message>
+ <source>Remote directory could not be opened for reading.</source>
+ <translation>Ðе вдалоÑÑŒ відкрити віддалену теку Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ.</translation>
+ </message>
+ <message>
+ <source>Failed to list remote directory contents.</source>
+ <translation>Збій Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð·Ð¼Ñ–Ñту віддаленої теки.</translation>
+ </message>
+ <message>
+ <source>Failed to close remote directory.</source>
+ <translation>Збій Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ñ— теки.</translation>
+ </message>
+ <message>
+ <source>Failed to open remote file for reading.</source>
+ <translation>Збій Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ð³Ð¾ файлу Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ.</translation>
+ </message>
+ <message>
+ <source>Failed to retrieve information on the remote file (&apos;stat&apos; failed).</source>
+ <translation>Збій Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ— про віддалений файл (збій виклику &apos;stat&apos;).</translation>
+ </message>
+ <message>
+ <source>Failed to read remote file.</source>
+ <translation>Збій Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ð³Ð¾ файлу.</translation>
+ </message>
+ <message>
+ <source>Failed to close remote file.</source>
+ <translation>Збій Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ð³Ð¾ файлу.</translation>
+ </message>
+ <message>
+ <source>Failed to open remote file for writing.</source>
+ <translation>Збій Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ð³Ð¾ файлу Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу.</translation>
+ </message>
+ <message>
+ <source>Failed to write remote file.</source>
+ <translation>Збій запиÑу до віддаленого файлу.</translation>
+ </message>
+ <message>
+ <source>Cannot append to remote file: Server does not support the file size attribute.</source>
+ <translation>Ðеможливо доповнити віддалений файл: Сервер не підтримує атрибут &quot;розмір файлу&quot;.</translation>
+ </message>
+ <message>
+ <source>SFTP channel closed unexpectedly.</source>
+ <translation>Канал SFTP було неÑподівано закрито.</translation>
+ </message>
+ <message>
+ <source>Server could not start session: %1</source>
+ <translation>Серверу не вдалоÑÑŒ розпочати ÑеÑÑ–ÑŽ: %1</translation>
+ </message>
+ <message>
+ <source>Error reading local file: %1</source>
+ <translation>Помилка Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ файлу: %1</translation>
+ </message>
+</context>
+<context>
+ <name>QSsh::SftpFileSystemModel</name>
+ <message>
+ <source>File Type</source>
+ <translation>Типи файлу</translation>
+ </message>
+ <message>
+ <source>File Name</source>
+ <translation>Ім&apos;Ñ Ñ„Ð°Ð¹Ð»Ñƒ</translation>
+ </message>
+ <message>
+ <source>Error getting &apos;stat&apos; info about &apos;%1&apos;: %2</source>
+ <translation>Помилка Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ— &apos;stat&apos; про &apos;%1&apos;: %2</translation>
+ </message>
+ <message>
+ <source>Error listing contents of directory &apos;%1&apos;: %2</source>
+ <translation>Помилка Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð·Ð¼Ñ–Ñту теки &apos;%1&apos;: %2</translation>
+ </message>
+</context>
+<context>
+ <name>QSsh::Internal::SshChannelManager</name>
+ <message>
+ <source>Invalid channel id %1</source>
+ <translation>Ðеправильний ідентифікатор каналу %1</translation>
+ </message>
+</context>
+<context>
+ <name>QSsh::Internal::SshConnectionPrivate</name>
+ <message>
+ <source>SSH Protocol error: %1</source>
+ <translation>Помилка протоколу SSH: %1</translation>
+ </message>
+ <message>
+ <source>Botan library exception: %1</source>
+ <translation>Виключна ÑÐ¸Ñ‚ÑƒÐ°Ñ†Ñ–Ñ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¸ Botan: %1</translation>
+ </message>
+ <message numerus="yes">
+ <source>Server identification string is %n characters long, but the maximum allowed length is 255.</source>
+ <translation>
+ <numerusform>РÑдок ідентифікації Ñервера має довжину %n Ñимвол при дозволеному макÑимумі в 255.</numerusform>
+ <numerusform>РÑдок ідентифікації Ñервера має довжину %n Ñимволи при дозволеному макÑимумі в 255.</numerusform>
+ <numerusform>РÑдок ідентифікації Ñервера має довжину %n Ñимволів при дозволеному макÑимумі в 255.</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Server identification string contains illegal NUL character.</source>
+ <translation>РÑдок ідентифікації Ñервера міÑтить недопуÑтимий Ñимвол NUL.</translation>
+ </message>
+ <message>
+ <source>Server Identification string &apos;%1&apos; is invalid.</source>
+ <translation>РÑдок ідентифікації Ñервера &apos;%1&apos; неправильний.</translation>
+ </message>
+ <message>
+ <source>Server protocol version is &apos;%1&apos;, but needs to be 2.0 or 1.99.</source>
+ <translation>ВерÑÑ–Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ñƒ Ñервера &apos;%1&apos; при необхідній 2.0 або 1.99.</translation>
+ </message>
+ <message>
+ <source>Server identification string is invalid (missing carriage return).</source>
+ <translation>РÑдок ідентифікації Ñервера неправильний (бракує Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ ÐºÐ°Ñ€ÐµÑ‚ÐºÐ¸).</translation>
+ </message>
+ <message>
+ <source>Server reports protocol version 1.99, but sends data before the identification string, which is not allowed.</source>
+ <translation>Сервер повідомлÑÑ” про протокол верÑÑ–Ñ— 1.99, але надÑилає дані до Ñ€Ñдка ідентифікації, що не дозволено.</translation>
+ </message>
+ <message>
+ <source>Unexpected packet of type %1.</source>
+ <translation>Ðеочікуваний пакет типу %1.</translation>
+ </message>
+ <message>
+ <source>Password expired.</source>
+ <translation>Термін дії Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð²Ð¸Ñ‡ÐµÑ€Ð¿Ð°Ð½Ð¾.</translation>
+ </message>
+ <message>
+ <source>Server rejected password.</source>
+ <translation>Сервер відхилив пароль.</translation>
+ </message>
+ <message>
+ <source>Server rejected key.</source>
+ <translation>Сервер відхилив ключ.</translation>
+ </message>
+ <message>
+ <source>The server sent an unexpected SSH packet of type SSH_MSG_UNIMPLEMENTED.</source>
+ <translation>Сервер надіÑлав неочікуваний пакет SSH типу SSH_MSG_UNIMPLEMENTED.</translation>
+ </message>
+ <message>
+ <source>Server closed connection: %1</source>
+ <translation>Сервер закрив з&apos;єднаннÑ: %1</translation>
+ </message>
+ <message>
+ <source>Connection closed unexpectedly.</source>
+ <translation>З&apos;Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð±ÑƒÐ»Ð¾ неÑподівано закрито.</translation>
+ </message>
+ <message>
+ <source>Timeout waiting for reply from server.</source>
+ <translation>Перевищено Ñ‡Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ñ– від Ñервера.</translation>
+ </message>
+ <message>
+ <source>No private key file given.</source>
+ <translation>Файл приватного ключа не надано.</translation>
+ </message>
+ <message>
+ <source>Private key file error: %1</source>
+ <translation>Помилка файлу приватного ключа: %1</translation>
+ </message>
+</context>
+<context>
+ <name>QSsh::Ssh</name>
+ <message>
+ <source>Password Required</source>
+ <translation>Ðеобхідний пароль</translation>
+ </message>
+ <message>
+ <source>Please enter the password for your private key.</source>
+ <translation>Будь лаÑка, введіть пароль до вашого приватного ключа.</translation>
+ </message>
+</context>
+<context>
+ <name>QSsh::Internal::SshRemoteProcessPrivate</name>
+ <message>
+ <source>Process killed by signal</source>
+ <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ Ð²Ð±Ð¸Ñ‚Ð¾ Ñигналом</translation>
+ </message>
+ <message>
+ <source>Server sent invalid signal &apos;%1&apos;</source>
+ <translation>Сервер надіÑлав неправильний Ñигнал &apos;%1&apos;</translation>
+ </message>
+</context>
+<context>
+ <name>Utils::BaseTreeView</name>
+ <message>
+ <source>Adjust Column Widths to Contents</source>
+ <translation>Підігнати ширину Ñтовпців до зміÑту</translation>
+ </message>
+</context>
+<context>
+ <name>Utils::ElfReader</name>
+ <message>
+ <source>&apos;%1&apos; is an invalid ELF object (%2)</source>
+ <translation>&apos;%1&apos; не є правильним об&apos;єктом ELF (%2)</translation>
+ </message>
+ <message>
+ <source>&apos;%1&apos; is not an ELF object (file too small)</source>
+ <translation>&apos;%1&apos; не є об&apos;єктом ELF (файл замалий)</translation>
+ </message>
+ <message>
+ <source>&apos;%1&apos; is not an ELF object</source>
+ <translation>&apos;%1&apos; не є об&apos;єктом ELF</translation>
+ </message>
+ <message>
+ <source>odd cpu architecture</source>
+ <translation>нетипова архітектура процеÑора</translation>
+ </message>
+ <message>
+ <source>odd endianess</source>
+ <translation>нетиповий порÑдок байтів</translation>
+ </message>
+ <message>
+ <source>unexpected e_shsize</source>
+ <translation>неÑподіваний e_shsize</translation>
+ </message>
+ <message>
+ <source>unexpected e_shentsize</source>
+ <translation>неÑподіваний e_shentsize</translation>
+ </message>
+ <message numerus="yes">
+ <source>announced %n sections, each %1 bytes, exceed file size</source>
+ <translation>
+ <numerusform>анонÑовано %n Ñекцію, довжиною %1 байт(ів), що перевищує розмір файлу</numerusform>
+ <numerusform>анонÑовано %n Ñекції, кожна в %1 байт(ів), що перевищує розмір файлу</numerusform>
+ <numerusform>анонÑовано %n Ñекцій, кожна в %1 байт(ів), що перевищує розмір файлу</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>string table seems to be at 0x%1</source>
+ <translation>Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ñимволів, здаєтьÑÑ, в 0x%1</translation>
+ </message>
+ <message>
+ <source>section name %1 of %2 behind end of file</source>
+ <translation>назва Ñекції %1 з %2 поза кінцем файлу</translation>
+ </message>
+</context>
+<context>
+ <name>ZeroConf</name>
+ <message>
+ <source>could not load native library</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>skipping over avahi compatibility lib (or obsolete mdnsd)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>*WARNING* detected an obsolete version of Apple Bonjour, either disable/uninstall it or upgrade it, otherwise zeroconf will fail</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Zeroconf could not load a valid library, failing.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Zeroconf giving up on non working %1 (%2).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Zeroconf has no valid library, aborting connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Zeroconf giving up on %1, switching to %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Zeroconf giving up on %1, no fallback provided, aborting connection.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Trying %1...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Zeroconf using %1 failed the initialization of the main library connection with error %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Zeroconf using %1 failed because no daemon is running.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Starting the Zeroconf daemon using %1 seems successful, continuing.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Zeroconf using %1 failed getProperty call with error %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Succeeded using %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>MainConnection could successfully create a connection using %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Zeroconf, unexpected start status, aborting.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Zeroconf detected an unexpected return status of handleEvent.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message numerus="yes">
+ <source>Zeroconf for [%1] accumulated %n consecutive errors, aborting.</source>
+ <translation type="unfinished">
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ <numerusform></numerusform>
+ </translation>
+ </message>
+</context>
+<context>
+ <name>ZeroConf::ServiceBrowser</name>
+ <message>
+ <source>Starting Zeroconf Browsing</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidConfigurations</name>
+ <message>
+ <source>Error Creating AVD</source>
+ <translation>Помилка ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ AVD</translation>
+ </message>
+ <message>
+ <source>Cannot create a new AVD. No sufficiently recent Android SDK available.
+Please install an SDK of at least API version %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Android</name>
+ <message>
+ <source>Android</source>
+ <translation>Android</translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidCreateKeystoreCertificate</name>
+ <message>
+ <source>&lt;span style=&quot; color:#ff0000;&quot;&gt;Password is too short&lt;/span&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;span style=&quot; color:#ff0000;&quot;&gt;Passwords don&apos;t match&lt;/span&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;span style=&quot; color:#00ff00;&quot;&gt;Password is ok&lt;/span&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Keystore file name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Keystore files (*.keystore *.jks)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error</source>
+ <translation>Помилка</translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidDeployConfiguration</name>
+ <message>
+ <source>Deploy to Android device</source>
+ <translation>Ð Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ð° приÑтрій Android</translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidDeployConfigurationFactory</name>
+ <message>
+ <source>Deploy on Android</source>
+ <translation>Ð Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ð° приÑтрій Android</translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidDeployStep</name>
+ <message>
+ <source>Deploy to Android device</source>
+ <extracomment>AndroidDeployStep default display name</extracomment>
+ <translation>Ð Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ð° приÑтрій Android</translation>
+ </message>
+ <message>
+ <source>Please wait, searching for a suitable device for target:%1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot deploy: no devices or emulators found for your package.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Package deploy: Running command &apos;%1 %2&apos;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Packaging error: Could not start command &apos;%1 %2&apos;. Reason: %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Packaging Error: Command &apos;%1 %2&apos; failed.</source>
+ <translation>Помилка пакуваннÑ: Збій команди &apos;%1 %2&apos;.</translation>
+ </message>
+ <message>
+ <source> Reason: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Exit code: %1</source>
+ <translation>Код завершеннÑ: %1</translation>
+ </message>
+ <message>
+ <source>Clean old Qt libraries</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Deploy Qt libraries. This may take some time, please wait.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Qt Android smart installer installation failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Installing package onto %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Package installation failed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Pulling files necessary for debugging.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidDeployStepFactory</name>
+ <message>
+ <source>Deploy to Android device or emulator</source>
+ <translation>Ð Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ð° приÑтрій Android або емулÑтор</translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidDeployStepWidget</name>
+ <message>
+ <source>&lt;b&gt;Deploy configurations&lt;/b&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Qt Android Smart Installer</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Android package (*.apk)</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidDevice</name>
+ <message>
+ <source>Run on Android</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Android</source>
+ <translation>Android</translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidDeviceFactory</name>
+ <message>
+ <source>Android Device</source>
+ <translation>ПриÑтрій Android</translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidManager</name>
+ <message>
+ <source>Error creating Android directory &apos;%1&apos;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>No Qt for Android SDKs were found.
+Please install at least one SDK.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Warning</source>
+ <translation>ПопередженнÑ</translation>
+ </message>
+ <message>
+ <source>Android files have been updated automatically</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error creating Android templates</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Can&apos;t parse &apos;%1&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Can&apos;t open &apos;%1&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidPackageCreationFactory</name>
+ <message>
+ <source>Create Android (.apk) Package</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidPackageCreationStep</name>
+ <message>
+ <source>Packaging for Android</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot create Android package: current build configuration is not Qt 4.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot find ELF information</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot find &apos;%1&apos;.
+Please make sure your application is built successfully and is selected in Application tab (&apos;Run option&apos;).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error</source>
+ <translation>Помилка</translation>
+ </message>
+ <message>
+ <source>Failed to run keytool</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Invalid password</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy Qt app &amp; libs to Android package ...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Can&apos;t copy gdbserver from &apos;%1&apos; to &apos;%2&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Creating package file ...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Signing package ...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Failed, try again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Release signed package created to %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Package created.</source>
+ <translation>Пакунок Ñтворено.</translation>
+ </message>
+ <message>
+ <source>Package deploy: Running command &apos;%1 %2&apos;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Packaging failed.</source>
+ <translation>Збій ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð°ÐºÑƒÐ½ÐºÑƒ.</translation>
+ </message>
+ <message>
+ <source>Packaging error: Could not start command &apos;%1 %2&apos;. Reason: %3</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Packaging Error: Command &apos;%1 %2&apos; failed.</source>
+ <translation>Помилка пакуваннÑ: Збій команди &apos;%1 %2&apos;.</translation>
+ </message>
+ <message>
+ <source> Reason: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Exit code: %1</source>
+ <translation>Код завершеннÑ: %1</translation>
+ </message>
+ <message>
+ <source>Keystore</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Keystore password:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Certificate</source>
+ <translation>Сертифікат</translation>
+ </message>
+ <message>
+ <source>Certificate password (%1):</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidPackageCreationWidget</name>
+ <message>
+ <source>Invalid Package Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The package name &apos;%1&apos; is not valid.
+Please choose a valid package name for your application (e.g. &quot;org.example.myapplication&quot;).</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Choose High DPI Icon</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>PNG images (*.png)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Choose Medium DPI Icon</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Choose Low DPI Icon</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt; Type or choose a permission &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Package configurations&lt;/b&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Select keystore file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Keystore files (*.keystore *.jks)</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidPackageInstallationFactory</name>
+ <message>
+ <source>Deploy to device</source>
+ <translation>Ð Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ð° приÑтрій</translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidPackageInstallationStep</name>
+ <message>
+ <source>Copy application data</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidQtVersion</name>
+ <message>
+ <source>Failed to detect the ABIs used by the Qt version.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Android</source>
+ <extracomment>Qt Version is meant for Android</extracomment>
+ <translation>Android</translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidRunConfiguration</name>
+ <message>
+ <source>Run on Android device</source>
+ <translation>ЗапуÑтити на приÑтрої Android</translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidRunControl</name>
+ <message>
+ <source>Starting remote process.</source>
+ <translation>ЗапуÑк віддаленого процеÑу.</translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidRunControlFactory</name>
+ <message>
+ <source>Run on Android device or emulator.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidRunner</name>
+ <message>
+ <source>
+
+&apos;%1&apos; died.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Failed to forward C++ debugging ports. Reason: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Failed to forward C++ debugging ports.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Failed to forward QML debugging ports. Reason: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Failed to forward QML debugging ports.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Failed to start the activity. Reason: %1.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Unable to start &apos;%1&apos;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot find %1 process.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>
+
+&apos;%1&apos; killed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidSettingsPage</name>
+ <message>
+ <source>Android Configurations</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AvdModel</name>
+ <message>
+ <source>AVD Name</source>
+ <extracomment>AVD - Android Virtual Device</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>AVD Target</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>CPU/ABI</source>
+ <translation>CPU/ABI</translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidSettingsWidget</name>
+ <message>
+ <source>Android SDK Folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&quot;%1&quot; does not seem to be an Android SDK top folder.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&quot;%1&quot; does not seem to be an Android NDK top folder.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Select Android SDK folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Select Android NDK folder</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Select ant Script</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Select GDB Executable</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Select GDB Server Android Executable</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Select OpenJDK Path</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidToolChainFactory</name>
+ <message>
+ <source>Android GCC</source>
+ <translation>Android GCC</translation>
+ </message>
+ <message>
+ <source>Android GCC for %1</source>
+ <translation>Android GCC Ð´Ð»Ñ %1</translation>
+ </message>
+ <message>
+ <source>Android GCC (%1-%2)</source>
+ <translation>Android GCC (%1-%2)</translation>
+ </message>
+</context>
+<context>
+ <name>Android::Internal::AndroidToolChainConfigWidget</name>
+ <message>
+ <source>NDK Root:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Bookmarks::Internal::BookmarkViewFactory</name>
+ <message>
+ <source>Alt+Meta+M</source>
+ <translation>Alt+Meta+M</translation>
+ </message>
+ <message>
+ <source>Alt+M</source>
+ <translation>Alt+M</translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::ActivitySelector</name>
+ <message>
+ <source>Select &amp;activity:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Add</source>
+ <translation>Додати</translation>
+ </message>
+ <message>
+ <source>Keep item activity</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::ClearCaseControl</name>
+ <message>
+ <source>&amp;Check Out</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Hijack</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::ClearCaseEditor</name>
+ <message>
+ <source>Annotate version &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::ClearCasePlugin</name>
+ <message>
+ <source>C&amp;learCase</source>
+ <translation>C&amp;learCase</translation>
+ </message>
+ <message>
+ <source>Check Out...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Check &amp;Out &quot;%1&quot;...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Meta+L,Meta+O</source>
+ <translation>Meta+L,Meta+O</translation>
+ </message>
+ <message>
+ <source>Alt+L,Alt+O</source>
+ <translation>Alt+L,Alt+O</translation>
+ </message>
+ <message>
+ <source>Check &amp;In...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Check &amp;In &quot;%1&quot;...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Meta+L,Meta+I</source>
+ <translation>Meta+L,Meta+I</translation>
+ </message>
+ <message>
+ <source>Alt+L,Alt+I</source>
+ <translation>Alt+L,Alt+I</translation>
+ </message>
+ <message>
+ <source>Undo Check Out</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Undo Check Out &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Meta+L,Meta+U</source>
+ <translation>Meta+L,Meta+U</translation>
+ </message>
+ <message>
+ <source>Alt+L,Alt+U</source>
+ <translation>Alt+L,Alt+U</translation>
+ </message>
+ <message>
+ <source>Undo Hijack</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Undo Hi&amp;jack &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Meta+L,Meta+R</source>
+ <translation>Meta+L,Meta+R</translation>
+ </message>
+ <message>
+ <source>Alt+L,Alt+R</source>
+ <translation>Alt+L,Alt+R</translation>
+ </message>
+ <message>
+ <source>Diff Current File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Diff &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Meta+L,Meta+D</source>
+ <translation>Meta+L,Meta+D</translation>
+ </message>
+ <message>
+ <source>Alt+L,Alt+D</source>
+ <translation>Alt+L,Alt+D</translation>
+ </message>
+ <message>
+ <source>History Current File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;History &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Meta+L,Meta+H</source>
+ <translation>Meta+L,Meta+H</translation>
+ </message>
+ <message>
+ <source>Alt+L,Alt+H</source>
+ <translation>Alt+L,Alt+H</translation>
+ </message>
+ <message>
+ <source>Annotate Current File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Annotate &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Meta+L,Meta+A</source>
+ <translation>Meta+L,Meta+A</translation>
+ </message>
+ <message>
+ <source>Alt+L,Alt+A</source>
+ <translation>Alt+L,Alt+A</translation>
+ </message>
+ <message>
+ <source>Add File...</source>
+ <translation>Додати файл...</translation>
+ </message>
+ <message>
+ <source>Add File &quot;%1&quot;</source>
+ <translation>Додати файл &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <source>Diff A&amp;ctivity...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Ch&amp;eck In Activity</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Chec&amp;k In Activity &quot;%1&quot;...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Update Index</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Update View</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>U&amp;pdate View &quot;%1&quot;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Check In All &amp;Files...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Meta+L,Meta+F</source>
+ <translation>Meta+L,Meta+F</translation>
+ </message>
+ <message>
+ <source>Alt+L,Alt+F</source>
+ <translation>Alt+L,Alt+F</translation>
+ </message>
+ <message>
+ <source>View &amp;Status</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Meta+L,Meta+S</source>
+ <translation>Meta+L,Meta+S</translation>
+ </message>
+ <message>
+ <source>Alt+L,Alt+S</source>
+ <translation>Alt+L,Alt+S</translation>
+ </message>
+ <message>
+ <source>Check In</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Diff Selected Files</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Undo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Redo</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Closing ClearCase Editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Do you want to check in the files?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The comment check failed. Do you want to check in the files?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Do you want to undo the check out of &apos;%1&apos;?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Undo Hijack File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Do you want to undo hijack of &apos;%1&apos;?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>External diff is required to compare multiple files.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Enter Activity</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Activity Name</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Check In Activity</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Another check in is currently being executed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>There are no modified files.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>No ClearCase executable specified.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>ClearCase Checkout</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>File is already checked out.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Set current activity failed: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Enter &amp;comment:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>ClearCase Add File %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>ClearCase Remove Element %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>This operation is irreversible. Are you sure?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>ClearCase Remove File %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>ClearCase Rename File %1 -&gt; %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Activity Headline</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Enter activity headline</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>CC Indexing</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::ClearCaseSubmitEditor</name>
+ <message>
+ <source>ClearCase Check In</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::ClearCaseSubmitEditorWidget</name>
+ <message>
+ <source>Chec&amp;k in even if identical to previous version</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Preserve file modification time</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Check In</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ClearCase::Internal::SettingsPageWidget</name>
+ <message>
+ <source>ClearCase Command</source>
+ <translation>Команда ClearCase</translation>
+ </message>
+ <message>
+ <source>In order to use External diff, &apos;diff&apos; command needs to be accessible.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source> DiffUtils is available for free download &lt;a href=&quot;http://gnuwin32.sourceforge.net/packages/diffutils.htm&quot;&gt;here&lt;/a&gt;. Please extract it to a directory in your PATH.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QApplication</name>
+ <message>
+ <source>Ninja (%1)</source>
+ <translation>Ninja (%1)</translation>
+ </message>
+ <message>
+ <source>NMake Generator (%1)</source>
+ <translation>Генератор Ð´Ð»Ñ NMake (%1)</translation>
+ </message>
+ <message>
+ <source>MinGW Generator (%1)</source>
+ <translation>Генератор Ð´Ð»Ñ MinGW (%1)</translation>
+ </message>
+ <message>
+ <source>Unix Generator (%1)</source>
+ <translation>Генератор Ð´Ð»Ñ Unix (%1)</translation>
+ </message>
+</context>
+<context>
+ <name>CMakeProjectManager::Internal::ChooseCMakePage</name>
+ <message>
+ <source>cmake Executable:</source>
+ <translation>Виконуваний модуль cmake:</translation>
+ </message>
+ <message>
+ <source>Choose Cmake Executable</source>
+ <translation>Виберіть виконуваний модуль Cmake</translation>
+ </message>
+ <message>
+ <source>The cmake executable is valid.</source>
+ <translation>Виконуваний модуль cmake правильний.</translation>
+ </message>
+ <message>
+ <source>Please specify the path to the cmake executable. No cmake executable was found in the path.</source>
+ <translation>Будь лаÑка, вкажіть шлÑÑ… до виконуваного Ð¼Ð¾Ð´ÑƒÐ»Ñ cmake. Виконуваний модуль cmake не знайдено в PATH.</translation>
+ </message>
+ <message>
+ <source> The cmake executable (%1) does not exist.</source>
+ <translation> Виконуваний модуль cmake (%1) не Ñ–Ñнує.</translation>
+ </message>
+ <message>
+ <source> The path %1 is not a executable.</source>
+ <translation> ШлÑÑ… %1 не Ñ” виконуваним файлом.</translation>
+ </message>
+ <message>
+ <source> The path %1 is not a valid cmake.</source>
+ <translation> ШлÑÑ… %1 не вказує на правильний cmake.</translation>
+ </message>
+</context>
+<context>
+ <name>Core::Internal::OpenEditorsViewFactory</name>
+ <message>
+ <source>Meta+O</source>
+ <translation>Meta+O</translation>
+ </message>
+ <message>
+ <source>Alt+O</source>
+ <translation>Alt+O</translation>
+ </message>
+</context>
+<context>
+ <name>Core::IVersionControl</name>
+ <message>
+ <source>Open with VCS (%1)</source>
+ <translation>Відкрити за допомогою VCS (%1)</translation>
+ </message>
+</context>
+<context>
+ <name>CppEditor::Internal::FunctionDeclDefLink</name>
+ <message>
+ <source>Target file was changed, could not apply changes</source>
+ <translation>Ðе вдалоÑÑŒ заÑтоÑувати зміни, оÑкільки цільовий файл було змінено</translation>
+ </message>
+ <message>
+ <source>Apply changes to definition</source>
+ <translation>ЗаÑтоÑувати зміни до визначеннÑ</translation>
+ </message>
+ <message>
+ <source>Apply changes to declaration</source>
+ <translation>ЗаÑтоÑувати зміни до оголошеннÑ</translation>
+ </message>
+ <message>
+ <source>Apply Function Signature Changes</source>
+ <translation>ЗаÑтоÑувати зміни Ñигнатури функції</translation>
+ </message>
+</context>
+<context>
+ <name>CPlusplus::CheckSymbols</name>
+ <message>
+ <source>Only virtual methods can be marked `override&apos;</source>
+ <translation>Лише віртуальні методи можуть бути позначені Ñк `override&apos;</translation>
+ </message>
+ <message>
+ <source>Only virtual methods can be marked `final&apos;</source>
+ <translation>Лише віртуальні методи можуть бути позначені Ñк `final&apos;</translation>
+ </message>
+ <message>
+ <source>Too few arguments</source>
+ <translation>Замало аргументів</translation>
+ </message>
+ <message>
+ <source>Too many arguments</source>
+ <translation>Забагато аргументів</translation>
+ </message>
+</context>
+<context>
+ <name>CPlusPlus::CheckSymbols</name>
+ <message>
+ <source>Expected a namespace-name</source>
+ <translation>ОчікувалаÑÑŒ назва проÑтору імен</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::BreakTreeView</name>
+ <message>
+ <source>Delete Breakpoint</source>
+ <translation>Видалити точку перепину</translation>
+ </message>
+ <message>
+ <source>Delete All Breakpoints</source>
+ <translation>Видалити уÑÑ– точки перепину</translation>
+ </message>
+ <message>
+ <source>Delete Breakpoints of &quot;%1&quot;</source>
+ <translation>Видалити точки перепину з &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <source>Delete Breakpoints of File</source>
+ <translation>Видалити точки перепину з файлу</translation>
+ </message>
+ <message>
+ <source>Adjust Column Widths to Contents</source>
+ <translation>Підігнати ширину Ñтовпців до зміÑту</translation>
+ </message>
+ <message>
+ <source>Edit Breakpoint...</source>
+ <translation>Редагувати точку перепину...</translation>
+ </message>
+ <message>
+ <source>Associate Breakpoint With All Threads</source>
+ <translation>ЗіÑтавити точку перепину з уÑіма нитками</translation>
+ </message>
+ <message>
+ <source>Associate Breakpoint With Thread %1</source>
+ <translation>ЗіÑтавити точку перепину з ниткою %1</translation>
+ </message>
+ <message>
+ <source>Synchronize Breakpoints</source>
+ <translation>Синхронізувати точки перепину</translation>
+ </message>
+ <message>
+ <source>Disable Selected Breakpoints</source>
+ <translation>Вимкнути виділені точки перепину</translation>
+ </message>
+ <message>
+ <source>Enable Selected Breakpoints</source>
+ <translation>Увімкнути виділені точки перепину</translation>
+ </message>
+ <message>
+ <source>Disable Breakpoint</source>
+ <translation>Вимкнути точку перепину</translation>
+ </message>
+ <message>
+ <source>Enable Breakpoint</source>
+ <translation>Увімкнути точку перепину</translation>
+ </message>
+ <message>
+ <source>Add Breakpoint...</source>
+ <translation>Додати точку перепину...</translation>
+ </message>
+ <message>
+ <source>Add Breakpoint</source>
+ <translation>Додати точку перепину</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::StartApplicationDialog</name>
+ <message>
+ <source>Start Debugger</source>
+ <translation>ЗапуÑтити зневаджувач</translation>
+ </message>
+ <message>
+ <source>Select Executable</source>
+ <translation>Виберіть виконуваний модуль</translation>
+ </message>
+ <message>
+ <source>Server port:</source>
+ <translation>Порт Ñервера:</translation>
+ </message>
+ <message>
+ <source>Select Working Directory</source>
+ <translation>Оберіть робочу теку</translation>
+ </message>
+ <message>
+ <source>Select Server Start Script</source>
+ <translation>Оберіть Ñкрипт запуÑку Ñервера</translation>
+ </message>
+ <message>
+ <source>This option can be used to point to a script that will be used to start a debug server. If the field is empty, Qt Creator&apos;s default methods to set up debug servers will be used.</source>
+ <translation>Ð¦Ñ Ð¾Ð¿Ñ†Ñ–Ñ Ð¼Ð¾Ð¶Ðµ бути вжита, щоб вказати Ñкрипт, що буде виконаний Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку Ñервера зневадженнÑ. Якщо це поле порожнє, будуть викориÑтані Ñтандартні методи Qt Creator Ð´Ð»Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñерверів зневадженнÑ.</translation>
+ </message>
+ <message>
+ <source>&amp;Server start script:</source>
+ <translation>&amp;Скрипт запуÑку Ñервера:</translation>
+ </message>
+ <message>
+ <source>Select Location of Debugging Information</source>
+ <translation>Оберіть Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¾Ñ— інформації</translation>
+ </message>
+ <message>
+ <source>Base path for external debug information and debug sources. If empty, $SYSROOT/usr/lib/debug will be chosen.</source>
+ <translation>Базовий шлÑÑ… до зовнішньої зневаджувальної інформації та зневаджувального коду. Якщо порожнє, то буде викориÑтовувати $SYSROOT/usr/lib/debug.</translation>
+ </message>
+ <message>
+ <source>&amp;Kit:</source>
+ <translation>&amp;ІнÑтрументарій:</translation>
+ </message>
+ <message>
+ <source>Local &amp;executable:</source>
+ <translation>Локальний виконуваний &amp;модуль:</translation>
+ </message>
+ <message>
+ <source>Command line &amp;arguments:</source>
+ <translation>&amp;Ðргументи команди:</translation>
+ </message>
+ <message>
+ <source>&amp;Working directory:</source>
+ <translation>&amp;Робоча тека:</translation>
+ </message>
+ <message>
+ <source>Run in &amp;terminal:</source>
+ <translation>ЗапуÑкати в &amp;терміналі:</translation>
+ </message>
+ <message>
+ <source>Break at &quot;&amp;main&quot;:</source>
+ <translation>&amp;ЗупинитиÑÑŒ в &apos;main&apos;:</translation>
+ </message>
+ <message>
+ <source>Debug &amp;information:</source>
+ <translation>Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð·Ð½ÐµÐ²Ð°Ð´&amp;женнÑ:</translation>
+ </message>
+ <message>
+ <source>&amp;Recent:</source>
+ <translation>&amp;Ðещодавні:</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::DebuggerKitConfigWidget</name>
+ <message>
+ <source>Manage...</source>
+ <translation>УправліннÑ...</translation>
+ </message>
+ <message>
+ <source>The debugger to use for this kit.</source>
+ <translation>Зневаджувач Ð´Ð»Ñ Ð²Ð¶Ð¸Ð²Ð°Ð½Ð½Ñ Ð· цим інÑтрументарієм.</translation>
+ </message>
+ <message>
+ <source>Auto-detect</source>
+ <translation>Ðвто-визначити</translation>
+ </message>
+ <message>
+ <source>Edit...</source>
+ <translation>Редагувати...</translation>
+ </message>
+ <message>
+ <source>Debugger:</source>
+ <translation>Зневаджувач:</translation>
+ </message>
+ <message>
+ <source>Debugger for &quot;%1&quot;</source>
+ <translation>Зневаджувач Ð´Ð»Ñ &quot;%1&quot;</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::DebuggerKitConfigDialog</name>
+ <message>
+ <source>&amp;Engine:</source>
+ <translation>&amp;Рушій:</translation>
+ </message>
+ <message>
+ <source>&amp;Binary:</source>
+ <translation>&amp;Виконуваний модуль:</translation>
+ </message>
+ <message>
+ <source>64-bit version</source>
+ <translation>64-бітна верÑÑ–Ñ</translation>
+ </message>
+ <message>
+ <source>32-bit version</source>
+ <translation>32-бітна верÑÑ–Ñ</translation>
+ </message>
+ <message>
+ <source>&lt;html&gt;&lt;body&gt;&lt;p&gt;Specify the path to the &lt;a href=&quot;%1&quot;&gt;Windows Console Debugger executable&lt;/a&gt; (%2) here.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <extracomment>Label text for path configuration. %2 is &quot;x-bit version&quot;.</extracomment>
+ <translation>&lt;html&gt;&lt;body&gt;&lt;p&gt;Вкажіть тут шлÑÑ… до &lt;a href=&quot;%1&quot;&gt;виконуваного Ð¼Ð¾Ð´ÑƒÐ»Ñ Windows Console Debugger&lt;/a&gt; (%2).&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::DebuggerKitInformation</name>
+ <message>
+ <source>No debugger set up.</source>
+ <translation>Зневаджувач не задано.</translation>
+ </message>
+ <message>
+ <source>Debugger &apos;%1&apos; not found.</source>
+ <translation>Зневаджувач &apos;%1&apos; не знайдено.</translation>
+ </message>
+ <message>
+ <source>Debugger &apos;%1&apos; not executable.</source>
+ <translation>Зневаджувач &apos;%1&apos; не є виконуваним модулем.</translation>
+ </message>
+ <message>
+ <source>The debugger location must be given as an absolute path (%1).</source>
+ <translation>Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÑƒÐ²Ð°Ñ‡Ð° повинне бути вказане Ñк абÑолютний шлÑÑ… (%1).</translation>
+ </message>
+ <message>
+ <source>%1 &lt;None&gt;</source>
+ <translation>%1 &lt;Ðемає&gt;</translation>
+ </message>
+ <message>
+ <source>%1 using &quot;%2&quot;</source>
+ <translation>%1 викориÑтовуючи &quot;%2&quot;</translation>
+ </message>
+ <message>
+ <source>Debugger</source>
+ <translation>Зневаджувач</translation>
+ </message>
+ <message>
+ <source>GDB Engine</source>
+ <translation>Рушій GDB</translation>
+ </message>
+ <message>
+ <source>CDB Engine</source>
+ <translation>Рушій CDB</translation>
+ </message>
+ <message>
+ <source>LLDB Engine</source>
+ <translation>Рушій LLDB</translation>
+ </message>
+ <message>
+ <source>No kit found.</source>
+ <translation>ІнÑтрументарій не знайдено.</translation>
+ </message>
+</context>
+<context>
+ <name>DeviceProcessesDialog</name>
+ <message>
+ <source>&amp;Attach to Process</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>DebuggerPlugin</name>
+ <message>
+ <source>Debug</source>
+ <translation>ЗневадженнÑ</translation>
+ </message>
+ <message>
+ <source>Unable to create a debugger engine of the type &apos;%1&apos;</source>
+ <translation>Ðеможливо Ñтворити рушій Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ñƒ &apos;%1&apos;</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::GdbAbstractPlainEngine</name>
+ <message>
+ <source>Starting executable failed:
+</source>
+ <translation>Збій запуÑку виконуваного модулÑ:
+</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::GdbAttachEngine</name>
+ <message>
+ <source>Attached to process %1.</source>
+ <translation>Під&apos;єднано до процеÑу %1.</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::DebuggerCore</name>
+ <message>
+ <source>Open Qt Options</source>
+ <translation>Відкрити опції Qt</translation>
+ </message>
+ <message>
+ <source>Turn off Helper Usage</source>
+ <translation>Вимкнути викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð¾Ð¼Ñ–Ñ‡Ð½Ð¸ÐºÐ°</translation>
+ </message>
+ <message>
+ <source>Continue Anyway</source>
+ <translation>Ð’Ñе одно продовжити</translation>
+ </message>
+ <message>
+ <source>Debugging Helper Missing</source>
+ <translation>ВідÑутній помічник зневадженнÑ</translation>
+ </message>
+ <message>
+ <source>The debugger could not load the debugging helper library.</source>
+ <translation>Зневаджувачу не вдалоÑÑŒ завантажити бібліотеку помічника зневадженнÑ.</translation>
+ </message>
+ <message>
+ <source>The debugging helper is used to nicely format the values of some Qt and Standard Library data types. It must be compiled for each used Qt version separately. In the Qt Creator Build and Run preferences page, select a Qt version, expand the Details section and click Build All.</source>
+ <translation>Помічник Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð·Ð°ÑтоÑовуєтьÑÑ Ð´Ð»Ñ Ð·Ñ€ÑƒÑ‡Ð½Ð¾Ð³Ð¾ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´ÐµÑких типів даних Qt та Ñтандартної бібліотеки. Він має бути Ñкомпільований окремо Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ñ— верÑÑ–Ñ— Qt. Ðа Ñторінці налаштувань &quot;Збірка та запуÑк&quot;, оберіть верÑÑ–ÑŽ Qt, розгорніть розділ &quot;Детально&quot; та клацніть &quot;Зібрати вÑе&quot;.</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::GdbCoreEngine</name>
+ <message>
+ <source>Error Loading Core File</source>
+ <translation>Помилка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ Core</translation>
+ </message>
+ <message>
+ <source>The specified file does not appear to be a core file.</source>
+ <translation>Вказаний файл не є файлом core.</translation>
+ </message>
+ <message>
+ <source>Error Loading Symbols</source>
+ <translation>Помилка Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñимволів</translation>
+ </message>
+ <message>
+ <source>No executable to load symbols from specified core.</source>
+ <translation>ВідÑутній виконуваний модуль, щоб завантажити Ñимволи Ð´Ð»Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾Ð³Ð¾ core.</translation>
+ </message>
+ <message>
+ <source>Symbols found.</source>
+ <translation>Символи знайдено.</translation>
+ </message>
+ <message>
+ <source>No symbols found in core file &lt;i&gt;%1&lt;/i&gt;.</source>
+ <translation>Ðе знайдено Ñимволів в файлі core &lt;i&gt;%1&lt;/i&gt;.</translation>
+ </message>
+ <message>
+ <source>This can be caused by a path length limitation in the core file.</source>
+ <translation>Це могло трапитиÑÑŒ через Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° довжину шлÑху в файлі core.</translation>
+ </message>
+ <message>
+ <source>Try to specify the binary using the &lt;i&gt;Debug-&gt;Start Debugging-&gt;Attach to Core&lt;/i&gt; dialog.</source>
+ <translation>Спробуйте вказати виконуваний модуль, викориÑтовуючи діалог &lt;i&gt;ЗневадженнÑ-&gt;Почати зневадженнÑ-&gt;Під&apos;єднатиÑÑŒ до Core&lt;/i&gt;.</translation>
+ </message>
+ <message>
+ <source>Attached to core.</source>
+ <translation>Під&apos;єднано до core.</translation>
+ </message>
+ <message>
+ <source>Attach to core &quot;%1&quot; failed:
+</source>
+ <translation>Збій під&apos;Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð´Ð¾ core &quot;%1:
+</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::GdbLocalPlainEngine</name>
+ <message>
+ <source>Cannot set up communication with child process: %1</source>
+ <translation>Ðеможливо вÑтановити зв&apos;Ñзок з дочірнім процеÑом: %1</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::GdbRemoteServerEngine</name>
+ <message>
+ <source>The upload process failed to start. Shell missing?</source>
+ <translation>Збій запуÑку процеÑу вивантаженнÑ. ВідÑÑƒÑ‚Ð½Ñ Ð¾Ð±Ð¾Ð»Ð¾Ð½ÐºÐ°?</translation>
+ </message>
+ <message>
+ <source>The upload process crashed some time after starting successfully.</source>
+ <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ Ð²Ð¸Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð²ÑÑ Ð°Ð²Ð°Ñ€Ñ–Ð¹Ð½Ð¾ через деÑкий Ñ‡Ð°Ñ Ð¿Ñ–ÑÐ»Ñ ÑƒÑпішного запуÑку.</translation>
+ </message>
+ <message>
+ <source>The last waitFor...() function timed out. The state of QProcess is unchanged, and you can try calling waitFor...() again.</source>
+ <translation>У оÑтанньої функції waitFor...() вичерпано чаÑ.Стан QProcess не змінивÑÑ, ви можете Ñпробувати викликати waitFor...() знову.</translation>
+ </message>
+ <message>
+ <source>An error occurred when attempting to write to the upload process. For example, the process may not be running, or it may have closed its input channel.</source>
+ <translation>СталаÑÑŒ помилка під Ñ‡Ð°Ñ Ñпроби запиÑу до процеÑу вивантаженнÑ. Ðаприклад, Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¼Ð¾Ð¶Ðµ не виконуватиÑÑŒ або закрити Ñвій канал введеннÑ.</translation>
+ </message>
+ <message>
+ <source>An error occurred when attempting to read from the upload process. For example, the process may not be running.</source>
+ <translation>СталаÑÑŒ помилка під Ñ‡Ð°Ñ Ñпроби Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð· процеÑу вивантаженнÑ. Ðаприклад, Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¼Ð¾Ð¶Ðµ не виконуватиÑÑŒ.</translation>
+ </message>
+ <message>
+ <source>An unknown error in the upload process occurred. This is the default return value of error().</source>
+ <translation>ТрапилаÑÑŒ невідома помилка в процеÑÑ– вивантаженнÑ. Це типове значеннÑ, що повертає error().</translation>
+ </message>
+ <message>
+ <source>Error</source>
+ <translation>Помилка</translation>
+ </message>
+ <message>
+ <source>No symbol file given.</source>
+ <translation>Файл Ñимволів не надано.</translation>
+ </message>
+ <message>
+ <source>Reading debug information failed:
+</source>
+ <translation>Збій Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¾Ñ— інформації:
+</translation>
+ </message>
+ <message>
+ <source>Interrupting not possible</source>
+ <translation>ÐŸÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ð½Ðµ можливе</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::GdbServerStarter</name>
+ <message>
+ <source>Remote Error</source>
+ <translation>Віддалена помилка</translation>
+ </message>
+ <message>
+ <source>Could not retrieve list of free ports:</source>
+ <translation>Ðе вдалоÑÑŒ отримати ÑпиÑок вільних портів:</translation>
+ </message>
+ <message>
+ <source>Process aborted</source>
+ <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ Ð¿ÐµÑ€ÐµÑ€Ð²Ð°Ð½Ð¾</translation>
+ </message>
+ <message>
+ <source>Running command: %1</source>
+ <translation>Ð’Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸: %1</translation>
+ </message>
+ <message>
+ <source>Connection error: %1</source>
+ <translation>Помилка з&apos;єднаннÑ: %1</translation>
+ </message>
+ <message>
+ <source>Starting gdbserver...</source>
+ <translation>ЗапуÑк gdbserver...</translation>
+ </message>
+ <message>
+ <source>Port %1 is now accessible.</source>
+ <translation>Порт %1 тепер доÑтупний.</translation>
+ </message>
+ <message>
+ <source>Server started on %1:%2</source>
+ <translation>Сервер запущено на %1:%2</translation>
+ </message>
+ <message>
+ <source>Warning</source>
+ <translation>ПопередженнÑ</translation>
+ </message>
+ <message>
+ <source>Cannot find local executable for remote process &quot;%1&quot;.</source>
+ <translation>Ðе вдалоÑÑŒ знайти локальний виконуваний модуль Ð´Ð»Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ð³Ð¾ процеÑу &quot;%1&quot;.</translation>
+ </message>
+ <message>
+ <source>Cannot find ABI for remote process &quot;%1&quot;.</source>
+ <translation>Ðе вдалоÑÑŒ знайти ABI Ð´Ð»Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ð³Ð¾ процеÑу &quot;%1&quot;.</translation>
+ </message>
+ <message>
+ <source>Remote: &quot;%1:%2&quot;</source>
+ <translation>Віддалено: &quot;%1:%2&quot;</translation>
+ </message>
+ <message>
+ <source>Process gdbserver finished. Status: %1</source>
+ <translation>ÐŸÑ€Ð¾Ñ†ÐµÑ gdbserver завершивÑÑ. СтатуÑ: %1</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::GdbTermEngine</name>
+ <message>
+ <source>Debugger Error</source>
+ <translation>Помилка зневаджувача</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::SelectRemoteFileDialog</name>
+ <message>
+ <source>Download of remote file succeeded.</source>
+ <translation>Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð´Ð°Ð»ÐµÐ½Ð¾Ð³Ð¾ файлу завершилоÑÑŒ уÑпішно.</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::ModulesHandler</name>
+ <message>
+ <source>Module Name</source>
+ <translation>Ðазва модулÑ</translation>
+ </message>
+ <message>
+ <source>Module Path</source>
+ <translation>ШлÑÑ… до модулÑ</translation>
+ </message>
+ <message>
+ <source>Symbols Read</source>
+ <translation>Символів прочитано</translation>
+ </message>
+ <message>
+ <source>Symbols Type</source>
+ <translation>Тип Ñимволів</translation>
+ </message>
+ <message>
+ <source>Start Address</source>
+ <translation>Початкова адреÑа</translation>
+ </message>
+ <message>
+ <source>End Address</source>
+ <translation>Кінцева адреÑа</translation>
+ </message>
+ <message>
+ <source>Unknown</source>
+ <translation>Ðевідомо</translation>
+ </message>
+ <message>
+ <source>No</source>
+ <translation>ÐÑ–</translation>
+ </message>
+ <message>
+ <source>Yes</source>
+ <translation>Так</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation>Ðемає</translation>
+ </message>
+ <message>
+ <source>Plain</source>
+ <translation>ПроÑтий</translation>
+ </message>
+ <message>
+ <source>Fast</source>
+ <translation>Швидкий</translation>
+ </message>
+ <message>
+ <source>debuglnk</source>
+ <translation>debuglnk</translation>
+ </message>
+ <message>
+ <source>buildid</source>
+ <translation>buildid</translation>
+ </message>
+ <message>
+ <source>It is unknown whether this module contains debug information.
+Use &quot;Examine Symbols&quot; from the context menu to initiate a check.</source>
+ <translation>Ðевідомо чи цей модуль міÑтить зневаджувальну інформацію.
+ВикориÑтайте &quot;ДоÑлідити Ñимволи&quot; з контекÑтного меню, щоб перевірити.</translation>
+ </message>
+ <message>
+ <source>This module neither contains nor references debug information.
+Stepping into the module or setting breakpoints by file and line will not work.</source>
+ <translation>Цей модуль ані міÑтить, ані поÑилаєтьÑÑ Ð½Ð° зневаджувальну інформацію.
+Ð’Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð´Ð¾ Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð°Ð±Ð¾ вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡Ð¾Ðº перепину за файлом та Ñ€Ñдком не працюватиме.</translation>
+ </message>
+ <message>
+ <source>This module contains debug information.
+Stepping into the module or setting breakpoints by file and is expected to work.</source>
+ <translation>Цей модуль міÑтить зневаджувальну інформацію.
+Ð’Ñ…Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð´Ð¾ Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð°Ð±Ð¾ вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡Ð¾Ðº перепину за файлом та Ñ€Ñдком має працювати.</translation>
+ </message>
+ <message>
+ <source>This module does not contain debug information itself, but contains a reference to external debug information.</source>
+ <translation>Цей модуль не міÑтить зневаджувальної інформації, однак міÑтить поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° зовнішню зневаджувальну інформацію.</translation>
+ </message>
+ <message>
+ <source>&lt;unknown&gt;</source>
+ <comment>address</comment>
+ <extracomment>End address of loaded module</extracomment>
+ <translation>&lt;невідомий&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::ModulesTreeView</name>
+ <message>
+ <source>Update Module List</source>
+ <translation>Оновити ÑпиÑок модулів</translation>
+ </message>
+ <message>
+ <source>Show Source Files for Module &quot;%1&quot;</source>
+ <translation>Показати файли коду Ð¼Ð¾Ð´ÑƒÐ»Ñ &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <source>Load Symbols for All Modules</source>
+ <translation>Завантажити Ñимволи з уÑÑ–Ñ… модулів</translation>
+ </message>
+ <message>
+ <source>Examine All Modules</source>
+ <translation>ПереглÑнути уÑÑ– модулі</translation>
+ </message>
+ <message>
+ <source>Load Symbols for Module</source>
+ <translation>Завантажити Ñимволи Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ</translation>
+ </message>
+ <message>
+ <source>Edit File</source>
+ <translation>Редагувати файл</translation>
+ </message>
+ <message>
+ <source>Show Symbols</source>
+ <translation>Показати Ñимволи</translation>
+ </message>
+ <message>
+ <source>Show Dependencies</source>
+ <translation>Показати залежноÑÑ‚Ñ–</translation>
+ </message>
+ <message>
+ <source>Load Symbols for Module &quot;%1&quot;</source>
+ <translation>Завантажити Ñимволи Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»Ñ &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <source>Edit File &quot;%1&quot;</source>
+ <translation>Редагувати файл &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <source>Show Symbols in File &quot;%1&quot;</source>
+ <translation>Показати Ñимволи з файлу &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <source>Show Dependencies of &quot;%1&quot;</source>
+ <translation>Показати залежноÑÑ‚Ñ– &quot;%1&quot;</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::QmlAdapter</name>
+ <message>
+ <source>Connecting to debug server %1:%2</source>
+ <translation>ÐŸÑ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ Ñервера Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð½Ð° %1: %2</translation>
+ </message>
+ <message>
+ <source>Error: (%1) %2</source>
+ <comment>%1=error code, %2=error message</comment>
+ <translation>Помилка: (%1) %2</translation>
+ </message>
+ <message>
+ <source>Disconnected.
+
+</source>
+ <translation>Відключено.
+
+</translation>
+ </message>
+ <message>
+ <source>Resolving host.</source>
+ <translation>Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ð¼ÐµÐ½Ñ– вузла.</translation>
+ </message>
+ <message>
+ <source>Connecting to debug server.</source>
+ <translation>ÐŸÑ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ Ñервера зневадженнÑ.</translation>
+ </message>
+ <message>
+ <source>Connected.
+</source>
+ <translation>Підключено.
+</translation>
+ </message>
+ <message>
+ <source>Closing.</source>
+ <translation>ЗакриттÑ.</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::QmlInspectorAgent</name>
+ <message>
+ <source>Success: </source>
+ <translation>УÑпішно:</translation>
+ </message>
+ <message>
+ <source>Properties</source>
+ <translation>ВлаÑтивоÑÑ‚Ñ–</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::QmlLiveTextPreview</name>
+ <message>
+ <source>The %1 attribute at line %2, column %3 cannot be changed without reloading the QML application. </source>
+ <translation>Ðеможливо змінити атрибут %1 в Ñ€Ñдку %2, Ñтовпець %3 без Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ QML. </translation>
+ </message>
+ <message>
+ <source>The %1 element at line %2, column %3 cannot be changed without reloading the QML application. </source>
+ <translation>Ðеможливо змінити елемент %1 в Ñ€Ñдку %2, Ñтовпець %3 без Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ QML. </translation>
+ </message>
+ <message>
+ <source>The changes in JavaScript cannot be applied without reloading the QML application. </source>
+ <translation>Зміни в JavaScript не можуть бути заÑтоÑовані без Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ QML. </translation>
+ </message>
+ <message>
+ <source>The changes made cannot be applied without reloading the QML application. </source>
+ <translation>Виконані зміни не можуть бути заÑтоÑовані без Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ QML. </translation>
+ </message>
+ <message>
+ <source>You can continue debugging, but behavior can be unexpected.</source>
+ <translation>Ви можете продовжити зневадженнÑ, але поведінка може бути неочікуваною.</translation>
+ </message>
+ <message>
+ <source>Reload QML</source>
+ <translation>Перезавантажити QML</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::RegisterTreeView</name>
+ <message>
+ <source>Reload Register Listing</source>
+ <translation>Перезавантажити ÑпиÑок регіÑтрів</translation>
+ </message>
+ <message>
+ <source>Open Disassembler...</source>
+ <translation>Відкрити дизаÑемблер...</translation>
+ </message>
+ <message>
+ <source>Open Memory Editor at 0x%1</source>
+ <translation>Відкрити редактор пам&apos;ÑÑ‚Ñ– в 0x%1</translation>
+ </message>
+ <message>
+ <source>Open Memory View at Value of Register %1 0x%2</source>
+ <translation>Відкрити переглÑд пам&apos;ÑÑ‚Ñ– по значенню регіÑтра %1 0x%2</translation>
+ </message>
+ <message>
+ <source>Open Disassembler at 0x%1</source>
+ <translation>Відкрити дизаÑемблер в 0x%1</translation>
+ </message>
+ <message>
+ <source>Open Memory Editor</source>
+ <translation>Відкрити редактор пам&apos;ÑÑ‚Ñ–</translation>
+ </message>
+ <message>
+ <source>Open Memory View at Value of Register</source>
+ <translation>Відкрити переглÑд пам&apos;ÑÑ‚Ñ– по значенню регіÑтра</translation>
+ </message>
+ <message>
+ <source>Open Disassembler</source>
+ <translation>Відкрити дизаÑемблер</translation>
+ </message>
+ <message>
+ <source>Hexadecimal</source>
+ <translation>ШіÑтнадцÑтковий</translation>
+ </message>
+ <message>
+ <source>Decimal</source>
+ <translation>ДеÑÑтковий</translation>
+ </message>
+ <message>
+ <source>Octal</source>
+ <translation>Ð’Ñ–Ñімковий</translation>
+ </message>
+ <message>
+ <source>Binary</source>
+ <translation>Двійковий</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::SnapshotTreeView</name>
+ <message>
+ <source>Snapshots</source>
+ <translation>Знімки</translation>
+ </message>
+ <message>
+ <source>Create Snapshot</source>
+ <translation>Створити знімок</translation>
+ </message>
+ <message>
+ <source>Remove Snapshot</source>
+ <translation>Видалити знімок</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::SourceFilesTreeView</name>
+ <message>
+ <source>Reload Data</source>
+ <translation>Перезавантажити дані</translation>
+ </message>
+ <message>
+ <source>Open File</source>
+ <translation>Відкрити файл</translation>
+ </message>
+ <message>
+ <source>Open File &quot;%1&quot;&apos;</source>
+ <translation>Відкрити файл &quot;%1&quot;&apos;</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::StackTreeView</name>
+ <message>
+ <source>Stack</source>
+ <translation>Стек</translation>
+ </message>
+ <message>
+ <source>Function:</source>
+ <translation>ФункціÑ:</translation>
+ </message>
+ <message>
+ <source>Disassemble Function</source>
+ <translation>ДизаÑемблювати функцію</translation>
+ </message>
+ <message>
+ <source>Copy Contents to Clipboard</source>
+ <translation>Скопіювати зміÑÑ‚ до буферу обміну</translation>
+ </message>
+ <message>
+ <source>Open Memory Editor</source>
+ <translation>Відкрити редактор пам&apos;ÑÑ‚Ñ–</translation>
+ </message>
+ <message>
+ <source>Open Memory Editor at 0x%1</source>
+ <translation>Відкрити редактор пам&apos;ÑÑ‚Ñ– в 0x%1</translation>
+ </message>
+ <message>
+ <source>Open Disassembler at Address...</source>
+ <translation>Відкрити дизаÑемблер за адреÑою...</translation>
+ </message>
+ <message>
+ <source>Disassemble Function...</source>
+ <translation>ДизаÑемблювати функцію...</translation>
+ </message>
+ <message>
+ <source>Open Disassembler</source>
+ <translation>Відкрити дизаÑемблер</translation>
+ </message>
+ <message>
+ <source>Open Disassembler at 0x%1</source>
+ <translation>Відкрити дизаÑемблер в 0x%1</translation>
+ </message>
+ <message>
+ <source>Try to Load Unknown Symbols</source>
+ <translation>Спробувати завантажити невідомі Ñимволи</translation>
+ </message>
+ <message>
+ <source>Memory at Frame #%1 (%2) 0x%3</source>
+ <translation>Пам&apos;ÑÑ‚ÑŒ в кадрі #%1 (%2) 0x%3</translation>
+ </message>
+ <message>
+ <source>Frame #%1 (%2)</source>
+ <translation>Кадр #%1 (%2)</translation>
+ </message>
+</context>
+<context>
+ <name>Debugger::Internal::WatchTreeView</name>
+ <message>
+ <source>&lt;i&gt;%1&lt;/i&gt; %2 at #%3</source>
+ <extracomment>HTML tooltip of a variable in the memory editor</extracomment>
+ <translation>&lt;i&gt;%1&lt;/i&gt; %2 в #%3</translation>
+ </message>
+ <message>
+ <source>&lt;i&gt;%1&lt;/i&gt; %2</source>
+ <extracomment>HTML tooltip of a variable in the memory editor</extracomment>
+ <translation>&lt;i&gt;%1&lt;/i&gt; %2</translation>
+ </message>
+ <message>
+ <source>Register &lt;i&gt;%1&lt;/i&gt;</source>
+ <translation>РегіÑÑ‚Ñ€ &lt;i&gt;%1&lt;/i&gt;</translation>
+ </message>
+ <message>
+ <source>Memory Referenced by Pointer &quot;%1&quot; (0x%2)</source>
+ <translation>Пам&apos;ÑÑ‚ÑŒ, на Ñку поÑилаєтьÑÑ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸Ðº &quot;%1&quot; (0x%2)</translation>
+ </message>
+ <message>
+ <source>Memory at Variable &quot;%1&quot; (0x%2)</source>
+ <translation>Пам&apos;ÑÑ‚ÑŒ в змінній &quot;%1&quot; (0x%2)</translation>
+ </message>
+ <message>
+ <source>Cannot Display Stack Layout</source>
+ <translation>Ðеможливо відобразити ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñтеку</translation>
+ </message>
+ <message>
+ <source>Could not determine a suitable address range.</source>
+ <translation>Ðе вдалоÑÑŒ визначити підходÑщий діапазон адреÑ.</translation>
+ </message>
+ <message>
+ <source>Memory Layout of Local Variables at 0x%1</source>
+ <translation>ÐšÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼&apos;ÑÑ‚Ñ– локальних змінних в 0x%1</translation>
+ </message>
+ <message>
+ <source>Locals and Expressions</source>
+ <translation>Локальні змінні та вирази</translation>
+ </message>
+ <message>
+ <source>Add Expression Evaluator</source>
+ <translation>Додати обчиÑлюваний вираз</translation>
+ </message>
+ <message>
+ <source>Add Expression Evaluator for &quot;%1&quot;</source>
+ <translation>Додати обчиÑлюваний вираз Ð´Ð»Ñ &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <source>Remove Expression Evaluator</source>
+ <translation>Видалити обчиÑлюваний вираз</translation>
+ </message>
+ <message>
+ <source>Remove Expression Evaluator for &quot;%1&quot;</source>
+ <translation>Видалити обчиÑлюваний вираз Ð´Ð»Ñ &quot;%1&quot;</translation>
+ </message>
+ <message>
+ <source>Change Local Display Format...</source>
+ <translation>Змінити локальний формат відображеннÑ...</translation>
+ </message>
+ <message>
+ <source>Treat All Characters as Printable</source>
+ <translation>Вважати уÑÑ– Ñимволи друкованими</translation>
+ </message>
+ <message>
+ <source>Show Unprintable Characters as Escape Sequences</source>
+ <translation>Показувати недруковані Ñимволи Ñк ESC-поÑлідовноÑÑ‚Ñ–</translation>
+ </message>
+ <message>
+ <source>Show Unprintable Characters as Octal</source>
+ <translation>Показувати недруковані Ñимволи Ñк віÑімкові</translation>
+ </message>
+ <message>
+ <source>Show Unprintable Characters as Hexadecimal</source>
+ <translation>Показувати недруковані Ñимволи Ñк шіÑтнадцÑткові</translation>
+ </message>
+ <message>
+ <source>Change Display for Object Named &quot;%1&quot;:</source>
+ <translation>Змінити формат Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¾Ð±&apos;єктів з назвою &quot;%1&quot;:</translation>
+ </message>
+ <message>
+ <source>Use Format for Type (Currently %1)</source>
+ <translation>ВикориÑтовувати формат типу (зараз %1)</translation>
+ </message>
+ <message>
+ <source>Use Display Format Based on Type </source>
+ <translation>ВикориÑтовувати формат Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° оÑнові типу </translation>
+ </message>
+ <message>
+ <source>Change Display for Type &quot;%1&quot;:</source>
+ <translation>Змінити формат Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñƒ &quot;%1&quot;:</translation>
+ </message>
+ <message>
+ <source>Automatic</source>
+ <translation>Ðвтоматичний</translation>
+ </message>
+ <message>
+ <source>Change Display for Type or Item...</source>
+ <translation>Змінити Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñƒ чи елемента...</translation>
+ </message>
+ <message>
+ <source>Add Data Breakpoint...</source>
+ <translation>Додати точку перепину за даними...</translation>
+ </message>
+ <message>
+ <source>Add Data Breakpoint at Object&apos;s Address (0x%1)</source>
+ <translation>Додати точку перепину за даними в об&apos;єкті за адреÑою (0x%1)</translation>
+ </message>
+ <message>
+ <source>Add Data Breakpoint at Referenced Address (0x%1)</source>
+ <translation>Додати точку перепину по даним за адреÑою, на Ñку поÑилаютьÑÑ (0x%1)</translation>
+ </message>
+ <message>
+ <source>Add Data Breakpoint</source>
+ <translation>Додати точку перепину за даними</translation>
+ </message>
+ <message>
+ <source>Setting a data breakpoint on an address will cause the program to stop when the data at the address is modified.</source>
+ <translation>Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ перепину по даним за адреÑою призводитиме до зупинки програми, коли дані за адреÑою будуть змінюватиÑÑŒ.</translation>
+ </message>
+ <message>
+ <source>Add Data Breakpoint at Expression</source>
+ <translation>Додати точку перепину за даними Ð´Ð»Ñ Ð²Ð¸Ñ€Ð°Ð·Ñƒ</translation>
+ </message>
+ <message>
+ <source>Add Data Breakpoint at Expression &quot;%1&quot;</source>
+ <translation>Додати точку перепину за даними Ð´Ð»Ñ Ð²Ð¸Ñ€Ð°Ð·Ñƒ (0x%1)</translation>
+ </message>
+ <message>
+ <source>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.</source>
+ <translation>Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ перепину по даним за виразом призводитиме до зупинки програми, коли дані за адреÑою, вказаною у виразі, будуть змінюватиÑÑŒ.</translation>
+ </message>
+ <message>
+ <source>Insert New Expression Evaluator</source>
+ <translation>Ð’Ñтавити новий обчиÑлюваний вираз</translation>
+ </message>
+ <message>
+ <source>Select Widget to Add into Expression Evaluator</source>
+ <translation>Обрати віджет Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð² обчиÑлювані вирази</translation>
+ </message>
+ <message>
+ <source>Remove All Expression Evaluators</source>
+ <translation>Видалити уÑÑ– обчиÑлювані вирази</translation>
+ </message>
+ <message>
+ <source>Open Memory Editor...</source>
+ <translation>Відкрити редактор пам&apos;ÑÑ‚Ñ–...</translation>
+ </message>
+ <message>
+ <source>Open Memory Editor at Object&apos;s Address (0x%1)</source>
+ <translation>Відкрити редактор пам&apos;ÑÑ‚Ñ– за адреÑою об&apos;єкта (0x%1)</translation>
+ </message>
+ <message>
+ <source>Open Memory View at Object&apos;s Address (0x%1)</source>
+ <translation>Відкрити переглÑд пам&apos;ÑÑ‚Ñ– за адреÑою об&apos;єкта (0x%1)</translation>
+ </message>
+ <message>
+ <source>Open Memory Editor at Object&apos;s Address</source>
+ <translation>Відкрити редактор пам&apos;ÑÑ‚Ñ– за адреÑою об&apos;єкта</translation>
+ </message>
+ <message>
+ <source>Open Memory View at Object&apos;s Address</source>
+ <translation>Відкрити переглÑд пам&apos;ÑÑ‚Ñ– за адреÑою об&apos;єкта</translation>
+ </message>
+ <message>
+ <source>Open Memory Editor at Referenced Address (0x%1)</source>
+ <translation>Відкрити редактор пам&apos;ÑÑ‚Ñ– за адреÑою, на Ñку поÑилаютьÑÑ (0x%1)</translation>
+ </message>
+ <message>
+ <source>Open Memory View at Referenced Address (0x%1)</source>
+ <translation>Відкрити переглÑд пам&apos;ÑÑ‚Ñ– за адреÑою, на Ñку поÑилаютьÑÑ (0x%1)</translation>
+ </message>
+ <message>
+ <source>Open Memory Editor at Referenced Address</source>
+ <translation>Відкрити редактор пам&apos;ÑÑ‚Ñ– за адреÑою, на Ñку поÑилаютьÑÑ</translation>
+ </message>
+ <message>
+ <source>Open Memory View at Referenced Address</source>
+ <translation>Відкрити переглÑд пам&apos;ÑÑ‚Ñ– за адреÑою, на Ñку поÑилаютьÑÑ</translation>
+ </message>
+ <message>
+ <source>Open Memory Editor Showing Stack Layout</source>
+ <translation>Відкрити редактор пам&apos;ÑÑ‚Ñ–, що показує ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñтеку</translation>
+ </message>
+ <message>
+ <source>Copy Contents to Clipboard</source>
+ <translation>Скопіювати зміÑÑ‚ до буферу обміну</translation>
+ </message>
+ <message>
+ <source>Copy Value to Clipboard</source>
+ <translation>Копіювати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾ буферу обміну</translation>
+ </message>
+ <message>
+ <source>Show View Contents in Editor</source>
+ <translation>Показати зміÑÑ‚ виду в редакторі</translation>
+ </message>
+ <message>
+ <source>Close Editor Tooltips</source>
+ <translation>Закрити підказки редактора</translation>
+ </message>
+ <message>
+ <source>Enter Expression for Evaluator</source>
+ <translation>Введіть вираз Ð´Ð»Ñ Ð¾Ð±Ñ‡Ð¸ÑленнÑ</translation>
+ </message>
+ <message>
+ <source>Expression:</source>
+ <translation>Вираз:</translation>
+ </message>
+ <message>
+ <source>Locals &amp; Expressions</source>
+ <translation>Локальні змінні та вирази</translation>
+ </message>
+</context>
+<context>
+ <name>Gerrit::Internal::GerritDialog</name>
+ <message>
+ <source>Gerrit %1@%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Changes</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Query:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Change #, SHA-1, tr:id, owner:email or reviewer:email</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Details</source>
+ <translation>Деталі</translation>
+ </message>
+ <message>
+ <source>Diff...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Apply...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Checkout...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Refresh</source>
+ <translation>Оновити</translation>
+ </message>
+</context>
+<context>
+ <name>Gerrit::Internal::GerritModel</name>
+ <message>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;Subject&lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Number&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;%11&quot;&gt;%2&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Owner&lt;/td&gt;&lt;td&gt;%3 &lt;a href=&quot;mailto:%4&quot;&gt;%4&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Project&lt;/td&gt;&lt;td&gt;%5 (%6)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Status&lt;/td&gt;&lt;td&gt;%7, %8&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Patch set&lt;/td&gt;&lt;td&gt;%9&lt;/td&gt;&lt;/tr&gt;%10&lt;tr&gt;&lt;td&gt;URL&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;%11&quot;&gt;%11&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Subject</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Owner</source>
+ <translation>ВлаÑник</translation>
+ </message>
+ <message>
+ <source>Updated</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Project</source>
+ <translation>Проект</translation>
+ </message>
+ <message>
+ <source>Approvals</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Status</source>
+ <translation>СтатуÑ</translation>
+ </message>
+ <message>
+ <source>Parse error: &apos;%1&apos; -&gt; %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Parse error: &apos;%1&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Parse error in line &apos;%1&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Gerrit::Internal::QueryContext</name>
+ <message>
+ <source>Gerrit</source>
+ <translation>Gerrit</translation>
+ </message>
+ <message>
+ <source>Error running %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 crashed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 returned %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Gerrit::Internal::GerritOptionsPage</name>
+ <message>
+ <source>Gerrit</source>
+ <translation>Gerrit</translation>
+ </message>
+</context>
+<context>
+ <name>Gerrit::Internal::GerritOptionsWidget</name>
+ <message>
+ <source>HTTPS</source>
+ <translation>HTTPS</translation>
+ </message>
+ <message>
+ <source>&amp;Host:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;User:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;ssh:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Port:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>P&amp;rotocol:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Determines the protocol used to form a URL in case
+&quot;canonicalWebUrl&quot; is not configured in the file
+&quot;gerrit.config&quot;.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Gerrit::Internal::FetchContext</name>
+ <message>
+ <source>Gerrit Fetch</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 crashed.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 returned %2.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error running %1: %2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error writing to temporary file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Writing %1...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cherry-picking %1...</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Gerrit::Internal::GerritPlugin</name>
+ <message>
+ <source>Gerrit...</source>
+ <translation>Gerrit...</translation>
+ </message>
+ <message>
+ <source>Git is not available.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Enter Local Repository for &apos;%1&apos; (%2)</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Git::Internal::GitSubmitEditorWidget</name>
+ <message>
+ <source>Detached HEAD</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Git::Internal::ResetDialog</name>
+ <message>
+ <source>Sha1</source>
+ <translation>Sha1</translation>
+ </message>
+ <message>
+ <source>Subject</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Reset to:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Undo Changes to %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Madde::Internal::DebianManager</name>
+ <message>
+ <source>Error Creating Debian Project Templates</source>
+ <translation>Помилка ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ñ–Ð² проекту Debian</translation>
+ </message>
+ <message>
+ <source>Failed to open debian changelog &quot;%1&quot; file for reading.</source>
+ <translation>Збій Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ„Ð°Ð¹Ð»Ñƒ журналу змін debian &quot;%1&quot; Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ.</translation>
+ </message>
+ <message>
+ <source>Debian changelog file &apos;%1&apos; has unexpected format.</source>
+ <translation>Файл журналу змін Debian &apos;%1&apos; має неочікуваний формат.</translation>
+ </message>
+ <message>
+ <source>Refusing to update changelog file: Already contains version &apos;%1&apos;.</source>
+ <translation>Відмова Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ журналу змін: Вже міÑтить верÑÑ–ÑŽ &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <source>Cannot update changelog: Invalid format (no maintainer entry found).</source>
+ <translation>Ðеможливо оновити журнал змін: Ðеправильний формат (немає запиÑу про Ñупроводжувача).</translation>
+ </message>
+ <message>
+ <source>Invalid icon data in Debian control file.</source>
+ <translation>Ðеправильні дані піктограми в керуючому файлі Debian.</translation>
+ </message>
+ <message>
+ <source>Could not read image file &apos;%1&apos;.</source>
+ <translation>Ðе вдалоÑÑŒ прочитати файл Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <source>Could not export image file &apos;%1&apos;.</source>
+ <translation>Ðе вдалоÑÑŒ екÑпортувати файл Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <source>Failed to create directory &quot;%1&quot;.</source>
+ <translation>Збій ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÐ¸ &quot;%1&quot;.</translation>
+ </message>
+ <message>
+ <source>Unable to create Debian templates: No Qt version set.</source>
+ <translation>Ðеможливо Ñтворити шаблони Debian: Ðе задано верÑÑ–ÑŽ Qt.</translation>
+ </message>
+ <message>
+ <source>Unable to create Debian templates: dh_make failed (%1).</source>
+ <translation>Ðеможливо Ñтворити шаблони Debian: dh_make failed (%1).</translation>
+ </message>
+ <message>
+ <source>Unable to create debian templates: dh_make failed (%1).</source>
+ <translation>Ðеможливо Ñтворити шаблони debian: dh_make failed (%1).</translation>
+ </message>
+ <message>
+ <source>Unable to move new debian directory to &apos;%1&apos;.</source>
+ <translation>Ðеможливо переÑунути нову теку debian до &apos;%1&apos;.</translation>
+ </message>
+</context>
+<context>
+ <name>Madde::Internal::MaddeDevice</name>
+ <message>
+ <source>Test</source>
+ <translation>ТеÑÑ‚</translation>
+ </message>
+ <message>
+ <source>Deploy Public Key...</source>
+ <translation>Розгорнути файл публічного ключа...</translation>
+ </message>
+ <message>
+ <source>Maemo5/Fremantle</source>
+ <translation>Maemo5/Fremantle</translation>
+ </message>
+ <message>
+ <source>MeeGo 1.2 Harmattan</source>
+ <translation>MeeGo 1.2 Harmattan</translation>
+ </message>
+</context>
+<context>
+ <name>Madde::Internal::MaddeQemuStartService</name>
+ <message>
+ <source>Checking whether to start Qemu...</source>
+ <translation>Перевірка чи потрібно запуÑтити Qemu...</translation>
+ </message>
+ <message>
+ <source>Target device is not an emulator. Nothing to do.</source>
+ <translation>Цільовий приÑтрій не Ñ” емулÑтором. Ðемає чого робити.</translation>
+ </message>
+ <message>
+ <source>Qemu is already running. Nothing to do.</source>
+ <translation>Qemu вже виконуєтьÑÑ. Ðемає чого робити.</translation>
+ </message>
+ <message>
+ <source>Cannot deploy: Qemu was not running. It has now been started up for you, but it will take a bit of time until it is ready. Please try again then.</source>
+ <translation>Ðеможливо розгорнути: Qemu ще не працює. Він був запущений Ð´Ð»Ñ Ð²Ð°Ñ, однак буде готовий лише через деÑкий чаÑ.Будь лаÑка, Ñпробуйте ще раз пізніше.</translation>
+ </message>
+ <message>
+ <source>Cannot deploy: You want to deploy to Qemu, but it is not enabled for this Qt version.</source>
+ <translation>Ðеможливо розгорнути: Ви бажаєте розгорнути до Qemu, але він не увімкнений Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— верÑÑ–Ñ— Qt.</translation>
+ </message>
+</context>
+<context>
+ <name>Madde::Internal::MaddeQemuStartStep</name>
+ <message>
+ <source>Start Qemu, if necessary</source>
+ <translation>ЗапуÑк Qemu, Ñкщо необхідно</translation>
+ </message>
+</context>
+<context>
+ <name>Madde::Internal::Qt4MaemoDeployConfiguration</name>
+ <message>
+ <source>Add Packaging Files to Project</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;html&gt;Qt Creator has set up the following files to enable packaging:
+ %1
+Do you want to add them to the project?&lt;/html&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Perforce::Internal::PerforceVersionControl</name>
+ <message>
+ <source>&amp;Edit (%1)</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&amp;Hijack</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::DesktopDevice</name>
+ <message>
+ <source>Run locally</source>
+ <translation>ЗапуÑтити локально</translation>
+ </message>
+ <message>
+ <source>Desktop</source>
+ <translation>Стаціонарний комп&apos;ютер</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Internal::DesktopDeviceFactory</name>
+ <message>
+ <source>Desktop</source>
+ <translation>Стаціонарний комп&apos;ютер</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::DeviceApplicationRunner</name>
+ <message>
+ <source>User requested stop. Shutting down...</source>
+ <translation>КориÑтувач запроÑив зупинку. ЗавершеннÑ...</translation>
+ </message>
+ <message>
+ <source>Cannot run: No device.</source>
+ <translation>Ðеможливо запуÑтити: немає приÑтрою.</translation>
+ </message>
+ <message>
+ <source>Connecting to device...</source>
+ <translation>ÐŸÑ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ приÑтрою...</translation>
+ </message>
+ <message>
+ <source>SSH connection failed: %1</source>
+ <translation>Збій з&apos;Ñ”Ð´Ð½Ð°Ð½Ð½Ñ SSH: %1</translation>
+ </message>
+ <message>
+ <source>Application did not finish in time, aborting.</source>
+ <translation>Програма не завершилаÑÑŒ вчаÑно, перериваємо.</translation>
+ </message>
+ <message>
+ <source>Remote application crashed: %1</source>
+ <translation>Віддалена програма завершилаÑÑŒ аварійно: %1</translation>
+ </message>
+ <message>
+ <source>Remote application finished with exit code %1.</source>
+ <translation>Віддалена програма завершилаÑÑŒ з кодом %1.</translation>
+ </message>
+ <message>
+ <source>Remote application finished with exit code 0.</source>
+ <translation>Віддалена програма завершилаÑÑŒ з кодом 0.</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::DeviceManagerModel</name>
+ <message>
+ <source>%1 (default for %2)</source>
+ <translation>%1 (типово Ð´Ð»Ñ %2)</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::DeviceProcessesDialog</name>
+ <message>
+ <source>Kit:</source>
+ <translation>ІнÑтрументарій:</translation>
+ </message>
+ <message>
+ <source>List of Processes</source>
+ <translation>СпиÑок процеÑів</translation>
+ </message>
+ <message>
+ <source>Filter</source>
+ <translation>Фільтр</translation>
+ </message>
+ <message>
+ <source>&amp;Update List</source>
+ <translation>&amp;Оновити ÑпиÑок</translation>
+ </message>
+ <message>
+ <source>&amp;Kill Process</source>
+ <translation>&amp;Вбити процеÑ</translation>
+ </message>
+ <message>
+ <source>&amp;Filter:</source>
+ <translation>&amp;Фільтр:</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Internal::DeviceProcessesDialogPrivate</name>
+ <message>
+ <source>Remote Error</source>
+ <translation>Віддалена помилка</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::DeviceProcessList</name>
+ <message>
+ <source>Process ID</source>
+ <translation>ID процеÑу</translation>
+ </message>
+ <message>
+ <source>Command Line</source>
+ <translation>РÑдок команди</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Internal::DeviceSettingsPage</name>
+ <message>
+ <source>Devices</source>
+ <translation>ПриÑтрої</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::DeviceUsedPortsGatherer</name>
+ <message>
+ <source>Connection error: %1</source>
+ <translation>Помилка з&apos;єднаннÑ: %1</translation>
+ </message>
+ <message>
+ <source>Could not start remote process: %1</source>
+ <translation>Ðе вдалоÑÑŒ запуÑтити віддалений процеÑ: %1</translation>
+ </message>
+ <message>
+ <source>Remote process crashed: %1</source>
+ <translation>Віддалений Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð²ÑÑ Ð°Ð²Ð°Ñ€Ñ–Ð¹Ð½Ð¾: %1</translation>
+ </message>
+ <message>
+ <source>Remote process failed; exit code was %1.</source>
+ <translation>Збій віддаленого процеÑу, код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ %1.</translation>
+ </message>
+ <message>
+ <source>
+Remote error output was: %1</source>
+ <translation>
+Віддалене Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº: %1</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::IDevice</name>
+ <message>
+ <source>Device</source>
+ <translation>ПриÑтрій</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Internal::LocalProcessList</name>
+ <message>
+ <source>Cannot terminate process %1: %2</source>
+ <translation>Ðеможливо завершити Ð¿Ñ€Ð¾Ñ†ÐµÑ %1: %2</translation>
+ </message>
+ <message>
+ <source>Cannot open process %1: %2</source>
+ <translation>Ðеможливо відкрити Ð¿Ñ€Ð¾Ñ†ÐµÑ %1: %2</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::SshDeviceProcessList</name>
+ <message>
+ <source>Connection failure: %1</source>
+ <translation>Збій з&apos;єднаннÑ: %1</translation>
+ </message>
+ <message>
+ <source>Error: Process listing command failed to start: %1</source>
+ <translation>Помилка: Збій запуÑку команди Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ ÑпиÑку процеÑів: %1</translation>
+ </message>
+ <message>
+ <source>Error: Process listing command crashed: %1</source>
+ <translation>Помилка: Команда Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ ÑпиÑку процеÑів завершилаÑÑŒ аварійно: %1</translation>
+ </message>
+ <message>
+ <source>Process listing command failed with exit code %1.</source>
+ <translation>Збій команди Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ ÑпиÑку процеÑів, код завершеннÑ: %1.</translation>
+ </message>
+ <message>
+ <source>Error: Kill process failed to start: %1</source>
+ <translation>Помилка: Збій запуÑку процеÑу kill: %1</translation>
+ </message>
+ <message>
+ <source>Error: Kill process crashed: %1</source>
+ <translation>Помилка: ÐŸÑ€Ð¾Ñ†ÐµÑ kill завершивÑÑ Ð°Ð²Ð°Ñ€Ñ–Ð¹Ð½Ð¾: %1</translation>
+ </message>
+ <message>
+ <source>Kill process failed with exit code %1.</source>
+ <translation>Збій процеÑу kill, код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ %1.</translation>
+ </message>
+ <message>
+ <source>
+Remote stderr was: %1</source>
+ <translation>
+Віддалений stderr: %1</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Kit</name>
+ <message>
+ <source>Unnamed</source>
+ <translation>Без імені</translation>
+ </message>
+ <message>
+ <source>Clone of %1</source>
+ <translation>Клон %1</translation>
+ </message>
+ <message>
+ <source>Error:</source>
+ <translation>Помилка:</translation>
+ </message>
+ <message>
+ <source>Warning:</source>
+ <translation>ПопередженнÑ:</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::SysRootKitInformation</name>
+ <message>
+ <source>Sys Root &quot;%1&quot; is not a directory.</source>
+ <translation>Sys Root &quot;%1&quot; не є текою.</translation>
+ </message>
+ <message>
+ <source>Sys Root</source>
+ <translation>Sys Root</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::ToolChainKitInformation</name>
+ <message>
+ <source>Compiler</source>
+ <translation>КомпілÑтор</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation>Ðемає</translation>
+ </message>
+ <message>
+ <source>No compiler set in kit.</source>
+ <translation>КомпілÑтор не задано в інÑтрументарії.</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::DeviceTypeKitInformation</name>
+ <message>
+ <source>Unknown device type</source>
+ <translation>Ðевідомий тип приÑтрою</translation>
+ </message>
+ <message>
+ <source>Device type</source>
+ <translation>Тип приÑтрою</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::DeviceKitInformation</name>
+ <message>
+ <source>Device does not match device type.</source>
+ <translation>ПриÑтрій не відповідає типу.</translation>
+ </message>
+ <message>
+ <source>No Device set.</source>
+ <translation>ПриÑтрій не задано.</translation>
+ </message>
+ <message>
+ <source>Device</source>
+ <translation>ПриÑтрій</translation>
+ </message>
+ <message>
+ <source>Unconfigured</source>
+ <translation>Ðе Ñконфігуровано</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Internal::SysRootInformationConfigWidget</name>
+ <message>
+ <source>The root directory of the system image to use.&lt;br&gt;Leave empty when building for the desktop.</source>
+ <translation>Коренева тека образу ÑиÑтеми, що викориÑтовуєтьÑÑ. &lt;br&gt;Залиште порожнім Ð´Ð»Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸ Ð´Ð»Ñ Ñтаціонарного комп&apos;ютера.</translation>
+ </message>
+ <message>
+ <source>Sysroot:</source>
+ <translation>Sysroot:</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Internal::ToolChainInformationConfigWidget</name>
+ <message>
+ <source>The compiler to use for building.&lt;br&gt;Make sure the compiler will produce binaries compatible with the target device, Qt version and other libraries used.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Manage...</source>
+ <translation>УправліннÑ...</translation>
+ </message>
+ <message>
+ <source>Compiler:</source>
+ <translation>КомпілÑтор:</translation>
+ </message>
+ <message>
+ <source>&lt;No compiler available&gt;</source>
+ <translation>&lt;Ðемає компілÑтора&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Internal::DeviceTypeInformationConfigWidget</name>
+ <message>
+ <source>The type of device to run applications on.</source>
+ <translation>Тип приÑтрій, на Ñкому буде виконуватиÑÑŒ програма.</translation>
+ </message>
+ <message>
+ <source>Device type:</source>
+ <translation>Тип приÑтрою:</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Internal::DeviceInformationConfigWidget</name>
+ <message>
+ <source>The device to run the applications on.</source>
+ <translation>ПриÑтрій, на Ñкому буде виконуватиÑÑŒ програма.</translation>
+ </message>
+ <message>
+ <source>Manage...</source>
+ <translation>УправліннÑ...</translation>
+ </message>
+ <message>
+ <source>Device:</source>
+ <translation>ПриÑтрій:</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::KitManager</name>
+ <message>
+ <source>Desktop</source>
+ <translation>Стаціонарний комп&apos;ютер</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Internal::KitManagerConfigWidget</name>
+ <message>
+ <source>Name:</source>
+ <translation>Ðазва:</translation>
+ </message>
+ <message>
+ <source>Kit name and icon.</source>
+ <translation>Ðазва інÑтрументарію та піктограма.</translation>
+ </message>
+ <message>
+ <source>Select Icon</source>
+ <translation>Оберіть піктограму</translation>
+ </message>
+ <message>
+ <source>Images (*.png *.xpm *.jpg)</source>
+ <translation>Ð—Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ (*.png *.xpm *.jpg)</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Internal::KitModel</name>
+ <message>
+ <source>Auto-detected</source>
+ <translation>ÐвтовизначеннÑ</translation>
+ </message>
+ <message>
+ <source>Manual</source>
+ <translation>Вручну</translation>
+ </message>
+ <message>
+ <source>%1 (default)</source>
+ <extracomment>Mark up a kit as the default one.</extracomment>
+ <translation>%1 (типово)</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>Ðазва</translation>
+ </message>
+ <message>
+ <source>Clone of %1</source>
+ <translation>Клон %1</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::KitOptionsPage</name>
+ <message>
+ <source>Kits</source>
+ <translation>ІнÑтрументарії</translation>
+ </message>
+ <message>
+ <source>Add</source>
+ <translation>Додати</translation>
+ </message>
+ <message>
+ <source>Clone</source>
+ <translation>Клонувати</translation>
+ </message>
+ <message>
+ <source>Remove</source>
+ <translation>Видалити</translation>
+ </message>
+ <message>
+ <source>Make Default</source>
+ <translation>Зробити типовим</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::RunConfiguration</name>
+ <message>
+ <source>Unknown error.</source>
+ <translation>Ðевідома помилка.</translation>
+ </message>
+</context>
+<context>
+ <name>ProjectExplorer::Target</name>
+ <message>
+ <source>Default build</source>
+ <translation>Типова збірка</translation>
+ </message>
+</context>
+<context>
+ <name>QmlJSEditor::ComponentFromObjectDef</name>
+ <message>
+ <source>Move Component into Separate File</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QmlJSEditor::QuickFix</name>
+ <message>
+ <source>Split Initializer</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QmlJSEditor::AddAnalysisMessageSuppressionComment</name>
+ <message>
+ <source>Add a Comment to Suppress This Message</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QmlJSTools::FindExportedCppTypes</name>
+ <message>
+ <source>The type will only be available in Qt Creator&apos;s QML editors when the type name is a string literal</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>The module URI cannot be determined by static analysis. The type will be available
+globally in the QML editor. You can add a &quot;// @uri My.Module.Uri&quot; annotation to let
+Qt Creator know about a likely URI.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>must be a string literal to be available in the QML editor</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QmlProfiler::Internal::QmlProfilerClientManager</name>
+ <message>
+ <source>Qt Creator</source>
+ <translation>Qt Creator</translation>
+ </message>
+ <message>
+ <source>Could not connect to the in-process QML profiler.
+Do you want to retry?</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QmlProfiler::Internal::QmlProfilerDataModel</name>
+ <message>
+ <source>Source code not available</source>
+ <translation>Початковий код не доÑтупний</translation>
+ </message>
+ <message>
+ <source>&lt;bytecode&gt;</source>
+ <translation>&lt;байт-код&gt;</translation>
+ </message>
+ <message>
+ <source>Animation Timer Update</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;Animation Update&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>&lt;program&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Main Program</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>%1 animations at %2 FPS</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Unexpected complete signal in data model</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>No data to save</source>
+ <translation>Ðемає даних Ð´Ð»Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ</translation>
+ </message>
+ <message>
+ <source>Could not open %1 for writing</source>
+ <translation>Ðе вдалоÑÑŒ відкрити %1 Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу</translation>
+ </message>
+ <message>
+ <source>Could not open %1 for reading</source>
+ <translation>Ðе вдалоÑÑŒ відкрити %1 Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ</translation>
+ </message>
+ <message>
+ <source>Error while parsing %1</source>
+ <translation>Помилка під Ñ‡Ð°Ñ Ñ€Ð¾Ð·Ð±Ð¾Ñ€Ñƒ %1</translation>
+ </message>
+ <message>
+ <source>Invalid version of QML Trace file.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Trying to set unknown state in events list</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QmlProfiler::Internal::QmlProfilerEventsWidget</name>
+ <message>
+ <source>Trace information from the v8 JavaScript engine. Available only in Qt5 based applications.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy Row</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy Table</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Extended Event Statistics</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Limit Events Pane to Current Range</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Reset Events Pane</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QmlProfiler::Internal::QmlProfilerStateWidget</name>
+ <message>
+ <source>Loading data</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Profiling application</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>No QML events recorded</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Application stopped before loading all data</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QmlProfiler::Internal::QmlProfilerTraceView</name>
+ <message>
+ <source>Jump to previous event</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Jump to next event</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Show zoom slider</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Select range</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>View event information on mouseover</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Limit Events Pane to Current Range</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Reset Events Pane</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Reset Zoom</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QmlProfiler::Internal::QmlProfilerViewManager</name>
+ <message>
+ <source>Events</source>
+ <translation>Події</translation>
+ </message>
+ <message>
+ <source>Timeline</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>JavaScript</source>
+ <translation>JavaScript</translation>
+ </message>
+</context>
+<context>
+ <name>QmlProjectManager::Internal::QmlProjectApplicationWizard</name>
+ <message>
+ <source>Qt Quick 2 UI</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Creates a Qt Quick UI 2 project with a single QML file that contains the main view.
+
+You can review Qt Quick UI 2 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 projects.
+
+Requires &lt;b&gt;Qt 5.0&lt;/b&gt; or newer.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Qt Quick 1 UI</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Creates a Qt Quick UI 1 project with a single QML file that contains the main view.
+
+You can review Qt Quick UI 1 projects in the QML Viewer 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 projects.
+
+Requires &lt;b&gt;Qt 4.8&lt;/b&gt; or newer.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>QmlProjectManager::Internal::QmlProjectRunConfigurationFactory</name>
+ <message>
+ <source>QML Viewer</source>
+ <translation>ПереглÑдач QML</translation>
+ </message>
+ <message>
+ <source>QML Scene</source>
+ <translation>QML Scene</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryAbstractDeployStep</name>
+ <message>
+ <source>Starting: &quot;%1&quot; %2</source>
+ <translation>ЗапуÑк: &quot;%1&quot; %2</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryApplicationRunner</name>
+ <message>
+ <source>Launching application failed</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Cannot show debug output. Error: %1</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryCreatePackageStep</name>
+ <message>
+ <source>Create BAR packages</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Could not find packager command &apos;%1&apos; in the build environment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>No packages enabled for deployment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Application descriptor file not specified, please check deployment settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>No package specified, please check deployment settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Could not create build directory &apos;%1&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Error preparing application descriptor file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Could not open &apos;%1&apos; for reading</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Could not create prepared application descriptor file in &apos;%1&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryCreatePackageStepConfigWidget</name>
+ <message>
+ <source>&lt;b&gt;Create packages&lt;/b&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryCreatePackageStepFactory</name>
+ <message>
+ <source>Create BAR Packages</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeployConfiguration</name>
+ <message>
+ <source>Deploy to BlackBerry Device</source>
+ <translation>Ð Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ð° приÑтрій BlackBerry</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeployConfigurationFactory</name>
+ <message>
+ <source>Deploy to BlackBerry Device</source>
+ <translation>Ð Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ð° приÑтрій BlackBerry</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeployInformation</name>
+ <message>
+ <source>Enabled</source>
+ <translation>Увімкнено</translation>
+ </message>
+ <message>
+ <source>Application descriptor file</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Package</source>
+ <translation>Пакунок</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeployStep</name>
+ <message>
+ <source>Deploy packages</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Could not find deploy command &apos;%1&apos; in the build environment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>No hostname specified for device</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>No packages enabled for deployment</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Package &apos;%1&apos; does not exist. Create the package first.</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeployStepConfigWidget</name>
+ <message>
+ <source>&lt;b&gt;Deploy packages&lt;/b&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeployStepFactory</name>
+ <message>
+ <source>Deploy Package</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeviceConfiguration</name>
+ <message>
+ <source>BlackBerry</source>
+ <translation>BlackBerry</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeviceConfigurationFactory</name>
+ <message>
+ <source>BlackBerry Device</source>
+ <translation>ПриÑтрій BlackBerry</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeviceConfigurationWizard</name>
+ <message>
+ <source>New BlackBerry Device Configuration Setup</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Failure to Save Key File</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Failed to create directory: &apos;%1&apos;.</source>
+ <translation>Збій ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÐ¸ &apos;%1&apos;.</translation>
+ </message>
+ <message>
+ <source>Private key file already exists: &apos;%1&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Public key file already exists: &apos;%1&apos;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryDeviceConfigurationWizardFinalPage</name>
+ <message>
+ <source>Setup Finished</source>
+ <translation>ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾</translation>
+ </message>
+ <message>
+ <source>The new device configuration will now be created.</source>
+ <translation>Зараз буде Ñтворено нову конфігурацію приÑтрою.</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryQtVersion</name>
+ <message>
+ <source>BlackBerry %1</source>
+ <comment>Qt Version is meant for BlackBerry</comment>
+ <translation>BlackBerry %1</translation>
+ </message>
+ <message>
+ <source>BlackBerry</source>
+ <translation>BlackBerry</translation>
+ </message>
+ <message>
+ <source>BlackBerry Native SDK:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryRunConfiguration</name>
+ <message>
+ <source>%1 on BlackBerry device</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Run on BlackBerry device</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryRunConfigurationFactory</name>
+ <message>
+ <source>%1 on BlackBerry Device</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::BlackBerryRunControlFactory</name>
+ <message>
+ <source>No active deploy configuration</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Run on BlackBerry Device</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxAbstractQtVersion</name>
+ <message>
+ <source>No SDK path set</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxDebugSupport</name>
+ <message>
+ <source>Preparing remote side...
+</source>
+ <translation>Підготовка віддаленої Ñторони...
+</translation>
+ </message>
+ <message>
+ <source>The %1 process closed unexpectedly.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Initial setup failed: %1</source>
+ <translation>Збій початкового налаштуваннÑ: %1</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxDeployConfigurationFactory</name>
+ <message>
+ <source>Deploy to QNX Device</source>
+ <translation>Ð Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ð° приÑтрій QNX</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxDeviceConfiguration</name>
+ <message>
+ <source>QNX</source>
+ <translation>QNX</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxDeviceConfigurationFactory</name>
+ <message>
+ <source>QNX Device</source>
+ <translation>ПриÑтрій QNX</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxDeviceConfigurationWizard</name>
+ <message>
+ <source>New QNX Device Configuration Setup</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxDeviceConfigurationWizardSetupPage</name>
+ <message>
+ <source>QNX Device</source>
+ <translation>ПриÑтрій QNX</translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxQtVersion</name>
+ <message>
+ <source>QNX %1</source>
+ <extracomment>Qt Version is meant for QNX</extracomment>
+ <translation>QNX %1</translation>
+ </message>
+ <message>
+ <source>QNX</source>
+ <translation>QNX</translation>
+ </message>
+ <message>
+ <source>QNX Software Development Platform:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxRunConfiguration</name>
+ <message>
+ <source>Path to Qt libraries on device:</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxRunConfigurationFactory</name>
+ <message>
+ <source>%1 on QNX Device</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Qnx::Internal::QnxRunControlFactory</name>
+ <message>
+ <source>Run on remote QNX device</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>Qt4ProjectManager::Internal::QmakeKitConfigWidget</name>
+ <message>
+ <source>The mkspec to use when building the project with qmake.&lt;br&gt;This setting is ignored when using other build systems.</source>
+ <translation>mkspec, що викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð·Ð±Ñ–Ñ€ÐºÐ¸ проектів за допомогою qmake.&lt;br&gt;Це Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð³Ð½Ð¾Ñ€ÑƒÑ”Ñ‚ÑŒÑÑ Ð¿Ñ€Ð¸ викориÑтанні інших ÑиÑтем збірки.</translation>
+ </message>
+ <message>
+ <source>Qt mkspec:</source>
+ <translation>Qt mkspec:</translation>
+ </message>
+</context>
+<context>
+ <name>Qt4ProjectManager::QmakeKitInformation</name>
+ <message>
+ <source>No Qt version set, so mkspec is ignored.</source>
+ <translation>ВерÑÑ–Ñ Qt не задана, mkspec ігноруєтьÑÑ.</translation>
+ </message>
+ <message>
+ <source>Mkspec not found for Qt version.</source>
+ <translation>Ðе знайдено mkspec Ð´Ð»Ñ Ð²ÐµÑ€ÑÑ–Ñ— Qt.</translation>
+ </message>
+ <message>
+ <source>mkspec</source>
+ <translation>mkspec</translation>
+ </message>
+</context>
+<context>
+ <name>Qt4ProjectManager::Qt4TargetSetupWidget</name>
+ <message>
+ <source>Manage...</source>
+ <translation>УправліннÑ...</translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Error:&lt;/b&gt; </source>
+ <comment>Severity is Task::Error</comment>
+ <translation>&lt;b&gt;Помилка:&lt;/b&gt; </translation>
+ </message>
+ <message>
+ <source>&lt;b&gt;Warning:&lt;/b&gt; </source>
+ <comment>Severity is Task::Warning</comment>
+ <translation>&lt;b&gt;ПопередженнÑ:&lt;/b&gt; </translation>
+ </message>
+</context>
+<context>
+ <name>Qt4ProjectManager::Internal::ImportWidget</name>
+ <message>
+ <source>Import Build from...</source>
+ <translation>Імпортувати збірку з...</translation>
+ </message>
+ <message>
+ <source>Import</source>
+ <translation>Імпортувати</translation>
+ </message>
+</context>
+<context>
+ <name>QtSupport::Internal::CustomExecutableConfigurationWidget</name>
+ <message>
+ <source>Command:</source>
+ <translation>Команда:</translation>
+ </message>
+ <message>
+ <source>Arguments:</source>
+ <translation>Ðргументи:</translation>
+ </message>
+ <message>
+ <source>Working directory:</source>
+ <translation>Робоча тека:</translation>
+ </message>
+ <message>
+ <source>Run in &amp;terminal</source>
+ <translation>ЗапуÑкати в &amp;терміналі</translation>
+ </message>
+ <message>
+ <source>Run Environment</source>
+ <translation>Середовище виконаннÑ</translation>
+ </message>
+ <message>
+ <source>Base environment for this run configuration:</source>
+ <translation>Базове Ñередовище Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— конфігурації запуÑку:</translation>
+ </message>
+ <message>
+ <source>Clean Environment</source>
+ <translation>ЧиÑте Ñередовище</translation>
+ </message>
+ <message>
+ <source>System Environment</source>
+ <translation>СиÑтемне Ñередовище</translation>
+ </message>
+ <message>
+ <source>Build Environment</source>
+ <translation>Середовище збірки</translation>
+ </message>
+</context>
+<context>
+ <name>CustomExecutableDialog</name>
+ <message>
+ <source>Could not find the executable, please specify one.</source>
+ <translation>Ðе вдалоÑÑŒ знайти виконуваний модуль, будь лаÑка, вкажіть його.</translation>
+ </message>
+</context>
+<context>
+ <name>QtSupport::CustomExecutableRunConfiguration</name>
+ <message>
+ <source>No executable.</source>
+ <translation>Ðемає виконуваного модулÑ.</translation>
+ </message>
+ <message>
+ <source>The executable
+%1
+cannot be found in the path.</source>
+ <translation>Ðеможливо знайти виконуваний модуль
+%1
+в Ñтандартних шлÑхах.</translation>
+ </message>
+ <message>
+ <source>Clean Environment</source>
+ <translation>ЧиÑте Ñередовище</translation>
+ </message>
+ <message>
+ <source>System Environment</source>
+ <translation>СиÑтемне Ñередовище</translation>
+ </message>
+ <message>
+ <source>Build Environment</source>
+ <translation>Середовище збірки</translation>
+ </message>
+ <message>
+ <source>Custom Executable</source>
+ <translation>КориÑтувацький виконуваний модуль</translation>
+ </message>
+ <message>
+ <source>Run %1</source>
+ <translation>ЗапуÑтити %1</translation>
+ </message>
+</context>
+<context>
+ <name>QtSupport::CustomExecutableRunConfigurationFactory</name>
+ <message>
+ <source>Custom Executable</source>
+ <translation>КориÑтувацький виконуваний модуль</translation>
+ </message>
+</context>
+<context>
+ <name>QtSupport::Internal::QtKitConfigWidget</name>
+ <message>
+ <source>The Qt library to use for all projects using this kit.&lt;br&gt;A Qt version is required for qmake-based projects and optional when using other build systems.</source>
+ <translation>Бібліотека Qt, що буде вживатиÑÑŒ уÑіма проектами, що викориÑтовують цей інÑтрументарій.&lt;br&gt;ВерÑÑ–Ñ Qt необхідна Ð´Ð»Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñ–Ð² на базі qmake та опціональна Ð´Ð»Ñ Ñ–Ð½ÑˆÐ¸Ñ… ÑиÑтем збірки.</translation>
+ </message>
+ <message>
+ <source>Manage...</source>
+ <translation>УправліннÑ...</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation>Ðемає</translation>
+ </message>
+ <message>
+ <source>Qt version:</source>
+ <translation>ВерÑÑ–Ñ Qt:</translation>
+ </message>
+</context>
+<context>
+ <name>QtSupport::QtKitInformation</name>
+ <message>
+ <source>Qt version</source>
+ <translation>ВерÑÑ–Ñ Qt</translation>
+ </message>
+ <message>
+ <source>None</source>
+ <translation>Ðемає</translation>
+ </message>
+</context>
+<context>
+ <name>RemoteLinux::Internal::LinuxDevice</name>
+ <message>
+ <source>Generic Linux</source>
+ <translation>Звичайний Linux</translation>
+ </message>
+ <message>
+ <source>Test</source>
+ <translation>ТеÑÑ‚</translation>
+ </message>
+ <message>
+ <source>Deploy Public Key...</source>
+ <translation>Розгорнути файл публічного ключа...</translation>
+ </message>
+</context>
+<context>
+ <name>RemoteLinux::RemoteLinuxCheckForFreeDiskSpaceService</name>
+ <message>
+ <source>Remote process failed to start.</source>
+ <translation>Збій запуÑку віддаленого процеÑу.</translation>
+ </message>
+ <message>
+ <source>Remote process crashed.</source>
+ <translation>Віддалений Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð²ÑÑ Ð°Ð²Ð°Ñ€Ñ–Ð¹Ð½Ð¾.</translation>
+ </message>
+ <message>
+ <source>Unexpected output from remote process: &apos;%1&apos;.</source>
+ <translation>Ðеочікуване Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ віддаленого процеÑу: &apos;%1&apos;.</translation>
+ </message>
+ <message numerus="yes">
+ <source>The remote file system has only %n megabytes of free space, but %1 megabytes are required.</source>
+ <translation>
+ <numerusform>Віддалена файлова ÑиÑтема має лише %n мегабайт вільного проÑтору, однак необхідно %1.</numerusform>
+ <numerusform>Віддалена файлова ÑиÑтема має лише %n мегабайти вільного проÑтору, однак необхідно %1.</numerusform>
+ <numerusform>Віддалена файлова ÑиÑтема має лише %n мегабайтів вільного проÑтору, однак необхідно %1.</numerusform>
+ </translation>
+ </message>
+ <message numerus="yes">
+ <source>The remote file system has %n megabytes of free space, going ahead.</source>
+ <translation>
+ <numerusform>Віддалена файлова ÑиÑтема має %n мегабайт вільного проÑтору, продовжуємо.</numerusform>
+ <numerusform>Віддалена файлова ÑиÑтема має %n мегабайти вільного проÑтору, продовжуємо.</numerusform>
+ <numerusform>Віддалена файлова ÑиÑтема має %n мегабайтів вільного проÑтору, продовжуємо.</numerusform>
+ </translation>
+ </message>
+ <message>
+ <source>Cannot check for free disk space: &apos;%1&apos; is not an absolute path.</source>
+ <translation>Ðеможливо перевірити вільний диÑковий проÑÑ‚Ñ–Ñ€: &apos;%1&apos; не Ñ” абÑолютним шлÑхом.</translation>
+ </message>
+</context>
+<context>
+ <name>RemoteLinux::Internal::RemoteLinuxCheckForFreeDiskSpaceStepWidget</name>
+ <message>
+ <source>MB</source>
+ <translation>Мб</translation>
+ </message>
+</context>
+<context>
+ <name>RemoteLinux::RemoteLinuxCheckForFreeDiskSpaceStep</name>
+ <message>
+ <source>Check for free disk space</source>
+ <translation>Перевірити вільний проÑÑ‚Ñ–Ñ€ на диÑку</translation>
+ </message>
+</context>
+<context>
+ <name>RemoteLinux::LinuxDeviceDebugSupport</name>
+ <message>
+ <source>Checking available ports...
+</source>
+ <translation>Перевірка доÑтупних портів...</translation>
+ </message>
+ <message>
+ <source>Debugging failed.</source>
+ <translation>Збій зневадженнÑ.</translation>
+ </message>
+ <message>
+ <source>Initial setup failed: %1</source>
+ <translation>Збій початкового налаштуваннÑ: %1</translation>
+ </message>
+ <message>
+ <source>Not enough free ports on device for debugging.</source>
+ <translation>ÐедоÑтатньо вільних портів Ð´Ð»Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð² приÑтрої.</translation>
+ </message>
+</context>
+<context>
+ <name>RemoteLinux::Internal::TypeSpecificDeviceConfigurationListModel</name>
+ <message>
+ <source>%1 (default)</source>
+ <translation>%1 (типово)</translation>
+ </message>
+</context>
+<context>
+ <name>ResourceEditor::Internal::QrcEditor</name>
+ <message>
+ <source>Add Files</source>
+ <translation>Додати файли</translation>
+ </message>
+ <message>
+ <source>Add Prefix</source>
+ <translation>Додати префікÑ</translation>
+ </message>
+ <message>
+ <source>Invalid file location</source>
+ <translation>Ðеправильне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ</translation>
+ </message>
+ <message>
+ <source>Copy</source>
+ <translation>Копіювати</translation>
+ </message>
+ <message>
+ <source>Abort</source>
+ <translation>Перервати</translation>
+ </message>
+ <message>
+ <source>Skip</source>
+ <translation>ПропуÑтити</translation>
+ </message>
+ <message>
+ <source>The file %1 is not in a subdirectory of the resource file. You now have the option to copy this file to a valid location.</source>
+ <translation>Файл %1 не знаходитьÑÑ Ð² підтеці файлу реÑурÑів. У Ð²Ð°Ñ Ð·Ð°Ñ€Ð°Ð· Ñ” можливіÑÑ‚ÑŒ Ñкопіювати цей файл в правильне розташуваннÑ.</translation>
+ </message>
+ <message>
+ <source>Choose Copy Location</source>
+ <translation>Оберіть Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð¿Ñ–Ñ—</translation>
+ </message>
+ <message>
+ <source>Overwriting Failed</source>
+ <translation>Збій перезапиÑу</translation>
+ </message>
+ <message>
+ <source>Could not overwrite file %1.</source>
+ <translation>Ðе вдалоÑÑŒ перезапиÑати файл %1.</translation>
+ </message>
+ <message>
+ <source>Copying Failed</source>
+ <translation>Збій копіюваннÑ</translation>
+ </message>
+ <message>
+ <source>Could not copy the file to %1.</source>
+ <translation>Ðе вдалоÑÑŒ Ñкопіювати файл до %1.</translation>
+ </message>
+</context>
+<context>
+ <name>ResourceFile</name>
+ <message>
+ <source>The file name is empty.</source>
+ <translation>Порожнє ім&apos;Ñ Ñ„Ð°Ð¹Ð»Ñƒ.</translation>
+ </message>
+ <message>
+ <source>XML error on line %1, col %2: %3</source>
+ <translation>Помилка XML в Ñ€Ñдку %1, Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ %2: %3</translation>
+ </message>
+ <message>
+ <source>The &lt;RCC&gt; root element is missing.</source>
+ <translation>ВідÑутній кореневий елемент &lt;RCC&gt;.</translation>
+ </message>
+ <message>
+ <source>Cannot write file. Disk full?</source>
+ <translation>Ðеможливо запиÑати файл. ДиÑк заповнено?</translation>
+ </message>
+</context>
+<context>
+ <name>ResourceEditor::Internal::ResourceView</name>
+ <message>
+ <source>Open File</source>
+ <translation>Відкрити файл</translation>
+ </message>
+ <message>
+ <source>All files (*)</source>
+ <translation>Ð’ÑÑ– файли (*)</translation>
+ </message>
+</context>
+<context>
+ <name>TextEditor::BehaviorSettingsWidget</name>
+ <message>
+ <source>Display context-sensitive help or type information on mouseover.</source>
+ <translation>Відображати контекÑтну довідку або інформацію про тип при наведенні вказівника миші.</translation>
+ </message>
+ <message>
+ <source>Display context-sensitive help or type information on Shift+Mouseover.</source>
+ <translation>Відображати контекÑтну довідку або інформацію про тип при наведенні вказівника миші Ñ– натиÑненні клавіші Shift.</translation>
+ </message>
+</context>
+<context>
+ <name>VcsBase::Internal::UrlTextCursorHandler</name>
+ <message>
+ <source>Open URL in Browser...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy URL Location</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>VcsBase::Internal::EmailTextCursorHandler</name>
+ <message>
+ <source>Send Email To...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Copy Email Address</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
</TS>
diff --git a/src/libs/3rdparty/botan/botan.h b/src/libs/3rdparty/botan/botan.h
index a073890986c..6a9cbe06710 100644
--- a/src/libs/3rdparty/botan/botan.h
+++ b/src/libs/3rdparty/botan/botan.h
@@ -8,6 +8,22 @@
#ifndef BOTAN_AMALGAMATION_H__
#define BOTAN_AMALGAMATION_H__
+#ifdef USE_SYSTEM_BOTAN
+#include <botan/auto_rng.h>
+#include <botan/cbc.h>
+#include <botan/der_enc.h>
+#include <botan/dh.h>
+#include <botan/dl_group.h>
+#include <botan/dsa.h>
+#include <botan/hmac.h>
+#include <botan/init.h>
+#include <botan/lookup.h>
+#include <botan/pem.h>
+#include <botan/pubkey.h>
+#include <botan/rsa.h>
+#include <botan/ui.h>
+#else
+
#include <QtGlobal>
#include <iosfwd>
@@ -16184,5 +16200,5 @@ class BOTAN_DLL ANSI_X919_MAC : public MessageAuthenticationCode
}
-
-#endif
+#endif // USE_SYSTEM_BOTAN
+#endif // BOTAN_AMALGAMATION_H__
diff --git a/src/libs/3rdparty/botan/botan.pri b/src/libs/3rdparty/botan/botan.pri
index ee2a167f1f2..3c656766290 100644
--- a/src/libs/3rdparty/botan/botan.pri
+++ b/src/libs/3rdparty/botan/botan.pri
@@ -1,5 +1,12 @@
INCLUDEPATH *= $$PWD/..
HEADERS += $$PWD/botan.h
+
+equals(USE_SYSTEM_BOTAN, 1) {
+ DEFINES += USE_SYSTEM_BOTAN
+ CONFIG += link_pkgconfig
+ PKGCONFIG += botan-1.10
+} else {
+
SOURCES += $$PWD/botan.cpp
CONFIG += exceptions
@@ -46,3 +53,4 @@ unix:*-g++* {
linux*|freebsd* {
LIBS += -lrt
}
+}
diff --git a/src/libs/3rdparty/cplusplus/Lexer.cpp b/src/libs/3rdparty/cplusplus/Lexer.cpp
index 9804c8c9f16..7e2710f8d28 100644
--- a/src/libs/3rdparty/cplusplus/Lexer.cpp
+++ b/src/libs/3rdparty/cplusplus/Lexer.cpp
@@ -369,11 +369,10 @@ void Lexer::scan_helper(Token *tok)
if (_yychar == '/' || _yychar == '!') {
yyinp();
- if (_yychar == '<')
+ if (_yychar == '<' || _yychar != '/') {
yyinp();
-
- if (_yychar != '\n' && std::isspace(_yychar))
doxy = true;
+ }
}
while (_yychar && _yychar != '\n')
diff --git a/src/libs/3rdparty/cplusplus/Templates.cpp b/src/libs/3rdparty/cplusplus/Templates.cpp
index c81ed51b09c..b813600143f 100644
--- a/src/libs/3rdparty/cplusplus/Templates.cpp
+++ b/src/libs/3rdparty/cplusplus/Templates.cpp
@@ -526,11 +526,23 @@ FullySpecifiedType Subst::apply(const Name *name) const
return _previous->apply(name);
else if (const QualifiedNameId *q = name->asQualifiedNameId()) {
- const NamedType *name = apply(q->base())->asNamedType();
+ const NamedType *baseNamedType = apply(q->base())->asNamedType();
const NamedType *unqualified = apply(q->name())->asNamedType();
- if (name && name->name()->identifier() != 0 && unqualified)
- return control()->namedType(control()->qualifiedNameId(name->name()->identifier(),
- unqualified->name()));
+ if (baseNamedType) {
+ if (! unqualified) {
+ const Name *qualifiedBase = baseNamedType->name();
+ const Name *qualifiedName = q->name();
+ return control()->namedType(control()->qualifiedNameId(qualifiedBase,
+ qualifiedName));
+ }
+ else if(baseNamedType->name()->identifier() != 0) {
+ const QualifiedNameId *clonedQualifiedNameId
+ = control()->qualifiedNameId(baseNamedType->name()->identifier(),
+ unqualified->name());
+ NamedType *clonedNamedType = control()->namedType(clonedQualifiedNameId);
+ return clonedNamedType;
+ }
+ }
}
}
diff --git a/src/libs/cplusplus/CppDocument.cpp b/src/libs/cplusplus/CppDocument.cpp
index 5c804dd6a8c..b4b89e903a3 100644
--- a/src/libs/cplusplus/CppDocument.cpp
+++ b/src/libs/cplusplus/CppDocument.cpp
@@ -651,11 +651,6 @@ bool Snapshot::isEmpty() const
return _documents.isEmpty();
}
-Document::Ptr Snapshot::operator[](const QString &fileName) const
-{
- return _documents.value(fileName, Document::Ptr());
-}
-
Snapshot::const_iterator Snapshot::find(const QString &fileName) const
{
return _documents.find(fileName);
diff --git a/src/libs/cplusplus/CppDocument.h b/src/libs/cplusplus/CppDocument.h
index 4b87e94b392..6e770145a50 100644
--- a/src/libs/cplusplus/CppDocument.h
+++ b/src/libs/cplusplus/CppDocument.h
@@ -146,8 +146,8 @@ public:
const QString &text,
unsigned length = 0)
: _level(level),
- _fileName(fileName),
_line(line),
+ _fileName(fileName),
_column(column),
_length(length),
_text(text)
@@ -185,8 +185,8 @@ public:
private:
int _level;
- QString _fileName;
unsigned _line;
+ QString _fileName;
unsigned _column;
unsigned _length;
QString _text;
@@ -377,7 +377,6 @@ public:
bool contains(const QString &fileName) const;
Document::Ptr document(const QString &fileName) const;
- Document::Ptr operator[](const QString &fileName) const;
const_iterator find(const QString &fileName) const;
diff --git a/src/libs/cplusplus/FindUsages.cpp b/src/libs/cplusplus/FindUsages.cpp
index dbf6dcdf9bf..90c71bc8c6a 100644
--- a/src/libs/cplusplus/FindUsages.cpp
+++ b/src/libs/cplusplus/FindUsages.cpp
@@ -41,37 +41,6 @@
using namespace CPlusPlus;
-namespace {
-
-QString fetchLine(const QByteArray &bytes, const int line)
-{
- int current = 0;
- const char *s = bytes.constData();
-
- if (line) {
- while (*s) {
- if (*s == '\n') {
- ++current;
- if (line == current) {
- ++s;
- break;
- }
- }
- ++s;
- }
- }
-
- if (current == line) {
- const char *e = s;
- while (*e && *e != '\n')
- ++e;
- return QString::fromUtf8(s, e - s);
- }
- return QString();
-}
-
-} // Anonymous
-
FindUsages::FindUsages(const QByteArray &originalSource, Document::Ptr doc, const Snapshot &snapshot)
: ASTVisitor(doc->translationUnit()),
_id(0),
@@ -85,6 +54,8 @@ FindUsages::FindUsages(const QByteArray &originalSource, Document::Ptr doc, cons
{
_snapshot.insert(_doc);
typeofExpression.init(_doc, _snapshot, _context.bindings());
+
+ prepareLines(_originalSource);
}
FindUsages::FindUsages(const LookupContext &context)
@@ -99,6 +70,8 @@ FindUsages::FindUsages(const LookupContext &context)
_currentScope(0)
{
typeofExpression.init(_doc, _snapshot, _context.bindings());
+
+ prepareLines(_originalSource);
}
QList<Usage> FindUsages::usages() const
@@ -178,8 +151,7 @@ QString FindUsages::matchingLine(const Token &tk) const
break;
}
- const QString matchingLine = QString::fromUtf8(cp, lineEnd - cp);
- return matchingLine;
+ return QString::fromUtf8(cp, lineEnd - cp);
}
void FindUsages::reportResult(unsigned tokenIndex)
@@ -195,9 +167,8 @@ void FindUsages::reportResult(unsigned tokenIndex)
unsigned line, col;
getTokenStartPosition(tokenIndex, &line, &col);
QString lineText;
- const int lines = _originalSource.count('\n') + 1;
- if (((int) line - 1) < lines)
- lineText = fetchLine(_originalSource, line - 1);
+ if (line < _sourceLineEnds.size())
+ lineText = fetchLine(line);
else
lineText = matchingLine(tk);
@@ -2167,3 +2138,28 @@ bool FindUsages::visit(ArrayDeclaratorAST *ast)
// unsigned rbracket_token = ast->rbracket_token;
return false;
}
+
+void FindUsages::prepareLines(const QByteArray &bytes)
+{
+ _sourceLineEnds.reserve(1000);
+ const char *s = bytes.constData();
+ _sourceLineEnds.push_back(s - 1); // we start counting at line 1, so line 0 is always empty.
+
+ for (; *s; ++s)
+ if (*s == '\n')
+ _sourceLineEnds.push_back(s);
+ if (s != _sourceLineEnds.back() + 1) // no newline at the end of the file
+ _sourceLineEnds.push_back(s);
+}
+
+QString FindUsages::fetchLine(unsigned lineNr) const
+{
+ Q_ASSERT(lineNr < _sourceLineEnds.size());
+ if (lineNr == 0)
+ return QString();
+
+ const char *start = _sourceLineEnds.at(lineNr - 1) + 1;
+ const char *end = _sourceLineEnds.at(lineNr);
+ return QString::fromUtf8(start, end - start);
+}
+
diff --git a/src/libs/cplusplus/FindUsages.h b/src/libs/cplusplus/FindUsages.h
index 504104cf719..9a88cd40503 100644
--- a/src/libs/cplusplus/FindUsages.h
+++ b/src/libs/cplusplus/FindUsages.h
@@ -284,13 +284,18 @@ protected:
virtual bool visit(ArrayDeclaratorAST *ast);
private:
+ void prepareLines(const QByteArray &bytes);
+ QString fetchLine(unsigned lineNr) const;
+
+private:
const Identifier *_id;
Symbol *_declSymbol;
QList<const Name *> _declSymbolFullyQualifiedName;
Document::Ptr _doc;
Snapshot _snapshot;
LookupContext _context;
- QByteArray _originalSource;
+ const QByteArray _originalSource;
+ std::vector<const char *> _sourceLineEnds;
QByteArray _source;
QList<int> _references;
QList<Usage> _usages;
diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp
index 6dc5bd86828..11670d4a78d 100644
--- a/src/libs/cplusplus/LookupContext.cpp
+++ b/src/libs/cplusplus/LookupContext.cpp
@@ -703,6 +703,40 @@ ClassOrNamespace *ClassOrNamespace::lookupType_helper(const Name *name,
return 0;
}
+ClassOrNamespace *ClassOrNamespace::findSpecializationWithPointer(const TemplateNameId *templId,
+ const TemplateNameIdTable &specializations)
+{
+ // we go through all specialization and try to find that one with template argument as pointer
+ for (TemplateNameIdTable::const_iterator cit = specializations.begin();
+ cit != specializations.end(); ++cit) {
+ const TemplateNameId *specializationNameId = cit->first;
+ const unsigned specializationTemplateArgumentCount
+ = specializationNameId->templateArgumentCount();
+ const unsigned initializationTemplateArgumentCount
+ = templId->templateArgumentCount();
+ // for now it works only when we have the same number of arguments in specialization
+ // and initialization(in future it should be more clever)
+ if (specializationTemplateArgumentCount == initializationTemplateArgumentCount) {
+ for (unsigned i = 0; i < initializationTemplateArgumentCount; ++i) {
+ const FullySpecifiedType &specializationTemplateArgument
+ = specializationNameId->templateArgumentAt(i);
+ const FullySpecifiedType &initializationTemplateArgument
+ = templId->templateArgumentAt(i);
+ PointerType *specPointer
+ = specializationTemplateArgument.type()->asPointerType();
+ // specialization and initialization argument have to be a pointer
+ // additionally type of pointer argument of specialization has to be namedType
+ if (specPointer && initializationTemplateArgument.type()->isPointerType()
+ && specPointer->elementType().type()->isNamedType()) {
+ return cit->second;
+ }
+ }
+ }
+ }
+
+ return 0;
+}
+
ClassOrNamespace *ClassOrNamespace::nestedType(const Name *name, ClassOrNamespace *origin)
{
Q_ASSERT(name != 0);
@@ -715,16 +749,24 @@ ClassOrNamespace *ClassOrNamespace::nestedType(const Name *name, ClassOrNamespac
return 0;
ClassOrNamespace *reference = it->second;
+ ClassOrNamespace *baseTemplateClassReference = reference;
const TemplateNameId *templId = name->asTemplateNameId();
if (templId) {
+ // for "using" we should use the real one ClassOrNamespace(it should be the first
+ // one item from usings list)
+ // we indicate that it is a 'using' by checking number of symbols(it should be 0)
+ if (reference->symbols().count() == 0 && reference->usings().count() != 0)
+ reference = reference->_usings[0];
+
// if it is a TemplateNameId it could be a specialization(full or partial) or
// instantiation of one of the specialization(reference->_specialization) or
// base class(reference)
if (templId->isSpecialization()) {
// if it is a specialization we try to find or create new one and
// add to base class(reference)
- TemplateNameIdTable::const_iterator cit = reference->_specializations.find(templId);
+ TemplateNameIdTable::const_iterator cit
+ = reference->_specializations.find(templId);
if (cit != reference->_specializations.end()) {
return cit->second;
} else {
@@ -736,15 +778,24 @@ ClassOrNamespace *ClassOrNamespace::nestedType(const Name *name, ClassOrNamespac
return newSpecialization;
}
} else {
+ QMap<const TemplateNameId *, ClassOrNamespace *>::const_iterator citInstantiation
+ = reference->_instantiations.find(templId);
+ if (citInstantiation != reference->_instantiations.end())
+ return citInstantiation.value();
TemplateNameId *nonConstTemplId = const_cast<TemplateNameId *>(templId);
// make this instantiation looks like specialization which help to find
// full specialization for this instantiation
nonConstTemplId->setIsSpecialization(true);
- TemplateNameIdTable::const_iterator cit = reference->_specializations.find(templId);
- if (cit != reference->_specializations.end()) {
+ const TemplateNameIdTable &specializations = reference->_specializations;
+ TemplateNameIdTable::const_iterator cit = specializations.find(templId);
+ if (cit != specializations.end()) {
// we found full specialization
reference = cit->second;
} else {
+ ClassOrNamespace *specializationWithPointer
+ = findSpecializationWithPointer(templId, specializations);
+ if (specializationWithPointer)
+ reference = specializationWithPointer;
// TODO: find the best specialization(probably partial) for this instantiation
}
// let's instantiation be instantiation
@@ -788,7 +839,7 @@ ClassOrNamespace *ClassOrNamespace::nestedType(const Name *name, ClassOrNamespac
// construct all instantiation data.
if (templId) {
_alreadyConsideredTemplates.insert(templId);
- ClassOrNamespace *instantiation = _factory->allocClassOrNamespace(reference);
+ ClassOrNamespace *instantiation = _factory->allocClassOrNamespace(baseTemplateClassReference);
#ifdef DEBUG_LOOKUP
instantiation->_name = templId;
#endif // DEBUG_LOOKUP
@@ -833,6 +884,17 @@ ClassOrNamespace *ClassOrNamespace::nestedType(const Name *name, ClassOrNamespac
oo.showReturnTypes = true;
oo.showTemplateParameters = true;
qDebug()<<"cloned"<<oo(clone->type());
+ if (Class *klass = s->asClass()) {
+ const unsigned klassMemberCount = klass->memberCount();
+ for (unsigned i = 0; i < klassMemberCount; ++i){
+ Symbol *klassMemberAsSymbol = klass->memberAt(i);
+ if (klassMemberAsSymbol->isTypedef()) {
+ if (Declaration *declaration = klassMemberAsSymbol->asDeclaration()) {
+ qDebug() << "Member: " << oo(declaration->type(), declaration->name());
+ }
+ }
+ }
+ }
#endif // DEBUG_LOOKUP
}
instantiateNestedClasses(reference, cloner, subst, instantiation);
@@ -904,6 +966,7 @@ ClassOrNamespace *ClassOrNamespace::nestedType(const Name *name, ClassOrNamespac
}
_alreadyConsideredTemplates.clear(templId);
+ baseTemplateClassReference->_instantiations[templId] = instantiation;
return instantiation;
}
diff --git a/src/libs/cplusplus/LookupContext.h b/src/libs/cplusplus/LookupContext.h
index 70dafc03b57..88506c1e8f9 100644
--- a/src/libs/cplusplus/LookupContext.h
+++ b/src/libs/cplusplus/LookupContext.h
@@ -69,6 +69,9 @@ public:
ClassOrNamespace *findType(const Name *name);
private:
+ typedef std::map<const Name *, ClassOrNamespace *, Name::Compare> Table;
+ typedef std::map<const TemplateNameId *, ClassOrNamespace *, TemplateNameId::Compare> TemplateNameIdTable;
+
/// \internal
void flush();
@@ -98,10 +101,8 @@ private:
Subst &subst,
ClassOrNamespace *enclosingTemplateClassInstantiation);
bool isInstantiateNestedClassNeeded(const QList<Symbol *>& symbols, const Subst &subst) const;
-
-private:
- typedef std::map<const Name *, ClassOrNamespace *, Name::Compare> Table;
- typedef std::map<const TemplateNameId *, ClassOrNamespace *, TemplateNameId::Compare> TemplateNameIdTable;
+ ClassOrNamespace *findSpecializationWithPointer(const TemplateNameId *templId,
+ const TemplateNameIdTable &specializations);
CreateBindings *_factory;
ClassOrNamespace *_parent;
@@ -112,6 +113,7 @@ private:
QList<Symbol *> _todo;
QSharedPointer<Control> _control;
TemplateNameIdTable _specializations;
+ QMap<const TemplateNameId *, ClassOrNamespace *> _instantiations;
// it's an instantiation.
const TemplateNameId *_templateId;
diff --git a/src/libs/cplusplus/Macro.h b/src/libs/cplusplus/Macro.h
index e45c9ff0310..aad4f9209c6 100644
--- a/src/libs/cplusplus/Macro.h
+++ b/src/libs/cplusplus/Macro.h
@@ -143,9 +143,7 @@ public:
private:
friend class Environment;
Macro *_next;
- unsigned _hashcode;
-private:
QString decoratedName() const;
struct Flags
@@ -160,6 +158,7 @@ private:
QVector<PPToken> _definitionTokens;
QVector<QByteArray> _formals;
QString _fileName;
+ unsigned _hashcode;
unsigned _fileRevision;
unsigned _line;
unsigned _offset;
diff --git a/src/libs/cplusplus/ResolveExpression.cpp b/src/libs/cplusplus/ResolveExpression.cpp
index 23c9b201b86..db69deb0ed8 100644
--- a/src/libs/cplusplus/ResolveExpression.cpp
+++ b/src/libs/cplusplus/ResolveExpression.cpp
@@ -835,8 +835,9 @@ public:
void resolve(FullySpecifiedType *type, Scope **scope, ClassOrNamespace *binding)
{
QSet<Symbol *> visited;
+ _binding = binding;
while (NamedType *namedTy = getNamedType(*type)) {
- QList<LookupItem> namedTypeItems = getNamedTypeItems(namedTy->name(), *scope, binding);
+ QList<LookupItem> namedTypeItems = getNamedTypeItems(namedTy->name(), *scope, _binding);
#ifdef DEBUG_LOOKUP
qDebug() << "-- we have" << namedTypeItems.size() << "candidates";
@@ -908,7 +909,7 @@ private:
}
bool findTypedef(const QList<LookupItem>& namedTypeItems, FullySpecifiedType *type,
- Scope **scope, QSet<Symbol *>& visited) const
+ Scope **scope, QSet<Symbol *>& visited)
{
bool foundTypedef = false;
foreach (const LookupItem &it, namedTypeItems) {
@@ -921,6 +922,7 @@ private:
// continue working with the typedefed type and scope
*type = declaration->type();
*scope = it.scope();
+ _binding = it.binding();
foundTypedef = true;
break;
}
@@ -930,6 +932,8 @@ private:
}
const LookupContext &_context;
+ // binding has to be remembered in case of resolving typedefs for templates
+ ClassOrNamespace *_binding;
};
ClassOrNamespace *ResolveExpression::baseExpression(const QList<LookupItem> &baseResults,
diff --git a/src/libs/cplusplus/pp-engine.cpp b/src/libs/cplusplus/pp-engine.cpp
index 1e3b186f0bf..1c45e61e2a8 100644
--- a/src/libs/cplusplus/pp-engine.cpp
+++ b/src/libs/cplusplus/pp-engine.cpp
@@ -547,14 +547,14 @@ Preprocessor::State::State()
, m_skipping(MAX_LEVEL)
, m_trueTest(MAX_LEVEL)
, m_ifLevel(0)
- , m_tokenBuffer(0)
, m_tokenBufferDepth(0)
+ , m_tokenBuffer(0)
, m_inPreprocessorDirective(false)
- , m_result(0)
, m_markExpandedTokens(true)
, m_noLines(false)
, m_inCondition(false)
, m_offsetRef(0)
+ , m_result(0)
, m_lineRef(1)
, m_expansionStatus(NotExpanding)
, m_includeGuardState(IncludeGuardState_BeforeIfndef)
diff --git a/src/libs/cplusplus/pp-engine.h b/src/libs/cplusplus/pp-engine.h
index 2bad2a5f6d6..1b318c74c8b 100644
--- a/src/libs/cplusplus/pp-engine.h
+++ b/src/libs/cplusplus/pp-engine.h
@@ -118,17 +118,17 @@ private:
QBitArray m_skipping;
QBitArray m_trueTest;
int m_ifLevel;
- Internal::TokenBuffer *m_tokenBuffer;
unsigned m_tokenBufferDepth;
+ Internal::TokenBuffer *m_tokenBuffer;
bool m_inPreprocessorDirective;
- QByteArray *m_result;
bool m_markExpandedTokens;
bool m_noLines;
bool m_inCondition;
unsigned m_offsetRef;
+ QByteArray *m_result;
unsigned m_lineRef;
ExpansionStatus m_expansionStatus;
diff --git a/src/libs/extensionsystem/optionsparser.cpp b/src/libs/extensionsystem/optionsparser.cpp
index 3838d0fda7e..d9b1eede951 100644
--- a/src/libs/extensionsystem/optionsparser.cpp
+++ b/src/libs/extensionsystem/optionsparser.cpp
@@ -36,6 +36,7 @@ using namespace ExtensionSystem::Internal;
static const char END_OF_OPTIONS[] = "--";
const char *OptionsParser::NO_LOAD_OPTION = "-noload";
+const char *OptionsParser::LOAD_OPTION = "-load";
const char *OptionsParser::TEST_OPTION = "-test";
const char *OptionsParser::PROFILE_OPTION = "-profile";
@@ -68,6 +69,8 @@ bool OptionsParser::parse()
break;
if (checkForEndOfOptions())
break;
+ if (checkForLoadOption())
+ continue;
if (checkForNoLoadOption())
continue;
if (checkForProfilingOption())
@@ -137,6 +140,26 @@ bool OptionsParser::checkForTestOption()
return true;
}
+bool OptionsParser::checkForLoadOption()
+{
+ if (m_currentArg != QLatin1String(LOAD_OPTION))
+ return false;
+ if (nextToken(RequiredToken)) {
+ PluginSpec *spec = m_pmPrivate->pluginByName(m_currentArg);
+ if (!spec) {
+ if (m_errorString)
+ *m_errorString = QCoreApplication::translate("PluginManager",
+ "The plugin '%1' does not exist.")
+ .arg(m_currentArg);
+ m_hasError = true;
+ } else {
+ spec->setForceEnabled(true);
+ m_isDependencyRefreshNeeded = true;
+ }
+ }
+ return true;
+}
+
bool OptionsParser::checkForNoLoadOption()
{
if (m_currentArg != QLatin1String(NO_LOAD_OPTION))
@@ -149,7 +172,7 @@ bool OptionsParser::checkForNoLoadOption()
"The plugin '%1' does not exist.").arg(m_currentArg);
m_hasError = true;
} else {
- m_pmPrivate->disablePluginIndirectly(spec);
+ spec->setForceDisabled(true);
m_isDependencyRefreshNeeded = true;
}
}
diff --git a/src/libs/extensionsystem/optionsparser.h b/src/libs/extensionsystem/optionsparser.h
index c15b5f6b633..20af05db8ff 100644
--- a/src/libs/extensionsystem/optionsparser.h
+++ b/src/libs/extensionsystem/optionsparser.h
@@ -50,12 +50,14 @@ public:
bool parse();
static const char *NO_LOAD_OPTION;
+ static const char *LOAD_OPTION;
static const char *TEST_OPTION;
static const char *PROFILE_OPTION;
private:
// return value indicates if the option was processed
// it doesn't indicate success (--> m_hasError)
bool checkForEndOfOptions();
+ bool checkForLoadOption();
bool checkForNoLoadOption();
bool checkForTestOption();
bool checkForAppOption();
diff --git a/src/libs/extensionsystem/pluginerroroverview.cpp b/src/libs/extensionsystem/pluginerroroverview.cpp
index 16bae321165..84c44bf01db 100644
--- a/src/libs/extensionsystem/pluginerroroverview.cpp
+++ b/src/libs/extensionsystem/pluginerroroverview.cpp
@@ -45,7 +45,7 @@ PluginErrorOverview::PluginErrorOverview(QWidget *parent) :
foreach (PluginSpec *spec, PluginManager::plugins()) {
// only show errors on startup if plugin is enabled.
- if (spec->hasError() && spec->isEnabled() && !spec->isDisabledIndirectly()) {
+ if (spec->hasError() && spec->isEnabledInSettings() && !spec->isDisabledIndirectly()) {
QListWidgetItem *item = new QListWidgetItem(spec->name());
item->setData(Qt::UserRole, qVariantFromValue(spec));
m_ui->pluginList->addItem(item);
diff --git a/src/libs/extensionsystem/pluginmanager.cpp b/src/libs/extensionsystem/pluginmanager.cpp
index 0c42f27003a..8829f757e78 100644
--- a/src/libs/extensionsystem/pluginmanager.cpp
+++ b/src/libs/extensionsystem/pluginmanager.cpp
@@ -335,7 +335,7 @@ bool PluginManager::hasError()
{
foreach (PluginSpec *spec, plugins()) {
// only show errors on startup if plugin is enabled.
- if (spec->hasError() && spec->isEnabled() && !spec->isDisabledIndirectly())
+ if (spec->hasError() && spec->isEnabledInSettings() && !spec->isDisabledIndirectly())
return true;
}
return false;
@@ -609,6 +609,9 @@ static inline void formatOption(QTextStream &str,
void PluginManager::formatOptions(QTextStream &str, int optionIndentation, int descriptionIndentation)
{
+ formatOption(str, QLatin1String(OptionsParser::LOAD_OPTION),
+ QLatin1String("plugin"), QLatin1String("Load <plugin>"),
+ optionIndentation, descriptionIndentation);
formatOption(str, QLatin1String(OptionsParser::NO_LOAD_OPTION),
QLatin1String("plugin"), QLatin1String("Do not load <plugin>"),
optionIndentation, descriptionIndentation);
@@ -882,9 +885,9 @@ void PluginManagerPrivate::writeSettings()
QStringList tempDisabledPlugins;
QStringList tempForceEnabledPlugins;
foreach (PluginSpec *spec, pluginSpecs) {
- if (!spec->isDisabledByDefault() && !spec->isEnabled())
+ if (!spec->isDisabledByDefault() && !spec->isEnabledInSettings())
tempDisabledPlugins.append(spec->name());
- if (spec->isDisabledByDefault() && spec->isEnabled())
+ if (spec->isDisabledByDefault() && spec->isEnabledInSettings())
tempForceEnabledPlugins.append(spec->name());
}
@@ -1120,7 +1123,7 @@ void PluginManagerPrivate::loadPlugin(PluginSpec *spec, PluginSpec::State destSt
return;
// don't load disabled plugins.
- if ((spec->isDisabledIndirectly() || !spec->isEnabled()) && destState == PluginSpec::Loaded)
+ if (!spec->isEffectivelyEnabled() && destState == PluginSpec::Loaded)
return;
switch (destState) {
@@ -1249,6 +1252,11 @@ void PluginManagerPrivate::resolveDependencies()
foreach (PluginSpec *spec, pluginSpecs) {
spec->d->resolveDependencies(pluginSpecs);
}
+
+ // Reset disabledIndirectly flag
+ foreach (PluginSpec *spec, loadQueue())
+ spec->d->disabledIndirectly = false;
+
foreach (PluginSpec *spec, loadQueue()) {
spec->d->disableIndirectlyIfDependencyDisabled();
}
diff --git a/src/libs/extensionsystem/pluginspec.cpp b/src/libs/extensionsystem/pluginspec.cpp
index d6623e42c1c..87a70d09c2d 100644
--- a/src/libs/extensionsystem/pluginspec.cpp
+++ b/src/libs/extensionsystem/pluginspec.cpp
@@ -283,18 +283,32 @@ bool PluginSpec::isDisabledByDefault() const
}
/*!
- \fn bool PluginSpec::isEnabled() const
- Returns if the plugin is loaded at startup. True by default - the user can change it from the Plugin settings.
+ \fn bool PluginSpec::isEnabledInSettings() const
+ Returns if the plugin should be loaded at startup. True by default
+ The user can change it from the Plugin settings.
+ Note: That this function returns true even if a plugin is disabled because
+ of a not loaded dependencies, or a error in loading.
*/
-bool PluginSpec::isEnabled() const
+bool PluginSpec::isEnabledInSettings() const
{
- return d->enabled;
+ return d->enabledInSettings;
+}
+
+/*!
+ \fn bool PluginSpec::isEffectivelyEnabled() const
+ Returns if the plugin is loaded at startup.
+ \see PluginSpec::isEnabled
+*/
+bool PluginSpec::isEffectivelyEnabled() const
+{
+ return !d->disabledIndirectly
+ && (d->enabledInSettings || d->forceEnabled)
+ && !d->forceDisabled;
}
/*!
\fn bool PluginSpec::isDisabledIndirectly() const
- Returns true if loading was not done due to user unselecting this plugin or its dependencies,
- or if command-line parameter -noload was used.
+ Returns true if loading was not done due to user unselecting this plugin or its dependencies.
*/
bool PluginSpec::isDisabledIndirectly() const
{
@@ -302,6 +316,24 @@ bool PluginSpec::isDisabledIndirectly() const
}
/*!
+ \fn bool PluginSpec::isForceEnabled() const
+ Returns if the plugin is enabled via the -load option on the command line.
+*/
+bool PluginSpec::isForceEnabled() const
+{
+ return d->forceEnabled;
+}
+
+/*!
+ \fn bool PluginSpec::isForceDisabled() const
+ Returns if the plugin is disabled via the -noload option on the command line.
+*/
+bool PluginSpec::isForceDisabled() const
+{
+ return d->forceDisabled;
+}
+
+/*!
\fn QList<PluginDependency> PluginSpec::dependencies() const
The plugin dependencies. This is valid after the PluginSpec::Read state is reached.
*/
@@ -468,8 +500,10 @@ PluginSpecPrivate::PluginSpecPrivate(PluginSpec *spec)
:
experimental(false),
disabledByDefault(false),
- enabled(true),
+ enabledInSettings(true),
disabledIndirectly(false),
+ forceEnabled(false),
+ forceDisabled(false),
plugin(0),
state(PluginSpec::Invalid),
hasError(false),
@@ -528,7 +562,7 @@ bool PluginSpecPrivate::read(const QString &fileName)
void PluginSpec::setEnabled(bool value)
{
- d->enabled = value;
+ d->enabledInSettings = value;
}
void PluginSpec::setDisabledByDefault(bool value)
@@ -541,6 +575,20 @@ void PluginSpec::setDisabledIndirectly(bool value)
d->disabledIndirectly = value;
}
+void PluginSpec::setForceEnabled(bool value)
+{
+ d->forceEnabled = value;
+ if (value)
+ d->forceDisabled = false;
+}
+
+void PluginSpec::setForceDisabled(bool value)
+{
+ if (value)
+ d->forceEnabled = false;
+ d->forceDisabled = value;
+}
+
/*!
\fn bool PluginSpecPrivate::reportError(const QString &err)
\internal
@@ -616,7 +664,7 @@ void PluginSpecPrivate::readPluginSpec(QXmlStreamReader &reader)
return;
if (experimental)
disabledByDefault = true;
- enabled = !disabledByDefault;
+ enabledInSettings = !disabledByDefault;
while (!reader.atEnd()) {
reader.readNext();
switch (reader.tokenType()) {
@@ -888,7 +936,7 @@ bool PluginSpecPrivate::resolveDependencies(const QList<PluginSpec *> &specs)
void PluginSpecPrivate::disableIndirectlyIfDependencyDisabled()
{
- if (!enabled)
+ if (!enabledInSettings)
return;
if (disabledIndirectly)
@@ -900,7 +948,7 @@ void PluginSpecPrivate::disableIndirectlyIfDependencyDisabled()
if (it.key().type == PluginDependency::Optional)
continue;
PluginSpec *dependencySpec = it.value();
- if (dependencySpec->isDisabledIndirectly() || !dependencySpec->isEnabled()) {
+ if (!dependencySpec->isEffectivelyEnabled()) {
disabledIndirectly = true;
break;
}
diff --git a/src/libs/extensionsystem/pluginspec.h b/src/libs/extensionsystem/pluginspec.h
index 6b432c80cdf..d55fe7174b5 100644
--- a/src/libs/extensionsystem/pluginspec.h
+++ b/src/libs/extensionsystem/pluginspec.h
@@ -92,8 +92,11 @@ public:
QString category() const;
bool isExperimental() const;
bool isDisabledByDefault() const;
- bool isEnabled() const;
+ bool isEnabledInSettings() const;
+ bool isEffectivelyEnabled() const;
bool isDisabledIndirectly() const;
+ bool isForceEnabled() const;
+ bool isForceDisabled() const;
QList<PluginDependency> dependencies() const;
typedef QList<PluginArgumentDescription> PluginArgumentDescriptions;
@@ -106,6 +109,8 @@ public:
void setEnabled(bool value);
void setDisabledByDefault(bool value);
void setDisabledIndirectly(bool value);
+ void setForceEnabled(bool value);
+ void setForceDisabled(bool value);
QStringList arguments() const;
void setArguments(const QStringList &arguments);
diff --git a/src/libs/extensionsystem/pluginspec_p.h b/src/libs/extensionsystem/pluginspec_p.h
index 1be74b1ef04..bad7369ec99 100644
--- a/src/libs/extensionsystem/pluginspec_p.h
+++ b/src/libs/extensionsystem/pluginspec_p.h
@@ -73,8 +73,10 @@ public:
QString url;
QString category;
QList<PluginDependency> dependencies;
- bool enabled;
+ bool enabledInSettings;
bool disabledIndirectly;
+ bool forceEnabled;
+ bool forceDisabled;
QString location;
QString filePath;
diff --git a/src/libs/extensionsystem/pluginview.cpp b/src/libs/extensionsystem/pluginview.cpp
index edfe4ae94fa..10f8c2484c8 100644
--- a/src/libs/extensionsystem/pluginview.cpp
+++ b/src/libs/extensionsystem/pluginview.cpp
@@ -133,7 +133,7 @@ void PluginView::updateList()
PluginCollection *defaultCollection = 0;
foreach (PluginCollection *collection, PluginManager::pluginCollections()) {
- if (collection->name().isEmpty()) {
+ if (collection->name().isEmpty() || collection->plugins().isEmpty()) {
defaultCollection = collection;
continue;
}
@@ -155,23 +155,26 @@ void PluginView::updateList()
collectionItem->setData(0, Qt::UserRole, qVariantFromValue(collection));
}
- // add all non-categorized plugins into utilities. could also be added as root items
- // but that makes the tree ugly.
- QTreeWidgetItem *defaultCollectionItem = new QTreeWidgetItem(QStringList()
- << QString(tr("Utilities"))
- << QString()
- << QString()
- << QString()
- << QString());
-
- m_items.append(defaultCollectionItem);
- Qt::CheckState groupState = Qt::Unchecked;
- int state = parsePluginSpecs(defaultCollectionItem, groupState, defaultCollection ? defaultCollection->plugins() : QList<PluginSpec *>());
+ QList<PluginSpec *> plugins = defaultCollection ? defaultCollection->plugins() : QList<PluginSpec *>();
+ if (!plugins.isEmpty()) {
+ // add all non-categorized plugins into utilities. could also be added as root items
+ // but that makes the tree ugly.
+ QTreeWidgetItem *defaultCollectionItem = new QTreeWidgetItem(QStringList()
+ << QString(tr("Utilities"))
+ << QString()
+ << QString()
+ << QString()
+ << QString());
+
+ m_items.append(defaultCollectionItem);
+ Qt::CheckState groupState = Qt::Unchecked;
+ int state = parsePluginSpecs(defaultCollectionItem, groupState, plugins);
- defaultCollectionItem->setIcon(0, iconForState(state));
- defaultCollectionItem->setData(C_LOAD, Qt::CheckStateRole, QVariant(groupState));
- defaultCollectionItem->setToolTip(C_LOAD, tr("Load on Startup"));
- defaultCollectionItem->setData(0, Qt::UserRole, qVariantFromValue(defaultCollection));
+ defaultCollectionItem->setIcon(0, iconForState(state));
+ defaultCollectionItem->setData(C_LOAD, Qt::CheckStateRole, QVariant(groupState));
+ defaultCollectionItem->setToolTip(C_LOAD, tr("Load on Startup"));
+ defaultCollectionItem->setData(0, Qt::UserRole, qVariantFromValue(defaultCollection));
+ }
updatePluginDependencies();
@@ -189,7 +192,7 @@ void PluginView::updateList()
int PluginView::parsePluginSpecs(QTreeWidgetItem *parentItem, Qt::CheckState &groupState, QList<PluginSpec*> plugins)
{
int ret = 0;
- int loadCount = 0;
+ int checkedCount = 0;
for (int i = 0; i < plugins.length(); ++i) {
PluginSpec *spec = plugins[i];
@@ -212,9 +215,9 @@ int PluginView::parsePluginSpecs(QTreeWidgetItem *parentItem, Qt::CheckState &gr
pluginItem->setData(0, Qt::UserRole, qVariantFromValue(spec));
Qt::CheckState state = Qt::Unchecked;
- if (spec->isEnabled()) {
+ if (spec->isEnabledInSettings()) {
state = Qt::Checked;
- ++loadCount;
+ ++checkedCount;
}
if (!m_whitelist.contains(spec->name())) {
@@ -232,15 +235,14 @@ int PluginView::parsePluginSpecs(QTreeWidgetItem *parentItem, Qt::CheckState &gr
parentItem->addChild(pluginItem);
else
m_items.append(pluginItem);
-
}
- if (loadCount == plugins.length()) {
- groupState = Qt::Checked;
- ret |= ParsedAll;
- } else if (loadCount == 0) {
+ if (checkedCount == 0) {
groupState = Qt::Unchecked;
ret |= ParsedNone;
+ } else if (checkedCount == plugins.length()) {
+ groupState = Qt::Checked;
+ ret |= ParsedAll;
} else {
groupState = Qt::PartiallyChecked;
ret = ret | ParsedPartial;
@@ -300,7 +302,7 @@ void PluginView::updatePluginSettings(QTreeWidgetItem *item, int column)
Qt::CheckState state = Qt::PartiallyChecked;
int loadCount = 0;
for (int i = 0; i < collection->plugins().length(); ++i) {
- if (collection->plugins().at(i)->isEnabled())
+ if (collection->plugins().at(i)->isEnabledInSettings())
++loadCount;
}
if (loadCount == collection->plugins().length())
@@ -330,7 +332,8 @@ void PluginView::updatePluginSettings(QTreeWidgetItem *item, int column)
}
}
updatePluginDependencies();
- emit pluginSettingsChanged(collection->plugins().first());
+ if (!collection->plugins().isEmpty())
+ emit pluginSettingsChanged(collection->plugins().first());
}
m_allowCheckStateUpdate = true;
@@ -349,7 +352,7 @@ void PluginView::updatePluginDependencies()
if (it.key().type == PluginDependency::Optional)
continue;
PluginSpec *depSpec = it.value();
- if (!depSpec->isEnabled() || depSpec->isDisabledIndirectly()) {
+ if (!depSpec->isEnabledInSettings() || depSpec->isDisabledIndirectly()) {
disableIndirectly = true;
break;
}
diff --git a/src/libs/qmldebug/qmltoolsclient.cpp b/src/libs/qmldebug/qmltoolsclient.cpp
index 7c19e056552..12f876b2b8e 100644
--- a/src/libs/qmldebug/qmltoolsclient.cpp
+++ b/src/libs/qmldebug/qmltoolsclient.cpp
@@ -65,8 +65,8 @@ QmlToolsClient::QmlToolsClient(QmlDebugConnection *client)
: BaseToolsClient(client, QLatin1String("QmlInspector")),
m_connection(client),
m_requestId(0),
- m_slowDownFactor(1),
m_reloadQueryId(-1),
+ m_slowDownFactor(1),
m_destroyObjectQueryId(-1)
{
setObjectName(name());
diff --git a/src/libs/qmldebug/qmltoolsclient.h b/src/libs/qmldebug/qmltoolsclient.h
index 76911c68e68..b153842da1e 100644
--- a/src/libs/qmldebug/qmltoolsclient.h
+++ b/src/libs/qmldebug/qmltoolsclient.h
@@ -79,8 +79,8 @@ private:
QList<int> m_currentDebugIds;
QmlDebugConnection *m_connection;
int m_requestId;
- qreal m_slowDownFactor;
int m_reloadQueryId;
+ qreal m_slowDownFactor;
int m_destroyObjectQueryId;
};
diff --git a/src/libs/qmljs/persistenttrie.cpp b/src/libs/qmljs/persistenttrie.cpp
index 4c648196c59..75db9b5e8b9 100644
--- a/src/libs/qmljs/persistenttrie.cpp
+++ b/src/libs/qmljs/persistenttrie.cpp
@@ -261,6 +261,54 @@ QStringList TrieNode::stringList(const TrieNode::Ptr &trie)
return a.res;
}
+bool TrieNode::isSame(const TrieNode::Ptr &trie1, const TrieNode::Ptr &trie2)
+{
+ if (trie1.data() == trie2.data())
+ return true;
+ if (trie1.isNull() || trie2.isNull())
+ return false; // assume never to generate non null empty tries
+ if (trie1->prefix != trie2->prefix)
+ return false; // assume no excess splitting
+ QList<TrieNode::Ptr> t1 = trie1->postfixes, t2 =trie2->postfixes;
+ int nEl = t1.size();
+ if (nEl != t2.size()) return false;
+ // different order = different trie
+ for (int i = 0; i < nEl; ++i) {
+ if (!isSame(t1.value(i), t2.value(i)))
+ return false;
+ }
+ return true;
+}
+
+namespace {
+class ReplaceInTrie
+{
+public:
+ TrieNode::Ptr trie;
+ QHash<QString, QString> replacements;
+ ReplaceInTrie() { }
+ void operator()(QString s)
+ {
+ QHashIterator<QString, QString> i(replacements);
+ QString res = s;
+ while (i.hasNext()) {
+ i.next();
+ res.replace(i.key(), i.value());
+ }
+ trie = TrieNode::insertF(trie,res);
+ }
+};
+}
+
+TrieNode::Ptr TrieNode::replaceF(const TrieNode::Ptr &trie, const QHash<QString, QString> &replacements)
+{
+ // inefficient...
+ ReplaceInTrie rep;
+ rep.replacements = replacements;
+ enumerateTrieNode<ReplaceInTrie>(trie, rep, QString());
+ return rep.trie;
+}
+
std::pair<TrieNode::Ptr,int> TrieNode::intersectF(
const TrieNode::Ptr &v1, const TrieNode::Ptr &v2, int index1)
{
@@ -553,6 +601,26 @@ void Trie::merge(const Trie &v)
trie = TrieNode::mergeF(trie, v.trie).first;
}
+void Trie::replace(const QHash<QString, QString> &replacements)
+{
+ trie = TrieNode::replaceF(trie, replacements);
+}
+
+bool Trie::isEmpty() const
+{
+ return trie.isNull(); // assuming to never generate an empty non null trie
+}
+
+bool Trie::operator==(const Trie &o)
+{
+ return TrieNode::isSame(trie,o.trie);
+}
+
+bool Trie::operator!=(const Trie &o)
+{
+ return !TrieNode::isSame(trie,o.trie);
+}
+
Trie Trie::insertF(const QString &value) const
{
return Trie(TrieNode::insertF(trie, value));
@@ -568,13 +636,19 @@ Trie Trie::mergeF(const Trie &v) const
return Trie(TrieNode::mergeF(trie, v.trie).first);
}
+Trie Trie::replaceF(const QHash<QString, QString> &replacements) const
+{
+ return Trie(TrieNode::replaceF(trie, replacements));
+}
+
/*!
\fn int matchStrength(const QString &searchStr, const QString &str)
Returns a number defining how well the serachStr matches str.
Quite simplistic, looks only at the first match, and prefers contiguos
- matches, or matches to ca capitalized or separated word.
+ matches, or matches to capitalized or separated words.
+ Match to the last char is also preferred.
*/
int matchStrength(const QString &searchStr, const QString &str)
{
@@ -601,6 +675,8 @@ int matchStrength(const QString &searchStr, const QString &str)
}
if (i != iEnd)
return iEnd - i;
+ if (j == jEnd)
+ ++res;
return res;
}
diff --git a/src/libs/qmljs/persistenttrie.h b/src/libs/qmljs/persistenttrie.h
index 2a124bb0a3b..22666ddb894 100644
--- a/src/libs/qmljs/persistenttrie.h
+++ b/src/libs/qmljs/persistenttrie.h
@@ -32,6 +32,7 @@
#include <qmljs/qmljs_global.h>
+#include <QHash>
#include <QList>
#include <QSharedPointer>
@@ -67,7 +68,9 @@ public:
const QString &base = QString(), LookupFlags flags = LookupFlags(CaseInsensitive|Partial));
static bool contains(const Ptr &trie, const QString &value, LookupFlags flags = LookupFlags(0));
static QStringList stringList(const Ptr &trie);
+ static bool isSame(const Ptr &trie1, const Ptr &trie2);
+ static Ptr replaceF(const Ptr &trie, const QHash<QString, QString> &replacements);
static Ptr insertF(const Ptr &trie, const QString &value);
static std::pair<Ptr,int> intersectF(const Ptr &v1, const Ptr &v2, int index1=0);
static std::pair<Ptr,int> mergeF(const Ptr &v1, const Ptr &v2);
@@ -91,10 +94,16 @@ public:
Trie insertF(const QString &value) const;
Trie intersectF(const Trie &v) const;
Trie mergeF(const Trie &v) const;
+ Trie replaceF(const QHash<QString, QString> &replacements) const;
void insert(const QString &value);
void intersect(const Trie &v);
void merge(const Trie &v);
+ void replace(const QHash<QString, QString> &replacements);
+
+ bool isEmpty() const;
+ bool operator==(const Trie &o);
+ bool operator!=(const Trie &o);
friend QMLJS_EXPORT QDebug &operator<<(QDebug &dbg, const TrieNode::Ptr &trie);
friend QMLJS_EXPORT QDebug &operator<<(QDebug &dbg, const Trie &trie);
diff --git a/src/libs/qmljs/qmljs-lib.pri b/src/libs/qmljs/qmljs-lib.pri
index c5f2c3ba506..f31879a6f01 100644
--- a/src/libs/qmljs/qmljs-lib.pri
+++ b/src/libs/qmljs/qmljs-lib.pri
@@ -11,6 +11,7 @@ INCLUDEPATH += $$PWD/..
HEADERS += \
$$PWD/qmljs_global.h \
$$PWD/qmljsbind.h \
+ $$PWD/qmljsbundle.h \
$$PWD/qmljsevaluate.h \
$$PWD/qmljsdocument.h \
$$PWD/qmljsscanner.h \
@@ -42,6 +43,7 @@ HEADERS += \
SOURCES += \
$$PWD/qmljsbind.cpp \
+ $$PWD/qmljsbundle.cpp \
$$PWD/qmljsevaluate.cpp \
$$PWD/qmljsdocument.cpp \
$$PWD/qmljsscanner.cpp \
diff --git a/src/libs/qmljs/qmljs.qbs b/src/libs/qmljs/qmljs.qbs
index f68218fbceb..ec66195d538 100644
--- a/src/libs/qmljs/qmljs.qbs
+++ b/src/libs/qmljs/qmljs.qbs
@@ -23,6 +23,8 @@ QtcLibrary {
"qmljs_global.h",
"qmljsbind.cpp",
"qmljsbind.h",
+ "qmljsbundle.cpp",
+ "qmljsbundle.h",
"qmljscheck.cpp",
"qmljscheck.h",
"qmljscodeformatter.cpp",
diff --git a/src/libs/qmljs/qmljsbind.cpp b/src/libs/qmljs/qmljsbind.cpp
index b5a0a93a8fc..b26b1693958 100644
--- a/src/libs/qmljs/qmljsbind.cpp
+++ b/src/libs/qmljs/qmljsbind.cpp
@@ -31,6 +31,7 @@
#include "qmljsbind.h"
#include "qmljsutils.h"
#include "qmljsdocument.h"
+#include "qmljsmodelmanagerinterface.h"
#include <languageutils/componentversion.h>
@@ -204,15 +205,27 @@ bool Bind::visit(UiImport *ast)
_diagnosticMessages->append(
errorMessage(ast, tr("package import requires a version number")));
}
- _imports += ImportInfo::moduleImport(toString(ast->importUri), version,
- ast->importId.toString(), ast);
+ ImportInfo import = ImportInfo::moduleImport(toString(ast->importUri), version,
+ ast->importId.toString(), ast);
+ if (_doc->language() == Document::QmlLanguage) {
+ QString importStr = import.name() + ast->importId.toString();
+ QmlLanguageBundles langBundles = ModelManagerInterface::instance()->extendedBundles();
+ QmlBundle qq1 = langBundles.bundleForLanguage(Document::QmlQtQuick1Language);
+ QmlBundle qq2 = langBundles.bundleForLanguage(Document::QmlQtQuick2Language);
+ bool isQQ1 = qq1.supportedImports().contains(importStr);
+ bool isQQ2 = qq2.supportedImports().contains(importStr);
+ if (isQQ1 && ! isQQ2)
+ _doc->setLanguage(Document::QmlQtQuick1Language);
+ if (isQQ2 && ! isQQ1)
+ _doc->setLanguage(Document::QmlQtQuick2Language);
+ }
+ _imports += import;
} else if (!ast->fileName.isEmpty()) {
_imports += ImportInfo::pathImport(_doc->path(), ast->fileName.toString(),
version, ast->importId.toString(), ast);
} else {
_imports += ImportInfo::invalidImport(ast);
}
-
return false;
}
diff --git a/src/libs/qmljs/qmljsbundle.cpp b/src/libs/qmljs/qmljsbundle.cpp
new file mode 100644
index 00000000000..9f755f04be5
--- /dev/null
+++ b/src/libs/qmljs/qmljsbundle.cpp
@@ -0,0 +1,317 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 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.
+**
+****************************************************************************/
+
+#include "qmljsbundle.h"
+
+#include <utils/json.h>
+
+#include <QString>
+#include <QFile>
+#include <QTextStream>
+#include <QHash>
+
+namespace QmlJS {
+typedef PersistentTrie::Trie Trie;
+
+QmlBundle::QmlBundle(const QmlBundle &o)
+ : m_name(o.m_name), m_searchPaths(o.searchPaths()), m_installPaths(o.installPaths()),
+ m_supportedImports(o.m_supportedImports), m_implicitImports(o.m_implicitImports)
+{ }
+
+QmlBundle::QmlBundle()
+{ }
+
+QmlBundle::QmlBundle(const QString &bundleName, const Trie &searchPaths,
+ const Trie &installPaths, const Trie &supportedImports,
+ const Trie &implicitImports)
+ : m_name(bundleName), m_searchPaths(searchPaths), m_installPaths(installPaths),
+ m_supportedImports(supportedImports), m_implicitImports(implicitImports)
+{ }
+
+
+QString QmlBundle::name() const
+{
+ return m_name;
+}
+
+Trie QmlBundle::installPaths() const
+{
+ return m_installPaths;
+}
+
+Trie QmlBundle::searchPaths() const
+{
+ return m_searchPaths;
+}
+
+Trie QmlBundle::implicitImports() const
+{
+ return m_implicitImports;
+}
+
+
+Trie QmlBundle::supportedImports() const
+{
+ return m_supportedImports;
+}
+
+
+void QmlBundle::merge(const QmlBundle &o)
+{
+ *this = mergeF(o);
+}
+
+
+void QmlBundle::intersect(const QmlBundle &o)
+{
+ *this = intersectF(o);
+}
+
+
+QmlBundle QmlBundle::mergeF(const QmlBundle &o) const
+{
+ return QmlBundle(QString::fromLatin1("(%1)||(%2)").arg(name()).arg(o.name()),
+ searchPaths().mergeF(o.searchPaths()),
+ installPaths().mergeF(o.installPaths()),
+ supportedImports().mergeF(o.supportedImports()),
+ implicitImports().mergeF(o.implicitImports()));
+}
+
+QmlBundle QmlBundle::intersectF(const QmlBundle &o) const
+{
+ return QmlBundle(QString::fromLatin1("(%1)&&(%2)").arg(name()).arg(o.name()),
+ searchPaths().mergeF(o.searchPaths()),
+ installPaths().mergeF(o.installPaths()),
+ supportedImports().intersectF(o.supportedImports()),
+ implicitImports().mergeF(o.implicitImports()));
+}
+
+bool QmlBundle::isEmpty() const
+{
+ return m_implicitImports.isEmpty() && m_installPaths.isEmpty()
+ && m_searchPaths.isEmpty() && m_supportedImports.isEmpty();
+}
+
+void QmlBundle::replaceVars(const QHash<QString, QString> &replacements)
+{
+ m_implicitImports.replace(replacements);
+ m_installPaths.replace(replacements);
+ m_searchPaths.replace(replacements);
+ m_supportedImports.replace(replacements);
+}
+
+QmlBundle QmlBundle::replaceVarsF(const QHash<QString, QString> &replacements) const
+{
+ QmlBundle res(*this);
+ res.replaceVars(replacements);
+ return res;
+}
+
+bool QmlBundle::writeTo(const QString &path) const
+{
+ QFile f(path);
+ if (!f.open(QIODevice::WriteOnly | QIODevice::Text))
+ return false;
+ QTextStream stream(&f);
+ return writeTo(stream);
+}
+
+bool QmlBundle::operator==(const QmlBundle &o) const
+{
+ return o.implicitImports() == implicitImports()
+ && o.installPaths() == installPaths()
+ && o.supportedImports() == supportedImports(); // name is not considered
+}
+
+bool QmlBundle::operator!=(const QmlBundle &o) const
+{
+ return !((*this) == o);
+}
+
+void QmlBundle::printEscaped(QTextStream &s, const QString &str)
+{
+ s << QLatin1Char('"');
+ QString::const_iterator i = str.constBegin(), iLast = str.constBegin(),
+ iEnd = str.constEnd();
+ while (i != iEnd) {
+ if ((*i) != QLatin1Char('"')) {
+ s << QStringRef(&str, static_cast<int>(iLast - str.constBegin())
+ , static_cast<int>(i - iLast) ).toString()
+ << QLatin1Char('\\');
+ iLast = i;
+ }
+ ++i;
+ }
+ s << QStringRef(&str, static_cast<int>(iLast - str.constBegin())
+ , static_cast<int>(i - iLast) ).toString();
+}
+
+void QmlBundle::writeTrie(QTextStream &stream, const Trie &t, const QString &indent) {
+ stream << QLatin1Char('[');
+ bool firstLine = true;
+ foreach (const QString &i, t.stringList()) {
+ if (firstLine)
+ firstLine = false;
+ else
+ stream << QLatin1Char(',');
+ stream << QLatin1String("\n") << indent << QLatin1String(" ");
+ printEscaped(stream, i);
+ }
+ stream << QLatin1Char(']');
+}
+
+bool QmlBundle::writeTo(QTextStream &stream, const QString &indent) const
+{
+ QString innerIndent = QString::fromLatin1(" ").append(indent);
+ stream << indent << QLatin1String("{\n")
+ << indent << QLatin1String(" \"name\": ");
+ printEscaped(stream, name());
+ stream << QLatin1String(",\n")
+ << indent << QLatin1String(" \"searchPaths\": ");
+ writeTrie(stream, searchPaths(), innerIndent);
+ stream << QLatin1String(",\n")
+ << indent << QLatin1String(" \"installPaths\": ");
+ writeTrie(stream, installPaths(), innerIndent);
+ stream << QLatin1String(",\n")
+ << indent << QLatin1String(" \"supportedImports\": ");
+ writeTrie(stream, supportedImports(), innerIndent);
+ stream << QLatin1String(",\n")
+ << QLatin1String(" \"implicitImports\": ");
+ writeTrie(stream, implicitImports(), innerIndent);
+ stream << QLatin1String("\n")
+ << indent << QLatin1Char('}');
+ return true;
+}
+
+QString QmlBundle::toString(const QString &indent)
+{
+ QString res;
+ QTextStream s(&res);
+ writeTo(s, indent);
+ return res;
+}
+
+QStringList QmlBundle::maybeReadTrie(Trie &trie, Utils::JsonObjectValue *config,
+ const QString &path, const QString &propertyName, bool required)
+{
+ QStringList res;
+ if (!config->hasMember(propertyName)) {
+ if (required)
+ res << QString::fromLatin1("Missing required property \"%1\" from %2").arg(propertyName,
+ path);
+ return res;
+ }
+ Utils::JsonValue *imp0 = config->member(propertyName);
+ Utils::JsonArrayValue *imp = ((imp0 != 0) ? imp0->toArray() : 0);
+ if (imp != 0) {
+ foreach (Utils::JsonValue *v, imp->elements()) {
+ Utils::JsonStringValue *impStr = ((v != 0) ? v->toString() : 0);
+ if (impStr != 0) {
+ trie.insert(impStr->value());
+ } else {
+ res.append(QString::fromLatin1("Expected all elements of array in property \"%1\" "
+ "to be strings in QmlBundle at %2.")
+ .arg(propertyName, path));
+ break;
+ }
+ }
+ } else {
+ res.append(QString::fromLatin1("Expected string array in property \"%1\" in QmlBundle at %2.")
+ .arg(propertyName, path));
+ }
+ return res;
+}
+
+bool QmlBundle::readFrom(QString path, QStringList *errors)
+{
+ using namespace Utils;
+ QFile f(path);
+ if (!f.open(QIODevice::ReadOnly | QIODevice::Text)) {
+ if (errors)
+ (*errors) << QString::fromLatin1("Could not open file at %1 .").arg(path);
+ return false;
+ }
+ JsonObjectValue *config = JsonValue::create(QString::fromUtf8(f.readAll()))->toObject();
+ if (config == 0) {
+ if (errors)
+ (*errors) << QString::fromLatin1("Could not parse json object in file at %1 .").arg(path);
+ return false;
+ }
+ QStringList errs;
+ if (config->hasMember(QLatin1String("name"))) {
+ JsonValue *n0 = config->member(QLatin1String("name"));
+ JsonStringValue *n = ((n0 != 0) ? n0->toString() : 0);
+ if (n != 0)
+ m_name = n->value();
+ else
+ errs.append(QString::fromLatin1("Property \"name\" in QmlBundle at %1 is expected "
+ "to be a string.").arg(path));
+ } else {
+ errs.append(QString::fromLatin1("Missing required property \"name\" in QmlBundle "
+ "at %1 .").arg(path));
+ }
+ errs << maybeReadTrie(m_searchPaths, config, path, QLatin1String("searchPaths"));
+ errs << maybeReadTrie(m_installPaths, config, path, QLatin1String("installPaths"));
+ errs << maybeReadTrie(m_supportedImports, config, path, QLatin1String("supportedImports")
+ , true);
+ errs << maybeReadTrie(m_implicitImports, config, path, QLatin1String("implicitImports"));
+ if (errors)
+ (*errors) << errs;
+ return errs.isEmpty();
+}
+
+QmlBundle QmlLanguageBundles::bundleForLanguage(Document::Language l) const
+{
+ if (m_bundles.contains(l))
+ return m_bundles.value(l);
+ return QmlBundle();
+}
+
+void QmlLanguageBundles::mergeBundleForLanguage(Document::Language l, const QmlBundle &bundle)
+{
+ if (bundle.isEmpty())
+ return;
+ if (m_bundles.contains(l))
+ m_bundles[l].merge(bundle);
+ else
+ m_bundles.insert(l,bundle);
+}
+
+QList<Document::Language> QmlLanguageBundles::languages() const
+{
+ return m_bundles.keys();
+}
+
+void QmlLanguageBundles::mergeLanguageBundles(const QmlLanguageBundles &o)
+{
+ foreach (Document::Language l, o.languages())
+ mergeBundleForLanguage(l, o.bundleForLanguage(l));
+}
+
+} // end namespace QmlJS
diff --git a/src/libs/qmljs/qmljsbundle.h b/src/libs/qmljs/qmljsbundle.h
new file mode 100644
index 00000000000..0fa7bd9e99f
--- /dev/null
+++ b/src/libs/qmljs/qmljsbundle.h
@@ -0,0 +1,115 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 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.
+**
+****************************************************************************/
+
+#ifndef QMLJSBUNDLE_H
+#define QMLJSBUNDLE_H
+
+#include <qmljs/qmljs_global.h>
+#include <qmljs/persistenttrie.h>
+#include <qmljs/qmljsdocument.h>
+
+#include <QString>
+#include <QCoreApplication>
+#include <QHash>
+
+QT_FORWARD_DECLARE_CLASS(QTextStream)
+
+namespace Utils {
+class JsonObjectValue;
+}
+
+namespace QmlJS {
+
+/* !
+ \class QmlJS::QmlBundle
+
+ A Qmlbundle represents a set of qml libraries, with a list of their exports
+
+ Note that searchPaths, installPaths and implicitImports are PersistentTries
+ and not QStringLists.
+ This makes merging easier, and the order is not important for our use case.
+*/
+class QMLJS_EXPORT QmlBundle
+{
+ typedef PersistentTrie::Trie Trie;
+public:
+ QmlBundle(const QmlBundle &o);
+ QmlBundle();
+ QmlBundle(const QString &name,
+ const Trie &searchPaths,
+ const Trie &installPaths,
+ const Trie &supportedImports,
+ const Trie &implicitImports);
+
+ QString name() const;
+ Trie installPaths() const;
+ Trie searchPaths() const;
+ Trie implicitImports() const;
+ Trie supportedImports() const;
+
+ void merge(const QmlBundle &o);
+ void intersect(const QmlBundle &o);
+ QmlBundle mergeF(const QmlBundle &o) const;
+ QmlBundle intersectF(const QmlBundle &o) const;
+ bool isEmpty() const;
+ void replaceVars(const QHash<QString, QString> &replacements);
+ QmlBundle replaceVarsF(const QHash<QString, QString> &replacements) const;
+
+ bool writeTo(const QString &path) const;
+ bool writeTo(QTextStream &stream, const QString &indent = QString()) const;
+ QString toString(const QString &indent = QString());
+ bool readFrom(QString path, QStringList *errors);
+ bool operator==(const QmlBundle &o) const;
+ bool operator!=(const QmlBundle &o) const;
+private:
+ static void printEscaped(QTextStream &s, const QString &str);
+ static void writeTrie(QTextStream &stream, const Trie &t, const QString &indent);
+ QStringList maybeReadTrie(Trie &trie, Utils::JsonObjectValue *config, const QString &path,
+ const QString &propertyName, bool required = false);
+
+ QString m_name;
+ Trie m_searchPaths;
+ Trie m_installPaths;
+ Trie m_supportedImports;
+ Trie m_implicitImports;
+};
+
+class QMLJS_EXPORT QmlLanguageBundles
+{
+public:
+ QmlBundle bundleForLanguage(Document::Language l) const;
+ void mergeBundleForLanguage(Document::Language l, const QmlBundle &bundle);
+ QList<Document::Language> languages() const;
+ void mergeLanguageBundles(const QmlLanguageBundles &);
+private:
+ QHash<Document::Language,QmlBundle> m_bundles;
+};
+} // namespace QmlJS
+
+#endif // QMLJSBUNDLE_H
diff --git a/src/libs/qmljs/qmljscompletioncontextfinder.cpp b/src/libs/qmljs/qmljscompletioncontextfinder.cpp
index e72cce45ee6..f95a8d06caf 100644
--- a/src/libs/qmljs/qmljscompletioncontextfinder.cpp
+++ b/src/libs/qmljs/qmljscompletioncontextfinder.cpp
@@ -31,6 +31,7 @@
#include <QDebug>
#include <QTextDocument>
+#include <QStringList>
using namespace QmlJS;
@@ -204,6 +205,8 @@ void CompletionContextFinder::checkImport()
//qDebug() << "Start line:" << *yyLine << m_startTokenIndex;
+ QStringList libVersionImport;
+ int isInLibVersionImport;
int i = m_startTokenIndex;
bool stop = false;
enum State {
@@ -216,6 +219,7 @@ void CompletionContextFinder::checkImport()
ExpectAs = 1 << 5
};
State state = Unknown;
+ isInLibVersionImport = -1;
while (!stop) {
if (i < 0) {
@@ -233,17 +237,27 @@ void CompletionContextFinder::checkImport()
case Token::Identifier: {
const QStringRef tokenString = yyLine->midRef(token.begin(), token.length);
if (tokenString == QLatin1String("as")) {
+ isInLibVersionImport = 0;
if (state == Unknown) {
state = State(ExpectAnyTarget | ExpectVersion);
break;
}
} else if (tokenString == QLatin1String("import")) {
- if (state == Unknown || (state & ExpectImport))
+ if (state == Unknown || (state & ExpectImport)) {
+ if (isInLibVersionImport == -1 && token.end() < m_cursor.position())
+ isInLibVersionImport = 1;
m_inImport = true;
+ }
} else {
if (state == Unknown || (state & ExpectAnyTarget)
|| (state & ExpectTargetIdentifier)) {
state = State(ExpectImport | ExpectTargetDot);
+ libVersionImport.prepend(tokenString.toString());
+ if (isInLibVersionImport == -1) {
+ if (token.end() < m_cursor.position())
+ libVersionImport.append(QLatin1String(" "));
+ isInLibVersionImport = 1;
+ }
break;
}
}
@@ -260,6 +274,10 @@ void CompletionContextFinder::checkImport()
case Token::Number:
if (state == Unknown || (state & ExpectVersion)) {
state = ExpectAnyTarget;
+ libVersionImport.prepend(yyLine->midRef(token.begin(), token.length).toString());
+ libVersionImport.prepend(QLatin1String(" "));
+ if (isInLibVersionImport == -1)
+ isInLibVersionImport = 1;
break;
}
stop = true;
@@ -267,6 +285,9 @@ void CompletionContextFinder::checkImport()
case Token::Dot:
if (state == Unknown || (state & ExpectTargetDot)) {
state = ExpectTargetIdentifier;
+ libVersionImport.prepend(QLatin1String("."));
+ if (isInLibVersionImport == -1)
+ isInLibVersionImport = 1;
break;
}
stop = true;
@@ -276,11 +297,19 @@ void CompletionContextFinder::checkImport()
stop = true;
break;
}
-
+ if (isInLibVersionImport == -1)
+ isInLibVersionImport = 0;
--i;
}
YY_RESTORE();
+ if (m_inImport && isInLibVersionImport == 1) {
+ m_libVersion = libVersionImport.join(QLatin1String(""));
+ if (m_libVersion.isNull())
+ m_libVersion = QLatin1String("");
+ } else {
+ m_libVersion = QString();
+ }
}
QStringList CompletionContextFinder::qmlObjectTypeName() const
@@ -327,6 +356,11 @@ bool QmlJS::CompletionContextFinder::isInImport() const
return m_inImport;
}
+QString CompletionContextFinder::libVersionImport() const
+{
+ return m_libVersion;
+}
+
int CompletionContextFinder::findOpeningBrace(int startTokenIndex)
{
YY_SAVE();
diff --git a/src/libs/qmljs/qmljscompletioncontextfinder.h b/src/libs/qmljs/qmljscompletioncontextfinder.h
index 37e1f5cd59b..577608af170 100644
--- a/src/libs/qmljs/qmljscompletioncontextfinder.h
+++ b/src/libs/qmljs/qmljscompletioncontextfinder.h
@@ -54,6 +54,7 @@ public:
bool isInStringLiteral() const;
bool isInImport() const;
+ QString libVersionImport() const;
private:
int findOpeningBrace(int startTokenIndex);
@@ -69,6 +70,7 @@ private:
bool m_behaviorBinding;
bool m_inStringLiteral;
bool m_inImport;
+ QString m_libVersion;
};
} // namespace QmlJS
diff --git a/src/libs/qmljs/qmljsdocument.cpp b/src/libs/qmljs/qmljsdocument.cpp
index 64cd32d80f6..657e96b9b67 100644
--- a/src/libs/qmljs/qmljsdocument.cpp
+++ b/src/libs/qmljs/qmljsdocument.cpp
@@ -166,6 +166,11 @@ Document::Language Document::language() const
return _language;
}
+void Document::setLanguage(Document::Language l)
+{
+ _language = l;
+}
+
AST::UiProgram *Document::qmlProgram() const
{
return cast<UiProgram *>(_ast);
diff --git a/src/libs/qmljs/qmljsdocument.h b/src/libs/qmljs/qmljsdocument.h
index 0d529007daf..dac5c1d675b 100644
--- a/src/libs/qmljs/qmljsdocument.h
+++ b/src/libs/qmljs/qmljsdocument.h
@@ -78,6 +78,7 @@ public:
bool isQmlDocument() const;
Language language() const;
+ void setLanguage(Language l);
AST::UiProgram *qmlProgram() const;
AST::Program *jsProgram() const;
diff --git a/src/libs/qmljs/qmljsinterpreter.h b/src/libs/qmljs/qmljsinterpreter.h
index 9c6df29c8de..cff537800a9 100644
--- a/src/libs/qmljs/qmljsinterpreter.h
+++ b/src/libs/qmljs/qmljsinterpreter.h
@@ -908,9 +908,9 @@ public:
private:
Type _type;
+ LanguageUtils::ComponentVersion _version;
QString _name;
QString _path;
- LanguageUtils::ComponentVersion _version;
QString _as;
AST::UiImport *_ast;
};
diff --git a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp
index b7a4e68a74f..1be1f2c6836 100644
--- a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp
+++ b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp
@@ -68,3 +68,4 @@ ModelManagerInterface *ModelManagerInterface::instance()
{
return g_instance;
}
+
diff --git a/src/libs/qmljs/qmljsmodelmanagerinterface.h b/src/libs/qmljs/qmljsmodelmanagerinterface.h
index a49e6ee04bd..d5d41e340cf 100644
--- a/src/libs/qmljs/qmljsmodelmanagerinterface.h
+++ b/src/libs/qmljs/qmljsmodelmanagerinterface.h
@@ -32,6 +32,7 @@
#include "qmljs_global.h"
#include "qmljsdocument.h"
+#include "qmljsbundle.h"
#include <utils/environment.h>
@@ -73,6 +74,8 @@ public:
bool isNull() const
{ return project.isNull(); }
+ QStringList completeImportPaths();
+
public: // attributes
QPointer<ProjectExplorer::Project> project;
QStringList sourceFiles;
@@ -86,6 +89,8 @@ public:
QString qtImportsPath;
QString qtQmlPath;
QString qtVersionString;
+ QmlJS::QmlLanguageBundles activeBundle;
+ QmlJS::QmlLanguageBundles extendedBundle;
};
class WorkingCopy
@@ -141,8 +146,11 @@ public:
virtual ProjectInfo projectInfo(ProjectExplorer::Project *project) const = 0;
virtual void updateProjectInfo(const ProjectInfo &pinfo) = 0;
Q_SLOT virtual void removeProjectInfo(ProjectExplorer::Project *project) = 0;
+ virtual ProjectInfo projectInfoForPath(QString path) = 0;
virtual QStringList importPaths() const = 0;
+ virtual QmlJS::QmlLanguageBundles activeBundles() const = 0;
+ virtual QmlJS::QmlLanguageBundles extendedBundles() const = 0;
virtual void loadPluginTypes(const QString &libraryPath, const QString &importPath,
const QString &importUri, const QString &importVersion) = 0;
diff --git a/src/libs/qtcomponents/styleitem/qstyleitem.cpp b/src/libs/qtcomponents/styleitem/qstyleitem.cpp
index 21076342f8f..d7f23334679 100644
--- a/src/libs/qtcomponents/styleitem/qstyleitem.cpp
+++ b/src/libs/qtcomponents/styleitem/qstyleitem.cpp
@@ -54,7 +54,7 @@ QStyleItem::QStyleItem(QDeclarativeItem *parent)
: QDeclarativeItem(parent),
m_dummywidget(0),
m_styleoption(0),
- m_type(Undefined),
+ m_itemType(Undefined),
m_sunken(false),
m_raised(false),
m_active(true),
diff --git a/src/libs/qtcreatorcdbext/symbolgroupvalue.cpp b/src/libs/qtcreatorcdbext/symbolgroupvalue.cpp
index 30b99117c66..8d58a3ab8bc 100644
--- a/src/libs/qtcreatorcdbext/symbolgroupvalue.cpp
+++ b/src/libs/qtcreatorcdbext/symbolgroupvalue.cpp
@@ -1631,13 +1631,13 @@ static inline unsigned padOffset(unsigned offset)
/* Return the offset to be accounted for "QSharedData" to access
* the first member of a QSharedData-derived class */
-static unsigned qSharedDataOffset(const SymbolGroupValueContext &ctx)
+static unsigned qSharedDataSize(const SymbolGroupValueContext &ctx)
{
unsigned offset = 0;
if (!offset) {
// As of 4.X, a QAtomicInt, which will be padded to 8 on a 64bit system.
const std::string qSharedData = QtInfo::get(ctx).prependQtCoreModule("QSharedData");
- offset = padOffset(SymbolGroupValue::sizeOf(qSharedData.c_str()));
+ offset = SymbolGroupValue::sizeOf(qSharedData.c_str());
}
return offset;
}
@@ -1738,7 +1738,8 @@ enum QPrivateDumpMode // Enumeration determining the offsets to be taken into co
{
QPDM_None,
QPDM_qVirtual, // For classes with virtual functions (QObject-based): Skip vtable for d-address
- QPDM_qSharedData // Private class is based on QSharedData.
+ QPDM_qSharedData, // Private class is based on QSharedData, non-padded type
+ QPDM_qSharedDataPadded // Private class is based on QSharedData, padded type (class)
};
// Determine the address of private class member by dereferencing the d-ptr and using offsets.
@@ -1758,8 +1759,11 @@ static ULONG64 addressOfQPrivateMember(const SymbolGroupValue &v, QPrivateDumpMo
return 0;
// Get address of type to be dumped.
ULONG64 dumpAddress = dptr + additionalOffset;
- if (mode == QPDM_qSharedData) // Based on QSharedData
- dumpAddress += qSharedDataOffset(v.context());
+ if (mode == QPDM_qSharedData) { // Simple type following QSharedData
+ dumpAddress += qSharedDataSize(v.context());
+ } else if (mode == QPDM_qSharedDataPadded) {
+ dumpAddress += padOffset(qSharedDataSize(v.context()));
+ }
return dumpAddress;
}
@@ -1810,7 +1814,7 @@ static bool dumpQByteArrayFromQPrivateClass(const SymbolGroupValue &v,
* Dump 2nd string past its QSharedData base class. */
static inline bool dumpQFileInfo(const SymbolGroupValue &v, std::wostream &str)
{
- return dumpQStringFromQPrivateClass(v, QPDM_qSharedData, qStringSize(v.context()), str);
+ return dumpQStringFromQPrivateClass(v, QPDM_qSharedDataPadded, qStringSize(v.context()), str);
}
/* Dump QDir, for whose private class no debugging information is available.
@@ -1822,14 +1826,14 @@ static bool inline dumpQDir(const SymbolGroupValue &v, std::wostream &str)
const unsigned offset = padOffset(listSize + 2 * SymbolGroupValue::intSize())
+ padOffset(SymbolGroupValue::pointerSize() + SymbolGroupValue::sizeOf("bool"))
+ 2 * listSize;
- return dumpQStringFromQPrivateClass(v, QPDM_qSharedData, offset, str);
+ return dumpQStringFromQPrivateClass(v, QPDM_qSharedDataPadded, offset, str);
}
/* Dump QRegExp, for whose private class no debugging information is available.
* Dump 1st string past of its base class. */
static inline bool dumpQRegExp(const SymbolGroupValue &v, std::wostream &str)
{
- return dumpQStringFromQPrivateClass(v, QPDM_qSharedData, 0, str);
+ return dumpQStringFromQPrivateClass(v, QPDM_qSharedDataPadded, 0, str);
}
/* Dump QFile, for whose private class no debugging information is available.
@@ -2072,7 +2076,11 @@ static bool dumpQTime(const SymbolGroupValue &v, std::wostream &str)
// from memory.
static bool dumpQDateTime(const SymbolGroupValue &v, std::wostream &str)
{
- const ULONG64 dateAddr = addressOfQPrivateMember(v, QPDM_qSharedData, 0);
+ // QDate is 64bit starting from Qt 5 which is always aligned 64bit.
+ const int qtVersion = QtInfo::get(v.context()).version;
+ const ULONG64 dateAddr = qtVersion < 5 ?
+ addressOfQPrivateMember(v, QPDM_qSharedData, 0) :
+ addressOfQPrivateMember(v, QPDM_None, 8);
if (!dateAddr)
return false;
const int date =
@@ -2084,7 +2092,7 @@ static bool dumpQDateTime(const SymbolGroupValue &v, std::wostream &str)
}
if (!dumpJulianDate(date, str))
return false;
- const ULONG64 timeAddr = dateAddr + padOffset(SymbolGroupValue::intSize());
+ const ULONG64 timeAddr = dateAddr + (qtVersion < 5 ? SymbolGroupValue::intSize() : 8);
const int time =
SymbolGroupValue::readIntValue(v.context().dataspaces,
timeAddr, SymbolGroupValue::intSize(), 0);
diff --git a/src/libs/ssh/ssh.qbs b/src/libs/ssh/ssh.qbs
index 18624d7d954..66984954c24 100644
--- a/src/libs/ssh/ssh.qbs
+++ b/src/libs/ssh/ssh.qbs
@@ -44,9 +44,17 @@ QtcLibrary {
"sshsendfacility.cpp", "sshsendfacility_p.h",
].concat(botanFiles)
- property var botanIncludes: ["../3rdparty"]
+ property var useSystemBotan: qbs.getenv("USE_SYSTEM_BOTAN") === "1"
+ property var botanIncludes: {
+ var result = ["../3rdparty"];
+ if (useSystemBotan)
+ result.push("/usr/include/botan-1.10")
+ return result
+ }
property var botanLibs: {
var result = [];
+ if (useSystemBotan)
+ result.push("botan-1.10")
if (qbs.targetOS === "windows")
result.push("advapi32", "user32")
else {
@@ -57,7 +65,11 @@ QtcLibrary {
return result
}
property var botanDefines: {
- var result = ['BOTAN_DLL=']
+ var result = [];
+ if (useSystemBotan)
+ result.push("USE_SYSTEM_BOTAN")
+ else {
+ result.push("BOTAN_DLL=")
if (qbs.toolchain === "msvc")
result.push("BOTAN_BUILD_COMPILER_IS_MSVC", "BOTAN_TARGET_OS_HAS_GMTIME_S")
if (qbs.toolchain === "gcc" || qbs.toolchain === "mingw")
@@ -81,9 +93,15 @@ QtcLibrary {
"BOTAN_TARGET_OS_HAS_WIN32_VIRTUAL_LOCK", "BOTAN_HAS_DYNAMICALLY_LOADED_ENGINE",
"BOTAN_HAS_DYNAMIC_LOADER", "BOTAN_HAS_ENTROPY_SRC_CAPI",
"BOTAN_HAS_ENTROPY_SRC_WIN32", "BOTAN_HAS_MUTEX_WIN32")
- return result
}
- property var botanFiles: [ "../3rdparty/botan/botan.h", "../3rdparty/botan/botan.cpp" ]
+ return result
+ }
+ property var botanFiles: {
+ var result = ["../3rdparty/botan/botan.h"];
+ if (!useSystemBotan)
+ result.push("../3rdparty/botan/botan.cpp")
+ return result
+ }
// For Botan.
Properties {
diff --git a/src/libs/utils/filesearch.cpp b/src/libs/utils/filesearch.cpp
index 75b4add40a8..03024c5362d 100644
--- a/src/libs/utils/filesearch.cpp
+++ b/src/libs/utils/filesearch.cpp
@@ -352,6 +352,9 @@ namespace Utils {
namespace Internal {
QString matchCaseReplacement(const QString &originalText, const QString &replaceText)
{
+ if (originalText.isEmpty())
+ return replaceText;
+
//Now proceed with actual case matching
bool firstIsUpperCase = originalText.at(0).isUpper();
bool firstIsLowerCase = originalText.at(0).isLower();
@@ -397,12 +400,12 @@ QString Utils::matchCaseReplacement(const QString &originalText, const QString &
const int originalTextLen = originalText.length();
int prefixLen = 0;
- for (; prefixLen <= replaceTextLen && prefixLen <= originalTextLen; prefixLen++)
+ for (; prefixLen < replaceTextLen && prefixLen < originalTextLen; ++prefixLen)
if (replaceText.at(prefixLen).toLower() != originalText.at(prefixLen).toLower())
break;
int suffixLen = 0;
- for (; suffixLen < replaceTextLen - prefixLen && suffixLen < originalTextLen - prefixLen; suffixLen++)
+ for (; suffixLen < replaceTextLen - prefixLen && suffixLen < originalTextLen - prefixLen; ++suffixLen)
if (replaceText.at(replaceTextLen - 1 - suffixLen).toLower() != originalText.at(originalTextLen- 1 - suffixLen).toLower())
break;
diff --git a/src/libs/utils/synchronousprocess.cpp b/src/libs/utils/synchronousprocess.cpp
index 8622f48e332..efbe7fd87a5 100644
--- a/src/libs/utils/synchronousprocess.cpp
+++ b/src/libs/utils/synchronousprocess.cpp
@@ -560,7 +560,7 @@ bool SynchronousProcess::readDataFromProcess(QProcess &p, int timeOutMS,
bool finished = false;
bool hasData = false;
do {
- finished = p.waitForFinished(timeOutMS);
+ finished = p.state() == QProcess::NotRunning || p.waitForFinished(timeOutMS);
hasData = false;
// First check 'stdout'
if (p.bytesAvailable()) { // applies to readChannel() only
@@ -580,7 +580,11 @@ bool SynchronousProcess::readDataFromProcess(QProcess &p, int timeOutMS,
// Prompt user, pretend we have data if says 'No'.
const bool hang = !hasData && !finished;
if (hang && showTimeOutMessageBox) {
- if (!askToKill())
+ QString binary;
+#if QT_VERSION >= 0x050000
+ binary = p.program();
+#endif
+ if (!askToKill(binary))
hasData = true;
}
} while (hasData && !finished);
diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp
index 81a705c6193..64ba7280259 100644
--- a/src/plugins/android/androidconfigurations.cpp
+++ b/src/plugins/android/androidconfigurations.cpp
@@ -29,11 +29,22 @@
#include "androidconfigurations.h"
#include "androidconstants.h"
+#include "androidtoolchain.h"
+#include "androiddevice.h"
+#include "androidgdbserverkitinformation.h"
#include "ui_addnewavddialog.h"
#include <coreplugin/icore.h>
#include <utils/hostosinfo.h>
#include <utils/persistentsettings.h>
+#include <projectexplorer/kitmanager.h>
+#include <projectexplorer/kitinformation.h>
+#include <projectexplorer/devicesupport/devicemanager.h>
+#include <projectexplorer/toolchainmanager.h>
+#include <debugger/debuggerkitinformation.h>
+#include <qtsupport/baseqtversion.h>
+#include <qtsupport/qtkitinformation.h>
+#include <qtsupport/qtversionmanager.h>
#include <QDateTime>
#include <QSettings>
@@ -66,17 +77,16 @@ namespace {
const QLatin1String NDKLocationKey("NDKLocation");
const QLatin1String NDKToolchainVersionKey("NDKToolchainVersion");
const QLatin1String AntLocationKey("AntLocation");
- const QLatin1String ArmGdbLocationKey("GdbLocation");
- const QLatin1String ArmGdbserverLocationKey("GdbserverLocation");
- const QLatin1String X86GdbLocationKey("X86GdbLocation");
- const QLatin1String X86GdbserverLocationKey("X86GdbserverLocation");
const QLatin1String OpenJDKLocationKey("OpenJDKLocation");
const QLatin1String KeystoreLocationKey("KeystoreLocation");
+ const QLatin1String AutomaticKitCreationKey("AutomatiKitCreation");
const QLatin1String PartitionSizeKey("PartitionSize");
const QLatin1String ArmToolchainPrefix("arm-linux-androideabi");
const QLatin1String X86ToolchainPrefix("x86");
+ const QLatin1String MipsToolchainPrefix("mipsel-linux-android");
const QLatin1String ArmToolsPrefix("arm-linux-androideabi");
- const QLatin1String X86ToolsPrefix("i686-android-linux");
+ const QLatin1String X86ToolsPrefix("i686-linux-android");
+ const QLatin1String MipsToolsPrefix("mipsel-linux-android");
const QLatin1String Unknown("unknown");
const QLatin1String keytoolName("keytool");
const QLatin1String jarsignerName("jarsigner");
@@ -84,8 +94,8 @@ namespace {
static QString sdkSettingsFileName()
{
- return QString::fromLatin1("%1/android.xml")
- .arg(QFileInfo(Core::ICore::settings(QSettings::SystemScope)->fileName()).absolutePath());
+ return QFileInfo(Core::ICore::settings(QSettings::SystemScope)->fileName()).absolutePath()
+ + QLatin1String("/qtcreator/android.xml");
}
bool androidDevicesLessThan(const AndroidDeviceInfo &dev1, const AndroidDeviceInfo &dev2)
@@ -100,6 +110,8 @@ Abi::Architecture AndroidConfigurations::architectureForToolChainPrefix(const QS
return Abi::ArmArchitecture;
if (toolchainprefix == X86ToolchainPrefix)
return Abi::X86Architecture;
+ if (toolchainprefix == MipsToolchainPrefix)
+ return Abi::MipsArchitecture;
return Abi::UnknownArchitecture;
}
@@ -110,6 +122,8 @@ QLatin1String AndroidConfigurations::toolchainPrefix(Abi::Architecture architect
return ArmToolchainPrefix;
case Abi::X86Architecture:
return X86ToolchainPrefix;
+ case Abi::MipsArchitecture:
+ return MipsToolchainPrefix;
default:
return Unknown;
}
@@ -122,6 +136,8 @@ QLatin1String AndroidConfigurations::toolsPrefix(Abi::Architecture architecture)
return ArmToolsPrefix;
case Abi::X86Architecture:
return X86ToolsPrefix;
+ case Abi::MipsArchitecture:
+ return MipsToolsPrefix;
default:
return Unknown;
}
@@ -136,6 +152,7 @@ AndroidConfig::AndroidConfig(const QSettings &settings)
antLocation = FileName::fromString(settings.value(AntLocationKey).toString());
openJDKLocation = FileName::fromString(settings.value(OpenJDKLocationKey).toString());
keystoreLocation = FileName::fromString(settings.value(KeystoreLocationKey).toString());
+ automaticKitCreation = settings.value(AutomaticKitCreationKey, true).toBool();
PersistentSettingsReader reader;
if (reader.load(FileName::fromString(sdkSettingsFileName()))
@@ -146,6 +163,9 @@ AndroidConfig::AndroidConfig(const QSettings &settings)
antLocation = FileName::fromString(reader.restoreValue(AntLocationKey).toString());
openJDKLocation = FileName::fromString(reader.restoreValue(OpenJDKLocationKey).toString());
keystoreLocation = FileName::fromString(reader.restoreValue(KeystoreLocationKey).toString());
+ QVariant v = reader.restoreValue(AutomaticKitCreationKey);
+ if (v.isValid())
+ automaticKitCreation = v.toBool();
// persistent settings
}
@@ -169,6 +189,7 @@ void AndroidConfig::save(QSettings &settings) const
settings.setValue(OpenJDKLocationKey, openJDKLocation.toString());
settings.setValue(KeystoreLocationKey, keystoreLocation.toString());
settings.setValue(PartitionSizeKey, partitionSize);
+ settings.setValue(AutomaticKitCreationKey, automaticKitCreation);
}
void AndroidConfigurations::setConfig(const AndroidConfig &devConfigs)
@@ -176,6 +197,7 @@ void AndroidConfigurations::setConfig(const AndroidConfig &devConfigs)
m_config = devConfigs;
save();
updateAvailablePlatforms();
+ updateAutomaticKitList();
emit updated();
}
@@ -328,8 +350,23 @@ QVector<AndroidDeviceInfo> AndroidConfigurations::connectedDevices(int apiLevel)
QList<QByteArray> adbDevs = adbProc.readAll().trimmed().split('\n');
adbDevs.removeFirst();
AndroidDeviceInfo dev;
+
+ // workaround for '????????????' serial numbers:
+ // can use "adb -d" when only one usb device attached
+ int usbDevicesNum = 0;
+ QStringList serialNumbers;
foreach (const QByteArray &device, adbDevs) {
- dev.serialNumber = QString::fromLatin1(device.left(device.indexOf('\t')).trimmed());
+ const QString serialNo = QString::fromLatin1(device.left(device.indexOf('\t')).trimmed());;
+ if (!serialNo.startsWith(QLatin1String("emulator")))
+ ++usbDevicesNum;
+ serialNumbers << serialNo;
+ }
+
+ foreach (const QString &serialNo, serialNumbers) {
+ if (serialNo.contains(QLatin1String("????")) && usbDevicesNum > 1)
+ continue;
+
+ dev.serialNumber = serialNo;
dev.sdk = getSDKVersion(dev.serialNumber);
if (apiLevel != -1 && dev.sdk != apiLevel)
continue;
@@ -500,12 +537,13 @@ QString AndroidConfigurations::startAVD(int *apiLevel, const QString &name) cons
int AndroidConfigurations::getSDKVersion(const QString &device) const
{
+ // workaround for '????????????' serial numbers
+ QStringList arguments = AndroidDeviceInfo::adbSelector(device);
+ arguments << QLatin1String("shell") << QLatin1String("getprop")
+ << QLatin1String("ro.build.version.sdk");
QProcess adbProc;
- adbProc.start(adbToolPath().toString(),
- QStringList() << QLatin1String("-s") << device
- << QLatin1String("shell") << QLatin1String("getprop")
- << QLatin1String("ro.build.version.sdk"));
+ adbProc.start(adbToolPath().toString(), arguments);
if (!adbProc.waitForFinished(-1)) {
adbProc.kill();
return -1;
@@ -523,6 +561,119 @@ QString AndroidConfigurations::bestMatch(const QString &targetAPI) const
return QLatin1String("android-8");
}
+bool equalKits(Kit *a, Kit *b)
+{
+ return ToolChainKitInformation::toolChain(a) == ToolChainKitInformation::toolChain(b)
+ && QtSupport::QtKitInformation::qtVersion(a) == QtSupport::QtKitInformation::qtVersion(b);
+}
+
+void AndroidConfigurations::updateAutomaticKitList()
+{
+ QList<AndroidToolChain *> toolchains;
+ if (AndroidConfigurations::instance().config().automaticKitCreation) {
+ // having a empty toolchains list will remove all autodetected kits for android
+ // exactly what we want in that case
+ foreach (ProjectExplorer::ToolChain *tc, ProjectExplorer::ToolChainManager::instance()->toolChains()) {
+ if (!tc->isAutoDetected())
+ continue;
+ if (tc->type() != QLatin1String(Constants::ANDROID_TOOLCHAIN_TYPE))
+ continue;
+ toolchains << static_cast<AndroidToolChain *>(tc);
+ }
+ }
+
+ QList<Kit *> existingKits;
+
+ foreach (ProjectExplorer::Kit *k, ProjectExplorer::KitManager::instance()->kits()) {
+ if (ProjectExplorer::DeviceKitInformation::deviceId(k) != Core::Id(Constants::ANDROID_DEVICE_ID))
+ continue;
+ if (!k->isAutoDetected())
+ continue;
+ if (k->isSdkProvided())
+ continue;
+ ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain((k));
+ if (!tc)
+ continue;
+ if (tc->type() != QLatin1String(Constants::ANDROID_TOOLCHAIN_TYPE))
+ continue;
+
+ existingKits << k;
+ }
+
+ QMap<ProjectExplorer::Abi::Architecture, QList<QtSupport::BaseQtVersion *> > qtVersionsForArch;
+ foreach (QtSupport::BaseQtVersion *qtVersion, QtSupport::QtVersionManager::instance()->versions()) {
+ if (qtVersion->type() != QLatin1String(Constants::ANDROIDQT))
+ continue;
+ QList<ProjectExplorer::Abi> qtAbis = qtVersion->qtAbis();
+ if (qtAbis.empty())
+ continue;
+ qtVersionsForArch[qtAbis.first().architecture()].append(qtVersion);
+ }
+
+ ProjectExplorer::DeviceManager *dm = ProjectExplorer::DeviceManager::instance();
+ IDevice::ConstPtr device = dm->find(Core::Id(Constants::ANDROID_DEVICE_ID)); // should always exist
+
+ // register new kits
+ QList<Kit *> newKits;
+ foreach (AndroidToolChain *tc, toolchains) {
+ QList<QtSupport::BaseQtVersion *> qtVersions = qtVersionsForArch.value(tc->targetAbi().architecture());
+ foreach (QtSupport::BaseQtVersion *qt, qtVersions) {
+ Kit *newKit = new Kit;
+ newKit->setAutoDetected(true);
+ newKit->setIconPath(QLatin1String(Constants::ANDROID_SETTINGS_CATEGORY_ICON));
+ DeviceTypeKitInformation::setDeviceTypeId(newKit, Core::Id(Constants::ANDROID_DEVICE_TYPE));
+ ToolChainKitInformation::setToolChain(newKit, tc);
+ QtSupport::QtKitInformation::setQtVersion(newKit, qt);
+ DeviceKitInformation::setDevice(newKit, device);
+ Debugger::DebuggerKitInformation::DebuggerItem item;
+ item.engineType = Debugger::GdbEngineType;
+ item.binary = tc->suggestedDebugger();
+ Debugger::DebuggerKitInformation::setDebuggerItem(newKit, item);
+ AndroidGdbServerKitInformation::setGdbSever(newKit, tc->suggestedGdbServer());
+ newKits << newKit;
+ }
+ }
+
+ for (int i = existingKits.count() - 1; i >= 0; --i) {
+ Kit *existingKit = existingKits.at(i);
+ for (int j = 0; j < newKits.count(); ++j) {
+ Kit *newKit = newKits.at(j);
+ if (equalKits(existingKit, newKit)) {
+ // Kit is already registered, nothing to do
+ newKits.removeAt(j);
+ existingKits.removeAt(i);
+ KitManager::deleteKit(newKit);
+ j = newKits.count();
+ }
+ }
+ }
+
+ foreach (Kit *k, existingKits)
+ KitManager::instance()->deregisterKit(k);
+
+ foreach (Kit *kit, newKits) {
+ AndroidToolChain *tc = static_cast<AndroidToolChain *>(ToolChainKitInformation::toolChain(kit));
+ QString arch = ProjectExplorer::Abi::toString(tc->targetAbi().architecture());
+ QtSupport::BaseQtVersion *qt = QtSupport::QtKitInformation::qtVersion(kit);
+ kit->setDisplayName(tr("Android for %1 (GCC %2, Qt %3)")
+ .arg(arch)
+ .arg(tc->ndkToolChainVersion())
+ .arg(qt->qtVersionString()));
+ KitManager::instance()->registerKit(kit);
+ }
+}
+
+/**
+ * Workaround for '????????????' serial numbers
+ * @return ("-d") for buggy devices, ("-s", <serial no>) for normal
+ */
+QStringList AndroidDeviceInfo::adbSelector(const QString &serialNumber)
+{
+ if (serialNumber.startsWith(QLatin1String("????")))
+ return QStringList() << QLatin1String("-d");
+ return QStringList() << QLatin1String("-s") << serialNumber;
+}
+
AndroidConfigurations &AndroidConfigurations::instance(QObject *parent)
{
if (m_instance == 0)
diff --git a/src/plugins/android/androidconfigurations.h b/src/plugins/android/androidconfigurations.h
index 1eed0120028..50dce7a3edf 100644
--- a/src/plugins/android/androidconfigurations.h
+++ b/src/plugins/android/androidconfigurations.h
@@ -70,6 +70,7 @@ public:
Utils::FileName openJDKLocation;
Utils::FileName keystoreLocation;
unsigned partitionSize;
+ bool automaticKitCreation;
};
struct AndroidDeviceInfo
@@ -77,6 +78,8 @@ struct AndroidDeviceInfo
QString serialNumber;
QString cpuABI;
int sdk;
+
+ static QStringList adbSelector(const QString &serialNumber);
};
class AndroidConfigurations : public QObject
@@ -116,6 +119,7 @@ signals:
public slots:
bool createAVD(int minApiLevel = 0) const;
+ void updateAutomaticKitList();
private:
Utils::FileName toolPath(ProjectExplorer::Abi::Architecture architecture, const QString &ndkToolChainVersion) const;
diff --git a/src/plugins/android/androiddeploystep.cpp b/src/plugins/android/androiddeploystep.cpp
index 7c311ef85fb..759243cf7e7 100644
--- a/src/plugins/android/androiddeploystep.cpp
+++ b/src/plugins/android/androiddeploystep.cpp
@@ -172,9 +172,8 @@ void AndroidDeployStep::cleanLibsOnDevice()
return;
}
QProcess *process = new QProcess(this);
- QStringList arguments;
- arguments << QLatin1String("-s") << deviceSerialNumber
- << QLatin1String("shell") << QLatin1String("rm") << QLatin1String("-r") << QLatin1String("/data/local/tmp/qt");
+ QStringList arguments = AndroidDeviceInfo::adbSelector(deviceSerialNumber);
+ arguments << QLatin1String("shell") << QLatin1String("rm") << QLatin1String("-r") << QLatin1String("/data/local/tmp/qt");
connect(process, SIGNAL(finished(int)), this, SLOT(cleanLibsFinished()));
const QString adb = AndroidConfigurations::instance().adbToolPath().toString();
Core::MessageManager::instance()->printToOutputPanePopup(adb + QLatin1String(" ")
@@ -262,7 +261,10 @@ int AndroidDeployStep::deviceAPILevel()
Utils::FileName AndroidDeployStep::localLibsRulesFilePath()
{
- return AndroidManager::localLibsRulesFilePath(target());
+ Utils::FileName fileName = AndroidManager::localLibsRulesFilePath(target());
+ fileName.append(QLatin1String("/rules.xml"));
+
+ return fileName;
}
unsigned int AndroidDeployStep::remoteModificationTime(const QString &fullDestination, QHash<QString, unsigned int> *cache)
@@ -272,9 +274,8 @@ unsigned int AndroidDeployStep::remoteModificationTime(const QString &fullDestin
QHash<QString, unsigned int>::const_iterator it = cache->find(fullDestination);
if (it != cache->constEnd())
return *it;
- QStringList arguments;
- arguments << QLatin1String("-s") << m_deviceSerialNumber
- << QLatin1String("ls") << destination;
+ QStringList arguments = AndroidDeviceInfo::adbSelector(m_deviceSerialNumber);
+ arguments << QLatin1String("ls") << destination;
process.start(AndroidConfigurations::instance().adbToolPath().toString(), arguments);
process.waitForFinished(-1);
if (process.error() != QProcess::UnknownError
@@ -375,7 +376,7 @@ void AndroidDeployStep::deployFiles(QProcess *process, const QList<DeployItem> &
{
foreach (const DeployItem &item, deployList) {
runCommand(process, AndroidConfigurations::instance().adbToolPath().toString(),
- QStringList() << QLatin1String("-s") << m_deviceSerialNumber
+ AndroidDeviceInfo::adbSelector(m_deviceSerialNumber)
<< QLatin1String("push") << item.localFileName
<< item.remoteFileName);
}
@@ -429,7 +430,7 @@ bool AndroidDeployStep::deployPackage()
if (m_runDeployAction == InstallQASI) {
if (!runCommand(deployProc, AndroidConfigurations::instance().adbToolPath().toString(),
- QStringList() << QLatin1String("-s") << m_deviceSerialNumber
+ AndroidDeviceInfo::adbSelector(m_deviceSerialNumber)
<< QLatin1String("install") << QLatin1String("-r ") << m_runQASIPackagePath)) {
raiseError(tr("Qt Android smart installer installation failed"));
disconnect(deployProc, 0, this, 0);
@@ -442,7 +443,7 @@ bool AndroidDeployStep::deployPackage()
writeOutput(tr("Installing package onto %1.").arg(m_deviceSerialNumber));
runCommand(deployProc, AndroidConfigurations::instance().adbToolPath().toString(),
- QStringList() << QLatin1String("-s") << m_deviceSerialNumber << QLatin1String("uninstall") << m_packageName);
+ AndroidDeviceInfo::adbSelector(m_deviceSerialNumber) << QLatin1String("uninstall") << m_packageName);
QString package = m_apkPathDebug;
if (!(m_qtVersionQMakeBuildConfig & QtSupport::BaseQtVersion::DebugBuild)
@@ -450,7 +451,7 @@ bool AndroidDeployStep::deployPackage()
package = m_apkPathRelease;
if (!runCommand(deployProc, AndroidConfigurations::instance().adbToolPath().toString(),
- QStringList() << QLatin1String("-s") << m_deviceSerialNumber << QLatin1String("install") << package)) {
+ AndroidDeviceInfo::adbSelector(m_deviceSerialNumber) << QLatin1String("install") << package)) {
raiseError(tr("Package installation failed."));
disconnect(deployProc, 0, this, 0);
deployProc->deleteLater();
@@ -459,11 +460,11 @@ bool AndroidDeployStep::deployPackage()
writeOutput(tr("Pulling files necessary for debugging."));
runCommand(deployProc, AndroidConfigurations::instance().adbToolPath().toString(),
- QStringList() << QLatin1String("-s") << m_deviceSerialNumber
+ AndroidDeviceInfo::adbSelector(m_deviceSerialNumber)
<< QLatin1String("pull") << QLatin1String("/system/bin/app_process")
<< QString::fromLatin1("%1/app_process").arg(m_buildDirectory));
runCommand(deployProc, AndroidConfigurations::instance().adbToolPath().toString(),
- QStringList() << QLatin1String("-s") << m_deviceSerialNumber << QLatin1String("pull")
+ AndroidDeviceInfo::adbSelector(m_deviceSerialNumber) << QLatin1String("pull")
<< QLatin1String("/system/lib/libc.so")
<< QString::fromLatin1("%1/libc.so").arg(m_buildDirectory));
disconnect(deployProc, 0, this, 0);
diff --git a/src/plugins/android/androidmanager.cpp b/src/plugins/android/androidmanager.cpp
index ee02ca89f5f..779fa61fde3 100644
--- a/src/plugins/android/androidmanager.cpp
+++ b/src/plugins/android/androidmanager.cpp
@@ -558,7 +558,7 @@ Utils::FileName AndroidManager::localLibsRulesFilePath(ProjectExplorer::Target *
QtSupport::BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(target->kit());
if (!version)
return Utils::FileName();
- return Utils::FileName::fromString(version->qmakeProperty("QT_INSTALL_LIBS") + QLatin1String("/rules.xml"));
+ return Utils::FileName::fromString(version->qmakeProperty("QT_INSTALL_LIBS"));
}
QString AndroidManager::loadLocalLibs(ProjectExplorer::Target *target, int apiLevel)
@@ -708,41 +708,79 @@ QString AndroidManager::loadLocal(ProjectExplorer::Target *target, int apiLevel,
QString localLibs;
- QDomDocument doc;
- if (!openXmlFile(doc, localLibsRulesFilePath(target)))
+ QDir rulesFilesDir(localLibsRulesFilePath(target).toString());
+ if (!rulesFilesDir.exists())
return localLibs;
QStringList libs;
libs << qtLibs(target) << prebundledLibs(target);
- QDomElement element = doc.documentElement().firstChildElement(QLatin1String("platforms")).firstChildElement(itemType + QLatin1Char('s')).firstChildElement(QLatin1String("version"));
- while (!element.isNull()) {
- if (element.attribute(QLatin1String("value")).toInt() == apiLevel) {
- if (element.hasAttribute(QLatin1String("symlink")))
- apiLevel = element.attribute(QLatin1String("symlink")).toInt();
- break;
+
+ QFileInfoList rulesFiles = rulesFilesDir.entryInfoList(QStringList() << QLatin1String("*.xml"),
+ QDir::Files | QDir::Readable);
+
+ QStringList dependencyLibs;
+ QStringList replacedLibs;
+ foreach (QFileInfo rulesFile, rulesFiles) {
+ if (rulesFile.baseName() != QLatin1String("rules")
+ && !rulesFile.baseName().endsWith(QLatin1String("-android-dependencies"))) {
+ continue;
}
- element = element.nextSiblingElement(QLatin1String("version"));
- }
- element = doc.documentElement().firstChildElement(QLatin1String("dependencies")).firstChildElement(QLatin1String("lib"));
- while (!element.isNull()) {
- if (libs.contains(element.attribute(QLatin1String("name")))) {
- QDomElement libElement = element.firstChildElement(QLatin1String("depends")).firstChildElement(itemType);
- while (!libElement.isNull()) {
- if (libElement.hasAttribute(attribute))
- localLibs += libElement.attribute(attribute).arg(apiLevel) + QLatin1Char(':');
- libElement = libElement.nextSiblingElement(itemType);
+ QDomDocument doc;
+ if (!openXmlFile(doc, Utils::FileName::fromString(rulesFile.absoluteFilePath())))
+ return localLibs;
+
+ QDomElement element = doc.documentElement().firstChildElement(QLatin1String("platforms")).firstChildElement(itemType + QLatin1Char('s')).firstChildElement(QLatin1String("version"));
+ while (!element.isNull()) {
+ if (element.attribute(QLatin1String("value")).toInt() == apiLevel) {
+ if (element.hasAttribute(QLatin1String("symlink")))
+ apiLevel = element.attribute(QLatin1String("symlink")).toInt();
+ break;
}
+ element = element.nextSiblingElement(QLatin1String("version"));
+ }
+
+ element = doc.documentElement().firstChildElement(QLatin1String("dependencies")).firstChildElement(QLatin1String("lib"));
+ while (!element.isNull()) {
+ if (libs.contains(element.attribute(QLatin1String("name")))) {
+ QDomElement libElement = element.firstChildElement(QLatin1String("depends")).firstChildElement(itemType);
+ while (!libElement.isNull()) {
+ if (libElement.hasAttribute(attribute)) {
+ QString dependencyLib = libElement.attribute(attribute).arg(apiLevel);
+ if (!dependencyLibs.contains(dependencyLib))
+ dependencyLibs << dependencyLib;
+ }
+
+ if (libElement.hasAttribute(QLatin1String("replaces"))) {
+ QString replacedLib = libElement.attribute(QLatin1String("replaces")).arg(apiLevel);
+ if (!replacedLibs.contains(replacedLib))
+ replacedLibs << replacedLib;
+ }
+
+ libElement = libElement.nextSiblingElement(itemType);
+ }
+
+ libElement = element.firstChildElement(QLatin1String("replaces")).firstChildElement(itemType);
+ while (!libElement.isNull()) {
+ if (libElement.hasAttribute(attribute)) {
+ QString replacedLib = libElement.attribute(attribute).arg(apiLevel);
+ if (!replacedLibs.contains(replacedLib))
+ replacedLibs << replacedLib;
+ }
- libElement = element.firstChildElement(QLatin1String("replaces")).firstChildElement(itemType);
- while (!libElement.isNull()) {
- if (libElement.hasAttribute(attribute))
- localLibs.replace(libElement.attribute(attribute).arg(apiLevel) + QLatin1Char(':'), QString());
- libElement = libElement.nextSiblingElement(itemType);
+ libElement = libElement.nextSiblingElement(itemType);
+ }
}
+ element = element.nextSiblingElement(QLatin1String("lib"));
}
- element = element.nextSiblingElement(QLatin1String("lib"));
}
+
+ // The next loop requires all library names to end with a ":" so we append one
+ // to the end after joining.
+ localLibs = dependencyLibs.join(QLatin1String(":")) + QLatin1Char(':');
+ foreach (QString replacedLib, replacedLibs)
+ localLibs.remove(replacedLib + QLatin1Char(':'));
+
return localLibs;
}
diff --git a/src/plugins/android/androidpackagecreationstep.cpp b/src/plugins/android/androidpackagecreationstep.cpp
index 0b27ffa1b08..947fda77c9d 100644
--- a/src/plugins/android/androidpackagecreationstep.cpp
+++ b/src/plugins/android/androidpackagecreationstep.cpp
@@ -145,14 +145,13 @@ bool AndroidPackageCreationStep::init()
// Copying
m_androidDir = AndroidManager::dirPath(target());
Utils::FileName path = m_androidDir;
- Utils::FileName androidLibPath;
- if (project->rootQt4ProjectNode()->variableValue(Qt4ProjectManager::ConfigVar).contains(QLatin1String("x86")))
- androidLibPath = path.appendPath(QLatin1String("libs/x86"));
- else if (project->rootQt4ProjectNode()
- ->variableValue(Qt4ProjectManager::ConfigVar).contains(QLatin1String("armeabi-v7a")))
- androidLibPath = path.appendPath(QLatin1String("libs/armeabi-v7a"));
- else
- androidLibPath = path.appendPath(QLatin1String("libs/armeabi"));
+ QString androidTargetArch = project->rootQt4ProjectNode()->singleVariableValue(Qt4ProjectManager::AndroidArchVar);
+ if (androidTargetArch.isEmpty()) {
+ raiseError(tr("Cannot create Android package: No ANDROID_TARGET_ARCH set in make spec."));
+ return false;
+ }
+
+ Utils::FileName androidLibPath = path.appendPath(QLatin1String("libs/") + androidTargetArch);
m_gdbServerDestination = androidLibPath.appendPath(QLatin1String("gdbserver"));
m_gdbServerSource = AndroidGdbServerKitInformation::gdbServer(target()->kit());
m_debugBuild = bc->qmakeBuildConfiguration() & QtSupport::BaseQtVersion::DebugBuild;
diff --git a/src/plugins/android/androidplugin.cpp b/src/plugins/android/androidplugin.cpp
index f478e86b009..b1a67572ab3 100644
--- a/src/plugins/android/androidplugin.cpp
+++ b/src/plugins/android/androidplugin.cpp
@@ -44,6 +44,8 @@
#include "androidqtversionfactory.h"
#include "androiddeployconfiguration.h"
#include "androidgdbserverkitinformation.h"
+#include <projectexplorer/kitmanager.h>
+#include <qtsupport/qtversionmanager.h>
#include <QtPlugin>
@@ -80,6 +82,17 @@ void AndroidPlugin::extensionsInitialized()
ProjectExplorer::DeviceManager *dm = ProjectExplorer::DeviceManager::instance();
if (dm->find(Core::Id(Constants::ANDROID_DEVICE_ID)).isNull())
dm->addDevice(ProjectExplorer::IDevice::Ptr(new Internal::AndroidDevice));
+ connect(ProjectExplorer::KitManager::instance(), SIGNAL(kitsChanged()),
+ this, SLOT(kitsRestored()));
+}
+
+void AndroidPlugin::kitsRestored()
+{
+ Internal::AndroidConfigurations::instance().updateAutomaticKitList();
+ connect(QtSupport::QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)),
+ &Internal::AndroidConfigurations::instance(), SLOT(updateAutomaticKitList()));
+ disconnect(ProjectExplorer::KitManager::instance(), SIGNAL(kitsChanged()),
+ this, SLOT(kitsRestored()));
}
} // namespace Android
diff --git a/src/plugins/android/androidplugin.h b/src/plugins/android/androidplugin.h
index 5780f7f9a5b..168ac611dd0 100644
--- a/src/plugins/android/androidplugin.h
+++ b/src/plugins/android/androidplugin.h
@@ -44,6 +44,8 @@ public:
bool initialize(const QStringList &arguments, QString *errorMessage);
void extensionsInitialized();
+private slots:
+ void kitsRestored();
};
} // namespace Android
diff --git a/src/plugins/android/androidqtversion.cpp b/src/plugins/android/androidqtversion.cpp
index 558acf860dc..41076699f20 100644
--- a/src/plugins/android/androidqtversion.cpp
+++ b/src/plugins/android/androidqtversion.cpp
@@ -89,9 +89,15 @@ QString AndroidQtVersion::invalidReason() const
QList<ProjectExplorer::Abi> AndroidQtVersion::detectQtAbis() const
{
- return QList<ProjectExplorer::Abi>() << ProjectExplorer::Abi(ProjectExplorer::Abi::ArmArchitecture, ProjectExplorer::Abi::LinuxOS,
- ProjectExplorer::Abi::AndroidLinuxFlavor, ProjectExplorer::Abi::ElfFormat,
- 32);
+ QList<ProjectExplorer::Abi> abis = qtAbisFromLibrary(qtCorePath(versionInfo(), qtVersionString()));
+ for (int i = 0; i < abis.count(); ++i) {
+ abis[i] = Abi(abis.at(i).architecture(),
+ abis.at(i).os(),
+ ProjectExplorer::Abi::AndroidLinuxFlavor,
+ abis.at(i).binaryFormat(),
+ abis.at(i).wordWidth());
+ }
+ return abis;
}
void AndroidQtVersion::addToEnvironment(const ProjectExplorer::Kit *k, Utils::Environment &env) const
diff --git a/src/plugins/android/androidrunner.cpp b/src/plugins/android/androidrunner.cpp
index 02373108f38..7b7d9633437 100644
--- a/src/plugins/android/androidrunner.cpp
+++ b/src/plugins/android/androidrunner.cpp
@@ -80,7 +80,7 @@ void AndroidRunner::checkPID()
// Detect busybox, as we need to pass -w to it to get wide output.
psProc.start(AndroidConfigurations::instance().adbToolPath().toString(),
- QStringList() << QLatin1String("-s") << m_deviceSerialNumber
+ AndroidDeviceInfo::adbSelector(m_deviceSerialNumber)
<< QLatin1String("shell") << QLatin1String("readlink") << QLatin1String("$(which ps)"));
if (!psProc.waitForFinished(-1)) {
psProc.kill();
@@ -93,7 +93,7 @@ void AndroidRunner::checkPID()
}
psProc.start(AndroidConfigurations::instance().adbToolPath().toString(),
- QStringList() << QLatin1String("-s") << m_deviceSerialNumber
+ AndroidDeviceInfo::adbSelector(m_deviceSerialNumber)
<< QLatin1String("shell") << psCmd);
if (!psProc.waitForFinished(-1)) {
psProc.kill();
@@ -161,9 +161,8 @@ void AndroidRunner::asyncStart()
QString extraParams;
QProcess adbStarProc;
if (m_useCppDebugger) {
- QStringList arguments;
- arguments << QLatin1String("-s") << m_deviceSerialNumber
- << QLatin1String("forward") << QString::fromLatin1("tcp%1").arg(m_remoteGdbChannel)
+ QStringList arguments = AndroidDeviceInfo::adbSelector(m_deviceSerialNumber);
+ arguments << QLatin1String("forward") << QString::fromLatin1("tcp%1").arg(m_remoteGdbChannel)
<< QString::fromLatin1("localfilesystem:/data/data/%1/debug-socket").arg(m_packageName);
adbStarProc.start(AndroidConfigurations::instance().adbToolPath().toString(), arguments);
if (!adbStarProc.waitForStarted()) {
@@ -177,10 +176,9 @@ void AndroidRunner::asyncStart()
extraParams = QLatin1String("-e native_debug true -e gdbserver_socket +debug-socket");
}
if (m_useQmlDebugger) {
- QStringList arguments;
+ QStringList arguments = AndroidDeviceInfo::adbSelector(m_deviceSerialNumber);
QString port = QString::fromLatin1("tcp:%1").arg(m_qmlPort);
- arguments << QLatin1String("-s") << m_deviceSerialNumber
- << QLatin1String("forward") << port << port; // currently forward to same port on device and host
+ arguments << QLatin1String("forward") << port << port; // currently forward to same port on device and host
adbStarProc.start(AndroidConfigurations::instance().adbToolPath().toString(), arguments);
if (!adbStarProc.waitForStarted()) {
emit remoteProcessFinished(tr("Failed to forward QML debugging ports. Reason: %1.").arg(adbStarProc.errorString()));
@@ -204,9 +202,8 @@ void AndroidRunner::asyncStart()
}
extraParams = extraParams.trimmed();
- QStringList arguments;
- arguments << QLatin1String("-s") << m_deviceSerialNumber
- << QLatin1String("shell") << QLatin1String("am")
+ QStringList arguments = AndroidDeviceInfo::adbSelector(m_deviceSerialNumber);
+ arguments << QLatin1String("shell") << QLatin1String("am")
<< QLatin1String("start") << QLatin1String("-n") << m_intentName;
if (extraParams.length())
@@ -246,7 +243,7 @@ void AndroidRunner::startLogcat()
{
m_checkPIDTimer.start(1000); // check if the application is alive every 1 seconds
m_adbLogcatProcess.start(AndroidConfigurations::instance().adbToolPath().toString(),
- QStringList() << QLatin1String("-s") << m_deviceSerialNumber
+ AndroidDeviceInfo::adbSelector(m_deviceSerialNumber)
<< QLatin1String("logcat"));
emit remoteProcessStarted(5039);
}
@@ -294,9 +291,8 @@ void AndroidRunner::logcatReadStandardOutput()
void AndroidRunner::adbKill(qint64 pid, const QString &device, int timeout, const QString &runAsPackageName)
{
QProcess process;
- QStringList arguments;
+ QStringList arguments = AndroidDeviceInfo::adbSelector(device);
- arguments << QLatin1String("-s") << device;
arguments << QLatin1String("shell");
if (runAsPackageName.size())
arguments << QLatin1String("run-as") << runAsPackageName;
diff --git a/src/plugins/android/androidsettingspage.cpp b/src/plugins/android/androidsettingspage.cpp
index df5e6eeaba3..28722c3e30a 100644
--- a/src/plugins/android/androidsettingspage.cpp
+++ b/src/plugins/android/androidsettingspage.cpp
@@ -82,6 +82,17 @@ void AndroidSettingsPage::apply()
else
ProjectExplorer::ToolChainManager::instance()->registerToolChain(tc);
}
+
+ for (int i = 0; i < existingToolChains.count(); ++i) {
+ ProjectExplorer::ToolChain *tc = existingToolChains.at(i);
+ if (tc->type() == QLatin1String(Constants::ANDROID_TOOLCHAIN_TYPE)) {
+ if (!tc->isValid()) {
+ ProjectExplorer::ToolChainManager::instance()->deregisterToolChain(tc);
+ }
+ }
+ }
+
+ AndroidConfigurations::instance().updateAutomaticKitList();
}
void AndroidSettingsPage::finish()
diff --git a/src/plugins/android/androidsettingswidget.cpp b/src/plugins/android/androidsettingswidget.cpp
index 6ba10b212c8..fcf9c8df3a6 100644
--- a/src/plugins/android/androidsettingswidget.cpp
+++ b/src/plugins/android/androidsettingswidget.cpp
@@ -32,10 +32,15 @@
#include "ui_androidsettingswidget.h"
#include "androidconfigurations.h"
-
#include "androidconstants.h"
+#include "androidtoolchain.h"
#include <utils/hostosinfo.h>
+#include <projectexplorer/toolchainmanager.h>
+#include <projectexplorer/kitmanager.h>
+#include <projectexplorer/kitinformation.h>
+#include <qtsupport/qtkitinformation.h>
+#include <qtsupport/qtversionmanager.h>
#include <QFile>
#include <QTextStream>
@@ -150,6 +155,7 @@ void AndroidSettingsWidget::initGui()
m_ui->AntLocationLineEdit->setText(m_androidConfig.antLocation.toUserOutput());
m_ui->OpenJDKLocationLineEdit->setText(m_androidConfig.openJDKLocation.toUserOutput());
m_ui->DataPartitionSizeSpinBox->setValue(m_androidConfig.partitionSize);
+ m_ui->CreateKitCheckBox->setChecked(m_androidConfig.automaticKitCreation);
m_ui->AVDTableView->setModel(&m_AVDModel);
m_AVDModel.setAvdList(AndroidConfigurations::instance().androidVirtualDevices());
m_ui->AVDTableView->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
@@ -186,19 +192,79 @@ bool AndroidSettingsWidget::checkSDK(const Utils::FileName &location)
return true;
}
+int indexOf(const QList<AndroidToolChainFactory::AndroidToolChainInformation> &list, const Utils::FileName &f)
+{
+ int end = list.count();
+ for (int i = 0; i < end; ++i) {
+ if (list.at(i).compilerCommand == f)
+ return i;
+ }
+ return -1;
+}
+
bool AndroidSettingsWidget::checkNDK(const Utils::FileName &location)
{
- if (location.isEmpty())
+ if (location.isEmpty()) {
+ m_ui->ndkWarningIconLabel->setVisible(false);
+ m_ui->toolchainFoundLabel->setVisible(false);
+ m_ui->kitWarningIconLabel->setVisible(false);
+ m_ui->kitWarningLabel->setVisible(false);
return false;
+ }
Utils::FileName platformPath = location;
Utils::FileName toolChainPath = location;
Utils::FileName sourcesPath = location;
if (!platformPath.appendPath(QLatin1String("platforms")).toFileInfo().exists()
|| !toolChainPath.appendPath(QLatin1String("toolchains")).toFileInfo().exists()
|| !sourcesPath.appendPath(QLatin1String("sources/cxx-stl")).toFileInfo().exists()) {
- QMessageBox::critical(this, tr("Android NDK Folder"), tr("\"%1\" does not seem to be an Android NDK top folder.").arg(location.toUserOutput()));
+ m_ui->toolchainFoundLabel->setText(tr("\"%1\" does not seem to be an Android NDK top folder.").arg(location.toUserOutput()));
+ m_ui->toolchainFoundLabel->setVisible(true);
+ m_ui->ndkWarningIconLabel->setVisible(true);
return false;
}
+
+ // Check how many toolchains we could add...
+ QList<AndroidToolChainFactory::AndroidToolChainInformation> compilerPaths = AndroidToolChainFactory::toolchainPathsForNdk(location);
+ if (compilerPaths.isEmpty()) {
+ m_ui->ndkWarningIconLabel->setVisible(false);
+ m_ui->toolchainFoundLabel->setVisible(false);
+ } else {
+ m_ui->ndkWarningIconLabel->setVisible(false);
+ m_ui->toolchainFoundLabel->setText(tr("Found %n toolchains for this NDK.", 0, compilerPaths.count()));
+ m_ui->toolchainFoundLabel->setVisible(true);
+ }
+
+ // See if we have qt versions for those toolchains
+ QSet<ProjectExplorer::Abi::Architecture> toolchainsForArch;
+ foreach (const AndroidToolChainFactory::AndroidToolChainInformation &ati, compilerPaths)
+ toolchainsForArch.insert(ati.architecture);
+
+ QSet<ProjectExplorer::Abi::Architecture> qtVersionsForArch;
+ foreach (QtSupport::BaseQtVersion *qtVersion, QtSupport::QtVersionManager::instance()->versions()) {
+ if (qtVersion->type() != QLatin1String(Constants::ANDROIDQT))
+ continue;
+ qtVersionsForArch.insert(qtVersion->qtAbis().first().architecture());
+ }
+
+ QSet<ProjectExplorer::Abi::Architecture> missingQtArchs = toolchainsForArch.subtract(qtVersionsForArch);
+ if (missingQtArchs.isEmpty()) {
+ m_ui->kitWarningIconLabel->setVisible(false);
+ m_ui->kitWarningLabel->setVisible(false);
+ } else {
+ m_ui->kitWarningIconLabel->setVisible(true);
+ m_ui->kitWarningLabel->setVisible(true);
+ if (missingQtArchs.count() == 1) {
+ m_ui->kitWarningLabel->setText(tr("Qt version for architecture %1 is missing.\n To add the Qt version, select Options > Build & Run > Qt Versions.")
+ .arg(ProjectExplorer::Abi::toString((*missingQtArchs.constBegin()))));
+ } else {
+ QStringList missingArchs;
+ foreach (ProjectExplorer::Abi::Architecture arch, missingQtArchs)
+ missingArchs.append(ProjectExplorer::Abi::toString(arch));
+ m_ui->kitWarningLabel->setText(tr("Qt versions for architectures %1 are missing.\n To add the Qt versions, select Options > Build & Run > Qt Versions.")
+ .arg(missingArchs.join(QLatin1String(", "))));
+ }
+ }
+
m_androidConfig.ndkLocation = location;
return true;
@@ -243,7 +309,9 @@ void AndroidSettingsWidget::openJDKLocationEditingFinished()
void AndroidSettingsWidget::browseSDKLocation()
{
- Utils::FileName dir = Utils::FileName::fromString(QFileDialog::getExistingDirectory(this, tr("Select Android SDK folder")));
+ Utils::FileName dir = Utils::FileName::fromString(
+ QFileDialog::getExistingDirectory(this, tr("Select Android SDK folder"),
+ m_ui->SDKLocationLineEdit->text()));
if (!checkSDK(dir))
return;
m_ui->SDKLocationLineEdit->setText(dir.toUserOutput());
@@ -252,7 +320,9 @@ void AndroidSettingsWidget::browseSDKLocation()
void AndroidSettingsWidget::browseNDKLocation()
{
- Utils::FileName dir = Utils::FileName::fromString(QFileDialog::getExistingDirectory(this, tr("Select Android NDK folder")));
+ Utils::FileName dir = Utils::FileName::fromString(
+ QFileDialog::getExistingDirectory(this, tr("Select Android NDK folder"),
+ m_ui->NDKLocationLineEdit->text()));
if (!checkNDK(dir))
return;
m_ui->NDKLocationLineEdit->setText(dir.toUserOutput());
@@ -317,6 +387,11 @@ void AndroidSettingsWidget::dataPartitionSizeEditingFinished()
m_androidConfig.partitionSize = m_ui->DataPartitionSizeSpinBox->value();
}
+void AndroidSettingsWidget::createKitToggled()
+{
+ m_androidConfig.automaticKitCreation = m_ui->CreateKitCheckBox->isChecked();
+}
+
void AndroidSettingsWidget::manageAVD()
{
QProcess *avdProcess = new QProcess();
diff --git a/src/plugins/android/androidsettingswidget.h b/src/plugins/android/androidsettingswidget.h
index 49a75f91966..957d234173f 100644
--- a/src/plugins/android/androidsettingswidget.h
+++ b/src/plugins/android/androidsettingswidget.h
@@ -87,6 +87,7 @@ private slots:
void avdActivated(QModelIndex);
void dataPartitionSizeEditingFinished();
void manageAVD();
+ void createKitToggled();
private:
void initGui();
diff --git a/src/plugins/android/androidsettingswidget.ui b/src/plugins/android/androidsettingswidget.ui
index 0003f92dc4e..1ab321aca9b 100644
--- a/src/plugins/android/androidsettingswidget.ui
+++ b/src/plugins/android/androidsettingswidget.ui
@@ -16,8 +16,46 @@
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <widget class="QLabel" name="SDKLocationLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Android SDK location:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="SDKLocationLineEdit"/>
+ </item>
+ <item row="0" column="2">
+ <widget class="QPushButton" name="SDKLocationPushButton">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Browse</string>
+ </property>
+ </widget>
+ </item>
<item row="1" column="0">
<widget class="QLabel" name="NDKLocationLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
<string>Android NDK location:</string>
</property>
@@ -37,65 +75,148 @@
</widget>
</item>
<item row="2" column="1">
- <widget class="QLineEdit" name="AntLocationLineEdit"/>
- </item>
- <item row="2" column="2">
- <widget class="QPushButton" name="AntLocationPushButton">
- <property name="text">
- <string>Browse</string>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <property name="spacing">
+ <number>2</number>
</property>
- </widget>
+ <item>
+ <widget class="QLabel" name="ndkWarningIconLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="pixmap">
+ <pixmap resource="../projectexplorer/projectexplorer.qrc">:/projectexplorer/images/compile_error.png</pixmap>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="toolchainFoundLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ </layout>
</item>
- <item row="2" column="0">
- <widget class="QLabel" name="AntLocationLabel">
+ <item row="3" column="1">
+ <widget class="QCheckBox" name="CreateKitCheckBox">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
- <string>Ant location:</string>
+ <string>Automatically create kits for Android tool chains</string>
</property>
- <property name="alignment">
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ <property name="checked">
+ <bool>true</bool>
</property>
</widget>
</item>
- <item row="3" column="0">
- <widget class="QLabel" name="OpenJDKLocationLabel">
+ <item row="5" column="0">
+ <widget class="QLabel" name="AntLocationLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
- <string>OpenJDK location:</string>
+ <string>Ant location:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
- <item row="3" column="1">
- <widget class="QLineEdit" name="OpenJDKLocationLineEdit"/>
+ <item row="5" column="1">
+ <widget class="QLineEdit" name="AntLocationLineEdit"/>
</item>
- <item row="3" column="2">
- <widget class="QPushButton" name="OpenJDKLocationPushButton">
+ <item row="5" column="2">
+ <widget class="QPushButton" name="AntLocationPushButton">
<property name="text">
<string>Browse</string>
</property>
</widget>
</item>
- <item row="0" column="0">
- <widget class="QLabel" name="SDKLocationLabel">
+ <item row="6" column="0">
+ <widget class="QLabel" name="OpenJDKLocationLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="text">
- <string>Android SDK location:</string>
+ <string>OpenJDK location:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
- <item row="0" column="1">
- <widget class="QLineEdit" name="SDKLocationLineEdit"/>
+ <item row="6" column="1">
+ <widget class="QLineEdit" name="OpenJDKLocationLineEdit"/>
</item>
- <item row="0" column="2">
- <widget class="QPushButton" name="SDKLocationPushButton">
+ <item row="6" column="2">
+ <widget class="QPushButton" name="OpenJDKLocationPushButton">
<property name="text">
<string>Browse</string>
</property>
</widget>
</item>
+ <item row="4" column="1">
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <property name="spacing">
+ <number>2</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="kitWarningIconLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="pixmap">
+ <pixmap resource="../projectexplorer/projectexplorer.qrc">:/projectexplorer/images/compile_warning.png</pixmap>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="kitWarningLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
</layout>
</item>
<item>
@@ -107,22 +228,6 @@
<enum>QFrame::Raised</enum>
</property>
<layout class="QGridLayout" name="gridLayout_2">
- <item row="1" column="0" rowspan="4">
- <widget class="QTableView" name="AVDTableView">
- <property name="selectionMode">
- <enum>QAbstractItemView::SingleSelection</enum>
- </property>
- <property name="selectionBehavior">
- <enum>QAbstractItemView::SelectRows</enum>
- </property>
- <property name="textElideMode">
- <enum>Qt::ElideMiddle</enum>
- </property>
- <attribute name="verticalHeaderVisible">
- <bool>false</bool>
- </attribute>
- </widget>
- </item>
<item row="3" column="1">
<widget class="QPushButton" name="AVDStartPushButton">
<property name="enabled">
@@ -133,19 +238,6 @@
</property>
</widget>
</item>
- <item row="4" column="1">
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>129</height>
- </size>
- </property>
- </spacer>
- </item>
<item row="0" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
@@ -197,6 +289,16 @@
</item>
</layout>
</item>
+ <item row="2" column="1">
+ <widget class="QPushButton" name="AVDRemovePushButton">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Remove</string>
+ </property>
+ </widget>
+ </item>
<item row="1" column="1">
<widget class="QPushButton" name="AVDAddPushButton">
<property name="text">
@@ -204,22 +306,43 @@
</property>
</widget>
</item>
- <item row="2" column="1">
- <widget class="QPushButton" name="AVDRemovePushButton">
- <property name="enabled">
- <bool>false</bool>
+ <item row="1" column="0" rowspan="4">
+ <widget class="QTableView" name="AVDTableView">
+ <property name="selectionMode">
+ <enum>QAbstractItemView::SingleSelection</enum>
</property>
- <property name="text">
- <string>Remove</string>
+ <property name="selectionBehavior">
+ <enum>QAbstractItemView::SelectRows</enum>
</property>
+ <property name="textElideMode">
+ <enum>Qt::ElideMiddle</enum>
+ </property>
+ <attribute name="verticalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
</widget>
</item>
+ <item row="4" column="1">
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>129</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
</layout>
</widget>
</item>
</layout>
</widget>
- <resources/>
+ <resources>
+ <include location="../projectexplorer/projectexplorer.qrc"/>
+ </resources>
<connections>
<connection>
<sender>NDKLocationLineEdit</sender>
@@ -461,6 +584,22 @@
</hint>
</hints>
</connection>
+ <connection>
+ <sender>CreateKitCheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>AndroidSettingsWidget</receiver>
+ <slot>createKitToggled()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>358</x>
+ <y>99</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>339</x>
+ <y>220</y>
+ </hint>
+ </hints>
+ </connection>
</connections>
<slots>
<slot>sdkLocationEditingFinished()</slot>
@@ -477,5 +616,6 @@
<slot>openJDKLocationEditingFinished()</slot>
<slot>browseOpenJDKLocation()</slot>
<slot>manageAVD()</slot>
+ <slot>createKitToggled()</slot>
</slots>
</ui>
diff --git a/src/plugins/android/androidtoolchain.cpp b/src/plugins/android/androidtoolchain.cpp
index 97526882448..3b00796d19d 100644
--- a/src/plugins/android/androidtoolchain.cpp
+++ b/src/plugins/android/androidtoolchain.cpp
@@ -101,7 +101,8 @@ QString AndroidToolChain::typeDisplayName() const
bool AndroidToolChain::isValid() const
{
- return GccToolChain::isValid() && targetAbi().isValid() && !m_ndkToolChainVersion.isEmpty();
+ return GccToolChain::isValid() && targetAbi().isValid() && !m_ndkToolChainVersion.isEmpty()
+ && compilerCommand().isChildOf(AndroidConfigurations::instance().config().ndkLocation);
}
void AndroidToolChain::addToEnvironment(Environment &env) const
@@ -280,6 +281,39 @@ ToolChain *AndroidToolChainFactory::restore(const QVariantMap &data)
return 0;
}
+QList<AndroidToolChainFactory::AndroidToolChainInformation> AndroidToolChainFactory::toolchainPathsForNdk(const Utils::FileName &ndkPath)
+{
+ QList<AndroidToolChainInformation> result;
+ if (ndkPath.isEmpty())
+ return result;
+ QRegExp versionRegExp(NDKGccVersionRegExp);
+ FileName path = ndkPath;
+ QDirIterator it(path.appendPath(QLatin1String("toolchains")).toString(),
+ QStringList() << QLatin1String("*"), QDir::Dirs);
+ while (it.hasNext()) {
+ const QString &fileName = QFileInfo(it.next()).fileName();
+ int idx = versionRegExp.indexIn(fileName);
+ if (idx == -1)
+ continue;
+ AndroidToolChainInformation ati;
+ ati.version = fileName.mid(idx + 1);
+ QString platform = fileName.left(idx);
+ ati.architecture = AndroidConfigurations::architectureForToolChainPrefix(platform);
+ if (ati.architecture == Abi::UnknownArchitecture) // e.g. mipsel which is not yet supported
+ continue;
+ // AndroidToolChain *tc = new AndroidToolChain(arch, version, true);
+ ati.compilerCommand = ndkPath;
+ ati.compilerCommand.appendPath(QString::fromLatin1("toolchains/%1/prebuilt/%3/bin/%4")
+ .arg(fileName)
+ .arg(ToolchainHost)
+ .arg(AndroidConfigurations::toolsPrefix(ati.architecture)));
+ ati.compilerCommand.append(QLatin1String("-gcc" QTC_HOST_EXE_SUFFIX));
+ // tc->setCompilerCommand(compilerPath);
+ result.append(ati);
+ }
+ return result;
+}
+
QList<ToolChain *> AndroidToolChainFactory::createToolChainsForNdk(const Utils::FileName &ndkPath)
{
QList<ToolChain *> result;
diff --git a/src/plugins/android/androidtoolchain.h b/src/plugins/android/androidtoolchain.h
index 0662a19ff14..918db4ad3f4 100644
--- a/src/plugins/android/androidtoolchain.h
+++ b/src/plugins/android/androidtoolchain.h
@@ -103,7 +103,16 @@ public:
bool canRestore(const QVariantMap &data);
ProjectExplorer::ToolChain *restore(const QVariantMap &data);
+ class AndroidToolChainInformation
+ {
+ public:
+ Utils::FileName compilerCommand;
+ ProjectExplorer::Abi::Architecture architecture;
+ QString version;
+ };
+
static QList<ProjectExplorer::ToolChain *> createToolChainsForNdk(const Utils::FileName &ndkPath);
+ static QList<AndroidToolChainInformation> toolchainPathsForNdk(const Utils::FileName &ndkPath);
};
} // namespace Internal
diff --git a/src/plugins/autotoolsprojectmanager/autotoolsproject.cpp b/src/plugins/autotoolsprojectmanager/autotoolsproject.cpp
index a9f7332107e..8d938a4ab22 100644
--- a/src/plugins/autotoolsprojectmanager/autotoolsproject.cpp
+++ b/src/plugins/autotoolsprojectmanager/autotoolsproject.cpp
@@ -76,7 +76,7 @@ AutotoolsProject::AutotoolsProject(AutotoolsManager *manager, const QString &fil
m_makefileParserThread(0)
{
setProjectContext(Core::Context(Constants::PROJECT_CONTEXT));
- setProjectLanguage(Core::Context(ProjectExplorer::Constants::LANG_CXX));
+ setProjectLanguages(Core::Context(ProjectExplorer::Constants::LANG_CXX));
const QFileInfo fileInfo(m_fileName);
m_projectName = fileInfo.absoluteDir().dirName();
diff --git a/src/plugins/bineditor/bineditor.cpp b/src/plugins/bineditor/bineditor.cpp
index 500807b2505..c3205178de0 100644
--- a/src/plugins/bineditor/bineditor.cpp
+++ b/src/plugins/bineditor/bineditor.cpp
@@ -49,6 +49,7 @@
#include <QMenu>
#include <QMessageBox>
#include <QPainter>
+#include <QPointer>
#include <QScrollBar>
#include <QToolTip>
#include <QWheelEvent>
@@ -1487,56 +1488,61 @@ void BinEditor::contextMenuEvent(QContextMenuEvent *event)
const int selStart = selectionStart();
const int byteCount = selectionEnd() - selStart + 1;
- QMenu contextMenu;
- QAction copyAsciiAction(tr("Copy Selection as ASCII Characters"), this);
- QAction copyHexAction(tr("Copy Selection as Hex Values"), this);
- QAction jumpToBeAddressHereAction(this);
- QAction jumpToBeAddressNewWindowAction(this);
- QAction jumpToLeAddressHereAction(this);
- QAction jumpToLeAddressNewWindowAction(this);
- QAction addWatchpointAction(tr("Set Data Breakpoint on Selection"), this);
- contextMenu.addAction(&copyAsciiAction);
- contextMenu.addAction(&copyHexAction);
- contextMenu.addAction(&addWatchpointAction);
+ QPointer<QMenu> contextMenu(new QMenu(this));
- addWatchpointAction.setEnabled(byteCount > 0 && byteCount <= 32);
+ QAction *copyAsciiAction = new QAction(tr("Copy Selection as ASCII Characters"), contextMenu);
+ QAction *copyHexAction = new QAction(tr("Copy Selection as Hex Values"), contextMenu);
+ QAction *jumpToBeAddressHereAction = new QAction(contextMenu);
+ QAction *jumpToBeAddressNewWindowAction = new QAction(contextMenu);
+ QAction *jumpToLeAddressHereAction = new QAction(contextMenu);
+ QAction *jumpToLeAddressNewWindowAction = new QAction(contextMenu);
+ QAction *addWatchpointAction = new QAction(tr("Set Data Breakpoint on Selection"), contextMenu);
+ contextMenu->addAction(copyAsciiAction);
+ contextMenu->addAction(copyHexAction);
+ contextMenu->addAction(addWatchpointAction);
+
+ addWatchpointAction->setEnabled(byteCount > 0 && byteCount <= 32);
quint64 beAddress = 0;
quint64 leAddress = 0;
if (byteCount <= 8) {
asIntegers(selStart, byteCount, beAddress, leAddress);
- setupJumpToMenuAction(&contextMenu, &jumpToBeAddressHereAction,
- &jumpToBeAddressNewWindowAction, beAddress);
+ setupJumpToMenuAction(contextMenu, jumpToBeAddressHereAction,
+ jumpToBeAddressNewWindowAction, beAddress);
// If the menu entries would be identical, show only one of them.
if (beAddress != leAddress) {
- setupJumpToMenuAction(&contextMenu, &jumpToLeAddressHereAction,
- &jumpToLeAddressNewWindowAction, leAddress);
+ setupJumpToMenuAction(contextMenu, jumpToLeAddressHereAction,
+ jumpToLeAddressNewWindowAction, leAddress);
}
} else {
- jumpToBeAddressHereAction.setText(tr("Jump to Address in This Window"));
- jumpToBeAddressNewWindowAction.setText(tr("Jump to Address in New Window"));
- jumpToBeAddressHereAction.setEnabled(false);
- jumpToBeAddressNewWindowAction.setEnabled(false);
- contextMenu.addAction(&jumpToBeAddressHereAction);
- contextMenu.addAction(&jumpToBeAddressNewWindowAction);
+ jumpToBeAddressHereAction->setText(tr("Jump to Address in This Window"));
+ jumpToBeAddressNewWindowAction->setText(tr("Jump to Address in New Window"));
+ jumpToBeAddressHereAction->setEnabled(false);
+ jumpToBeAddressNewWindowAction->setEnabled(false);
+ contextMenu->addAction(jumpToBeAddressHereAction);
+ contextMenu->addAction(jumpToBeAddressNewWindowAction);
}
- QAction *action = contextMenu.exec(event->globalPos());
- if (action == &copyAsciiAction)
+ QAction *action = contextMenu->exec(event->globalPos());
+ if (!contextMenu)
+ return;
+
+ if (action == copyAsciiAction)
copy(true);
- else if (action == &copyHexAction)
+ else if (action == copyHexAction)
copy(false);
- else if (action == &jumpToBeAddressHereAction)
+ else if (action == jumpToBeAddressHereAction)
jumpToAddress(beAddress);
- else if (action == &jumpToLeAddressHereAction)
+ else if (action == jumpToLeAddressHereAction)
jumpToAddress(leAddress);
- else if (action == &jumpToBeAddressNewWindowAction)
+ else if (action == jumpToBeAddressNewWindowAction)
emit newWindowRequested(beAddress);
- else if (action == &jumpToLeAddressNewWindowAction)
+ else if (action == jumpToLeAddressNewWindowAction)
emit newWindowRequested(leAddress);
- else if (action == &addWatchpointAction)
+ else if (action == addWatchpointAction)
emit addWatchpointRequested(m_baseAddr + selStart, byteCount);
+ delete contextMenu;
}
void BinEditor::setupJumpToMenuAction(QMenu *menu, QAction *actionHere,
diff --git a/src/plugins/classview/classviewsymbolinformation.h b/src/plugins/classview/classviewsymbolinformation.h
index 77b316320fd..d7331347a62 100644
--- a/src/plugins/classview/classviewsymbolinformation.h
+++ b/src/plugins/classview/classviewsymbolinformation.h
@@ -70,10 +70,10 @@ public:
private:
int m_iconType; //!< icon type
+ uint m_hash; //!< precalculated hash value - to speed up qHash
QString m_name; //!< symbol name (e.g. SymbolInformation)
QString m_type; //!< symbol type (e.g. (int char))
- uint m_hash; //!< precalculated hash value - to speed up qHash
};
//! qHash overload for QHash/QSet
diff --git a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp
index 13a1610dd4b..bd144aa4070 100644
--- a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp
@@ -39,6 +39,7 @@
#include <projectexplorer/kitmanager.h>
#include <projectexplorer/toolchain.h>
#include <projectexplorer/abi.h>
+#include <projectexplorer/projectexplorerconstants.h>
#include <texteditor/fontsettings.h>
#include <QVBoxLayout>
@@ -89,7 +90,6 @@ namespace Internal {
ProjectExplorer::Kit *m_kit;
bool m_isNinja;
};
-
}
}
@@ -210,6 +210,9 @@ CMakeOpenProjectWizard::CMakeOpenProjectWizard(CMakeManager *cmakeManager, const
m_useNinja(false),
m_kit(0)
{
+ if (!compatibleKitExist())
+ addPage(new NoKitPage(this));
+
if (hasInSourceBuild()) {
m_buildDirectory = m_sourceDirectory;
addPage(new InSourceBuildPage(this));
@@ -274,6 +277,27 @@ bool CMakeOpenProjectWizard::hasInSourceBuild() const
return false;
}
+bool CMakeOpenProjectWizard::compatibleKitExist() const
+{
+ bool hasCodeBlocksGenerator = m_cmakeManager->hasCodeBlocksMsvcGenerator();
+ bool hasNinjaGenerator = m_cmakeManager->hasCodeBlocksNinjaGenerator();
+
+ QList<ProjectExplorer::Kit *> kitList =
+ ProjectExplorer::KitManager::instance()->kits();
+
+ foreach (ProjectExplorer::Kit *k, kitList) {
+ // OfferNinja and ForceNinja differ in what they return
+ // but not whether the list is empty or not, which is what we
+ // are interested in here
+ QList<GeneratorInfo> infos = GeneratorInfo::generatorInfosFor(k,
+ hasNinjaGenerator ? GeneratorInfo::OfferNinja : GeneratorInfo::NoNinja,
+ hasCodeBlocksGenerator);
+ if (!infos.isEmpty())
+ return true;
+ }
+ return false;
+}
+
bool CMakeOpenProjectWizard::existsUpToDateXmlFile() const
{
QString cbpFile = CMakeManager::findCbpFile(QDir(buildDirectory()));
@@ -338,6 +362,63 @@ void CMakeOpenProjectWizard::setKit(ProjectExplorer::Kit *kit)
m_kit = kit;
}
+//////
+// NoKitPage
+/////
+
+NoKitPage::NoKitPage(CMakeOpenProjectWizard *cmakeWizard)
+ : QWizardPage(cmakeWizard), m_cmakeWizard(cmakeWizard)
+{
+ QVBoxLayout *layout = new QVBoxLayout;
+ setLayout(layout);
+
+ m_descriptionLabel = new QLabel(this);
+ m_descriptionLabel->setWordWrap(true);
+ layout->addWidget(m_descriptionLabel);
+
+ m_optionsButton = new QPushButton;
+ m_optionsButton->setText(tr("Show Options"));
+
+ connect(m_optionsButton, SIGNAL(clicked()),
+ this, SLOT(showOptions()));
+
+ QHBoxLayout *hbox = new QHBoxLayout;
+ hbox->addWidget(m_optionsButton);
+ hbox->addStretch();
+
+ layout->addLayout(hbox);
+
+ setTitle(tr("Check Kits"));
+
+ connect(ProjectExplorer::KitManager::instance(), SIGNAL(kitsChanged()),
+ this, SLOT(kitsChanged()));
+
+ kitsChanged();
+}
+
+void NoKitPage::kitsChanged()
+{
+ if (isComplete()) {
+ m_descriptionLabel->setText(tr("There are compatible kits."));
+ m_optionsButton->setVisible(false);
+ } else {
+ m_descriptionLabel->setText(tr("Qt Creator has no kits that are suitable for CMake projects. Please configure a kit."));
+ m_optionsButton->setVisible(true);
+ }
+ emit completeChanged();
+}
+
+bool NoKitPage::isComplete() const
+{
+ return m_cmakeWizard->compatibleKitExist();
+}
+
+void NoKitPage::showOptions()
+{
+ Core::ICore::showOptionsDialog(Core::Id(ProjectExplorer::Constants::PROJECTEXPLORER_SETTINGS_CATEGORY),
+ Core::Id(ProjectExplorer::Constants::KITS_SETTINGS_PAGE_ID), this);
+}
+
InSourceBuildPage::InSourceBuildPage(CMakeOpenProjectWizard *cmakeWizard)
: QWizardPage(cmakeWizard), m_cmakeWizard(cmakeWizard)
{
diff --git a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.h b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.h
index 7b62612e470..90db1252126 100644
--- a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.h
+++ b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.h
@@ -111,6 +111,7 @@ public:
ProjectExplorer::Kit *kit() const;
void setKit(ProjectExplorer::Kit *kit);
bool existsUpToDateXmlFile() const;
+ bool compatibleKitExist() const;
private:
void init();
@@ -124,6 +125,21 @@ private:
ProjectExplorer::Kit *m_kit;
};
+class NoKitPage : public QWizardPage
+{
+ Q_OBJECT
+public:
+ NoKitPage(CMakeOpenProjectWizard *cmakeWizard);
+ bool isComplete() const;
+private slots:
+ void kitsChanged();
+ void showOptions();
+private:
+ QLabel *m_descriptionLabel;
+ QPushButton *m_optionsButton;
+ CMakeOpenProjectWizard *m_cmakeWizard;
+};
+
class InSourceBuildPage : public QWizardPage
{
Q_OBJECT
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index 13085b37ce3..eb5824a98d4 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -110,7 +110,7 @@ CMakeProject::CMakeProject(CMakeManager *manager, const QString &fileName)
m_lastEditor(0)
{
setProjectContext(Core::Context(CMakeProjectManager::Constants::PROJECTCONTEXT));
- setProjectLanguage(Core::Context(ProjectExplorer::Constants::LANG_CXX));
+ setProjectLanguages(Core::Context(ProjectExplorer::Constants::LANG_CXX));
m_file = new CMakeFile(this, fileName);
@@ -410,11 +410,11 @@ QList<CMakeBuildTarget> CMakeProject::buildTargets() const
return m_buildTargets;
}
-QStringList CMakeProject::buildTargetTitles() const
+QStringList CMakeProject::buildTargetTitles(bool runnable) const
{
QStringList results;
foreach (const CMakeBuildTarget &ct, m_buildTargets) {
- if (ct.executable.isEmpty())
+ if (runnable && (ct.executable.isEmpty() || ct.library))
continue;
if (ct.title.endsWith(QLatin1String("/fast")))
continue;
@@ -426,8 +426,6 @@ QStringList CMakeProject::buildTargetTitles() const
bool CMakeProject::hasBuildTarget(const QString &title) const
{
foreach (const CMakeBuildTarget &ct, m_buildTargets) {
- if (ct.executable.isEmpty())
- continue;
if (ct.title.endsWith(QLatin1String("/fast")))
continue;
if (ct.title == title)
@@ -1103,8 +1101,7 @@ void CMakeCbpParser::parseBuildTarget()
while (!atEnd()) {
readNext();
if (isEndElement()) {
- if (m_buildTargetType || m_buildTarget.title == QLatin1String("all") || m_buildTarget.title == QLatin1String("install"))
- m_buildTargets.append(m_buildTarget);
+ m_buildTargets.append(m_buildTarget);
return;
} else if (name() == QLatin1String("Compiler")) {
parseCompiler();
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.h b/src/plugins/cmakeprojectmanager/cmakeproject.h
index e255e8a3ff7..077bcea1077 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.h
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.h
@@ -88,7 +88,7 @@ public:
ProjectExplorer::ProjectNode *rootProjectNode() const;
QStringList files(FilesMode fileMode) const;
- QStringList buildTargetTitles() const;
+ QStringList buildTargetTitles(bool runnable = false) const;
QList<CMakeBuildTarget> buildTargets() const;
bool hasBuildTarget(const QString &title) const;
diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
index a49f48b13c3..0cf6a85f753 100644
--- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
@@ -487,7 +487,7 @@ QList<Core::Id> CMakeRunConfigurationFactory::availableCreationIds(ProjectExplor
return QList<Core::Id>();
CMakeProject *project = static_cast<CMakeProject *>(parent->project());
QList<Core::Id> allIds;
- foreach (const QString &buildTarget, project->buildTargetTitles())
+ foreach (const QString &buildTarget, project->buildTargetTitles(true))
allIds << idFromBuildTarget(buildTarget);
return allIds;
}
diff --git a/src/plugins/cmakeprojectmanager/makestep.cpp b/src/plugins/cmakeprojectmanager/makestep.cpp
index 4676b24774b..d8173184b32 100644
--- a/src/plugins/cmakeprojectmanager/makestep.cpp
+++ b/src/plugins/cmakeprojectmanager/makestep.cpp
@@ -503,6 +503,6 @@ void MakeStep::processStarted()
void MakeStep::processFinished(int exitCode, QProcess::ExitStatus status)
{
- processFinished(exitCode, status);
+ AbstractProcessStep::processFinished(exitCode, status);
futureInterface()->setProgressValue(100);
}
diff --git a/src/plugins/coreplugin/dialogs/ioptionspage.h b/src/plugins/coreplugin/dialogs/ioptionspage.h
index 178ca4e66c6..1fa1e514479 100644
--- a/src/plugins/coreplugin/dialogs/ioptionspage.h
+++ b/src/plugins/coreplugin/dialogs/ioptionspage.h
@@ -63,8 +63,8 @@ protected:
void setCategoryIcon(const QString &categoryIcon) { m_categoryIcon = categoryIcon; }
Id m_id;
- QString m_displayName;
Id m_category;
+ QString m_displayName;
QString m_displayCategory;
QString m_categoryIcon;
};
diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.cpp b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
index 52a1f1aee9f..f123489035f 100644
--- a/src/plugins/coreplugin/dialogs/settingsdialog.cpp
+++ b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
@@ -73,11 +73,11 @@ class Category
{
public:
Id id;
+ int index;
QString displayName;
QIcon icon;
QList<IOptionsPage *> pages;
QList<IOptionsPageProvider *> providers;
- int index;
QTabWidget *tabWidget;
};
diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index e9e94de347d..3d6993bfe6e 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -887,6 +887,9 @@ bool EditorManager::closeEditors(const QList<IEditor*> &editorsToClose, bool ask
if (acceptedEditors.isEmpty())
return false;
+ // close Editor History list
+ windowPopup()->setVisible(false);
+
// add duplicates
QList<IEditor *> duplicates;
foreach (IEditor *editor, acceptedEditors)
diff --git a/src/plugins/coreplugin/id.cpp b/src/plugins/coreplugin/id.cpp
index 0756b9c5bae..b269877cf37 100644
--- a/src/plugins/coreplugin/id.cpp
+++ b/src/plugins/coreplugin/id.cpp
@@ -73,7 +73,7 @@ public:
: n(length), str(s)
{
if (!n)
- length = n = strlen(s);
+ length = n = static_cast<int>(strlen(s));
h = 0;
while (length--) {
h = (h << 4) + *s++;
diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp
index 05160a942cb..911975ca457 100644
--- a/src/plugins/coreplugin/mainwindow.cpp
+++ b/src/plugins/coreplugin/mainwindow.cpp
@@ -773,19 +773,19 @@ void MainWindow::registerDefaultActions()
else
tmpaction = new QAction(icon, tr("About &Qt Creator..."), this);
cmd = ActionManager::registerAction(tmpaction, Constants::ABOUT_QTCREATOR, globalContext);
- mhelp->addAction(cmd, Constants::G_HELP_ABOUT);
- tmpaction->setEnabled(true);
if (Utils::HostOsInfo::isMacHost())
cmd->action()->setMenuRole(QAction::ApplicationSpecificRole);
+ mhelp->addAction(cmd, Constants::G_HELP_ABOUT);
+ tmpaction->setEnabled(true);
connect(tmpaction, SIGNAL(triggered()), this, SLOT(aboutQtCreator()));
//About Plugins Action
tmpaction = new QAction(tr("About &Plugins..."), this);
cmd = ActionManager::registerAction(tmpaction, Constants::ABOUT_PLUGINS, globalContext);
- mhelp->addAction(cmd, Constants::G_HELP_ABOUT);
- tmpaction->setEnabled(true);
if (Utils::HostOsInfo::isMacHost())
cmd->action()->setMenuRole(QAction::ApplicationSpecificRole);
+ mhelp->addAction(cmd, Constants::G_HELP_ABOUT);
+ tmpaction->setEnabled(true);
connect(tmpaction, SIGNAL(triggered()), this, SLOT(aboutPlugins()));
// About Qt Action
// tmpaction = new QAction(tr("About &Qt..."), this);
@@ -1128,7 +1128,10 @@ void MainWindow::updateFocusWidget(QWidget *old, QWidget *now)
p = p->parentWidget();
}
}
- updateContextObject(newContext);
+
+ // ignore toplevels that define no context, like popups without parent
+ if (newContext || qApp->focusWidget() == focusWidget())
+ updateContextObject(newContext);
}
void MainWindow::updateContextObject(IContext *context)
diff --git a/src/plugins/coreplugin/progressmanager/progressbar.cpp b/src/plugins/coreplugin/progressmanager/progressbar.cpp
index 63e75195d9d..156c6d217e8 100644
--- a/src/plugins/coreplugin/progressmanager/progressbar.cpp
+++ b/src/plugins/coreplugin/progressmanager/progressbar.cpp
@@ -45,7 +45,8 @@ using namespace Core::Internal;
#define CANCELBUTTON_SIZE 15
ProgressBar::ProgressBar(QWidget *parent)
- : QWidget(parent), m_error(false), m_minimum(1), m_maximum(100), m_value(1), m_cancelButtonFader(0), m_finished(false)
+ : QWidget(parent), m_minimum(1), m_maximum(100), m_value(1), m_cancelButtonFader(0),
+ m_finished(false), m_error(false)
{
setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
setMouseTracking(true);
diff --git a/src/plugins/coreplugin/progressmanager/progressbar.h b/src/plugins/coreplugin/progressmanager/progressbar.h
index c4d71044288..e23fa6f0c30 100644
--- a/src/plugins/coreplugin/progressmanager/progressbar.h
+++ b/src/plugins/coreplugin/progressmanager/progressbar.h
@@ -75,13 +75,13 @@ private:
QImage bar;
QString m_text;
QString m_title;
- bool m_error;
int m_progressHeight;
int m_minimum;
int m_maximum;
int m_value;
float m_cancelButtonFader;
bool m_finished;
+ bool m_error;
};
} // namespace Internal
diff --git a/src/plugins/cpaster/frontend/frontend.qbs b/src/plugins/cpaster/frontend/frontend.qbs
index 100bbbbe5d7..922fb3b7b3b 100644
--- a/src/plugins/cpaster/frontend/frontend.qbs
+++ b/src/plugins/cpaster/frontend/frontend.qbs
@@ -7,7 +7,7 @@ QtcTool {
Depends { name: "cpp" }
Depends {
name: "Qt"
- submodules: "core", "gui", "network"
+ submodules: ["gui", "network"]
}
Depends { name: "Core" }
diff --git a/src/plugins/cppeditor/cppdoxygen_test.cpp b/src/plugins/cppeditor/cppdoxygen_test.cpp
new file mode 100644
index 00000000000..5543a3aa644
--- /dev/null
+++ b/src/plugins/cppeditor/cppdoxygen_test.cpp
@@ -0,0 +1,343 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 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.
+**
+****************************************************************************/
+
+#include <coreplugin/editormanager/editormanager.h>
+#include <cplusplus/CppDocument.h>
+#include <cppeditor/cppeditor.h>
+#include <cppeditor/cppplugin.h>
+#include <cpptools/ModelManagerInterface.h>
+#include <utils/fileutils.h>
+
+#include <QCoreApplication>
+#include <QDebug>
+#include <QDir>
+#include <QKeyEvent>
+#include <QString>
+#include <QTextDocument>
+#include <QtTest>
+
+/*!
+ Tests for inserting doxygen comments.
+ */
+using namespace Core;
+using namespace CPlusPlus;
+using namespace CppEditor::Internal;
+
+namespace {
+/**
+ * Encapsulates the whole process of setting up an editor,
+ * pressing ENTER and checking the result.
+ */
+struct TestCase
+{
+ QByteArray originalText;
+ int pos;
+ CPPEditor *editor;
+ CPPEditorWidget *editorWidget;
+
+ TestCase(const QByteArray &input);
+ ~TestCase();
+
+ void run(const QByteArray &expected, int undoCount = 1);
+
+private:
+ TestCase(const TestCase &);
+ TestCase &operator=(const TestCase &);
+};
+
+/// The '|' in the input denotes the cursor position.
+TestCase::TestCase(const QByteArray &input)
+ : originalText(input)
+{
+ pos = originalText.indexOf('|');
+ QVERIFY(pos != -1);
+ originalText.remove(pos, 1);
+ QString fileName(QDir::tempPath() + QLatin1String("/file.cpp"));
+ Utils::FileSaver srcSaver(fileName);
+ srcSaver.write(originalText);
+ srcSaver.finalize();
+ CPlusPlus::CppModelManagerInterface::instance()->updateSourceFiles(QStringList()<<fileName);
+
+ // Wait for the parser in the future to give us the document
+ while (true) {
+ Snapshot s = CPlusPlus::CppModelManagerInterface::instance()->snapshot();
+ if (s.contains(fileName))
+ break;
+ QCoreApplication::processEvents();
+ }
+
+ editor = dynamic_cast<CPPEditor *>(EditorManager::openEditor(fileName));
+ QVERIFY(editor);
+ editorWidget = dynamic_cast<CPPEditorWidget *>(editor->editorWidget());
+ QVERIFY(editorWidget);
+
+ // We want to test documents that start with a comment. By default, the
+ // editor will fold the very first comment it encounters, assuming
+ // it is a license header. Currently unfoldAll() does not work as
+ // expected (some blocks are still hidden in some test cases, so the
+ // cursor movements are not as expected). For the time being, we just
+ // prepend a declaration before the initial test comment.
+// editorWidget->unfoldAll();
+ editor->setCursorPosition(pos);
+
+ editorWidget->semanticRehighlight(true);
+ // Wait for the semantic info from the future:
+ while (editorWidget->semanticInfo().doc.isNull())
+ QCoreApplication::processEvents();
+}
+
+TestCase::~TestCase()
+{
+ EditorManager::instance()->closeEditors(QList<Core::IEditor *>() << editor, false);
+ QCoreApplication::processEvents(); // process any pending events
+
+ // Remove the test file from the code-model
+ CppModelManagerInterface *mmi = CPlusPlus::CppModelManagerInterface::instance();
+ mmi->GC();
+ QCOMPARE(mmi->snapshot().size(), 0);
+}
+
+void TestCase::run(const QByteArray &expected, int undoCount)
+{
+ // Send 'ENTER' key press
+ QKeyEvent event(QEvent::KeyPress, Qt::Key_Enter, Qt::NoModifier);
+ QCoreApplication::sendEvent(editorWidget, &event);
+ const QByteArray result = editorWidget->document()->toPlainText().toUtf8();
+
+ QCOMPARE(QLatin1String(result), QLatin1String(expected));
+
+ for (int i = 0; i < undoCount; ++i)
+ editorWidget->undo();
+ const QByteArray contentsAfterUndo = editorWidget->document()->toPlainText().toUtf8();
+ QCOMPARE(contentsAfterUndo, originalText);
+}
+} // anonymous namespace
+
+void CppPlugin::test_doxygen_comments_qt_style()
+{
+ const QByteArray given =
+ "bool preventFolding;\n"
+ "/*!|\n"
+ "int a;\n"
+ ;
+ const QByteArray expected =
+ "bool preventFolding;\n"
+ "/*!\n"
+ " * \\brief a\n"
+ " */\n"
+ "int a;\n"
+ ;
+
+ TestCase data(given);
+ data.run(expected);
+}
+
+void CppPlugin::test_doxygen_comments_qt_style_continuation()
+{
+ const QByteArray given =
+ "bool preventFolding;\n"
+ "/*!\n"
+ " * \\brief a|\n"
+ " */\n"
+ "int a;\n"
+ ;
+ const QByteArray expected =
+ "bool preventFolding;\n"
+ "/*!\n"
+ " * \\brief a\n"
+ " *\n"
+ " */\n"
+ "int a;\n"
+ ;
+
+ TestCase data(given);
+ data.run(expected);
+}
+
+void CppPlugin::test_doxygen_comments_java_style()
+{
+ const QByteArray given =
+ "bool preventFolding;\n"
+ "/**|\n"
+ "int a;\n"
+ ;
+ const QByteArray expected =
+ "bool preventFolding;\n"
+ "/**\n"
+ " * @brief a\n"
+ " */\n"
+ "int a;\n"
+ ;
+
+ TestCase data(given);
+ data.run(expected);
+}
+
+void CppPlugin::test_doxygen_comments_java_style_continuation()
+{
+ const QByteArray given =
+ "bool preventFolding;\n"
+ "/**\n"
+ " * @brief a|\n"
+ " */\n"
+ "int a;\n"
+ ;
+ const QByteArray expected =
+ "bool preventFolding;\n"
+ "/**\n"
+ " * @brief a\n"
+ " *\n"
+ " */\n"
+ "int a;\n"
+ ;
+
+ TestCase data(given);
+ data.run(expected);
+}
+
+void CppPlugin::test_doxygen_comments_cpp_styleA()
+{
+ const QByteArray given =
+ "bool preventFolding;\n"
+ "///|\n"
+ "int a;\n"
+ ;
+
+ const QByteArray expected =
+ "bool preventFolding;\n"
+ "///\n"
+ "/// \\brief a\n"
+ "///\n"
+ "int a;\n"
+ ;
+ TestCase data(given);
+ data.run(expected);
+}
+
+void CppPlugin::test_doxygen_comments_cpp_styleB()
+{
+ const QByteArray given =
+ "bool preventFolding;\n"
+ "//!|\n"
+ "int a;\n"
+ ;
+
+ const QByteArray expected =
+ "bool preventFolding;\n"
+ "//!\n"
+ "//! \\brief a\n"
+ "//!\n"
+ "int a;\n"
+ ;
+ TestCase data(given);
+ data.run(expected);
+}
+
+void CppPlugin::test_doxygen_comments_cpp_styleA_continuation()
+{
+ const QByteArray given =
+ "bool preventFolding;\n"
+ "///\n"
+ "/// \\brief a|\n"
+ "///\n"
+ "int a;\n"
+ ;
+ const QByteArray expected =
+ "bool preventFolding;\n"
+ "///\n"
+ "/// \\brief a\n"
+ "///\n"
+ "///\n"
+ "int a;\n"
+ ;
+
+ TestCase data(given);
+ data.run(expected);
+}
+
+/// test cpp style doxygen comment when inside a indented scope
+void CppPlugin::test_doxygen_comments_cpp_styleA_indented()
+{
+ const QByteArray given =
+ " bool preventFolding;\n"
+ " ///|\n"
+ " int a;\n"
+ ;
+
+ const QByteArray expected =
+ " bool preventFolding;\n"
+ " ///\n"
+ " /// \\brief a\n"
+ " ///\n"
+ " int a;\n"
+ ;
+ TestCase data(given);
+ data.run(expected);
+}
+
+/// test cpp style doxygen comment continuation when inside a indented scope
+void CppPlugin::test_doxygen_comments_cpp_styleA_indented_continuation()
+{
+ const QByteArray given =
+ " bool preventFolding;\n"
+ " ///\n"
+ " /// \\brief a|\n"
+ " ///\n"
+ " int a;\n"
+ ;
+ const QByteArray expected =
+ " bool preventFolding;\n"
+ " ///\n"
+ " /// \\brief a\n"
+ " ///\n"
+ " ///\n"
+ " int a;\n"
+ ;
+
+ TestCase data(given);
+ data.run(expected);
+}
+
+void CppPlugin::test_doxygen_comments_cpp_styleA_corner_case()
+{
+ const QByteArray given =
+ "bool preventFolding;\n"
+ "///\n"
+ "void d(); ///|\n"
+ ;
+ const QByteArray expected =
+ "bool preventFolding;\n"
+ "///\n"
+ "void d(); ///\n"
+ "\n"
+ ;
+
+ TestCase data(given);
+ data.run(expected);
+}
diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp
index 2faf2084fbe..1924aa45774 100644
--- a/src/plugins/cppeditor/cppeditor.cpp
+++ b/src/plugins/cppeditor/cppeditor.cpp
@@ -97,6 +97,7 @@
#include <QDebug>
#include <QTime>
#include <QTimer>
+#include <QPointer>
#include <QStack>
#include <QSettings>
#include <QSignalMapper>
@@ -419,9 +420,175 @@ struct CanonicalSymbol
};
-
int numberOfClosedEditors = 0;
+/// Check if previous line is a CppStyle Doxygen Comment
+bool isPreviousLineCppStyleComment(const QTextCursor &cursor)
+{
+ const QTextBlock &currentBlock = cursor.block();
+ if (!currentBlock.isValid())
+ return false;
+
+ const QTextBlock &actual = currentBlock.previous();
+ if (!actual.isValid())
+ return false;
+
+ const QString text = actual.text().trimmed();
+ if (text.startsWith(QLatin1String("///")) || text.startsWith(QLatin1String("//!")))
+ return true;
+
+ return false;
+}
+
+/// Check if next line is a CppStyle Doxygen Comment
+bool isNextLineCppStyleComment(const QTextCursor &cursor)
+{
+ const QTextBlock &currentBlock = cursor.block();
+ if (!currentBlock.isValid())
+ return false;
+
+ const QTextBlock &actual = currentBlock.next();
+ if (!actual.isValid())
+ return false;
+
+ const QString text = actual.text().trimmed();
+ if (text.startsWith(QLatin1String("///")) || text.startsWith(QLatin1String("//!")))
+ return true;
+
+ return false;
+}
+
+/// Check if line is a CppStyle Doxygen comment and the cursor is after the comment
+bool isCursorAfterCppComment(const QTextCursor &cursor, const QTextDocument *doc)
+{
+ QTextCursor cursorFirstNonBlank(cursor);
+ cursorFirstNonBlank.movePosition(QTextCursor::StartOfLine);
+ while (doc->characterAt(cursorFirstNonBlank.position()).isSpace()
+ && cursorFirstNonBlank.movePosition(QTextCursor::NextCharacter)) {
+ }
+
+ const QTextBlock& block = cursorFirstNonBlank.block();
+ const QString text = block.text().trimmed();
+ if (text.startsWith(QLatin1String("///")) || text.startsWith(QLatin1String("//!")))
+ return (cursor.position() >= cursorFirstNonBlank.position() + 3);
+
+ return false;
+}
+
+bool isCppStyleContinuation(const QTextCursor& cursor)
+{
+ return (isPreviousLineCppStyleComment(cursor) || isNextLineCppStyleComment(cursor));
+}
+
+DoxygenGenerator::DocumentationStyle doxygenStyle(const QTextCursor &cursor,
+ const QTextDocument *doc)
+{
+ const int pos = cursor.position();
+
+ QString comment = QString(doc->characterAt(pos - 3))
+ + doc->characterAt(pos - 2)
+ + doc->characterAt(pos - 1);
+
+ if (comment == QLatin1String("/**"))
+ return CppTools::DoxygenGenerator::JavaStyle;
+ else if (comment == QLatin1String("/*!"))
+ return CppTools::DoxygenGenerator::QtStyle;
+ else if (comment == QLatin1String("///"))
+ return CppTools::DoxygenGenerator::CppStyleA;
+ else
+ return CppTools::DoxygenGenerator::CppStyleB;
+}
+
+bool handleDoxygenCppStyleContinuation(QTextCursor &cursor,
+ QKeyEvent *e)
+{
+ const int blockPos = cursor.positionInBlock();
+ const QString &text = cursor.block().text();
+ int offset = 0;
+ for (; offset < blockPos; ++offset) {
+ if (!text.at(offset).isSpace())
+ break;
+ }
+
+ // If the line does not start with the comment we don't
+ // consider it as a continuation. Handles situations like:
+ // void d(); ///<enter>
+ if (!(text.trimmed().startsWith(QLatin1String("///"))
+ || text.startsWith(QLatin1String("//!"))))
+ return false;
+
+ QString newLine(QLatin1Char('\n'));
+ newLine.append(QString(offset, QLatin1Char(' '))); // indent correctly
+
+ const QString commentMarker = text.mid(offset, 3);
+ newLine.append(commentMarker);
+
+ cursor.insertText(newLine);
+ e->accept();
+ return true;
+}
+
+bool handleDoxygenContinuation(QTextCursor &cursor,
+ QKeyEvent *e,
+ const QTextDocument *doc,
+ const bool enableDoxygen,
+ const bool leadingAsterisks)
+{
+ // It might be a continuation if:
+ // a) current line starts with /// or //! and cursor is positioned after the comment
+ // b) current line is in the middle of a multi-line Qt or Java style comment
+
+ if (enableDoxygen && !cursor.atEnd() && isCursorAfterCppComment(cursor, doc))
+ return handleDoxygenCppStyleContinuation(cursor, e);
+
+ if (!leadingAsterisks)
+ return false;
+
+ // We continue the comment if the cursor is after a comment's line asterisk and if
+ // there's no asterisk immediately after the cursor (that would already be considered
+ // a leading asterisk).
+ int offset = 0;
+ const int blockPos = cursor.positionInBlock();
+ const QString &text = cursor.block().text();
+ for (; offset < blockPos; ++offset) {
+ if (!text.at(offset).isSpace())
+ break;
+ }
+
+ if (offset < blockPos
+ && (text.at(offset) == QLatin1Char('*')
+ || (offset < blockPos - 1
+ && text.at(offset) == QLatin1Char('/')
+ && text.at(offset + 1) == QLatin1Char('*')))) {
+ int followinPos = blockPos;
+ for (; followinPos < text.length(); ++followinPos) {
+ if (!text.at(followinPos).isSpace())
+ break;
+ }
+ if (followinPos == text.length()
+ || text.at(followinPos) != QLatin1Char('*')) {
+ QString newLine(QLatin1Char('\n'));
+ QTextCursor c(cursor);
+ c.movePosition(QTextCursor::StartOfBlock);
+ c.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor, offset);
+ newLine.append(c.selectedText());
+ if (text.at(offset) == QLatin1Char('/')) {
+ newLine.append(QLatin1String(" *"));
+ } else {
+ int start = offset;
+ while (offset < blockPos && text.at(offset) == QLatin1Char('*'))
+ ++offset;
+ newLine.append(QString(offset - start, QLatin1Char('*')));
+ }
+ cursor.insertText(newLine);
+ e->accept();
+ return true;
+ }
+ }
+
+ return false;
+}
+
} // end of anonymous namespace
CPPEditor::CPPEditor(CPPEditorWidget *editor)
@@ -1006,8 +1173,7 @@ void CPPEditorWidget::updateOutlineIndex()
}
void CPPEditorWidget::highlightUses(const QList<SemanticInfo::Use> &uses,
- const SemanticInfo &semanticInfo,
- QList<QTextEdit::ExtraSelection> *selections)
+ QList<QTextEdit::ExtraSelection> *selections)
{
bool isUnused = false;
@@ -1031,14 +1197,6 @@ void CPPEditorWidget::highlightUses(const QList<SemanticInfo::Use> &uses,
sel.cursor.setPosition(anchor);
sel.cursor.setPosition(position, QTextCursor::KeepAnchor);
- if (isUnused) {
- if (semanticInfo.hasQ && sel.cursor.selectedText() == QLatin1String("q"))
- continue; // skip q
-
- else if (semanticInfo.hasD && sel.cursor.selectedText() == QLatin1String("d"))
- continue; // skip d
- }
-
selections->append(sel);
}
}
@@ -1651,7 +1809,7 @@ void CPPEditorWidget::contextMenuEvent(QContextMenuEvent *e)
// ### enable
// updateSemanticInfo(m_semanticHighlighter->semanticInfo(currentSource()));
- QMenu *menu = new QMenu;
+ QPointer<QMenu> menu(new QMenu(this));
Core::ActionContainer *mcontext = Core::ActionManager::actionContainer(Constants::M_CONTEXT);
QMenu *contextMenu = mcontext->menu();
@@ -1695,6 +1853,8 @@ void CPPEditorWidget::contextMenuEvent(QContextMenuEvent *e)
appendStandardContextMenuActions(menu);
menu->exec(e->globalPos());
+ if (!menu)
+ return;
m_quickFixes.clear();
delete menu;
}
@@ -1848,7 +2008,8 @@ void CPPEditorWidget::setFontSettings(const TextEditor::FontSettings &fs)
// Clear all additional formats since they may have changed
QTextBlock b = document()->firstBlock();
while (b.isValid()) {
- highlighter->setExtraAdditionalFormats(b, QList<QTextLayout::FormatRange>());
+ QList<QTextLayout::FormatRange> noFormats;
+ highlighter->setExtraAdditionalFormats(b, noFormats);
b = b.next();
}
@@ -1965,10 +2126,10 @@ void CPPEditorWidget::updateSemanticInfo(const SemanticInfo &semanticInfo)
if (uses.size() == 1) {
if (!CppTools::isOwnershipRAIIType(it.key(), context)) {
// it's an unused declaration
- highlightUses(uses, semanticInfo, &unusedSelections);
+ highlightUses(uses, &unusedSelections);
}
} else if (good && m_renameSelections.isEmpty()) {
- highlightUses(uses, semanticInfo, &m_renameSelections);
+ highlightUses(uses, &m_renameSelections);
}
}
@@ -2228,8 +2389,6 @@ SemanticInfo SemanticHighlighter::semanticInfo(const Source &source)
const LocalSymbols useTable(semanticInfo.doc, currentFunctionDefinition);
semanticInfo.revision = source.revision;
semanticInfo.localUses = useTable.uses;
- semanticInfo.hasQ = useTable.hasQ;
- semanticInfo.hasD = useTable.hasD;
}
return semanticInfo;
@@ -2405,27 +2564,34 @@ bool CPPEditorWidget::handleDocumentationComment(QKeyEvent *e)
return false;
// We are interested on two particular cases:
- // 1) The cursor is right after a /** or /*! and the user pressed enter. If Doxygen
- // is enabled we need to generate an entire comment block.
+ // 1) The cursor is right after a /**, /*!, /// or ///! and the user pressed enter.
+ // If Doxygen is enabled we need to generate an entire comment block.
// 2) The cursor is already in the middle of a multi-line comment and the user pressed
// enter. If leading asterisk(s) is set we need to write a comment continuation
// with those.
if (m_commentsSettings.m_enableDoxygen
&& cursor.positionInBlock() >= 3) {
+
const int pos = cursor.position();
- if (characterAt(pos - 3) == QLatin1Char('/')
- && characterAt(pos - 2) == QLatin1Char('*')
- && (characterAt(pos - 1) == QLatin1Char('*')
- || characterAt(pos - 1) == QLatin1Char('!'))) {
+
+ if (isStartOfDoxygenComment(cursor)) {
+ CppTools::DoxygenGenerator::DocumentationStyle style
+ = doxygenStyle(cursor, document());
+
+ // Check if we're already in a CppStyle Doxygen comment => continuation
+ // Needs special handling since CppStyle does not have start and end markers
+ if ((style == CppTools::DoxygenGenerator::CppStyleA
+ || style == CppTools::DoxygenGenerator::CppStyleB)
+ && isCppStyleContinuation(cursor)) {
+ return handleDoxygenCppStyleContinuation(cursor, e);
+ }
+
CppTools::DoxygenGenerator doxygen;
+ doxygen.setStyle(style);
doxygen.setAddLeadingAsterisks(m_commentsSettings.m_leadingAsterisks);
doxygen.setGenerateBrief(m_commentsSettings.m_generateBrief);
doxygen.setStartComment(false);
- if (characterAt(pos - 1) == QLatin1Char('!'))
- doxygen.setStyle(CppTools::DoxygenGenerator::QtStyle);
- else
- doxygen.setStyle(CppTools::DoxygenGenerator::JavaStyle);
// Move until we reach any possibly meaningful content.
while (document()->characterAt(cursor.position()).isSpace()
@@ -2445,56 +2611,33 @@ bool CPPEditorWidget::handleDocumentationComment(QKeyEvent *e)
return true;
}
}
- cursor.setPosition(pos);
+
}
- }
+ } // right after first doxygen comment
- if (!m_commentsSettings.m_leadingAsterisks)
- return false;
+ return handleDoxygenContinuation(cursor,
+ e,
+ document(),
+ m_commentsSettings.m_enableDoxygen,
+ m_commentsSettings.m_leadingAsterisks);
+ }
- // We continue the comment if the cursor is after a comment's line asterisk and if
- // there's no asterisk immediately after the cursor (that would already be considered
- // a leading asterisk).
- int offset = 0;
- const int blockPos = cursor.positionInBlock();
- const QString &text = cursor.block().text();
- for (; offset < blockPos; ++offset) {
- if (!text.at(offset).isSpace())
- break;
- }
+ return false;
+}
- if (offset < blockPos
- && (text.at(offset) == QLatin1Char('*')
- || (offset < blockPos - 1
- && text.at(offset) == QLatin1Char('/')
- && text.at(offset + 1) == QLatin1Char('*')))) {
- int followinPos = blockPos;
- for (; followinPos < text.length(); ++followinPos) {
- if (!text.at(followinPos).isSpace())
- break;
- }
- if (followinPos == text.length()
- || text.at(followinPos) != QLatin1Char('*')) {
- QString newLine(QLatin1Char('\n'));
- QTextCursor c(cursor);
- c.movePosition(QTextCursor::StartOfBlock);
- c.movePosition(QTextCursor::NextCharacter, QTextCursor::KeepAnchor, offset);
- newLine.append(c.selectedText());
- if (text.at(offset) == QLatin1Char('/')) {
- newLine.append(QLatin1String(" *"));
- } else {
- int start = offset;
- while (offset < blockPos && text.at(offset) == QLatin1Char('*'))
- ++offset;
- newLine.append(QString(offset - start, QLatin1Char('*')));
- }
- cursor.insertText(newLine);
- e->accept();
- return true;
- }
- }
- }
+bool CPPEditorWidget::isStartOfDoxygenComment(const QTextCursor &cursor) const
+{
+ const int pos = cursor.position();
+ QString comment = QString(characterAt(pos - 3))
+ + characterAt(pos - 2)
+ + characterAt(pos - 1);
+ if ((comment == QLatin1String("/**"))
+ || (comment == QLatin1String("/*!"))
+ || (comment == QLatin1String("///"))
+ || (comment == QLatin1String("//!"))) {
+ return true;
+ }
return false;
}
diff --git a/src/plugins/cppeditor/cppeditor.h b/src/plugins/cppeditor/cppeditor.h
index d471f7a425b..78143b43b03 100644
--- a/src/plugins/cppeditor/cppeditor.h
+++ b/src/plugins/cppeditor/cppeditor.h
@@ -262,7 +262,6 @@ private:
SemanticHighlighter::Source currentSource(bool force = false);
void highlightUses(const QList<TextEditor::SemanticHighlighter::Result> &uses,
- const CppTools::SemanticInfo &semanticInfo,
QList<QTextEdit::ExtraSelection> *selections);
void createToolBar(CPPEditor *editable);
@@ -286,6 +285,7 @@ private:
QModelIndex indexForPosition(int line, int column, const QModelIndex &rootIndex = QModelIndex()) const;
bool handleDocumentationComment(QKeyEvent *e);
+ bool isStartOfDoxygenComment(const QTextCursor &cursor) const;
CPlusPlus::CppModelManagerInterface *m_modelManager;
diff --git a/src/plugins/cppeditor/cppeditor.pro b/src/plugins/cppeditor/cppeditor.pro
index b7fa70a6f7c..ba558aa480c 100644
--- a/src/plugins/cppeditor/cppeditor.pro
+++ b/src/plugins/cppeditor/cppeditor.pro
@@ -49,7 +49,8 @@ OTHER_FILES += CppEditor.mimetypes.xml
equals(TEST, 1) {
SOURCES += \
- cppquickfix_test.cpp
+ cppquickfix_test.cpp \
+ cppdoxygen_test.cpp
DEFINES += SRCDIR=\\\"$$PWD\\\"
}
diff --git a/src/plugins/cppeditor/cppeditor.qbs b/src/plugins/cppeditor/cppeditor.qbs
index 96540ea6509..24838774146 100644
--- a/src/plugins/cppeditor/cppeditor.qbs
+++ b/src/plugins/cppeditor/cppeditor.qbs
@@ -64,7 +64,8 @@ QtcPlugin {
Group {
condition: Defaults.testsEnabled(qbs)
files: [
- "cppquickfix_test.cpp"
+ "cppquickfix_test.cpp",
+ "cppdoxygen_test.cpp"
]
cpp.defines: outer.concat(['SRCDIR="' + FileInfo.path(filePath) + '"'])
diff --git a/src/plugins/cppeditor/cppfunctiondecldeflink.cpp b/src/plugins/cppeditor/cppfunctiondecldeflink.cpp
index 0a17c83053d..7d1764ac521 100644
--- a/src/plugins/cppeditor/cppfunctiondecldeflink.cpp
+++ b/src/plugins/cppeditor/cppfunctiondecldeflink.cpp
@@ -913,6 +913,8 @@ Utils::ChangeSet FunctionDeclDefLink::changes(const Snapshot &snapshot, int targ
it.next();
const QList<SemanticInfo::Use> &uses = localSymbols.uses.value(it.key());
foreach (const SemanticInfo::Use &use, uses) {
+ if (use.isInvalid())
+ continue;
const int useStart = targetFile->position(use.line, use.column);
if (useStart <= endOfArguments)
continue;
diff --git a/src/plugins/cppeditor/cppinsertdecldef.cpp b/src/plugins/cppeditor/cppinsertdecldef.cpp
index cf534e9d21b..270310a44fd 100644
--- a/src/plugins/cppeditor/cppinsertdecldef.cpp
+++ b/src/plugins/cppeditor/cppinsertdecldef.cpp
@@ -322,8 +322,7 @@ namespace {
class GenerateGetterSetterOperation : public CppQuickFixOperation
{
public:
- GenerateGetterSetterOperation(const QSharedPointer<const CppQuickFixAssistInterface> &interface,
- bool testMode = false)
+ GenerateGetterSetterOperation(const QSharedPointer<const CppQuickFixAssistInterface> &interface)
: CppQuickFixOperation(interface)
, m_variableName(0)
, m_declaratorId(0)
@@ -332,7 +331,6 @@ public:
, m_classSpecifier(0)
, m_classDecl(0)
, m_offerQuickFix(true)
- , m_testMode(testMode)
{
setDescription(TextEditor::QuickFixFactory::tr("Create Getter and Setter Member Functions"));
@@ -465,9 +463,7 @@ public:
FullySpecifiedType fullySpecifiedType = symbol->type();
Type *type = fullySpecifiedType.type();
QTC_ASSERT(type, return);
- Overview oo;
- if (!m_testMode)
- oo = CppCodeStyleSettings::currentProjectCodeStyleOverview();
+ Overview oo = CppCodeStyleSettings::currentProjectCodeStyleOverview();
oo.showFunctionSignatures = true;
oo.showReturnTypes = true;
oo.showArgumentNames = true;
@@ -597,14 +593,13 @@ public:
QString m_setterName;
QString m_variableString;
bool m_offerQuickFix;
- bool m_testMode;
};
} // namespace
void GenerateGetterSetter::match(const CppQuickFixInterface &interface, QuickFixOperations &result)
{
- GenerateGetterSetterOperation *op = new GenerateGetterSetterOperation(interface, m_testMode);
+ GenerateGetterSetterOperation *op = new GenerateGetterSetterOperation(interface);
if (op->isValid())
result.append(CppQuickFixOperation::Ptr(op));
else
@@ -1096,6 +1091,9 @@ void ExtractFunction::match(const CppQuickFixInterface &interface, QuickFixOpera
bool usedInsideExtraction = false;
const QList<SemanticInfo::Use> &uses = it.value();
foreach (const SemanticInfo::Use &use, uses) {
+ if (use.isInvalid())
+ continue;
+
const int position = file->position(use.line, use.column);
if (position < analyser.m_extractionStart)
usedBeforeExtraction = true;
diff --git a/src/plugins/cppeditor/cppinsertdecldef.h b/src/plugins/cppeditor/cppinsertdecldef.h
index d73dd67cd77..3a0110eae67 100644
--- a/src/plugins/cppeditor/cppinsertdecldef.h
+++ b/src/plugins/cppeditor/cppinsertdecldef.h
@@ -56,10 +56,7 @@ public:
class GenerateGetterSetter : public CppQuickFixFactory
{
public:
- GenerateGetterSetter(const bool testMode = false) : m_testMode(testMode) {}
void match(const CppQuickFixInterface &interface, TextEditor::QuickFixOperations &result);
-private:
- const bool m_testMode;
};
} // namespace Internal
diff --git a/src/plugins/cppeditor/cppplugin.h b/src/plugins/cppeditor/cppplugin.h
index d78692ca60b..7c7a7a75588 100644
--- a/src/plugins/cppeditor/cppplugin.h
+++ b/src/plugins/cppeditor/cppplugin.h
@@ -89,7 +89,18 @@ private slots:
void openTypeHierarchy();
#ifdef WITH_TESTS
-private slots: // quickfix tests
+private slots:
+ void test_doxygen_comments_qt_style();
+ void test_doxygen_comments_qt_style_continuation();
+ void test_doxygen_comments_java_style();
+ void test_doxygen_comments_java_style_continuation();
+ void test_doxygen_comments_cpp_styleA();
+ void test_doxygen_comments_cpp_styleB();
+ void test_doxygen_comments_cpp_styleA_indented();
+ void test_doxygen_comments_cpp_styleA_continuation();
+ void test_doxygen_comments_cpp_styleA_indented_continuation();
+ void test_doxygen_comments_cpp_styleA_corner_case();
+
void test_quickfix_GenerateGetterSetter_basicGetterWithPrefix();
void test_quickfix_GenerateGetterSetter_basicGetterWithoutPrefix();
void test_quickfix_GenerateGetterSetter_customType();
diff --git a/src/plugins/cppeditor/cppquickfix_test.cpp b/src/plugins/cppeditor/cppquickfix_test.cpp
index 899a567046c..3899b469b95 100644
--- a/src/plugins/cppeditor/cppquickfix_test.cpp
+++ b/src/plugins/cppeditor/cppquickfix_test.cpp
@@ -44,6 +44,8 @@
#include <cppeditor/cppquickfixassistant.h>
#include <cppeditor/cppquickfix.h>
#include <cppeditor/cppquickfixes.h>
+#include <cpptools/cppcodestylepreferences.h>
+#include <cpptools/cpptoolssettings.h>
#include <extensionsystem/pluginmanager.h>
#include <texteditor/basetextdocument.h>
#include <texteditor/codeassist/basicproposalitemlistmodel.h>
@@ -70,32 +72,96 @@ using namespace TextEditor;
using namespace Core;
namespace {
+
+class TestDocument;
+typedef QSharedPointer<TestDocument> TestDocumentPtr;
+
+/**
+ * Represents a test document before and after applying the quick fix.
+ *
+ * A TestDocument's originalSource may contain an '@' character to denote
+ * the cursor position. This marker is removed before the Editor reads
+ * the document.
+ */
+class TestDocument
+{
+public:
+ TestDocument(const QByteArray &theOriginalSource, const QByteArray &theExpectedSource,
+ const QString &fileName)
+ : originalSource(theOriginalSource)
+ , expectedSource(theExpectedSource)
+ , fileName(fileName)
+ , cursorMarkerPosition(theOriginalSource.indexOf('@'))
+ , editor(0)
+ , editorWidget(0)
+ {
+ originalSource.remove(cursorMarkerPosition, 1);
+ expectedSource.remove(theExpectedSource.indexOf('@'), 1);
+ }
+
+ static TestDocumentPtr create(const QByteArray &theOriginalSource,
+ const QByteArray &theExpectedSource,const QString &fileName)
+ {
+ return TestDocumentPtr(new TestDocument(theOriginalSource, theExpectedSource, fileName));
+ }
+
+ bool hasCursorMarkerPosition() const { return cursorMarkerPosition != -1; }
+ bool changesExpected() const { return originalSource != expectedSource; }
+
+ QString filePath() const
+ {
+ if (directoryPath.isEmpty())
+ qDebug() << "Warning: No directoryPath set!";
+ return directoryPath + QLatin1Char('/') + fileName;
+ }
+
+ void writeToDisk() const
+ {
+ Utils::FileSaver srcSaver(filePath());
+ srcSaver.write(originalSource);
+ srcSaver.finalize();
+ }
+
+ QByteArray originalSource;
+ QByteArray expectedSource;
+
+ const QString fileName;
+ QString directoryPath;
+ const int cursorMarkerPosition;
+
+ CPPEditor *editor;
+ CPPEditorWidget *editorWidget;
+};
+
/**
* Encapsulates the whole process of setting up an editor, getting the
* quick-fix, applying it, and checking the result.
*/
struct TestCase
{
- QByteArray originalText;
- int pos;
- CPPEditor *editor;
- CPPEditorWidget *editorWidget;
+ QList<TestDocumentPtr> testFiles;
- TestCase(const QByteArray &input);
+ CppCodeStylePreferences *cppCodeStylePreferences;
+ QString cppCodeStylePreferencesOriginalDelegateId;
+
+ TestCase(const QByteArray &originalSource, const QByteArray &expectedSource);
+ TestCase(const QList<TestDocumentPtr> theTestFiles);
~TestCase();
- QuickFixOperation::Ptr getFix(CppQuickFixFactory *factory);
+ QuickFixOperation::Ptr getFix(CppQuickFixFactory *factory, CPPEditorWidget *editorWidget);
+ TestDocumentPtr testFileWithCursorMarker() const;
- void run(CppQuickFixFactory *factory, const QByteArray &expected, bool changesExpected = true,
- int undoCount = 1);
+ void run(CppQuickFixFactory *factory);
private:
TestCase(const TestCase &);
TestCase &operator=(const TestCase &);
+
+ void init();
};
/// Apply the factory on the source and get back the first result or a null pointer.
-QuickFixOperation::Ptr TestCase::getFix(CppQuickFixFactory *factory)
+QuickFixOperation::Ptr TestCase::getFix(CppQuickFixFactory *factory, CPPEditorWidget *editorWidget)
{
CppQuickFixInterface qfi(new CppQuickFixAssistInterface(editorWidget, ExplicitlyInvoked));
TextEditor::QuickFixOperations results;
@@ -103,46 +169,102 @@ QuickFixOperation::Ptr TestCase::getFix(CppQuickFixFactory *factory)
return results.isEmpty() ? QuickFixOperation::Ptr() : results.first();
}
-/// The '@' in the input is the position from where the quick-fix discovery is triggered.
-TestCase::TestCase(const QByteArray &input)
- : originalText(input)
+/// The '@' in the originalSource is the position from where the quick-fix discovery is triggered.
+TestCase::TestCase(const QByteArray &originalSource, const QByteArray &expectedSource)
+ : cppCodeStylePreferences(0)
+{
+ testFiles << TestDocument::create(originalSource, expectedSource, QLatin1String("file.cpp"));
+ init();
+}
+
+/// Exactly one TestFile must contain the cursor position marker '@' in the originalSource.
+TestCase::TestCase(const QList<TestDocumentPtr> theTestFiles)
+ : testFiles(theTestFiles), cppCodeStylePreferences(0)
{
- pos = originalText.indexOf('@');
- QVERIFY(pos != -1);
- originalText.remove(pos, 1);
- QString fileName(QDir::tempPath() + QLatin1String("/file.cpp"));
- Utils::FileSaver srcSaver(fileName);
- srcSaver.write(originalText);
- srcSaver.finalize();
- CPlusPlus::CppModelManagerInterface::instance()->updateSourceFiles(QStringList()<<fileName);
-
- // wait for the parser in the future to give us the document:
- while (true) {
- Snapshot s = CPlusPlus::CppModelManagerInterface::instance()->snapshot();
- if (s.contains(fileName))
+ init();
+}
+
+void TestCase::init()
+{
+ // Check if there is exactly one cursor marker
+ unsigned cursorMarkersCount = 0;
+ foreach (const TestDocumentPtr testFile, testFiles) {
+ if (testFile->hasCursorMarkerPosition())
+ ++cursorMarkersCount;
+ }
+ QVERIFY2(cursorMarkersCount == 1, "Exactly one cursor marker is allowed.");
+
+ // Write files to disk
+ const QString directoryPath = QDir::tempPath();
+ foreach (TestDocumentPtr testFile, testFiles) {
+ testFile->directoryPath = directoryPath;
+ testFile->writeToDisk();
+ }
+
+ // Update Code Model
+ QStringList filePaths;
+ foreach (const TestDocumentPtr &testFile, testFiles)
+ filePaths << testFile->filePath();
+ CPlusPlus::CppModelManagerInterface::instance()->updateSourceFiles(filePaths);
+
+ // Wait for the parser in the future to give us the document
+ QStringList filePathsNotYetInSnapshot(filePaths);
+ forever {
+ Snapshot snapshot = CPlusPlus::CppModelManagerInterface::instance()->snapshot();
+ foreach (const QString &filePath, filePathsNotYetInSnapshot) {
+ if (snapshot.contains(filePath))
+ filePathsNotYetInSnapshot.removeOne(filePath);
+ }
+ if (filePathsNotYetInSnapshot.isEmpty())
break;
QCoreApplication::processEvents();
}
- editor = dynamic_cast<CPPEditor *>(EditorManager::openEditor(fileName));
- QVERIFY(editor);
- editor->setCursorPosition(pos);
- editorWidget = dynamic_cast<CPPEditorWidget *>(editor->editorWidget());
- QVERIFY(editorWidget);
- editorWidget->semanticRehighlight(true);
+ // Open Files
+ foreach (TestDocumentPtr testFile, testFiles) {
+ testFile->editor
+ = dynamic_cast<CPPEditor *>(EditorManager::openEditor(testFile->filePath()));
+ QVERIFY(testFile->editor);
+
+ // Set cursor position
+ const int cursorPosition = testFile->hasCursorMarkerPosition()
+ ? testFile->cursorMarkerPosition : 0;
+ testFile->editor->setCursorPosition(cursorPosition);
+
+ testFile->editorWidget = dynamic_cast<CPPEditorWidget *>(testFile->editor->editorWidget());
+ QVERIFY(testFile->editorWidget);
+
+ // Rehighlight
+ testFile->editorWidget->semanticRehighlight(true);
+ // Wait for the semantic info from the future
+ while (testFile->editorWidget->semanticInfo().doc.isNull())
+ QCoreApplication::processEvents();
+ }
- // wait for the semantic info from the future:
- while (editorWidget->semanticInfo().doc.isNull())
- QCoreApplication::processEvents();
+ // Enforce the default cpp code style, so we are independent of config file settings.
+ // This is needed by e.g. the GenerateGetterSetter quick fix.
+ cppCodeStylePreferences = CppToolsSettings::instance()->cppCodeStyle();
+ QVERIFY(cppCodeStylePreferences);
+ cppCodeStylePreferencesOriginalDelegateId = cppCodeStylePreferences->currentDelegateId();
+ cppCodeStylePreferences->setCurrentDelegate(QLatin1String("qt"));
}
TestCase::~TestCase()
{
- EditorManager::instance()->closeEditors(QList<Core::IEditor *>() << editor,
- false);
+ // Restore default cpp code style
+ if (cppCodeStylePreferences)
+ cppCodeStylePreferences->setCurrentDelegate(cppCodeStylePreferencesOriginalDelegateId);
+
+ // Close editors
+ QList<Core::IEditor *> editorsToClose;
+ foreach (const TestDocumentPtr testFile, testFiles) {
+ if (testFile->editor)
+ editorsToClose << testFile->editor;
+ }
+ EditorManager::instance()->closeEditors(editorsToClose, false);
QCoreApplication::processEvents(); // process any pending events
- // Remove the test file from the code-model:
+ // Remove the test files from the code-model
CppModelManagerInterface *mmi = CPlusPlus::CppModelManagerInterface::instance();
mmi->GC();
QCOMPARE(mmi->snapshot().size(), 0);
@@ -168,27 +290,40 @@ QByteArray &removeTrailingWhitespace(QByteArray &input)
return input;
}
-void TestCase::run(CppQuickFixFactory *factory, const QByteArray &expected,
- bool changesExpected, int undoCount)
+void TestCase::run(CppQuickFixFactory *factory)
{
- QuickFixOperation::Ptr fix = getFix(factory);
- if (!fix) {
- QVERIFY2(!changesExpected, "No QuickFixOperation");
- return;
+ // Run the fix in the file having the cursor marker
+ TestDocumentPtr testFile;
+ foreach (const TestDocumentPtr file, testFiles) {
+ if (file->hasCursorMarkerPosition())
+ testFile = file;
+ }
+ QVERIFY2(testFile, "No test file with cursor marker found");
+
+ if (QuickFixOperation::Ptr fix = getFix(factory, testFile->editorWidget))
+ fix->perform();
+ else
+ qDebug() << "Quickfix was not triggered";
+
+ // Compare all files
+ const int testFilesCount = testFiles.size();
+ foreach (const TestDocumentPtr testFile, testFiles) {
+ if (testFilesCount >= 2)
+ qDebug() << "Checking" << testFile->filePath();
+
+ // Check
+ QByteArray result = testFile->editorWidget->document()->toPlainText().toUtf8();
+ removeTrailingWhitespace(result);
+ QCOMPARE(QLatin1String(result), QLatin1String(testFile->expectedSource));
+
+ // Undo the change
+ for (int i = 0; i < 100; ++i)
+ testFile->editorWidget->undo();
+ result = testFile->editorWidget->document()->toPlainText().toUtf8();
+ QCOMPARE(result, testFile->originalSource);
}
-
- fix->perform();
- QByteArray result = editorWidget->document()->toPlainText().toUtf8();
- removeTrailingWhitespace(result);
-
- QCOMPARE(QLatin1String(result), QLatin1String(expected));
-
- for (int i = 0; i < undoCount; ++i)
- editorWidget->undo();
-
- result = editorWidget->document()->toPlainText().toUtf8();
- QCOMPARE(result, originalText);
}
+
} // anonymous namespace
/// Checks:
@@ -197,36 +332,39 @@ void TestCase::run(CppQuickFixFactory *factory, const QByteArray &expected,
/// 2. Setter: Use pass by value on integer/float and pointer types.
void CppPlugin::test_quickfix_GenerateGetterSetter_basicGetterWithPrefix()
{
- TestCase data("\n"
- "class Something\n"
- "{\n"
- " int @it;\n"
- "};\n"
- );
- QByteArray expected = "\n"
- "class Something\n"
- "{\n"
- " int it;\n"
- "\n"
- "public:\n"
- " int getIt() const;\n"
- " void setIt(int value);\n"
- "};\n"
- "\n"
- "int Something::getIt() const\n"
- "{\n"
- " return it;\n"
- "}\n"
- "\n"
- "void Something::setIt(int value)\n"
- "{\n"
- " it = value;\n"
- "}\n"
- "\n"
- ;
-
- GenerateGetterSetter factory(/*testMode=*/ true);
- data.run(&factory, expected);
+ const QByteArray original =
+ "\n"
+ "class Something\n"
+ "{\n"
+ " int @it;\n"
+ "};\n"
+ ;
+ const QByteArray expected =
+ "\n"
+ "class Something\n"
+ "{\n"
+ " int it;\n"
+ "\n"
+ "public:\n"
+ " int getIt() const;\n"
+ " void setIt(int value);\n"
+ "};\n"
+ "\n"
+ "int Something::getIt() const\n"
+ "{\n"
+ " return it;\n"
+ "}\n"
+ "\n"
+ "void Something::setIt(int value)\n"
+ "{\n"
+ " it = value;\n"
+ "}\n"
+ "\n"
+ ;
+
+ GenerateGetterSetter factory;
+ TestCase data(original, expected);
+ data.run(&factory);
}
/// Checks:
@@ -234,72 +372,78 @@ void CppPlugin::test_quickfix_GenerateGetterSetter_basicGetterWithPrefix()
/// 2. Setter: Parameter name is base name.
void CppPlugin::test_quickfix_GenerateGetterSetter_basicGetterWithoutPrefix()
{
- TestCase data("\n"
- "class Something\n"
- "{\n"
- " int @m_it;\n"
- "};\n"
- );
- QByteArray expected = "\n"
- "class Something\n"
- "{\n"
- " int m_it;\n"
- "\n"
- "public:\n"
- " int it() const;\n"
- " void setIt(int it);\n"
- "};\n"
- "\n"
- "int Something::it() const\n"
- "{\n"
- " return m_it;\n"
- "}\n"
- "\n"
- "void Something::setIt(int it)\n"
- "{\n"
- " m_it = it;\n"
- "}\n"
- "\n"
- ;
-
- GenerateGetterSetter factory(/*testMode=*/ true);
- data.run(&factory, expected);
+ const QByteArray original =
+ "\n"
+ "class Something\n"
+ "{\n"
+ " int @m_it;\n"
+ "};\n"
+ ;
+ const QByteArray expected =
+ "\n"
+ "class Something\n"
+ "{\n"
+ " int m_it;\n"
+ "\n"
+ "public:\n"
+ " int it() const;\n"
+ " void setIt(int it);\n"
+ "};\n"
+ "\n"
+ "int Something::it() const\n"
+ "{\n"
+ " return m_it;\n"
+ "}\n"
+ "\n"
+ "void Something::setIt(int it)\n"
+ "{\n"
+ " m_it = it;\n"
+ "}\n"
+ "\n"
+ ;
+
+ GenerateGetterSetter factory;
+ TestCase data(original, expected);
+ data.run(&factory);
}
/// Check: Setter: Use pass by reference for parameters which
/// are not integer, float or pointers.
void CppPlugin::test_quickfix_GenerateGetterSetter_customType()
{
- TestCase data("\n"
- "class Something\n"
- "{\n"
- " MyType @it;\n"
- "};\n"
- );
- QByteArray expected = "\n"
- "class Something\n"
- "{\n"
- " MyType it;\n"
- "\n"
- "public:\n"
- " MyType getIt() const;\n"
- " void setIt(const MyType &value);\n"
- "};\n"
- "\n"
- "MyType Something::getIt() const\n"
- "{\n"
- " return it;\n"
- "}\n"
- "\n"
- "void Something::setIt(const MyType &value)\n"
- "{\n"
- " it = value;\n"
- "}\n"
- "\n"
- ;
-
- GenerateGetterSetter factory(/*testMode=*/ true);
- data.run(&factory, expected);
+ const QByteArray original =
+ "\n"
+ "class Something\n"
+ "{\n"
+ " MyType @it;\n"
+ "};\n"
+ ;
+ const QByteArray expected =
+ "\n"
+ "class Something\n"
+ "{\n"
+ " MyType it;\n"
+ "\n"
+ "public:\n"
+ " MyType getIt() const;\n"
+ " void setIt(const MyType &value);\n"
+ "};\n"
+ "\n"
+ "MyType Something::getIt() const\n"
+ "{\n"
+ " return it;\n"
+ "}\n"
+ "\n"
+ "void Something::setIt(const MyType &value)\n"
+ "{\n"
+ " it = value;\n"
+ "}\n"
+ "\n"
+ ;
+
+ GenerateGetterSetter factory;
+ TestCase data(original, expected);
+ data.run(&factory);
}
/// Checks:
@@ -307,100 +451,109 @@ void CppPlugin::test_quickfix_GenerateGetterSetter_customType()
/// 2. Getter: Return a non-const type since it pass by value anyway.
void CppPlugin::test_quickfix_GenerateGetterSetter_constMember()
{
- TestCase data("\n"
- "class Something\n"
- "{\n"
- " const int @it;\n"
- "};\n"
- );
- QByteArray expected = "\n"
- "class Something\n"
- "{\n"
- " const int it;\n"
- "\n"
- "public:\n"
- " int getIt() const;\n"
- "};\n"
- "\n"
- "int Something::getIt() const\n"
- "{\n"
- " return it;\n"
- "}\n"
- "\n"
- ;
-
- GenerateGetterSetter factory(/*testMode=*/ true);
- data.run(&factory, expected);
+ const QByteArray original =
+ "\n"
+ "class Something\n"
+ "{\n"
+ " const int @it;\n"
+ "};\n"
+ ;
+ const QByteArray expected =
+ "\n"
+ "class Something\n"
+ "{\n"
+ " const int it;\n"
+ "\n"
+ "public:\n"
+ " int getIt() const;\n"
+ "};\n"
+ "\n"
+ "int Something::getIt() const\n"
+ "{\n"
+ " return it;\n"
+ "}\n"
+ "\n"
+ ;
+
+ GenerateGetterSetter factory;
+ TestCase data(original, expected);
+ data.run(&factory);
}
/// Checks: No special treatment for pointer to non const.
void CppPlugin::test_quickfix_GenerateGetterSetter_pointerToNonConst()
{
- TestCase data("\n"
- "class Something\n"
- "{\n"
- " int *it@;\n"
- "};\n"
- );
- QByteArray expected = "\n"
- "class Something\n"
- "{\n"
- " int *it;\n"
- "\n"
- "public:\n"
- " int *getIt() const;\n"
- " void setIt(int *value);\n"
- "};\n"
- "\n"
- "int *Something::getIt() const\n"
- "{\n"
- " return it;\n"
- "}\n"
- "\n"
- "void Something::setIt(int *value)\n"
- "{\n"
- " it = value;\n"
- "}\n"
- "\n"
- ;
-
- GenerateGetterSetter factory(/*testMode=*/ true);
- data.run(&factory, expected);
+ const QByteArray original =
+ "\n"
+ "class Something\n"
+ "{\n"
+ " int *it@;\n"
+ "};\n"
+ ;
+ const QByteArray expected =
+ "\n"
+ "class Something\n"
+ "{\n"
+ " int *it;\n"
+ "\n"
+ "public:\n"
+ " int *getIt() const;\n"
+ " void setIt(int *value);\n"
+ "};\n"
+ "\n"
+ "int *Something::getIt() const\n"
+ "{\n"
+ " return it;\n"
+ "}\n"
+ "\n"
+ "void Something::setIt(int *value)\n"
+ "{\n"
+ " it = value;\n"
+ "}\n"
+ "\n"
+ ;
+
+ GenerateGetterSetter factory;
+ TestCase data(original, expected);
+ data.run(&factory);
}
/// Checks: No special treatment for pointer to const.
void CppPlugin::test_quickfix_GenerateGetterSetter_pointerToConst()
{
- TestCase data("\n"
- "class Something\n"
- "{\n"
- " const int *it@;\n"
- "};\n"
- );
- QByteArray expected = "\n"
- "class Something\n"
- "{\n"
- " const int *it;\n"
- "\n"
- "public:\n"
- " const int *getIt() const;\n"
- " void setIt(const int *value);\n"
- "};\n"
- "\n"
- "const int *Something::getIt() const\n"
- "{\n"
- " return it;\n"
- "}\n"
- "\n"
- "void Something::setIt(const int *value)\n"
- "{\n"
- " it = value;\n"
- "}\n"
- "\n"
- ;
-
- GenerateGetterSetter factory(/*testMode=*/ true);
- data.run(&factory, expected);
+ const QByteArray original =
+ "\n"
+ "class Something\n"
+ "{\n"
+ " const int *it@;\n"
+ "};\n"
+ ;
+ const QByteArray expected =
+ "\n"
+ "class Something\n"
+ "{\n"
+ " const int *it;\n"
+ "\n"
+ "public:\n"
+ " const int *getIt() const;\n"
+ " void setIt(const int *value);\n"
+ "};\n"
+ "\n"
+ "const int *Something::getIt() const\n"
+ "{\n"
+ " return it;\n"
+ "}\n"
+ "\n"
+ "void Something::setIt(const int *value)\n"
+ "{\n"
+ " it = value;\n"
+ "}\n"
+ "\n"
+ ;
+
+ GenerateGetterSetter factory;
+ TestCase data(original, expected);
+ data.run(&factory);
}
/// Checks:
@@ -408,150 +561,160 @@ void CppPlugin::test_quickfix_GenerateGetterSetter_pointerToConst()
/// 2. Getter: Getter is a static, non const function.
void CppPlugin::test_quickfix_GenerateGetterSetter_staticMember()
{
- TestCase data("\n"
- "class Something\n"
- "{\n"
- " static int @m_member;\n"
- "};\n"
- );
- QByteArray expected = "\n"
- "class Something\n"
- "{\n"
- " static int m_member;\n"
- "\n"
- "public:\n"
- " static int member();\n"
- " static void setMember(int member);\n"
- "};\n"
- "\n"
- "int Something::member()\n"
- "{\n"
- " return m_member;\n"
- "}\n"
- "\n"
- "void Something::setMember(int member)\n"
- "{\n"
- " m_member = member;\n"
- "}\n"
- "\n"
- ;
-
- GenerateGetterSetter factory(/*testMode=*/ true);
- data.run(&factory, expected);
+ const QByteArray original =
+ "\n"
+ "class Something\n"
+ "{\n"
+ " static int @m_member;\n"
+ "};\n"
+ ;
+ const QByteArray expected =
+ "\n"
+ "class Something\n"
+ "{\n"
+ " static int m_member;\n"
+ "\n"
+ "public:\n"
+ " static int member();\n"
+ " static void setMember(int member);\n"
+ "};\n"
+ "\n"
+ "int Something::member()\n"
+ "{\n"
+ " return m_member;\n"
+ "}\n"
+ "\n"
+ "void Something::setMember(int member)\n"
+ "{\n"
+ " m_member = member;\n"
+ "}\n"
+ "\n"
+ ;
+
+ GenerateGetterSetter factory;
+ TestCase data(original, expected);
+ data.run(&factory);
}
/// Check: Check if it works on the second declarator
void CppPlugin::test_quickfix_GenerateGetterSetter_secondDeclarator()
{
- TestCase data("\n"
- "class Something\n"
- "{\n"
- " int *foo, @it;\n"
- "};\n"
- );
- QByteArray expected = "\n"
- "class Something\n"
- "{\n"
- " int *foo, it;\n"
- "\n"
- "public:\n"
- " int getIt() const;\n"
- " void setIt(int value);\n"
- "};\n"
- "\n"
- "int Something::getIt() const\n"
- "{\n"
- " return it;\n"
- "}\n"
- "\n"
- "void Something::setIt(int value)\n"
- "{\n"
- " it = value;\n"
- "}\n"
- "\n"
- ;
-
- GenerateGetterSetter factory(/*testMode=*/ true);
- data.run(&factory, expected);
+ const QByteArray original =
+ "\n"
+ "class Something\n"
+ "{\n"
+ " int *foo, @it;\n"
+ "};\n"
+ ;
+ const QByteArray expected =
+ "\n"
+ "class Something\n"
+ "{\n"
+ " int *foo, it;\n"
+ "\n"
+ "public:\n"
+ " int getIt() const;\n"
+ " void setIt(int value);\n"
+ "};\n"
+ "\n"
+ "int Something::getIt() const\n"
+ "{\n"
+ " return it;\n"
+ "}\n"
+ "\n"
+ "void Something::setIt(int value)\n"
+ "{\n"
+ " it = value;\n"
+ "}\n"
+ "\n"
+ ;
+
+ GenerateGetterSetter factory;
+ TestCase data(original, expected);
+ data.run(&factory);
}
/// Check: Quick fix is offered for "int *@it;" ('@' denotes the text cursor position)
void CppPlugin::test_quickfix_GenerateGetterSetter_triggeringRightAfterPointerSign()
{
- TestCase data("\n"
- "class Something\n"
- "{\n"
- " int *@it;\n"
- "};\n"
- );
- QByteArray expected = "\n"
- "class Something\n"
- "{\n"
- " int *it;\n"
- "\n"
- "public:\n"
- " int *getIt() const;\n"
- " void setIt(int *value);\n"
- "};\n"
- "\n"
- "int *Something::getIt() const\n"
- "{\n"
- " return it;\n"
- "}\n"
- "\n"
- "void Something::setIt(int *value)\n"
- "{\n"
- " it = value;\n"
- "}\n"
- "\n"
- ;
-
- GenerateGetterSetter factory(/*testMode=*/ true);
- data.run(&factory, expected);
+ const QByteArray original =
+ "\n"
+ "class Something\n"
+ "{\n"
+ " int *@it;\n"
+ "};\n"
+ ;
+ const QByteArray expected =
+ "\n"
+ "class Something\n"
+ "{\n"
+ " int *it;\n"
+ "\n"
+ "public:\n"
+ " int *getIt() const;\n"
+ " void setIt(int *value);\n"
+ "};\n"
+ "\n"
+ "int *Something::getIt() const\n"
+ "{\n"
+ " return it;\n"
+ "}\n"
+ "\n"
+ "void Something::setIt(int *value)\n"
+ "{\n"
+ " it = value;\n"
+ "}\n"
+ "\n"
+ ;
+
+ GenerateGetterSetter factory;
+ TestCase data(original, expected);
+ data.run(&factory);
}
/// Check: Quick fix is not triggered on a member function.
void CppPlugin::test_quickfix_GenerateGetterSetter_notTriggeringOnMemberFunction()
{
- TestCase data("class Something { void @f(); };");
- QByteArray expected = data.originalText;
+ const QByteArray original = "class Something { void @f(); };";
- GenerateGetterSetter factory(/*testMode=*/ true);
- data.run(&factory, expected, /*changesExpected=*/ false);
+ GenerateGetterSetter factory;
+ TestCase data(original, original + "\n");
+ data.run(&factory);
}
/// Check: Quick fix is not triggered on an member array;
void CppPlugin::test_quickfix_GenerateGetterSetter_notTriggeringOnMemberArray()
{
- TestCase data("class Something { void @a[10]; };");
- QByteArray expected = data.originalText;
+ const QByteArray original = "class Something { void @a[10]; };";
- GenerateGetterSetter factory(/*testMode=*/ true);
- data.run(&factory, expected, /*changesExpected=*/ false);
+ GenerateGetterSetter factory;
+ TestCase data(original, original + "\n");
+ data.run(&factory);
}
/// Check: Do not offer the quick fix if there is already a member with the
/// getter or setter name we would generate.
void CppPlugin::test_quickfix_GenerateGetterSetter_notTriggeringWhenGetterOrSetterExist()
{
- TestCase data("\n"
- "class Something {\n"
- " int @it;\n"
- " void setIt();\n"
- "};\n");
- QByteArray expected = data.originalText;
-
- GenerateGetterSetter factory(/*testMode=*/ true);
- data.run(&factory, expected, /*changesExpected=*/ false);
+ const QByteArray original =
+ "class Something {\n"
+ " int @it;\n"
+ " void setIt();\n"
+ "};\n";
+
+ GenerateGetterSetter factory;
+ TestCase data(original, original + "\n");
+ data.run(&factory);
}
/// Check: Just a basic test since the main functionality is tested in
/// cpppointerdeclarationformatter_test.cpp
void CppPlugin::test_quickfix_ReformatPointerDeclaration()
{
- TestCase data("char@*s;");
- QByteArray expected = "char *s;\n";
+ const QByteArray original = "char@*s;";
+ const QByteArray expected = "char *s;\n";
ReformatPointerDeclaration factory;
- data.run(&factory, expected);
+ TestCase data(original, expected);
+ data.run(&factory);
}
diff --git a/src/plugins/cpptools/builtinindexingsupport.cpp b/src/plugins/cpptools/builtinindexingsupport.cpp
index 1c98d6cb039..9cbaff5eeb6 100644
--- a/src/plugins/cpptools/builtinindexingsupport.cpp
+++ b/src/plugins/cpptools/builtinindexingsupport.cpp
@@ -36,7 +36,7 @@ static void parse(QFutureInterface<void> &future,
foreach (const QString &file, files) {
QFileInfo info(file);
- preproc->m_snapshot.remove(file);
+ preproc->removeFromCache(file);
if (suffixes.contains(info.suffix()))
sources.append(file);
@@ -178,7 +178,6 @@ QFuture<void> BuiltinIndexingSupport::refreshSourceFiles(const QStringList &sour
CppPreprocessor *preproc = new CppPreprocessor(mgr, m_dumpFileNameWhileParsing);
preproc->setRevision(++m_revision);
- preproc->setProjectFiles(mgr->projectFiles());
preproc->setIncludePaths(mgr->includePaths());
preproc->setFrameworkPaths(mgr->frameworkPaths());
preproc->setWorkingCopy(workingCopy);
diff --git a/src/plugins/cpptools/completionsettingspage.ui b/src/plugins/cpptools/completionsettingspage.ui
index 89e37c31d62..b500f9095e6 100644
--- a/src/plugins/cpptools/completionsettingspage.ui
+++ b/src/plugins/cpptools/completionsettingspage.ui
@@ -245,7 +245,7 @@
<item>
<widget class="QCheckBox" name="leadingAsterisksCheckBox">
<property name="toolTip">
- <string>Add leading asterisks when continuing comments on new lines</string>
+ <string>Add leading asterisks when continuing Qt (/*!) and Java (/**) style comments on new lines</string>
</property>
<property name="text">
<string>Add leading asterisks</string>
diff --git a/src/plugins/cpptools/cppchecksymbols.cpp b/src/plugins/cpptools/cppchecksymbols.cpp
index c8245a0881a..d99e49934de 100644
--- a/src/plugins/cpptools/cppchecksymbols.cpp
+++ b/src/plugins/cpptools/cppchecksymbols.cpp
@@ -323,6 +323,13 @@ CheckSymbols::CheckSymbols(Document::Ptr doc, const LookupContext &context, cons
_potentialFunctions = collectTypes.functions();
_potentialStatics = collectTypes.statics();
+ unsigned line = 0;
+ getTokenEndPosition(translationUnit()->ast()->lastToken(), &line, 0);
+ _chunkSize = qMin(50U, line / 200);
+ _usages.reserve(_chunkSize);
+
+ _astStack.reserve(200);
+
typeOfExpression.init(_doc, _context.snapshot(), _context.bindings());
// make possible to instantiate templates
typeOfExpression.setExpandTemplates(true);
@@ -1055,7 +1062,8 @@ bool CheckSymbols::visit(FunctionDefinitionAST *ast)
}
if (!enclosingFunctionDefinition(true))
- flush();
+ if (_usages.size() >= _chunkSize)
+ flush();
return false;
}
@@ -1100,15 +1108,13 @@ void CheckSymbols::addUse(unsigned tokenIndex, UseKind kind)
addUse(use);
}
-static const int chunkSize = 50;
-
void CheckSymbols::addUse(const Use &use)
{
- if (!use.line)
+ if (use.isInvalid())
return;
if (! enclosingFunctionDefinition()) {
- if (_usages.size() >= chunkSize) {
+ if (_usages.size() >= _chunkSize) {
if (use.line > _lineOfLastUsage)
flush();
}
@@ -1386,6 +1392,7 @@ void CheckSymbols::flush()
qSort(_usages.begin(), _usages.end(), sortByLinePredicate);
reportResults(_usages);
+ int cap = _usages.capacity();
_usages.clear();
- _usages.reserve(chunkSize);
+ _usages.reserve(cap);
}
diff --git a/src/plugins/cpptools/cppchecksymbols.h b/src/plugins/cpptools/cppchecksymbols.h
index ce8e9fecb0f..2b69e000815 100644
--- a/src/plugins/cpptools/cppchecksymbols.h
+++ b/src/plugins/cpptools/cppchecksymbols.h
@@ -79,8 +79,8 @@ public:
for (int i = from; i < to; ++i) {
const Use use = future.resultAt(i);
- if (! use.line)
- continue; // skip it, it's an invalid use.
+ if (use.isInvalid())
+ continue;
const int blockNumber = use.line - 1;
chunks[blockNumber].append(use);
@@ -175,6 +175,7 @@ private:
QSet<QByteArray> _potentialStatics;
QList<AST *> _astStack;
QVector<Use> _usages;
+ int _chunkSize;
unsigned _lineOfLastUsage;
QList<Use> _macroUses;
};
diff --git a/src/plugins/cpptools/cppcompletion_test.cpp b/src/plugins/cpptools/cppcompletion_test.cpp
index 19267fa6e8e..6e35e263dab 100644
--- a/src/plugins/cpptools/cppcompletion_test.cpp
+++ b/src/plugins/cpptools/cppcompletion_test.cpp
@@ -1570,3 +1570,184 @@ void CppToolsPlugin::test_completion_typedef_is_inside_function_before_declarati
QVERIFY(completions.contains(QLatin1String("Foo")));
QVERIFY(completions.contains(QLatin1String("bar")));
}
+
+void CppToolsPlugin::test_completion_resolve_complex_typedef_with_template()
+{
+ TestData data;
+ data.srcText = "\n"
+ "template <typename T>\n"
+ "struct Template2\n"
+ "{\n"
+ " typedef typename T::template Template1<T>::TT TemplateTypedef;\n"
+ " TemplateTypedef templateTypedef;\n"
+ "};\n"
+ "struct Foo\n"
+ "{\n"
+ " int bar;\n"
+ " template <typename T>\n"
+ " struct Template1\n"
+ " {\n"
+ " typedef T TT;\n"
+ " };\n"
+ "};\n"
+ "void fun()\n"
+ "{\n"
+ " Template2<Foo> template2;\n"
+ " @\n"
+ " // padding so we get the scope right\n"
+ "}\n"
+ ;
+ setup(&data);
+
+ Utils::ChangeSet change;
+ QString txt = QLatin1String("template2.templateTypedef.");
+ change.insert(data.pos, txt);
+ QTextCursor cursor(data.doc);
+ change.apply(&cursor);
+ data.pos += txt.length();
+
+ QStringList completions = getCompletions(data);
+
+ QCOMPARE(completions.size(), 3);
+ QVERIFY(completions.contains(QLatin1String("Foo")));
+ QVERIFY(completions.contains(QLatin1String("bar")));
+ QVERIFY(completions.contains(QLatin1String("Template1")));
+}
+
+void CppToolsPlugin::test_completion_template_specialization_with_pointer()
+{
+ TestData data;
+ data.srcText = "\n"
+ "template <typename T>\n"
+ "struct Template\n"
+ "{\n"
+ " T variable;\n"
+ "};\n"
+ "template <typename T>\n"
+ "struct Template<T *>\n"
+ "{\n"
+ " T *pointer;\n"
+ "};\n"
+ "Template<int*> templ;\n"
+ "@\n"
+ ;
+ setup(&data);
+
+ Utils::ChangeSet change;
+ QString txt = QLatin1String("templ.");
+ change.insert(data.pos, txt);
+ QTextCursor cursor(data.doc);
+ change.apply(&cursor);
+ data.pos += txt.length();
+
+ QStringList completions = getCompletions(data);
+
+ QCOMPARE(completions.size(), 2);
+ QVERIFY(completions.contains(QLatin1String("Template")));
+ QVERIFY(completions.contains(QLatin1String("pointer")));
+}
+
+void CppToolsPlugin::test_completion_typedef_using_templates1()
+{
+ TestData data;
+ data.srcText = "\n"
+ "namespace NS1\n"
+ "{\n"
+ "template<typename T>\n"
+ "struct NS1Struct\n"
+ "{\n"
+ " typedef T *pointer;\n"
+ " pointer bar;\n"
+ "};\n"
+ "}\n"
+ "namespace NS2\n"
+ "{\n"
+ "using NS1::NS1Struct;\n"
+ "\n"
+ "template <typename T>\n"
+ "struct NS2Struct\n"
+ "{\n"
+ " typedef NS1Struct<T> NS1StructTypedef;\n"
+ " typedef typename NS1StructTypedef::pointer pointer;\n"
+ " pointer p;\n"
+ "};\n"
+ "}\n"
+ "struct Foo\n"
+ "{\n"
+ " int bar;\n"
+ "};\n"
+ "void fun()\n"
+ "{\n"
+ " NS2::NS2Struct<Foo> s;\n"
+ " @\n"
+ " // padding so we get the scope right\n"
+ "}\n"
+ ;
+ setup(&data);
+
+ Utils::ChangeSet change;
+ QString txt = QLatin1String("s.p->");
+ change.insert(data.pos, txt);
+ QTextCursor cursor(data.doc);
+ change.apply(&cursor);
+ data.pos += txt.length();
+
+ QStringList completions = getCompletions(data);
+
+ QCOMPARE(completions.size(), 2);
+ QVERIFY(completions.contains(QLatin1String("Foo")));
+ QVERIFY(completions.contains(QLatin1String("bar")));
+}
+
+
+void CppToolsPlugin::test_completion_typedef_using_templates2()
+{
+ TestData data;
+ data.srcText = "\n"
+ "namespace NS1\n"
+ "{\n"
+ "template<typename T>\n"
+ "struct NS1Struct\n"
+ "{\n"
+ " typedef T *pointer;\n"
+ " pointer bar;\n"
+ "};\n"
+ "}\n"
+ "namespace NS2\n"
+ "{\n"
+ "using NS1::NS1Struct;\n"
+ "\n"
+ "template <typename T>\n"
+ "struct NS2Struct\n"
+ "{\n"
+ " typedef NS1Struct<T> NS1StructTypedef;\n"
+ " typedef typename NS1StructTypedef::pointer pointer;\n"
+ " pointer p;\n"
+ "};\n"
+ "}\n"
+ "struct Foo\n"
+ "{\n"
+ " int bar;\n"
+ "};\n"
+ "void fun()\n"
+ "{\n"
+ " NS2::NS2Struct<Foo>::pointer p;\n"
+ " @\n"
+ " // padding so we get the scope right\n"
+ "}\n"
+ ;
+ setup(&data);
+
+ Utils::ChangeSet change;
+ QString txt = QLatin1String("p->");
+ change.insert(data.pos, txt);
+ QTextCursor cursor(data.doc);
+ change.apply(&cursor);
+ data.pos += txt.length();
+
+ QStringList completions = getCompletions(data);
+
+ QCOMPARE(completions.size(), 2);
+ QVERIFY(completions.contains(QLatin1String("Foo")));
+ QVERIFY(completions.contains(QLatin1String("bar")));
+}
diff --git a/src/plugins/cpptools/cppcompletionassist.cpp b/src/plugins/cpptools/cppcompletionassist.cpp
index 10708feedd2..72be9a4bf04 100644
--- a/src/plugins/cpptools/cppcompletionassist.cpp
+++ b/src/plugins/cpptools/cppcompletionassist.cpp
@@ -111,8 +111,8 @@ public:
private:
bool m_isOverloaded;
- unsigned m_completionOperator;
mutable QChar m_typedChar;
+ unsigned m_completionOperator;
QSharedPointer<TypeOfExpression> m_typeOfExpression;
};
diff --git a/src/plugins/cpptools/cpplocalsymbols.cpp b/src/plugins/cpptools/cpplocalsymbols.cpp
index 18b1ce59746..8b682b382ea 100644
--- a/src/plugins/cpptools/cpplocalsymbols.cpp
+++ b/src/plugins/cpptools/cpplocalsymbols.cpp
@@ -51,13 +51,11 @@ class FindLocalSymbols: protected ASTVisitor
public:
FindLocalSymbols(Document::Ptr doc)
- : ASTVisitor(doc->translationUnit()), _doc(doc), hasD(false), hasQ(false)
+ : ASTVisitor(doc->translationUnit()), _doc(doc)
{ }
// local and external uses.
SemanticInfo::LocalUseMap localUses;
- bool hasD;
- bool hasQ;
void operator()(DeclarationAST *ast)
{
@@ -169,16 +167,6 @@ protected:
return true;
}
- virtual bool visit(QtMemberDeclarationAST *ast)
- {
- if (tokenKind(ast->q_token) == T_Q_D)
- hasD = true;
- else
- hasQ = true;
-
- return true;
- }
-
virtual bool visit(FunctionDefinitionAST *ast)
{
if (ast->symbol)
@@ -313,7 +301,5 @@ LocalSymbols::LocalSymbols(CPlusPlus::Document::Ptr doc, CPlusPlus::DeclarationA
{
FindLocalSymbols findLocalSymbols(doc);
findLocalSymbols(ast);
- hasD = findLocalSymbols.hasD;
- hasQ = findLocalSymbols.hasQ;
uses = findLocalSymbols.localUses;
}
diff --git a/src/plugins/cpptools/cpplocalsymbols.h b/src/plugins/cpptools/cpplocalsymbols.h
index fdcc9dd6010..80e4f73fa67 100644
--- a/src/plugins/cpptools/cpplocalsymbols.h
+++ b/src/plugins/cpptools/cpplocalsymbols.h
@@ -45,8 +45,6 @@ class CPPTOOLS_EXPORT LocalSymbols
public:
LocalSymbols(CPlusPlus::Document::Ptr doc, CPlusPlus::DeclarationAST *ast);
- bool hasD;
- bool hasQ;
SemanticInfo::LocalUseMap uses;
};
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index a86686f9edd..6a06671d00f 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -275,9 +275,6 @@ void CppPreprocessor::addFrameworkPath(const QString &frameworkPath)
}
}
-void CppPreprocessor::setProjectFiles(const QStringList &files)
-{ m_projectFiles = files; }
-
void CppPreprocessor::setTodo(const QStringList &files)
{ m_todo = QSet<QString>::fromList(files); }
@@ -285,17 +282,14 @@ namespace {
class Process: public std::unary_function<Document::Ptr, void>
{
QPointer<CppModelManager> _modelManager;
- Snapshot _snapshot;
Document::Ptr _doc;
Document::CheckMode _mode;
public:
Process(QPointer<CppModelManager> modelManager,
Document::Ptr doc,
- const Snapshot &snapshot,
const CppModelManager::WorkingCopy &workingCopy)
: _modelManager(modelManager),
- _snapshot(snapshot),
_doc(doc),
_mode(Document::FastCheck)
{
@@ -322,6 +316,11 @@ void CppPreprocessor::run(const QString &fileName)
sourceNeeded(0, absoluteFilePath, IncludeGlobal);
}
+void CppPreprocessor::removeFromCache(const QString &fileName)
+{
+ m_snapshot.remove(fileName);
+}
+
void CppPreprocessor::resetEnvironment()
{
m_env.reset();
@@ -604,8 +603,7 @@ void CppPreprocessor::sourceNeeded(unsigned line, QString &fileName, IncludeType
m_snapshot.insert(doc);
m_todo.remove(fileName);
- Process process(m_modelManager, doc, m_snapshot, m_workingCopy);
-
+ Process process(m_modelManager, doc, m_workingCopy);
process();
(void) switchDocument(previousDoc);
diff --git a/src/plugins/cpptools/cppmodelmanager.h b/src/plugins/cpptools/cppmodelmanager.h
index 9ea4463d25b..74e3f3caf1b 100644
--- a/src/plugins/cpptools/cppmodelmanager.h
+++ b/src/plugins/cpptools/cppmodelmanager.h
@@ -250,6 +250,8 @@ private:
class CPPTOOLS_EXPORT CppPreprocessor: public CPlusPlus::Client
{
+ Q_DISABLE_COPY(CppPreprocessor)
+
public:
CppPreprocessor(QPointer<CppModelManager> modelManager, bool dumpFileNameWhileParsing = false);
virtual ~CppPreprocessor();
@@ -263,6 +265,7 @@ public:
void setTodo(const QStringList &files);
void run(const QString &fileName);
+ void removeFromCache(const QString &fileName);
void resetEnvironment();
static QString cleanPath(const QString &path);
@@ -273,9 +276,6 @@ public:
CppModelManager *modelManager() const
{ return m_modelManager.data(); }
-public: // attributes
- CPlusPlus::Snapshot m_snapshot;
-
protected:
CPlusPlus::Document::Ptr switchDocument(CPlusPlus::Document::Ptr doc);
@@ -302,13 +302,13 @@ protected:
virtual void sourceNeeded(unsigned line, QString &fileName, IncludeType type);
private:
+ CPlusPlus::Snapshot m_snapshot;
QPointer<CppModelManager> m_modelManager;
bool m_dumpFileNameWhileParsing;
CPlusPlus::Environment m_env;
CPlusPlus::Preprocessor m_preprocess;
QStringList m_includePaths;
CPlusPlus::CppModelManagerInterface::WorkingCopy m_workingCopy;
- QStringList m_projectFiles;
QStringList m_frameworkPaths;
QSet<QString> m_included;
CPlusPlus::Document::Ptr m_currentDoc;
diff --git a/src/plugins/cpptools/cppsemanticinfo.cpp b/src/plugins/cpptools/cppsemanticinfo.cpp
index 1a335037b0a..3484ab437d7 100644
--- a/src/plugins/cpptools/cppsemanticinfo.cpp
+++ b/src/plugins/cpptools/cppsemanticinfo.cpp
@@ -32,6 +32,6 @@
using namespace CppTools;
SemanticInfo::SemanticInfo()
- : revision(0), hasQ(false), hasD(false), forced(false)
+ : revision(0), forced(false)
{
}
diff --git a/src/plugins/cpptools/cppsemanticinfo.h b/src/plugins/cpptools/cppsemanticinfo.h
index 075902a8bb8..69a32e578cd 100644
--- a/src/plugins/cpptools/cppsemanticinfo.h
+++ b/src/plugins/cpptools/cppsemanticinfo.h
@@ -62,8 +62,6 @@ public:
SemanticInfo();
unsigned revision;
- bool hasQ: 1;
- bool hasD: 1;
bool forced: 1;
CPlusPlus::Snapshot snapshot;
CPlusPlus::Document::Ptr doc;
diff --git a/src/plugins/cpptools/cpptoolseditorsupport.h b/src/plugins/cpptools/cpptoolseditorsupport.h
index 0836254026d..26b28297983 100644
--- a/src/plugins/cpptools/cpptoolseditorsupport.h
+++ b/src/plugins/cpptools/cpptoolseditorsupport.h
@@ -89,9 +89,9 @@ private:
QPointer<TextEditor::ITextEditor> _textEditor;
QTimer *_updateDocumentTimer;
int _updateDocumentInterval;
+ unsigned _revision;
QFuture<void> _documentParser;
QString _cachedContents;
- unsigned _revision;
};
} // namespace Internal
diff --git a/src/plugins/cpptools/cpptoolsplugin.h b/src/plugins/cpptools/cpptoolsplugin.h
index d132ecce67b..fcb4d417e32 100644
--- a/src/plugins/cpptools/cpptoolsplugin.h
+++ b/src/plugins/cpptools/cpptoolsplugin.h
@@ -122,6 +122,10 @@ private slots:
void test_completion_typedef_of_pointer();
void test_completion_typedef_of_pointer_inside_function();
void test_completion_typedef_is_inside_function_before_declaration_block();
+ void test_completion_resolve_complex_typedef_with_template();
+ void test_completion_template_specialization_with_pointer();
+ void test_completion_typedef_using_templates1();
+ void test_completion_typedef_using_templates2();
void test_format_pointerdeclaration_in_simpledeclarations();
void test_format_pointerdeclaration_in_simpledeclarations_data();
diff --git a/src/plugins/cpptools/doxygengenerator.cpp b/src/plugins/cpptools/doxygengenerator.cpp
index c5305b209e9..c0526ea732a 100644
--- a/src/plugins/cpptools/doxygengenerator.cpp
+++ b/src/plugins/cpptools/doxygengenerator.cpp
@@ -238,7 +238,7 @@ QChar DoxygenGenerator::startMark() const
QChar DoxygenGenerator::styleMark() const
{
- if (m_style == QtStyle)
+ if (m_style == QtStyle || m_style == CppStyleA || m_style == CppStyleB)
return QLatin1Char('\\');
return QLatin1Char('@');
}
@@ -256,17 +256,31 @@ QString DoxygenGenerator::commandSpelling(Command command)
void DoxygenGenerator::writeStart(QString *comment) const
{
- comment->append(offsetString() % QLatin1String("/*") % startMark());
+ if (m_style == CppStyleA)
+ comment->append(QLatin1String("///"));
+ if (m_style == CppStyleB)
+ comment->append(QLatin1String("//!"));
+ else
+ comment->append(offsetString() % QLatin1String("/*") % startMark());
}
void DoxygenGenerator::writeEnd(QString *comment) const
{
- comment->append(offsetString() % QLatin1String(" */"));
+ if (m_style == CppStyleA)
+ comment->append(QLatin1String("///"));
+ else if (m_style == CppStyleB)
+ comment->append(QLatin1String("//!"));
+ else
+ comment->append(offsetString() % QLatin1String(" */"));
}
void DoxygenGenerator::writeContinuation(QString *comment) const
{
- if (m_addLeadingAsterisks)
+ if (m_style == CppStyleA)
+ comment->append(offsetString() % QLatin1String("///"));
+ else if (m_style == CppStyleB)
+ comment->append(offsetString() % QLatin1String("//!"));
+ else if (m_addLeadingAsterisks)
comment->append(offsetString() % QLatin1String(" *"));
else
comment->append(offsetString() % QLatin1String(" "));
diff --git a/src/plugins/cpptools/doxygengenerator.h b/src/plugins/cpptools/doxygengenerator.h
index c397934464a..313593425e2 100644
--- a/src/plugins/cpptools/doxygengenerator.h
+++ b/src/plugins/cpptools/doxygengenerator.h
@@ -49,8 +49,10 @@ public:
DoxygenGenerator();
enum DocumentationStyle {
- JavaStyle,
- QtStyle
+ JavaStyle, ///< JavaStyle comment: /**
+ QtStyle, ///< QtStyle comment: /*!
+ CppStyleA, ///< CppStyle comment variant A: ///
+ CppStyleB ///< CppStyle comment variant B: //!
};
void setStyle(DocumentationStyle style);
diff --git a/src/plugins/debugger/breakwindow.cpp b/src/plugins/debugger/breakwindow.cpp
index 8f4caabcc12..212fd1f6ed4 100644
--- a/src/plugins/debugger/breakwindow.cpp
+++ b/src/plugins/debugger/breakwindow.cpp
@@ -705,6 +705,18 @@ void BreakTreeView::keyPressEvent(QKeyEvent *ev)
int row = qMin(model()->rowCount() - ids.size() - 1, currentIndex().row());
deleteBreakpoints(ids);
setCurrentIndex(si.at(0).sibling(row, 0));
+ } else if (ev->key() == Qt::Key_Space) {
+ QItemSelectionModel *sm = selectionModel();
+ QTC_ASSERT(sm, return);
+ const QModelIndexList selectedIds = sm->selectedIndexes();
+ if (!selectedIds.isEmpty()) {
+ BreakHandler *handler = breakHandler();
+ const BreakpointModelIds validIds = handler->findBreakpointsByIndex(selectedIds);
+ const bool isEnabled = validIds.isEmpty() || handler->isEnabled(validIds.at(0));
+ setBreakpointsEnabled(validIds, !isEnabled);
+ foreach (const QModelIndex &id, selectedIds)
+ update(id);
+ }
}
QTreeView::keyPressEvent(ev);
}
diff --git a/src/plugins/debugger/debugger.qbs b/src/plugins/debugger/debugger.qbs
index d87a42171f2..b67ccd5811d 100644
--- a/src/plugins/debugger/debugger.qbs
+++ b/src/plugins/debugger/debugger.qbs
@@ -9,7 +9,6 @@ QtcPlugin {
Depends { name: "Qt"; submodules: ["widgets", "network", "script"] }
Depends { name: "Core" }
Depends { name: "CppTools" }
- Depends { name: "QmlJSTools" }
Depends { name: "Find" }
Depends { name: "ProjectExplorer" }
Depends { name: "TextEditor" }
diff --git a/src/plugins/debugger/debuggerkitconfigwidget.cpp b/src/plugins/debugger/debuggerkitconfigwidget.cpp
index 8d84be7e112..8a980de349d 100644
--- a/src/plugins/debugger/debuggerkitconfigwidget.cpp
+++ b/src/plugins/debugger/debuggerkitconfigwidget.cpp
@@ -30,6 +30,8 @@
#include "debuggerkitconfigwidget.h"
#include "debuggerkitinformation.h"
+#include <coreplugin/icore.h>
+
#include <projectexplorer/abi.h>
#include <projectexplorer/kitinformation.h>
@@ -65,17 +67,19 @@ static const char debuggingToolsWikiLinkC[] = "http://qt-project.org/wiki/Qt_Cre
DebuggerKitConfigWidget::DebuggerKitConfigWidget(ProjectExplorer::Kit *workingCopy)
: KitConfigWidget(workingCopy),
- m_label(new Utils::ElidingLabel),
- m_button(new QPushButton(tr("Manage...")))
-{
- // ToolButton with Menu, defaulting to 'Autodetect'.
- QMenu *buttonMenu = new QMenu(m_button);
- QAction *autoDetectAction = buttonMenu->addAction(tr("Auto-detect"));
- connect(autoDetectAction, SIGNAL(triggered()), this, SLOT(autoDetectDebugger()));
- QAction *changeAction = buttonMenu->addAction(tr("Edit..."));
- connect(changeAction, SIGNAL(triggered()), this, SLOT(showDialog()));
- m_button->setMenu(buttonMenu);
-
+ m_main(new QWidget),
+ m_label(new Utils::ElidingLabel(m_main)),
+ m_autoDetectButton(new QPushButton(tr("Auto-detect"))),
+ m_editButton(new QPushButton(tr("Edit...")))
+{
+ QHBoxLayout *mainLayout = new QHBoxLayout(m_main);
+ mainLayout->addWidget(m_label);
+ mainLayout->setMargin(0);
+ mainLayout->addWidget(m_autoDetectButton);
+ m_autoDetectButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred);
+
+ connect(m_autoDetectButton, SIGNAL(pressed()), SLOT(autoDetectDebugger()));
+ connect(m_editButton, SIGNAL(pressed()), SLOT(showDialog()));
refresh();
}
@@ -86,12 +90,12 @@ QString DebuggerKitConfigWidget::toolTip() const
QWidget *DebuggerKitConfigWidget::mainWidget() const
{
- return m_label;
+ return m_main;
}
QWidget *DebuggerKitConfigWidget::buttonWidget() const
{
- return m_button;
+ return m_editButton;
}
QString DebuggerKitConfigWidget::displayName() const
@@ -101,7 +105,7 @@ QString DebuggerKitConfigWidget::displayName() const
void DebuggerKitConfigWidget::makeReadOnly()
{
- m_button->setEnabled(false);
+ m_editButton->setEnabled(false);
}
void DebuggerKitConfigWidget::refresh()
@@ -116,7 +120,7 @@ void DebuggerKitConfigWidget::autoDetectDebugger()
void DebuggerKitConfigWidget::showDialog()
{
- DebuggerKitConfigDialog dialog;
+ DebuggerKitConfigDialog dialog(Core::ICore::mainWindow());
dialog.setWindowTitle(tr("Debugger for \"%1\"").arg(m_kit->displayName()));
dialog.setDebuggerItem(DebuggerKitInformation::debuggerItem(m_kit));
if (dialog.exec() == QDialog::Accepted)
diff --git a/src/plugins/debugger/debuggerkitconfigwidget.h b/src/plugins/debugger/debuggerkitconfigwidget.h
index 689ec78f671..53c54ceda46 100644
--- a/src/plugins/debugger/debuggerkitconfigwidget.h
+++ b/src/plugins/debugger/debuggerkitconfigwidget.h
@@ -78,8 +78,10 @@ private slots:
void showDialog();
private:
+ QWidget *m_main;
QLabel *m_label;
- QPushButton *m_button;
+ QPushButton *m_autoDetectButton;
+ QPushButton *m_editButton;
};
class DebuggerKitConfigDialog : public QDialog
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 4cc32f93369..0668f1f48c4 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -1619,7 +1619,8 @@ void DebuggerPluginPrivate::attachCore()
DebuggerStartParameters sp;
QString display = dlg.useLocalCoreFile() ? dlg.localCoreFile() : dlg.remoteCoreFile();
QTC_ASSERT(fillParameters(&sp, dlg.kit()), return);
- sp.masterEngineType = GdbEngineType;
+ DebuggerKitInformation::DebuggerItem info = DebuggerKitInformation::debuggerItem(dlg.kit());
+ sp.masterEngineType = info.engineType;
sp.executable = dlg.localExecutableFile();
sp.coreFile = dlg.localCoreFile();
sp.displayName = tr("Core file \"%1\"").arg(display);
diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 1cfcc303bbb..59d70c6035c 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -268,7 +268,7 @@ GdbEngine::GdbEngine(const DebuggerStartParameters &startParameters)
invalidateSourcesList();
m_debugInfoTaskHandler = new DebugInfoTaskHandler(this);
- ExtensionSystem::PluginManager::addObject(m_debugInfoTaskHandler);
+ //ExtensionSystem::PluginManager::addObject(m_debugInfoTaskHandler);
m_commandTimer.setSingleShot(true);
connect(&m_commandTimer, SIGNAL(timeout()), SLOT(commandTimeout()));
@@ -287,7 +287,7 @@ GdbEngine::GdbEngine(const DebuggerStartParameters &startParameters)
GdbEngine::~GdbEngine()
{
- ExtensionSystem::PluginManager::removeObject(m_debugInfoTaskHandler);
+ //ExtensionSystem::PluginManager::removeObject(m_debugInfoTaskHandler);
delete m_debugInfoTaskHandler;
m_debugInfoTaskHandler = 0;
@@ -3167,6 +3167,13 @@ void GdbEngine::insertBreakpoint(BreakpointModelId id)
if (handler->isOneShot(id))
cmd += "-t ";
+ // FIXME: -d does not work on Mac gdb.
+ if (!handler->isEnabled(id) && !m_isMacGdb)
+ cmd += "-d ";
+
+ if (int ignoreCount = handler->ignoreCount(id))
+ cmd += "-i " + QByteArray::number(ignoreCount) + ' ';
+
QByteArray condition = handler->condition(id);
if (!condition.isEmpty())
cmd += " -c \"" + condition + "\" ";
diff --git a/src/plugins/debugger/logwindow.cpp b/src/plugins/debugger/logwindow.cpp
index 237a7af6cbd..862c229e38a 100644
--- a/src/plugins/debugger/logwindow.cpp
+++ b/src/plugins/debugger/logwindow.cpp
@@ -189,11 +189,18 @@ public:
void append(const QString &text)
{
const int N = 100000;
- if (blockCount() > N) {
- QTextBlock block = document()->findBlock(9 * N / 10);
+ const int bc = blockCount();
+ if (bc > N) {
+ QTextDocument *doc = document();
+ QTextBlock block = doc->findBlockByLineNumber(bc * 9 / 10);
QTextCursor tc(block);
- tc.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor);
+ tc.movePosition(QTextCursor::Start, QTextCursor::KeepAnchor);
tc.removeSelectedText();
+ // Seems to be the only way to force shrinking of the
+ // allocated data.
+ QString contents = doc->toHtml();
+ doc->clear();
+ doc->setHtml(contents);
}
appendPlainText(text);
}
diff --git a/src/plugins/debugger/stackframe.cpp b/src/plugins/debugger/stackframe.cpp
index 0884eb0cf12..f7ceb9f4ac4 100644
--- a/src/plugins/debugger/stackframe.cpp
+++ b/src/plugins/debugger/stackframe.cpp
@@ -36,6 +36,8 @@
#include <QTextStream>
#include <QCoreApplication>
+#include <utils/hostosinfo.h>
+
namespace Debugger {
namespace Internal {
@@ -103,6 +105,7 @@ QString StackFrame::toToolTip() const
str << "</table>";
str <<"<br> <br><i>" << tr("Note:") << " </i> ";
+ bool showDistributionNote = false;
if (isUsable()) {
str << tr("Sources for this frame are available.<br>Double-click on "
"the file name to open an editor.");
@@ -110,13 +113,17 @@ QString StackFrame::toToolTip() const
str << tr("Binary debug information is not accessible for this "
"frame. This either means the core was not compiled "
"with debug information, or the debug information is not "
- "accessible. Note that most distributions ship debug information "
- "in separate packages.");
+ "accessible.");
+ showDistributionNote = true;
} else {
str << tr("Binary debug information is accessible for this "
- "frame. However, matching sources have not been found. "
- "Note that some distributions ship debug sources "
- "in separate packages.");
+ "frame. However, matching sources have not been found.");
+ showDistributionNote = true;
+ }
+ if (!Utils::HostOsInfo::isWindowsHost() && showDistributionNote) {
+ str << QLatin1String(" ") <<
+ tr("Note that most distributions ship debug information "
+ "in separate packages.");
}
str << "</body></html>";
diff --git a/src/plugins/diffeditor/DiffEditor.pluginspec.in b/src/plugins/diffeditor/DiffEditor.pluginspec.in
new file mode 100644
index 00000000000..0725168ea82
--- /dev/null
+++ b/src/plugins/diffeditor/DiffEditor.pluginspec.in
@@ -0,0 +1,20 @@
+<plugin name=\"DiffEditor\" version=\"$$QTCREATOR_VERSION\" compatVersion=\"$$QTCREATOR_VERSION\" experimental=\"true\">
+ <vendor>Digia Plc</vendor>
+ <copyright>(C) 2013 Digia Plc</copyright>
+ <license>
+Commercial Usage
+
+Licensees holding valid Qt Commercial licenses may use this plugin in accordance with the Qt Commercial License Agreement provided with the Software or, alternatively, in accordance with the terms contained in a written agreement between you and Digia.
+
+GNU Lesser General Public License Usage
+
+Alternatively, this plugin may be used under the terms of the GNU Lesser General Public License version 2.1 as published by the Free Software Foundation. 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.
+ </license>
+ <category>Qt Creator</category>
+ <description>Diff editor component.</description>
+ <url>http://www.qt-project.org</url>
+ <dependencyList>
+ <dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
+ <dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
+ </dependencyList>
+</plugin>
diff --git a/src/plugins/diffeditor/diffeditor.pri b/src/plugins/diffeditor/diffeditor.pri
new file mode 100644
index 00000000000..496feda611a
--- /dev/null
+++ b/src/plugins/diffeditor/diffeditor.pri
@@ -0,0 +1,3 @@
+include(diffeditor_dependencies.pri)
+
+LIBS *= -l$$qtLibraryName(DiffEditor)
diff --git a/src/plugins/diffeditor/diffeditor.pro b/src/plugins/diffeditor/diffeditor.pro
new file mode 100644
index 00000000000..598068c7427
--- /dev/null
+++ b/src/plugins/diffeditor/diffeditor.pro
@@ -0,0 +1,17 @@
+TEMPLATE = lib
+TARGET = DiffEditor
+DEFINES += DIFFEDITOR_LIBRARY
+include(../../qtcreatorplugin.pri)
+include(diffeditor_dependencies.pri)
+
+HEADERS += diffeditorplugin.h \
+ diffeditorwidget.h \
+ diffeditorconstants.h \
+ diffeditor_global.h \
+ differ.h
+
+SOURCES += diffeditorplugin.cpp \
+ diffeditorwidget.cpp \
+ differ.cpp
+
+RESOURCES +=
diff --git a/src/plugins/diffeditor/diffeditor.qbs b/src/plugins/diffeditor/diffeditor.qbs
new file mode 100644
index 00000000000..568321d1498
--- /dev/null
+++ b/src/plugins/diffeditor/diffeditor.qbs
@@ -0,0 +1,26 @@
+import qbs.base 1.0
+
+import "../QtcPlugin.qbs" as QtcPlugin
+
+QtcPlugin {
+ name: "DiffEditor"
+
+ Depends { name: "Qt.widgets" }
+ Depends { name: "Core" }
+ Depends { name: "TextEditor" }
+ Depends { name: "Find" }
+
+ Depends { name: "cpp" }
+
+ files: [
+ "diffeditorplugin.cpp",
+ "diffeditorplugin.h",
+ "differ.cpp",
+ "differ.h",
+ "diffeditorwidget.cpp",
+ "diffeditorwidget.h",
+ "diffeditorconstants.h",
+ "diffeditor_global.h",
+ ]
+}
+
diff --git a/src/plugins/diffeditor/diffeditor_dependencies.pri b/src/plugins/diffeditor/diffeditor_dependencies.pri
new file mode 100644
index 00000000000..b25886164cd
--- /dev/null
+++ b/src/plugins/diffeditor/diffeditor_dependencies.pri
@@ -0,0 +1,3 @@
+include(../../libs/utils/utils.pri)
+include(../../plugins/texteditor/texteditor.pri)
+include(../../plugins/coreplugin/coreplugin.pri)
diff --git a/src/plugins/diffeditor/diffeditor_global.h b/src/plugins/diffeditor/diffeditor_global.h
new file mode 100644
index 00000000000..da6ef60935c
--- /dev/null
+++ b/src/plugins/diffeditor/diffeditor_global.h
@@ -0,0 +1,41 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 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.
+**
+****************************************************************************/
+
+#ifndef DIFFEDITOR_GLOBAL_H
+#define DIFFEDITOR_GLOBAL_H
+
+#include <QtGlobal>
+
+#if defined(DIFFEDITOR_LIBRARY)
+# define DIFFEDITOR_EXPORT Q_DECL_EXPORT
+#else
+# define DIFFEDITOR_EXPORT Q_DECL_IMPORT
+#endif
+
+#endif // DIFFEDITOR_GLOBAL_H
diff --git a/src/plugins/diffeditor/diffeditorconstants.h b/src/plugins/diffeditor/diffeditorconstants.h
new file mode 100644
index 00000000000..7e602b8bc72
--- /dev/null
+++ b/src/plugins/diffeditor/diffeditorconstants.h
@@ -0,0 +1,44 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 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.
+**
+****************************************************************************/
+
+#ifndef DIFFEDITORCONSTANTS_H
+#define DIFFEDITORCONSTANTS_H
+
+namespace DiffEditor {
+namespace Constants {
+
+const char DIFF_EDITOR_ID[] = "Diff Editor";
+const char DIFF_EDITOR_DISPLAY_NAME[] = QT_TRANSLATE_NOOP("DiffEditor", "Diff Editor");
+const char DIFF_EDITOR_MIMETYPE[] = "text/x-patch";
+const char G_TOOLS_DIFF[] = "QtCreator.Group.Tools.Options";
+
+} // namespace Constants
+} // namespace DiffEditor
+
+#endif // DIFFEDITORCONSTANTS_H
diff --git a/src/plugins/diffeditor/diffeditorplugin.cpp b/src/plugins/diffeditor/diffeditorplugin.cpp
new file mode 100644
index 00000000000..7f843a95ff3
--- /dev/null
+++ b/src/plugins/diffeditor/diffeditorplugin.cpp
@@ -0,0 +1,355 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 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.
+**
+****************************************************************************/
+
+#include "diffeditorplugin.h"
+#include "diffeditorwidget.h"
+#include "diffeditorconstants.h"
+
+#include <coreplugin/icore.h>
+#include <QCoreApplication>
+#include <QToolButton>
+#include <QSpinBox>
+#include <QStyle>
+#include <QLabel>
+#include <QFileDialog>
+#include <QTextCodec>
+
+#include <coreplugin/actionmanager/actioncontainer.h>
+#include <coreplugin/actionmanager/actionmanager.h>
+#include <coreplugin/coreconstants.h>
+#include <coreplugin/editormanager/editormanager.h>
+#include <coreplugin/coreconstants.h>
+
+namespace DiffEditor {
+namespace Internal {
+
+///////////////////////////////// DiffEditor //////////////////////////////////
+
+DiffEditorEditable::DiffEditorEditable(DiffEditorWidget *editorWidget)
+ :
+ IEditor(0),
+ m_file(new DiffFile(QLatin1String(Constants::DIFF_EDITOR_MIMETYPE), this)),
+ m_editorWidget(editorWidget),
+ m_toolWidget(0)
+{
+ setWidget(editorWidget);
+}
+
+DiffEditorEditable::~DiffEditorEditable()
+{
+ delete m_toolWidget;
+ if (m_widget)
+ delete m_widget;
+}
+
+bool DiffEditorEditable::createNew(const QString &contents)
+{
+ Q_UNUSED(contents)
+// setFileContents(contents);
+ return true;
+}
+
+bool DiffEditorEditable::open(QString *errorString, const QString &fileName, const QString &realFileName)
+{
+ Q_UNUSED(errorString)
+ Q_UNUSED(fileName)
+ Q_UNUSED(realFileName)
+ const QString text = QLatin1String("Open");
+ if (!createNew(text))
+ return false;
+
+ return true;
+}
+
+Core::IDocument *DiffEditorEditable::document()
+{
+ return m_file;
+}
+
+QString DiffEditorEditable::displayName() const
+{
+ if (m_displayName.isEmpty())
+ m_displayName = QCoreApplication::translate("DiffEditor", Constants::DIFF_EDITOR_DISPLAY_NAME);
+ return m_displayName;
+}
+
+void DiffEditorEditable::setDisplayName(const QString &title)
+{
+ m_displayName = title;
+ emit changed();
+}
+
+bool DiffEditorEditable::duplicateSupported() const
+{
+ return false;
+}
+
+Core::IEditor *DiffEditorEditable::duplicate(QWidget * /*parent*/)
+{
+ return 0;
+}
+
+Core::Id DiffEditorEditable::id() const
+{
+ return Constants::DIFF_EDITOR_ID;
+}
+
+static QToolBar *createToolBar(const QWidget *someWidget)
+{
+ // Create
+ QToolBar *toolBar = new QToolBar;
+ toolBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
+ const int size = someWidget->style()->pixelMetric(QStyle::PM_SmallIconSize);
+ toolBar->setIconSize(QSize(size, size));
+ toolBar->addSeparator();
+
+ return toolBar;
+}
+
+QWidget *DiffEditorEditable::toolBar()
+{
+ if (m_toolWidget)
+ return m_toolWidget;
+
+ // Create
+ m_toolWidget = createToolBar(m_editorWidget);
+
+ QToolButton *whitespaceButton = new QToolButton(m_toolWidget);
+ whitespaceButton->setText(tr("Ignore Whitespaces"));
+ whitespaceButton->setCheckable(true);
+ whitespaceButton->setChecked(true);
+ connect(whitespaceButton, SIGNAL(clicked(bool)),
+ m_editorWidget, SLOT(setIgnoreWhitespaces(bool)));
+ m_toolWidget->addWidget(whitespaceButton);
+
+ QLabel *contextLabel = new QLabel(tr("Context Lines:"), m_toolWidget);
+ m_toolWidget->addWidget(contextLabel);
+
+ QSpinBox *contextSpinBox = new QSpinBox(m_toolWidget);
+ contextSpinBox->setRange(-1, 100);
+ contextSpinBox->setValue(1);
+ connect(contextSpinBox, SIGNAL(valueChanged(int)),
+ m_editorWidget, SLOT(setContextLinesNumber(int)));
+ m_toolWidget->addWidget(contextSpinBox);
+
+ return m_toolWidget;
+}
+
+QByteArray DiffEditorEditable::saveState() const
+{
+ return QByteArray();
+}
+
+bool DiffEditorEditable::restoreState(const QByteArray &/*state*/)
+{
+ return true;
+}
+
+///////////////////////////////// DiffFile //////////////////////////////////
+
+DiffFile::DiffFile(const QString &mimeType, QObject *parent) :
+ Core::IDocument(parent),
+ m_mimeType(mimeType),
+ m_modified(false)
+{
+}
+
+void DiffFile::rename(const QString &newName)
+{
+ Q_UNUSED(newName);
+ return;
+}
+
+void DiffFile::setFileName(const QString &name)
+{
+ if (m_fileName == name)
+ return;
+ m_fileName = name;
+ emit changed();
+}
+
+void DiffFile::setModified(bool modified)
+{
+ if (m_modified == modified)
+ return;
+ m_modified = modified;
+ emit changed();
+}
+
+bool DiffFile::save(QString *errorString, const QString &fileName, bool autoSave)
+{
+ emit saveMe(errorString, fileName, autoSave);
+ if (!errorString->isEmpty())
+ return false;
+ emit changed();
+ return true;
+}
+
+QString DiffFile::mimeType() const
+{
+ return m_mimeType;
+}
+
+Core::IDocument::ReloadBehavior DiffFile::reloadBehavior(ChangeTrigger state, ChangeType type) const
+{
+ Q_UNUSED(state)
+ Q_UNUSED(type)
+ return BehaviorSilent;
+}
+
+bool DiffFile::reload(QString *errorString, ReloadFlag flag, ChangeType type)
+{
+ Q_UNUSED(errorString)
+ Q_UNUSED(flag)
+ Q_UNUSED(type)
+ return true;
+}
+
+///////////////////////////////// DiffEditorFactory //////////////////////////////////
+
+DiffEditorFactory::DiffEditorFactory(DiffEditorPlugin *owner) :
+ m_mimeTypes(QLatin1String(Constants::DIFF_EDITOR_MIMETYPE)),
+ m_owner(owner)
+{
+}
+
+Core::Id DiffEditorFactory::id() const
+{
+ return Constants::DIFF_EDITOR_ID;
+}
+
+QString DiffEditorFactory::displayName() const
+{
+ return qApp->translate("DiffEditorFactory", Constants::DIFF_EDITOR_DISPLAY_NAME);
+}
+
+Core::IEditor *DiffEditorFactory::createEditor(QWidget *parent)
+{
+ DiffEditorWidget *editorWidget = new DiffEditorWidget(parent);
+ DiffEditorEditable *editor = new DiffEditorEditable(editorWidget);
+ return editor;
+}
+
+QStringList DiffEditorFactory::mimeTypes() const
+{
+ return m_mimeTypes;
+}
+
+///////////////////////////////// DiffEditorPlugin //////////////////////////////////
+
+DiffEditorPlugin::DiffEditorPlugin()
+{
+}
+
+DiffEditorPlugin::~DiffEditorPlugin()
+{
+}
+
+void DiffEditorPlugin::initializeEditor(DiffEditorWidget *editor)
+{
+ Q_UNUSED(editor)
+}
+
+bool DiffEditorPlugin::initialize(const QStringList &arguments, QString *errorMessage)
+{
+ Q_UNUSED(arguments)
+ Q_UNUSED(errorMessage)
+
+ //register actions
+ Core::ActionContainer *toolsContainer =
+ Core::ActionManager::actionContainer(Core::Constants::M_TOOLS);
+ toolsContainer->insertGroup(Core::Constants::G_TOOLS_OPTIONS, Constants::G_TOOLS_DIFF);
+
+ Core::Context globalcontext(Core::Constants::C_GLOBAL);
+
+ QAction *diffAction = new QAction(tr("Diff..."), this);
+ Core::Command *diffCommand = Core::ActionManager::registerAction(diffAction,
+ "DiffEditor.Diff", globalcontext);
+ connect(diffAction, SIGNAL(triggered()), this, SLOT(diff()));
+ toolsContainer->addAction(diffCommand, Constants::G_TOOLS_DIFF);
+
+ addAutoReleasedObject(new DiffEditorFactory(this));
+
+ return true;
+}
+
+void DiffEditorPlugin::extensionsInitialized()
+{
+}
+
+void DiffEditorPlugin::diff()
+{
+ QString fileName1 = QFileDialog::getOpenFileName(0,
+ tr("Select First File for Diff"),
+ QString());
+ if (fileName1.isNull())
+ return;
+
+ QString fileName2 = QFileDialog::getOpenFileName(0,
+ tr("Select Second File for Diff"),
+ QString());
+ if (fileName2.isNull())
+ return;
+
+
+ const Core::Id editorId = Constants::DIFF_EDITOR_ID;
+ //: Editor title
+ QString title = tr("Diff \"%1\", \"%2\"").arg(fileName1).arg(fileName2);
+ Core::IEditor *outputEditor = Core::EditorManager::openEditorWithContents(editorId, &title, QString());
+ Core::EditorManager::activateEditor(outputEditor, Core::EditorManager::ModeSwitch);
+
+ DiffEditorWidget *editorWidget = getDiffEditorWidget(outputEditor);
+ if (editorWidget) {
+ const QString text1 = getFileContents(fileName1, editorWidget->codec());
+ const QString text2 = getFileContents(fileName2, editorWidget->codec());
+
+ editorWidget->setDiff(text1, text2);
+ }
+}
+
+DiffEditorWidget *DiffEditorPlugin::getDiffEditorWidget(const Core::IEditor *editor) const
+{
+ if (const DiffEditorEditable *de = qobject_cast<const DiffEditorEditable *>(editor))
+ return de->editorWidget();
+ return 0;
+}
+
+QString DiffEditorPlugin::getFileContents(const QString &fileName, QTextCodec *codec) const
+{
+ QFile file(fileName);
+ if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
+ return codec->toUnicode(file.readAll());
+ }
+ return QString();
+}
+
+} // namespace Internal
+} // namespace DiffEditor
+
+Q_EXPORT_PLUGIN(DiffEditor::Internal::DiffEditorPlugin)
diff --git a/src/plugins/diffeditor/diffeditorplugin.h b/src/plugins/diffeditor/diffeditorplugin.h
new file mode 100644
index 00000000000..cc0de258fd7
--- /dev/null
+++ b/src/plugins/diffeditor/diffeditorplugin.h
@@ -0,0 +1,158 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 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.
+**
+****************************************************************************/
+
+#ifndef DIFFEDITORPLUGIN_H
+#define DIFFEDITORPLUGIN_H
+
+#include <extensionsystem/iplugin.h>
+#include <coreplugin/editormanager/ieditorfactory.h>
+#include <coreplugin/editormanager/ieditor.h>
+#include <coreplugin/icontext.h>
+#include <coreplugin/idocument.h>
+
+#include <QtPlugin>
+#include <QPointer>
+#include <QStringList>
+#include <QAction>
+#include <QToolBar>
+
+namespace DiffEditor {
+class DiffEditorWidget;
+
+namespace Internal {
+class DiffFile;
+
+class DiffEditorEditable : public Core::IEditor
+{
+ Q_OBJECT
+public:
+ explicit DiffEditorEditable(DiffEditorWidget *editorWidget);
+ virtual ~DiffEditorEditable();
+
+public:
+ // Core::IEditor
+ bool createNew(const QString &contents);
+ bool open(QString *errorString, const QString &fileName, const QString &realFileName);
+ Core::IDocument *document();
+ QString displayName() const;
+ void setDisplayName(const QString &title);
+ bool duplicateSupported() const;
+ Core::IEditor *duplicate(QWidget *parent);
+ Core::Id id() const;
+ bool isTemporary() const { return true; }
+ DiffEditorWidget *editorWidget() const { return m_editorWidget; }
+
+ QWidget *toolBar();
+
+ QByteArray saveState() const;
+ bool restoreState(const QByteArray &state);
+
+private:
+ DiffFile *m_file;
+ DiffEditorWidget *m_editorWidget;
+ QToolBar *m_toolWidget;
+ mutable QString m_displayName;
+};
+
+class DiffFile : public Core::IDocument
+{
+ Q_OBJECT
+public:
+ explicit DiffFile(const QString &mimeType,
+ QObject *parent = 0);
+
+ QString fileName() const { return m_fileName; }
+ QString defaultPath() const { return QString(); }
+ QString suggestedFileName() const { return QString(); }
+
+ bool isModified() const { return m_modified; }
+ QString mimeType() const;
+ bool isSaveAsAllowed() const { return false; }
+ bool save(QString *errorString, const QString &fileName, bool autoSave);
+ ReloadBehavior reloadBehavior(ChangeTrigger state, ChangeType type) const;
+ bool reload(QString *errorString, ReloadFlag flag, ChangeType type);
+ void rename(const QString &newName);
+
+ void setFileName(const QString &name);
+ void setModified(bool modified = true);
+
+signals:
+ void saveMe(QString *errorString, const QString &fileName, bool autoSave);
+
+private:
+ const QString m_mimeType;
+ bool m_modified;
+ QString m_fileName;
+};
+
+class DiffEditorPlugin : public ExtensionSystem::IPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "DiffEditor.json")
+
+public:
+ DiffEditorPlugin();
+ ~DiffEditorPlugin();
+
+ bool initialize(const QStringList &arguments, QString *errorMessage = 0);
+ void extensionsInitialized();
+
+ // Connect editor to settings changed signals.
+ void initializeEditor(DiffEditorWidget *editor);
+
+private slots:
+ void diff();
+
+private:
+ DiffEditorWidget *getDiffEditorWidget(const Core::IEditor *editor) const;
+ QString getFileContents(const QString &fileName, QTextCodec *codec) const;
+
+};
+
+class DiffEditorFactory : public Core::IEditorFactory
+{
+ Q_OBJECT
+
+public:
+ explicit DiffEditorFactory(DiffEditorPlugin *owner);
+
+ QStringList mimeTypes() const;
+ Core::IEditor *createEditor(QWidget *parent);
+ Core::Id id() const;
+ QString displayName() const;
+
+private:
+ const QStringList m_mimeTypes;
+ DiffEditorPlugin *m_owner;
+};
+
+} // namespace Internal
+} // namespace DiffEditor
+
+#endif // DIFFEDITORPLUGIN_H
diff --git a/src/plugins/diffeditor/diffeditorwidget.cpp b/src/plugins/diffeditor/diffeditorwidget.cpp
new file mode 100644
index 00000000000..26078afc324
--- /dev/null
+++ b/src/plugins/diffeditor/diffeditorwidget.cpp
@@ -0,0 +1,1027 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 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.
+**
+****************************************************************************/
+
+#include "diffeditorwidget.h"
+#include <QPlainTextEdit>
+#include <QSplitter>
+#include <QVBoxLayout>
+#include <QPlainTextDocumentLayout>
+#include <QTextBlock>
+#include <QScrollBar>
+#include <QPainter>
+#include <QTime>
+
+#include <QDebug>
+
+
+#include <texteditor/basetexteditor.h>
+#include <texteditor/snippets/snippeteditor.h>
+#include <texteditor/basetextdocumentlayout.h>
+#include <texteditor/syntaxhighlighter.h>
+#include <texteditor/basetextdocument.h>
+#include <texteditor/texteditorsettings.h>
+
+using namespace TextEditor;
+
+namespace DiffEditor {
+
+//////////////////////
+
+class DiffViewEditorEditable : public BaseTextEditor
+{
+Q_OBJECT
+public:
+ DiffViewEditorEditable(BaseTextEditorWidget *editorWidget) : BaseTextEditor(editorWidget) {}
+ virtual Core::Id id() const { return "DiffViewEditor"; }
+ virtual bool duplicateSupported() const { return false; }
+ virtual IEditor *duplicate(QWidget *parent) { Q_UNUSED(parent) return 0; }
+ virtual bool isTemporary() const { return false; }
+
+};
+
+////////////////////////
+
+class DiffViewEditorWidget : public SnippetEditorWidget
+{
+ Q_OBJECT
+public:
+ DiffViewEditorWidget(QWidget *parent = 0);
+
+ void setSyntaxHighlighter(SyntaxHighlighter *sh) {
+ baseTextDocument()->setSyntaxHighlighter(sh);
+ }
+ QTextCodec *codec() const {
+ return const_cast<QTextCodec *>(baseTextDocument()->codec());
+ }
+
+ QMap<int, int> skippedLines() const { return m_skippedLines; }
+
+ void setLineNumber(int blockNumber, const QString &lineNumber);
+ void setSkippedLines(int visualLineNumber, int skippedLines) { m_skippedLines.insert(visualLineNumber, skippedLines); }
+ void clearLineNumbers();
+ void clearSkippedLines() { m_skippedLines.clear(); }
+
+protected:
+ virtual int extraAreaWidth(int *markWidthPtr = 0) const { return BaseTextEditorWidget::extraAreaWidth(markWidthPtr); }
+ BaseTextEditor *createEditor() { return new DiffViewEditorEditable(this); }
+ virtual QString lineNumber(int blockNumber) const;
+ int lineNumberTopPositionOffset(int blockNumber) const;
+ virtual int lineNumberDigits() const;
+ virtual void paintEvent(QPaintEvent *e);
+ virtual void scrollContentsBy(int dx, int dy);
+
+private:
+ QMap<int, QString> m_lineNumbers;
+ int m_lineNumberDigits;
+ QMap<int, int> m_skippedLines;
+};
+
+DiffViewEditorWidget::DiffViewEditorWidget(QWidget *parent)
+ : SnippetEditorWidget(parent), m_lineNumberDigits(1)
+{
+ setLineNumbersVisible(true);
+ setFrameStyle(QFrame::NoFrame);
+}
+
+QString DiffViewEditorWidget::lineNumber(int blockNumber) const
+{
+ return m_lineNumbers.value(blockNumber);
+}
+
+int DiffViewEditorWidget::lineNumberTopPositionOffset(int blockNumber) const
+{
+ int offset = 0;
+ const QFontMetrics fm(extraArea()->font());
+ int i = 0;
+ const QString text = document()->findBlockByNumber(blockNumber).text();
+ while (i < text.count()) {
+ if (text.at(i) != QChar::LineSeparator)
+ break;
+ offset += fm.height();
+ i++;
+ }
+ return offset;
+}
+
+
+int DiffViewEditorWidget::lineNumberDigits() const
+{
+ return m_lineNumberDigits;
+}
+
+void DiffViewEditorWidget::setLineNumber(int blockNumber, const QString &lineNumber)
+{
+ m_lineNumbers.insert(blockNumber, lineNumber);
+ m_lineNumberDigits = qMax(m_lineNumberDigits, lineNumber.count());
+}
+
+void DiffViewEditorWidget::clearLineNumbers()
+{
+ m_lineNumbers.clear();
+ m_lineNumberDigits = 1;
+}
+
+void DiffViewEditorWidget::scrollContentsBy(int dx, int dy)
+{
+ SnippetEditorWidget::scrollContentsBy(dx, dy);
+ // TODO: update only chunk lines
+ viewport()->update();
+}
+
+void DiffViewEditorWidget::paintEvent(QPaintEvent *e)
+{
+ SnippetEditorWidget::paintEvent(e);
+
+ QPainter painter(viewport());
+
+ QPointF offset = contentOffset();
+ QTextBlock firstBlock = firstVisibleBlock();
+
+ QMap<int, int> skipped = skippedLines();
+ QMapIterator<int, int> itChunk(skipped);
+ while (itChunk.hasNext()) {
+ itChunk.next();
+ const int line = itChunk.key();
+ const int skipped = itChunk.value();
+
+ QTextCursor cursor = textCursor();
+ cursor.movePosition(QTextCursor::Start);
+ cursor.movePosition(QTextCursor::Down, QTextCursor::MoveAnchor, line);
+ QTextBlock block = cursor.block();
+ qreal top = blockBoundingGeometry(block).translated(offset).top();
+ qreal bottom = top + blockBoundingRect(block).height();
+
+ if (block.blockNumber() < firstBlock.blockNumber()
+ || top > e->rect().bottom())
+ continue;
+
+ if (block.isVisible() && bottom >= e->rect().top()) {
+ QTextLayout *layout = block.layout();
+ const int blockLine = line - block.firstLineNumber();
+ const int blockLineCount = layout->lineCount();
+ if (blockLine < blockLineCount) {
+ painter.save();
+ painter.setPen(palette().foreground().color());
+ QTextLine textLine = layout->lineAt(blockLine);
+// QRectF lineRect = textLine.naturalTextRect().translated(offset.x(), top);
+ QRectF lineRect = textLine.naturalTextRect().translated(0, top);
+ QString skippedRowsText = tr("Skipped %n lines...", 0, skipped);
+ QFontMetrics fm(font());
+ const int textWidth = fm.width(skippedRowsText);
+ painter.drawText(QPointF(lineRect.right()
+ + (viewport()->width() - textWidth) / 2.0,
+ lineRect.top() + textLine.ascent()),
+ skippedRowsText);
+ painter.restore();
+ }
+ }
+ }
+}
+
+//////////////////
+
+DiffEditorWidget::DiffEditorWidget(QWidget *parent)
+ : QWidget(parent),
+ m_contextLinesNumber(1),
+ m_ignoreWhitespaces(true),
+ m_leftSafePosHack(-1),
+ m_rightSafePosHack(-1)
+{
+ TextEditor::TextEditorSettings *settings = TextEditorSettings::instance();
+
+ m_leftEditor = new DiffViewEditorWidget(this);
+ m_leftEditor->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ m_leftEditor->setReadOnly(true);
+ m_leftEditor->setHighlightCurrentLine(false);
+ m_leftEditor->setWordWrapMode(QTextOption::NoWrap);
+ m_leftEditor->setFontSettings(settings->fontSettings());
+
+ m_rightEditor = new DiffViewEditorWidget(this);
+ m_rightEditor->setReadOnly(true);
+ m_rightEditor->setHighlightCurrentLine(false);
+ m_rightEditor->setWordWrapMode(QTextOption::NoWrap);
+ m_rightEditor->setFontSettings(settings->fontSettings());
+
+ connect(m_leftEditor->verticalScrollBar(), SIGNAL(valueChanged(int)),
+ this, SLOT(leftSliderChanged()));
+ connect(m_leftEditor->verticalScrollBar(), SIGNAL(actionTriggered(int)),
+ this, SLOT(leftSliderChanged()));
+ connect(m_leftEditor, SIGNAL(cursorPositionChanged()),
+ this, SLOT(leftSliderChanged()));
+ connect(m_rightEditor->verticalScrollBar(), SIGNAL(valueChanged(int)),
+ this, SLOT(rightSliderChanged()));
+ connect(m_rightEditor->verticalScrollBar(), SIGNAL(actionTriggered(int)),
+ this, SLOT(rightSliderChanged()));
+ connect(m_rightEditor, SIGNAL(cursorPositionChanged()),
+ this, SLOT(rightSliderChanged()));
+
+ m_splitter = new QSplitter(this);
+ m_splitter->addWidget(m_leftEditor);
+ m_splitter->addWidget(m_rightEditor);
+ QVBoxLayout *l = new QVBoxLayout(this);
+ l->addWidget(m_splitter);
+}
+
+DiffEditorWidget::~DiffEditorWidget()
+{
+
+}
+
+void DiffEditorWidget::setDiff(const QString &leftText, const QString &rightText)
+{
+// QTime time;
+// time.start();
+ Differ diffGenerator;
+ QList<Diff> list = diffGenerator.diff(leftText, rightText);
+// int ela = time.elapsed();
+// qDebug() << "Time spend in diff:" << ela;
+ setDiff(list);
+}
+
+void DiffEditorWidget::setDiff(const QList<Diff> &diffList)
+{
+ m_diffList = diffList;
+
+ QList<Diff> transformedDiffList = m_diffList;
+
+ m_originalChunkData = calculateOriginalData(transformedDiffList);
+ m_contextFileData = calculateContextData(m_originalChunkData);
+ showDiff();
+}
+
+void DiffEditorWidget::setContextLinesNumber(int lines)
+{
+ if (m_contextLinesNumber == lines)
+ return;
+
+ m_contextLinesNumber = lines;
+ m_contextFileData = calculateContextData(m_originalChunkData);
+ showDiff();
+}
+
+void DiffEditorWidget::setIgnoreWhitespaces(bool ignore)
+{
+ if (m_ignoreWhitespaces == ignore)
+ return;
+
+ m_ignoreWhitespaces = ignore;
+ setDiff(m_diffList);
+}
+
+QTextCodec *DiffEditorWidget::codec() const
+{
+ return const_cast<QTextCodec *>(m_leftEditor->codec());
+}
+
+SnippetEditorWidget *DiffEditorWidget::leftEditor() const
+{
+ return m_leftEditor;
+}
+
+SnippetEditorWidget *DiffEditorWidget::rightEditor() const
+{
+ return m_rightEditor;
+}
+
+bool DiffEditorWidget::isWhitespace(const QChar &c) const
+{
+ if (c == QLatin1Char(' ') || c == QLatin1Char('\t'))
+ return true;
+ return false;
+}
+
+bool DiffEditorWidget::isWhitespace(const Diff &diff) const
+{
+ for (int i = 0; i < diff.text.count(); i++) {
+ if (!isWhitespace(diff.text.at(i)))
+ return false;
+ }
+ return true;
+}
+
+bool DiffEditorWidget::isEqual(const QList<Diff> &diffList, int diffNumber) const
+{
+ const Diff &diff = diffList.at(diffNumber);
+ if (diff.command == Diff::Equal)
+ return true;
+
+ if (diff.text.count() == 0)
+ return true;
+
+ if (!m_ignoreWhitespaces)
+ return false;
+
+ if (isWhitespace(diff) == false)
+ return false;
+
+ if (diffNumber == 0 || diffNumber == diffList.count() - 1)
+ return false; // it's a Diff start or end
+
+ // Examine previous diff
+ if (diffNumber > 0) {
+ const Diff &previousDiff = diffList.at(diffNumber - 1);
+ if (previousDiff.command == Diff::Equal) {
+ const int previousDiffCount = previousDiff.text.count();
+ if (previousDiffCount && isWhitespace(previousDiff.text.at(previousDiffCount - 1)))
+ return true;
+ } else if (diff.command != previousDiff.command
+ && isWhitespace(previousDiff)) {
+ return true;
+ }
+ }
+
+ // Examine next diff
+ if (diffNumber < diffList.count() - 1) {
+ const Diff &nextDiff = diffList.at(diffNumber + 1);
+ if (nextDiff.command == Diff::Equal) {
+ const int nextDiffCount = nextDiff.text.count();
+ if (nextDiffCount && isWhitespace(nextDiff.text.at(0)))
+ return true;
+ } else if (diff.command != nextDiff.command
+ && isWhitespace(nextDiff)) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
+
+ChunkData DiffEditorWidget::calculateOriginalData(const QList<Diff> &diffList) const
+{
+ ChunkData chunkData;
+
+ QStringList leftLines;
+ QStringList rightLines;
+ leftLines.append(QString());
+ rightLines.append(QString());
+ QMap<int, int> leftLineSpans;
+ QMap<int, int> rightLineSpans;
+ QMap<int, int> leftChangedPositions;
+ QMap<int, int> rightChangedPositions;
+ QList<int> leftEqualLines;
+ QList<int> rightEqualLines;
+
+ int currentLeftLine = 0;
+ int currentLeftPos = 0;
+ int currentLeftLineOffset = 0;
+ int currentRightLine = 0;
+ int currentRightPos = 0;
+ int currentRightLineOffset = 0;
+ int lastAlignedLeftLine = -1;
+ int lastAlignedRightLine = -1;
+ bool lastLeftLineEqual = true;
+ bool lastRightLineEqual = true;
+
+ for (int i = 0; i < diffList.count(); i++) {
+ Diff diff = diffList.at(i);
+
+ const QStringList lines = diff.text.split(QLatin1Char('\n'));
+
+ const bool equal = isEqual(diffList, i);
+ if (diff.command == Diff::Insert) {
+ lastRightLineEqual = lastRightLineEqual ? equal : false;
+ } else if (diff.command == Diff::Delete) {
+ lastLeftLineEqual = lastLeftLineEqual ? equal : false;
+ }
+
+ const int lastLeftPos = currentLeftPos;
+ const int lastRightPos = currentRightPos;
+
+ for (int j = 0; j < lines.count(); j++) {
+ const QString line = lines.at(j);
+
+ if (j > 0) {
+ if (diff.command == Diff::Equal) {
+ if (lastLeftLineEqual && lastRightLineEqual) {
+ leftEqualLines.append(currentLeftLine);
+ rightEqualLines.append(currentRightLine);
+ }
+ }
+
+ if (diff.command != Diff::Insert) {
+ currentLeftLine++;
+ currentLeftLineOffset++;
+ leftLines.append(QString());
+ currentLeftPos++;
+ lastLeftLineEqual = line.count() ? equal : true;
+ }
+ if (diff.command != Diff::Delete) {
+ currentRightLine++;
+ currentRightLineOffset++;
+ rightLines.append(QString());
+ currentRightPos++;
+ lastRightLineEqual = line.count() ? equal : true;
+ }
+ }
+
+ if (diff.command == Diff::Delete) {
+ leftLines.last() += line;
+ currentLeftPos += line.count();
+ }
+ else if (diff.command == Diff::Insert) {
+ rightLines.last() += line;
+ currentRightPos += line.count();
+ }
+ else if (diff.command == Diff::Equal) {
+ if ((line.count() || (j && j < lines.count() - 1)) && // don't treat empty ending line as a line to be aligned unless a line is a one char '/n' only.
+ currentLeftLine != lastAlignedLeftLine &&
+ currentRightLine != lastAlignedRightLine) {
+ // apply line spans before the current lines
+ if (currentLeftLineOffset < currentRightLineOffset) {
+ const int spans = currentRightLineOffset - currentLeftLineOffset;
+ leftLineSpans[currentLeftLine] = spans;
+// currentLeftPos += spans;
+ } else if (currentRightLineOffset < currentLeftLineOffset) {
+ const int spans = currentLeftLineOffset - currentRightLineOffset;
+ rightLineSpans[currentRightLine] = spans;
+// currentRightPos += spans;
+ }
+ currentLeftLineOffset = 0;
+ currentRightLineOffset = 0;
+ lastAlignedLeftLine = currentLeftLine;
+ lastAlignedRightLine = currentRightLine;
+ }
+
+ leftLines.last() += line;
+ rightLines.last() += line;
+ currentLeftPos += line.count();
+ currentRightPos += line.count();
+ }
+ }
+
+ if (!equal) {
+ if (diff.command == Diff::Delete && lastLeftPos != currentLeftPos)
+ leftChangedPositions.insert(lastLeftPos, currentLeftPos);
+ else if (diff.command == Diff::Insert && lastRightPos != currentRightPos)
+ rightChangedPositions.insert(lastRightPos, currentRightPos);
+ }
+ }
+
+ if (diffList.count() && diffList.last().command == Diff::Equal) {
+ if (lastLeftLineEqual && lastRightLineEqual) {
+ leftEqualLines.append(currentLeftLine);
+ rightEqualLines.append(currentRightLine);
+ }
+ }
+
+ QList<TextLineData> leftData;
+ int spanOffset = 0;
+ int pos = 0;
+ QMap<int, int>::ConstIterator leftChangedIt = leftChangedPositions.constBegin();
+ for (int i = 0; i < leftLines.count(); i++) {
+ for (int j = 0; j < leftLineSpans.value(i); j++) {
+ leftData.append(TextLineData(TextLineData::Separator));
+ spanOffset++;
+ }
+ const int textLength = leftLines.at(i).count() + 1;
+ pos += textLength;
+ leftData.append(leftLines.at(i));
+ while (leftChangedIt != leftChangedPositions.constEnd()) {
+ if (leftChangedIt.key() >= pos)
+ break;
+
+ const int startPos = leftChangedIt.key() + spanOffset;
+ const int endPos = leftChangedIt.value() + spanOffset;
+ chunkData.changedLeftPositions.insert(startPos, endPos);
+ leftChangedIt++;
+ }
+ }
+ while (leftChangedIt != leftChangedPositions.constEnd()) {
+ if (leftChangedIt.key() >= pos)
+ break;
+
+ const int startPos = leftChangedIt.key() + spanOffset;
+ const int endPos = leftChangedIt.value() + spanOffset;
+ chunkData.changedLeftPositions.insert(startPos, endPos);
+ leftChangedIt++;
+ }
+
+ QList<TextLineData> rightData;
+ spanOffset = 0;
+ pos = 0;
+ QMap<int, int>::ConstIterator rightChangedIt = rightChangedPositions.constBegin();
+ for (int i = 0; i < rightLines.count(); i++) {
+ for (int j = 0; j < rightLineSpans.value(i); j++) {
+ rightData.append(TextLineData(TextLineData::Separator));
+ spanOffset++;
+ }
+ const int textLength = rightLines.at(i).count() + 1;
+ pos += textLength;
+ rightData.append(rightLines.at(i));
+ while (rightChangedIt != rightChangedPositions.constEnd()) {
+ if (rightChangedIt.key() >= pos)
+ break;
+
+ const int startPos = rightChangedIt.key() + spanOffset;
+ const int endPos = rightChangedIt.value() + spanOffset;
+ chunkData.changedRightPositions.insert(startPos, endPos);
+ rightChangedIt++;
+ }
+ }
+ while (rightChangedIt != rightChangedPositions.constEnd()) {
+ if (rightChangedIt.key() >= pos)
+ break;
+
+ const int startPos = rightChangedIt.key() + spanOffset;
+ const int endPos = rightChangedIt.value() + spanOffset;
+ chunkData.changedRightPositions.insert(startPos, endPos);
+ rightChangedIt++;
+ }
+
+ // fill ending separators
+ for (int i = leftData.count(); i < rightData.count(); i++)
+ leftData.append(TextLineData(TextLineData::Separator));
+ for (int i = rightData.count(); i < leftData.count(); i++)
+ rightData.append(TextLineData(TextLineData::Separator));
+
+ const int visualLineCount = leftData.count();
+ int l = 0;
+ int r = 0;
+ for (int i = 0; i < visualLineCount; i++) {
+ RowData row(leftData.at(i), rightData.at(i));
+ if (row.leftLine.textLineType == TextLineData::Separator
+ && row.rightLine.textLineType == TextLineData::Separator)
+ row.equal = true;
+ if (row.leftLine.textLineType == TextLineData::TextLine
+ && row.rightLine.textLineType == TextLineData::TextLine
+ && leftEqualLines.contains(l)
+ && rightEqualLines.contains(r))
+ row.equal = true;
+ chunkData.rows.append(row);
+ if (leftData.at(i).textLineType == TextLineData::TextLine)
+ l++;
+ if (rightData.at(i).textLineType == TextLineData::TextLine)
+ r++;
+ }
+ return chunkData;
+}
+
+FileData DiffEditorWidget::calculateContextData(const ChunkData &originalData) const
+{
+ if (m_contextLinesNumber < 0)
+ return FileData(originalData);
+
+ const int joinChunkThreshold = 0;
+
+ FileData fileData;
+ QMap<int, bool> hiddenRows;
+ int i = 0;
+ while (i < originalData.rows.count()) {
+ const RowData &row = originalData.rows[i];
+ if (row.equal) {
+ // count how many equal
+ int equalRowStart = i;
+ i++;
+ while (i < originalData.rows.count()) {
+ if (!originalData.rows.at(i).equal)
+ break;
+ i++;
+ }
+ const bool first = equalRowStart == 0; // includes first line?
+ const bool last = i == originalData.rows.count(); // includes last line?
+
+ const int firstLine = first ? 0 : equalRowStart + m_contextLinesNumber;
+ const int lastLine = last ? originalData.rows.count() : i - m_contextLinesNumber;
+
+ if (firstLine < lastLine - joinChunkThreshold) {
+ for (int j = firstLine; j < lastLine; j++) {
+ hiddenRows.insert(j, true);
+ }
+ }
+ } else {
+ // iterate to the next row
+ i++;
+ }
+ }
+ i = 0;
+ int skippedLines = 0;
+ int leftCharCounter = 0;
+ int rightCharCounter = 0;
+ int leftCharSkipped = 0;
+ int rightCharSkipped = 0;
+ int chunkOffset = 0;
+ QMap<int, int>::ConstIterator leftChangedIt = originalData.changedLeftPositions.constBegin();
+ QMap<int, int>::ConstIterator rightChangedIt = originalData.changedRightPositions.constBegin();
+ while (i < originalData.rows.count()) {
+ if (!hiddenRows.contains(i)) {
+ ChunkData chunkData;
+ if (skippedLines)
+ chunkOffset++; // for chunk line
+ chunkData.leftOffset = leftCharCounter;
+ chunkData.rightOffset = rightCharCounter;
+ chunkData.skippedLinesBefore = skippedLines;
+ while (i < originalData.rows.count()) {
+ if (hiddenRows.contains(i))
+ break;
+ RowData rowData = originalData.rows.at(i);
+ chunkData.rows.append(rowData);
+
+ leftCharCounter += rowData.leftLine.text.count() + 1; // +1 for separator or for '\n', each line has one of it
+ rightCharCounter += rowData.rightLine.text.count() + 1; // +1 for separator or for '\n', each line has one of it
+ i++;
+ }
+ while (leftChangedIt != originalData.changedLeftPositions.constEnd()) {
+ if (leftChangedIt.key() < chunkData.leftOffset
+ || leftChangedIt.key() > leftCharCounter)
+ break;
+
+ const int startPos = leftChangedIt.key() - leftCharSkipped + chunkOffset;
+ const int endPos = leftChangedIt.value() - leftCharSkipped + chunkOffset;
+ chunkData.changedLeftPositions.insert(startPos, endPos);
+ leftChangedIt++;
+ }
+ while (rightChangedIt != originalData.changedRightPositions.constEnd()) {
+ if (rightChangedIt.key() < chunkData.rightOffset
+ || rightChangedIt.key() > rightCharCounter)
+ break;
+
+ const int startPos = rightChangedIt.key() - rightCharSkipped + chunkOffset;
+ const int endPos = rightChangedIt.value() - rightCharSkipped + chunkOffset;
+ chunkData.changedRightPositions.insert(startPos, endPos);
+ rightChangedIt++;
+ }
+ fileData.chunks.append(chunkData);
+ skippedLines = 0;
+ } else {
+ const int leftChars = originalData.rows.at(i).leftLine.text.count() + 1;
+ const int rightChars = originalData.rows.at(i).rightLine.text.count() + 1;
+ leftCharCounter += leftChars;
+ rightCharCounter += rightChars;
+ leftCharSkipped += leftChars;
+ rightCharSkipped += rightChars;
+ i++;
+ skippedLines++;
+ }
+ }
+
+ if (skippedLines) {
+ ChunkData chunkData;
+ chunkData.leftOffset = leftCharCounter;
+ chunkData.rightOffset = rightCharCounter;
+ chunkData.skippedLinesBefore = skippedLines;
+ fileData.chunks.append(chunkData);
+ }
+
+ return fileData;
+}
+
+void DiffEditorWidget::showDiff()
+{
+ QTime time;
+ time.start();
+ const int verticalValue = m_leftEditor->verticalScrollBar()->value();
+ const int leftHorizontalValue = m_leftEditor->horizontalScrollBar()->value();
+ const int rightHorizontalValue = m_rightEditor->horizontalScrollBar()->value();
+
+ // Ugly hack starts here
+ // When the cursor stays on the line with QChar::LineSeparator
+ // the new inserted text will have the background taken from that line.
+ if (m_leftSafePosHack >= 0) {
+ QTextCursor cursor = m_leftEditor->textCursor();
+ cursor.setPosition(m_leftSafePosHack);
+ m_leftEditor->setTextCursor(cursor);
+ m_leftSafePosHack = -1;
+ }
+ if (m_rightSafePosHack >= 0) {
+ QTextCursor cursor = m_rightEditor->textCursor();
+ cursor.setPosition(m_rightSafePosHack);
+ m_rightEditor->setTextCursor(cursor);
+ m_rightSafePosHack = -1;
+ }
+ // Ugly hack ends here
+
+ m_leftEditor->clear();
+ m_rightEditor->clear();
+ m_leftEditor->clearLineNumbers();
+ m_rightEditor->clearLineNumbers();
+ m_leftEditor->clearSkippedLines();
+ m_rightEditor->clearSkippedLines();
+ int ela1 = time.elapsed();
+
+ QString leftText, rightText;
+ bool leftStartWithNewLine = false;
+ bool rightStartWithNewLine = false;
+ int leftLineNumber = 0;
+ int leftBlockNumber = 0;
+ int rightLineNumber = 0;
+ int rightBlockNumber = 0;
+ int line = 0;
+ int leftPos = 0;
+ int rightPos = 0;
+ for (int i = 0; i < m_contextFileData.chunks.count(); i++) {
+ ChunkData chunkData = m_contextFileData.chunks.at(i);
+ int leftSeparatorCount = 0;
+ int rightSeparatorCount = 0;
+ leftLineNumber += chunkData.skippedLinesBefore;
+ rightLineNumber += chunkData.skippedLinesBefore;
+
+ if (chunkData.skippedLinesBefore) {
+ if (leftStartWithNewLine) {
+ leftText += QLatin1Char('\n');
+ leftStartWithNewLine = false;
+ leftPos++;
+ }
+ leftText += QChar::LineSeparator; // for chunk description
+ leftPos++;
+ m_leftEditor->setSkippedLines(line, chunkData.skippedLinesBefore);
+ if (rightStartWithNewLine) {
+ rightText += QLatin1Char('\n');
+ rightStartWithNewLine = false;
+ rightPos++;
+ }
+ rightText += QChar::LineSeparator; // for chunk description
+ rightPos++;
+ m_rightEditor->setSkippedLines(line, chunkData.skippedLinesBefore);
+
+ line++;
+ }
+
+ for (int j = 0; j < chunkData.rows.count(); j++) {
+ line++;
+ RowData rowData = chunkData.rows.at(j);
+ TextLineData leftLineData = rowData.leftLine;
+ TextLineData rightLineData = rowData.rightLine;
+
+ if (leftLineData.textLineType == TextLineData::TextLine) {
+ if (leftStartWithNewLine) {
+ leftText += QLatin1Char('\n');
+ leftPos++;
+ }
+ if (leftSeparatorCount) {
+ QString separators;
+ separators.fill(QChar::LineSeparator, leftSeparatorCount);
+ leftText += separators;
+ leftSeparatorCount = 0;
+ leftPos += leftSeparatorCount;
+ }
+ if (m_leftSafePosHack < 0)
+ m_leftSafePosHack = leftPos;
+ leftPos += leftLineData.text.count();
+ leftText += leftLineData.text;
+ leftStartWithNewLine = true;
+ leftLineNumber++;
+ m_leftEditor->setLineNumber(leftBlockNumber, QString::number(leftLineNumber));
+ leftBlockNumber++;
+ } else if (leftLineData.textLineType == TextLineData::Separator) {
+ leftSeparatorCount++;
+ }
+
+ if (j == chunkData.rows.count() - 1 && leftSeparatorCount) {
+ if (leftStartWithNewLine) {
+ leftText += QLatin1Char('\n');
+ leftPos++;
+ }
+ QString separators;
+ separators.fill(QChar::LineSeparator, leftSeparatorCount);
+ leftText += separators;
+ leftStartWithNewLine = false;
+ leftPos += leftSeparatorCount;
+ }
+
+ if (rightLineData.textLineType == TextLineData::TextLine) {
+ if (rightStartWithNewLine) {
+ rightText += QLatin1Char('\n');
+ rightPos++;
+ }
+ if (rightSeparatorCount) {
+ QString separators;
+ separators.fill(QChar::LineSeparator, rightSeparatorCount);
+ rightText += separators;
+ rightSeparatorCount = 0;
+ rightPos += rightSeparatorCount;
+ }
+ if (m_rightSafePosHack < 0)
+ m_rightSafePosHack = rightPos;
+ rightPos += leftLineData.text.count();
+ rightText += rightLineData.text;
+ rightStartWithNewLine = true;
+ rightLineNumber++;
+ m_rightEditor->setLineNumber(rightBlockNumber, QString::number(rightLineNumber));
+ rightBlockNumber++;
+ } else if (rightLineData.textLineType == TextLineData::Separator) {
+ rightSeparatorCount++;
+ }
+
+ if (j == chunkData.rows.count() - 1 && rightSeparatorCount) {
+ if (rightStartWithNewLine) {
+ rightText += QLatin1Char('\n');
+ rightPos++;
+ }
+ QString separators;
+ separators.fill(QChar::LineSeparator, rightSeparatorCount);
+ rightText += separators;
+ rightStartWithNewLine = false;
+ rightPos += rightSeparatorCount;
+ }
+ }
+ }
+ int ela2 = time.elapsed();
+
+ m_leftEditor->setPlainText(leftText + QLatin1String("\n"));
+ m_rightEditor->setPlainText(rightText + QLatin1String("\n"));
+ int ela3 = time.elapsed();
+
+ QTextBlock bl;
+ bl = m_leftEditor->document()->lastBlock();
+ bl.setVisible(false);
+ bl.setLineCount(0);
+ bl = m_rightEditor->document()->lastBlock();
+ bl.setVisible(false);
+ bl.setLineCount(0);
+
+ int ela4 = time.elapsed();
+
+ colorDiff(m_contextFileData);
+ int ela5 = time.elapsed();
+
+ m_leftEditor->verticalScrollBar()->setValue(verticalValue);
+ m_rightEditor->verticalScrollBar()->setValue(verticalValue);
+ m_leftEditor->horizontalScrollBar()->setValue(leftHorizontalValue);
+ m_rightEditor->horizontalScrollBar()->setValue(rightHorizontalValue);
+ int ela6 = time.elapsed();
+ qDebug() << ela1 << ela2 << ela3 << ela4 << ela5 << ela6;
+}
+
+QList<QTextEdit::ExtraSelection> DiffEditorWidget::colorPositions(
+ const QTextCharFormat &format,
+ QTextCursor &cursor,
+ const QMap<int, int> &positions) const
+{
+ QList<QTextEdit::ExtraSelection> lineSelections;
+
+ cursor.setPosition(0);
+ QMapIterator<int, int> itPositions(positions);
+ while (itPositions.hasNext()) {
+ itPositions.next();
+
+ cursor.setPosition(itPositions.key());
+ cursor.setPosition(itPositions.value(), QTextCursor::KeepAnchor);
+
+ QTextEdit::ExtraSelection selection;
+ selection.cursor = cursor;
+ selection.format = format;
+ lineSelections.append(selection);
+ }
+ return lineSelections;
+}
+
+void DiffEditorWidget::colorDiff(const FileData &fileData)
+{
+ QTextCharFormat leftLineFormat;
+ leftLineFormat.setBackground(QColor(255, 223, 223));
+ leftLineFormat.setProperty(QTextFormat::FullWidthSelection, true);
+
+ QTextCharFormat leftCharFormat;
+ leftCharFormat.setBackground(QColor(255, 175, 175));
+ leftCharFormat.setProperty(QTextFormat::FullWidthSelection, true);
+
+ QTextCharFormat rightLineFormat;
+ rightLineFormat.setBackground(QColor(223, 255, 223));
+ rightLineFormat.setProperty(QTextFormat::FullWidthSelection, true);
+
+ QTextCharFormat rightCharFormat;
+ rightCharFormat.setBackground(QColor(175, 255, 175));
+ rightCharFormat.setProperty(QTextFormat::FullWidthSelection, true);
+
+ QPalette pal = m_leftEditor->extraArea()->palette();
+ pal.setCurrentColorGroup(QPalette::Active);
+ QTextCharFormat spanLineFormat;
+ spanLineFormat.setBackground(pal.color(QPalette::Background));
+ spanLineFormat.setProperty(QTextFormat::FullWidthSelection, true);
+
+ QTextCharFormat chunkLineFormat;
+ chunkLineFormat.setBackground(QColor(175, 215, 231));
+ chunkLineFormat.setProperty(QTextFormat::FullWidthSelection, true);
+
+ int leftPos = 0;
+ int rightPos = 0;
+ // startPos, endPos
+ QMap<int, int> leftChangedPos;
+ QMap<int, int> rightChangedPos;
+ QMap<int, int> leftSkippedPos;
+ QMap<int, int> rightSkippedPos;
+ QMap<int, int> leftChunkPos;
+ QMap<int, int> rightChunkPos;
+ int leftLastDiffBlockStartPos = 0;
+ int rightLastDiffBlockStartPos = 0;
+ int leftLastSkippedBlockStartPos = 0;
+ int rightLastSkippedBlockStartPos = 0;
+
+ for (int i = 0; i < fileData.chunks.count(); i++) {
+ ChunkData chunkData = fileData.chunks.at(i);
+ if (chunkData.skippedLinesBefore) {
+ leftChunkPos[leftPos] = leftPos + 1;
+ rightChunkPos[rightPos] = rightPos + 1;
+ leftPos++; // for chunk line
+ rightPos++; // for chunk line
+ }
+ leftLastDiffBlockStartPos = leftPos;
+ rightLastDiffBlockStartPos = rightPos;
+ leftLastSkippedBlockStartPos = leftPos;
+ rightLastSkippedBlockStartPos = rightPos;
+
+ for (int j = 0; j < chunkData.rows.count(); j++) {
+ RowData rowData = chunkData.rows.at(j);
+
+ leftPos += rowData.leftLine.text.count() + 1; // +1 for separator or for '\n', each line has one of it
+ rightPos += rowData.rightLine.text.count() + 1; // +1 for separator or for '\n', each line has one of it
+
+ if (!rowData.equal) {
+ if (rowData.leftLine.textLineType == TextLineData::TextLine) {
+ leftChangedPos[leftLastDiffBlockStartPos] = leftPos;
+ leftLastSkippedBlockStartPos = leftPos;
+ } else {
+ leftSkippedPos[leftLastSkippedBlockStartPos] = leftPos;
+ leftLastDiffBlockStartPos = leftPos;
+ }
+ if (rowData.rightLine.textLineType == TextLineData::TextLine) {
+ rightChangedPos[rightLastDiffBlockStartPos] = rightPos;
+ rightLastSkippedBlockStartPos = rightPos;
+ } else {
+ rightSkippedPos[rightLastSkippedBlockStartPos] = rightPos;
+ rightLastDiffBlockStartPos = rightPos;
+ }
+ } else {
+ leftLastDiffBlockStartPos = leftPos;
+ rightLastDiffBlockStartPos = rightPos;
+ leftLastSkippedBlockStartPos = leftPos;
+ rightLastSkippedBlockStartPos = rightPos;
+ }
+ }
+ }
+
+ QTextCursor leftCursor = m_leftEditor->textCursor();
+ QTextCursor rightCursor = m_rightEditor->textCursor();
+
+ QList<QTextEdit::ExtraSelection> leftSelections
+ = colorPositions(leftLineFormat, leftCursor, leftChangedPos);
+ leftSelections
+ += colorPositions(spanLineFormat, leftCursor, leftSkippedPos);
+ leftSelections
+ += colorPositions(chunkLineFormat, leftCursor, leftChunkPos);
+
+ QList<QTextEdit::ExtraSelection> rightSelections
+ = colorPositions(rightLineFormat, rightCursor, rightChangedPos);
+ rightSelections
+ += colorPositions(spanLineFormat, rightCursor, rightSkippedPos);
+ rightSelections
+ += colorPositions(chunkLineFormat, rightCursor, rightChunkPos);
+
+ for (int i = 0; i < fileData.chunks.count(); i++) {
+ ChunkData chunkData = fileData.chunks.at(i);
+ leftSelections
+ += colorPositions(leftCharFormat, leftCursor, chunkData.changedLeftPositions);
+ rightSelections
+ += colorPositions(rightCharFormat, rightCursor, chunkData.changedRightPositions);
+ }
+
+ m_leftEditor->setExtraSelections(BaseTextEditorWidget::OtherSelection,
+ m_leftEditor->extraSelections(BaseTextEditorWidget::OtherSelection)
+ + leftSelections);
+ m_rightEditor->setExtraSelections(BaseTextEditorWidget::OtherSelection,
+ m_rightEditor->extraSelections(BaseTextEditorWidget::OtherSelection)
+ + rightSelections);
+}
+
+void DiffEditorWidget::leftSliderChanged()
+{
+ m_rightEditor->verticalScrollBar()->setValue(m_leftEditor->verticalScrollBar()->value());
+}
+
+void DiffEditorWidget::rightSliderChanged()
+{
+ m_leftEditor->verticalScrollBar()->setValue(m_rightEditor->verticalScrollBar()->value());
+}
+
+
+
+} // namespace DiffEditor
+
+#include "diffeditorwidget.moc"
diff --git a/src/plugins/diffeditor/diffeditorwidget.h b/src/plugins/diffeditor/diffeditorwidget.h
new file mode 100644
index 00000000000..cd12947adb5
--- /dev/null
+++ b/src/plugins/diffeditor/diffeditorwidget.h
@@ -0,0 +1,159 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 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.
+**
+****************************************************************************/
+
+#ifndef DIFFEDITORWIDGET_H
+#define DIFFEDITORWIDGET_H
+
+#include "diffeditor_global.h"
+#include "differ.h"
+
+#include <QTextEdit>
+
+namespace TextEditor {
+class BaseTextEditorWidget;
+class SnippetEditorWidget;
+}
+
+QT_BEGIN_NAMESPACE
+class QPlainTextEdit;
+class QSplitter;
+class QSyntaxHighlighter;
+class QTextCharFormat;
+QT_END_NAMESPACE
+
+
+
+namespace DiffEditor {
+
+class DiffViewEditorWidget;
+
+struct TextLineData {
+ enum TextLineType {
+ TextLine,
+ Separator,
+ Invalid
+ };
+ TextLineData() : textLineType(Invalid) {}
+ TextLineData(const QString &txt) : textLineType(TextLine), text(txt) {}
+ TextLineData(TextLineType t) : textLineType(t) {}
+ TextLineType textLineType;
+ QString text;
+};
+
+struct RowData {
+ RowData() : equal(true) {}
+ RowData(const TextLineData &l)
+ : leftLine(l), rightLine(l), equal(true) {}
+ RowData(const TextLineData &l, const TextLineData &r, bool e = false)
+ : leftLine(l), rightLine(r), equal(e) {}
+ RowData(const QString &txt)
+ : text(txt), equal(true) {}
+ TextLineData leftLine;
+ TextLineData rightLine;
+ QString text; // file of context description
+ bool equal; // true if left and right lines are equal, taking whitespaces into account (or both invalid)
+};
+
+struct ChunkData {
+ ChunkData() : skippedLinesBefore(0), leftOffset(0), rightOffset(0) {}
+ QList<RowData> rows;
+ int skippedLinesBefore; // info for text
+ int leftOffset;
+ int rightOffset;
+ // <absolute position in the file, absolute position in the file>
+ QMap<int, int> changedLeftPositions; // counting from the beginning of the chunk
+ QMap<int, int> changedRightPositions; // counting from the beginning of the chunk
+ QString text;
+};
+
+struct FileData {
+ FileData() {}
+ FileData(const ChunkData &chunkData) { chunks.append(chunkData); }
+ QList<ChunkData> chunks;
+ QList<int> chunkOffset;
+ QString text;
+};
+
+struct DiffData {
+ QList<FileData> files;
+ QString text;
+};
+
+class DIFFEDITOR_EXPORT DiffEditorWidget : public QWidget
+{
+ Q_OBJECT
+public:
+ DiffEditorWidget(QWidget *parent = 0);
+ ~DiffEditorWidget();
+
+ void setDiff(const QString &leftText, const QString &rightText);
+ void setDiff(const QList<Diff> &diffList);
+ QTextCodec *codec() const;
+
+public slots:
+ void setContextLinesNumber(int lines);
+ void setIgnoreWhitespaces(bool ignore);
+
+protected:
+ TextEditor::SnippetEditorWidget *leftEditor() const;
+ TextEditor::SnippetEditorWidget *rightEditor() const;
+
+private slots:
+ void leftSliderChanged();
+ void rightSliderChanged();
+
+private:
+ bool isWhitespace(const QChar &c) const;
+ bool isWhitespace(const Diff &diff) const;
+ bool isEqual(const QList<Diff> &diffList, int diffNumber) const;
+ QList<QTextEdit::ExtraSelection> colorPositions(const QTextCharFormat &format,
+ QTextCursor &cursor,
+ const QMap<int, int> &positions) const;
+ void colorDiff(const FileData &fileData);
+ ChunkData calculateOriginalData(const QList<Diff> &diffList) const;
+ FileData calculateContextData(const ChunkData &originalData) const;
+ void showDiff();
+
+ DiffViewEditorWidget *m_leftEditor;
+ DiffViewEditorWidget *m_rightEditor;
+ QSplitter *m_splitter;
+
+ QList<Diff> m_diffList;
+ int m_contextLinesNumber;
+ bool m_ignoreWhitespaces;
+
+ ChunkData m_originalChunkData;
+ FileData m_contextFileData;
+ int m_leftSafePosHack;
+ int m_rightSafePosHack;
+};
+
+} // namespace DiffEditor
+
+#endif // DIFFEDITORWIDGET_H
diff --git a/src/plugins/diffeditor/differ.cpp b/src/plugins/diffeditor/differ.cpp
new file mode 100644
index 00000000000..2681059ffbe
--- /dev/null
+++ b/src/plugins/diffeditor/differ.cpp
@@ -0,0 +1,499 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 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.
+**
+****************************************************************************/
+
+#include "differ.h"
+
+#include <QList>
+#include <QStringList>
+#include <QMap>
+
+namespace DiffEditor {
+
+Diff::Diff() :
+ command(Diff::Equal)
+{
+}
+
+Diff::Diff(Command com, const QString &txt) :
+ command(com),
+ text(txt)
+{
+}
+
+Differ::Differ()
+ : m_diffMode(Differ::LineMode),
+ m_currentDiffMode(Differ::LineMode)
+{
+
+}
+
+QList<Diff> Differ::diff(const QString &text1, const QString &text2)
+{
+ m_currentDiffMode = m_diffMode;
+ return merge(preprocess1AndDiff(text1, text2));
+}
+
+void Differ::setDiffMode(Differ::DiffMode mode)
+{
+ m_diffMode = mode;
+}
+
+bool Differ::diffMode() const
+{
+ return m_diffMode;
+}
+
+QList<Diff> Differ::preprocess1AndDiff(const QString &text1, const QString &text2)
+{
+ if (text1.isNull() && text2.isNull())
+ return QList<Diff>();
+
+ if (text1 == text2) {
+ QList<Diff> diffList;
+ if (!text1.isEmpty())
+ diffList.append(Diff(Diff::Equal, text1));
+ return diffList;
+ }
+
+ QString newText1 = text1;
+ QString newText2 = text2;
+ QString prefix;
+ QString suffix;
+ const int prefixCount = commonPrefix(text1, text2);
+ if (prefixCount) {
+ prefix = text1.left(prefixCount);
+ newText1 = text1.mid(prefixCount);
+ newText2 = text2.mid(prefixCount);
+ }
+ const int suffixCount = commonSuffix(newText1, newText2);
+ if (suffixCount) {
+ suffix = newText1.right(suffixCount);
+ newText1 = newText1.left(newText1.count() - suffixCount);
+ newText2 = newText2.left(newText2.count() - suffixCount);
+ }
+ QList<Diff> diffList = preprocess2AndDiff(newText1, newText2);
+ if (prefixCount)
+ diffList.prepend(Diff(Diff::Equal, prefix));
+ if (suffixCount)
+ diffList.append(Diff(Diff::Equal, suffix));
+ return diffList;
+}
+
+QList<Diff> Differ::preprocess2AndDiff(const QString &text1, const QString &text2)
+{
+ QList<Diff> diffList;
+
+ if (text1.isEmpty()) {
+ diffList.append(Diff(Diff::Insert, text2));
+ return diffList;
+ }
+
+ if (text2.isEmpty()) {
+ diffList.append(Diff(Diff::Delete, text1));
+ return diffList;
+ }
+
+ if (text1.count() != text2.count())
+ {
+ const QString longtext = text1.count() > text2.count() ? text1 : text2;
+ const QString shorttext = text1.count() > text2.count() ? text2 : text1;
+ const int i = longtext.indexOf(shorttext);
+ if (i != -1) {
+ const Diff::Command command = (text1.count() > text2.count()) ? Diff::Delete : Diff::Insert;
+ diffList.append(Diff(command, longtext.left(i)));
+ diffList.append(Diff(Diff::Equal, shorttext));
+ diffList.append(Diff(command, longtext.mid(i + shorttext.count())));
+ return diffList;
+ }
+
+ if (shorttext.count() == 1) {
+ diffList.append(Diff(Diff::Delete, text1));
+ diffList.append(Diff(Diff::Insert, text2));
+ return diffList;
+ }
+ }
+
+ if (m_currentDiffMode != Differ::CharMode && text1.count() > 80 && text2.count() > 80)
+ return diffNonCharMode(text1, text2);
+
+ return diffMyers(text1, text2);
+}
+
+QList<Diff> Differ::diffMyers(const QString &text1, const QString &text2)
+{
+ const int n = text1.count();
+ const int m = text2.count();
+ const bool odd = (n + m) % 2;
+ const int D = odd ? (n + m) / 2 + 1 : (n + m) / 2;
+ const int delta = n - m;
+ const int vShift = D;
+ int *forwardV = new int[2 * D + 1]; // free me
+ int *reverseV = new int[2 * D + 1]; // free me
+ for (int i = 0; i <= 2 * D; i++) {
+ forwardV[i] = -1;
+ reverseV[i] = -1;
+ }
+ forwardV[vShift + 1] = 0;
+ reverseV[vShift + 1] = 0;
+ int kMinForward = -D;
+ int kMaxForward = D;
+ int kMinReverse = -D;
+ int kMaxReverse = D;
+ for (int d = 0; d <= D; d++) {
+ // going forward
+ for (int k = qMax(-d, kMinForward + qAbs(d + kMinForward) % 2);
+ k <= qMin(d, kMaxForward - qAbs(d + kMaxForward) % 2);
+ k = k + 2) {
+ int x;
+ if (k == -d || (k < d && forwardV[k + vShift - 1] < forwardV[k + vShift + 1])) {
+ x = forwardV[k + vShift + 1]; // copy vertically from diagonal k + 1, y increases, y may exceed the graph
+ } else {
+ x = forwardV[k + vShift - 1] + 1; // copy horizontally from diagonal k - 1, x increases, x may exceed the graph
+ }
+ int y = x - k;
+
+ if (x > n) {
+ kMaxForward = k - 1; // we are beyond the graph (right border), don't check diagonals >= current k anymore
+ } else if (y > m) {
+ kMinForward = k + 1; // we are beyond the graph (bottom border), don't check diagonals <= current k anymore
+ } else {
+ // find snake
+ while (x < n && y < m) {
+ if (text1.at(x) != text2.at(y))
+ break;
+ x++;
+ y++;
+ }
+ forwardV[k + vShift] = x;
+ if (odd) { // check if overlap
+ if (k >= delta - (d - 1) && k <= delta + (d - 1)) {
+ if (n - reverseV[delta - k + vShift] <= x) {
+ delete [] forwardV;
+ delete [] reverseV;
+ return diffMyersSplit(text1, x, text2, y);
+ }
+ }
+ }
+ }
+ }
+ // in reverse direction
+ for (int k = qMax(-d, kMinReverse + qAbs(d + kMinReverse) % 2);
+ k <= qMin(d, kMaxReverse - qAbs(d + kMaxReverse) % 2);
+ k = k + 2) {
+ int x;
+ if (k == -d || (k < d && reverseV[k + vShift - 1] < reverseV[k + vShift + 1])) {
+ x = reverseV[k + vShift + 1];
+ } else {
+ x = reverseV[k + vShift - 1] + 1;
+ }
+ int y = x - k;
+
+ if (x > n) {
+ kMaxReverse = k - 1; // we are beyond the graph (right border), don't check diagonals >= current k anymore
+ } else if (y > m) {
+ kMinReverse = k + 1; // we are beyond the graph (bottom border), don't check diagonals <= current k anymore
+ } else {
+ // find snake
+ while (x < n && y < m) {
+ if (text1.at(n - x - 1) != text2.at(m - y - 1))
+ break;
+ x++;
+ y++;
+ }
+ reverseV[k + vShift] = x;
+ if (!odd) { // check if overlap
+ if (k >= delta - d && k <= delta + d) {
+ if (n - forwardV[delta - k + vShift] <= x) {
+ delete [] forwardV;
+ delete [] reverseV;
+ return diffMyersSplit(text1, n - x, text2, m - x + k);
+ }
+ }
+ }
+ }
+ }
+ }
+ delete [] forwardV;
+ delete [] reverseV;
+
+ // Completely different
+ QList<Diff> diffList;
+ diffList.append(Diff(Diff::Delete, text1));
+ diffList.append(Diff(Diff::Insert, text2));
+ return diffList;
+}
+
+QList<Diff> Differ::diffMyersSplit(
+ const QString &text1, int x,
+ const QString &text2, int y)
+{
+ const QString text11 = text1.left(x);
+ const QString text12 = text1.mid(x);
+ const QString text21 = text2.left(y);
+ const QString text22 = text2.mid(y);
+
+ QList<Diff> diffList1 = preprocess1AndDiff(text11, text21);
+ QList<Diff> diffList2 = preprocess1AndDiff(text12, text22);
+ return diffList1 + diffList2;
+}
+
+QList<Diff> Differ::diffNonCharMode(const QString text1, const QString text2)
+{
+ QString encodedText1;
+ QString encodedText2;
+ QStringList subtexts = encode(text1, text2, &encodedText1, &encodedText2);
+
+ DiffMode diffMode = m_currentDiffMode;
+ m_currentDiffMode = CharMode;
+
+ // Each different subtext is a separate symbol
+ // process these symbols as text with bigger alphabet
+ QList<Diff> diffList = preprocess1AndDiff(encodedText1, encodedText2);
+
+ diffList = decode(diffList, subtexts);
+
+ QString lastDelete;
+ QString lastInsert;
+ QList<Diff> newDiffList;
+ for (int i = 0; i <= diffList.count(); i++) {
+ const Diff diffItem = i < diffList.count()
+ ? diffList.at(i)
+ : Diff(Diff::Equal, QLatin1String("")); // dummy, ensure we process to the end even when diffList doesn't end with equality
+ if (diffItem.command == Diff::Delete) {
+ lastDelete += diffItem.text;
+ } else if (diffItem.command == Diff::Insert) {
+ lastInsert += diffItem.text;
+ } else { // Diff::Equal
+ if (lastDelete.count() || lastInsert.count()) {
+ // Rediff here on char basis
+ newDiffList += preprocess1AndDiff(lastDelete, lastInsert);
+
+ lastDelete = QString();
+ lastInsert = QString();
+ }
+ newDiffList.append(diffItem);
+ }
+ }
+
+ m_currentDiffMode = diffMode;
+ return newDiffList;
+}
+
+QStringList Differ::encode(const QString &text1,
+ const QString &text2,
+ QString *encodedText1,
+ QString *encodedText2)
+{
+ QStringList lines;
+ lines.append(QLatin1String("")); // don't use code: 0
+ QMap<QString, int> lineToCode;
+
+ *encodedText1 = encode(text1, &lines, &lineToCode);
+ *encodedText2 = encode(text2, &lines, &lineToCode);
+
+ return lines;
+}
+
+int Differ::findSubtextEnd(const QString &text,
+ int subtextStart)
+{
+ if (m_currentDiffMode == Differ::LineMode) {
+ int subtextEnd = text.indexOf(QLatin1Char('\n'), subtextStart);
+ if (subtextEnd == -1) {
+ subtextEnd = text.count() - 1;
+ }
+ return ++subtextEnd;
+ } else if (m_currentDiffMode == Differ::WordMode) {
+ if (!text.at(subtextStart).isLetter())
+ return subtextStart + 1;
+ int i = subtextStart + 1;
+
+ const int count = text.count();
+ while (i < count && text.at(i).isLetter())
+ i++;
+ return i;
+ }
+ return subtextStart + 1; // CharMode
+}
+
+QString Differ::encode(const QString &text,
+ QStringList *lines,
+ QMap<QString, int> *lineToCode)
+{
+ int subtextStart = 0;
+ int subtextEnd = -1;
+ QString codes;
+ while (subtextEnd < text.count()) {
+ subtextEnd = findSubtextEnd(text, subtextStart);
+ const QString line = text.mid(subtextStart, subtextEnd - subtextStart);
+ subtextStart = subtextEnd;
+
+ if (lineToCode->contains(line)) {
+ int code = lineToCode->value(line);
+ codes += QChar(static_cast<ushort>(code));
+ } else {
+ lines->append(line);
+ lineToCode->insert(line, lines->count() - 1);
+ codes += QChar(static_cast<ushort>(lines->count() - 1));
+ }
+ }
+ return codes;
+}
+
+QList<Diff> Differ::decode(const QList<Diff> &diffList,
+ const QStringList &lines)
+{
+ QList<Diff> newDiffList;
+ for (int i = 0; i < diffList.count(); i++) {
+ Diff diff = diffList.at(i);
+ QString text;
+ for (int j = 0; j < diff.text.count(); j++) {
+ const int idx = static_cast<ushort>(diff.text.at(j).unicode());
+ text += lines.value(idx);
+ }
+ diff.text = text;
+ newDiffList.append(diff);
+ }
+ return newDiffList;
+}
+
+QList<Diff> Differ::merge(const QList<Diff> &diffList)
+{
+ QString lastDelete;
+ QString lastInsert;
+ QList<Diff> newDiffList;
+ for (int i = 0; i <= diffList.count(); i++) {
+ const Diff diff = i < diffList.count()
+ ? diffList.at(i)
+ : Diff(Diff::Equal, QString()); // dummy, ensure we process to the end even when diffList doesn't end with equality
+ if (diff.command == Diff::Delete) {
+ lastDelete += diff.text;
+ } else if (diff.command == Diff::Insert) {
+ lastInsert += diff.text;
+ } else { // Diff::Equal
+ if (lastDelete.count() || lastInsert.count()) {
+ // common prefix and suffix?
+
+ if (lastDelete.count())
+ newDiffList.append(Diff(Diff::Delete, lastDelete));
+ if (lastInsert.count())
+ newDiffList.append(Diff(Diff::Insert, lastInsert));
+ if (diff.text.count())
+ newDiffList.append(diff);
+ lastDelete = QString();
+ lastInsert = QString();
+ } else { // join with last equal diff
+ if (newDiffList.count()
+ && newDiffList.last().command == Diff::Equal) {
+ newDiffList.last().text += diff.text;
+ } else {
+ if (diff.text.count())
+ newDiffList.append(diff);
+ }
+ }
+ }
+ }
+
+ QList<Diff> squashedDiffList = squashEqualities(newDiffList);
+ if (squashedDiffList.count() != newDiffList.count())
+ return merge(squashedDiffList);
+
+ return squashedDiffList;
+}
+
+QList<Diff> Differ::squashEqualities(const QList<Diff> &diffList)
+{
+ if (diffList.count() <= 3) // we need at least 3 items
+ return diffList;
+ QList<Diff> squashedDiffList;
+ Diff prevDiff = diffList.at(0);
+ Diff thisDiff = diffList.at(1);
+ Diff nextDiff = diffList.at(2);
+ int i = 2;
+ while (i < diffList.count()) {
+ if (prevDiff.command == Diff::Equal
+ && nextDiff.command == Diff::Equal) {
+ if (thisDiff.text.endsWith(prevDiff.text)) {
+ thisDiff.text = prevDiff.text
+ + thisDiff.text.left(thisDiff.text.count()
+ - prevDiff.text.count());
+ nextDiff.text = prevDiff.text + nextDiff.text;
+ } else if (thisDiff.text.startsWith(nextDiff.text)) {
+ prevDiff.text += nextDiff.text;
+ thisDiff.text = thisDiff.text.mid(nextDiff.text.count())
+ + nextDiff.text;
+ i++;
+ if (i < diffList.count())
+ nextDiff = diffList.at(i);
+ squashedDiffList.append(prevDiff);
+ } else {
+ squashedDiffList.append(prevDiff);
+ }
+ } else {
+ squashedDiffList.append(prevDiff);
+ }
+ prevDiff = thisDiff;
+ thisDiff = nextDiff;
+ i++;
+ if (i < diffList.count())
+ nextDiff = diffList.at(i);
+ }
+ squashedDiffList.append(prevDiff);
+ if (i == diffList.count())
+ squashedDiffList.append(thisDiff);
+ return squashedDiffList;
+}
+
+int Differ::commonPrefix(const QString &text1, const QString &text2) const
+{
+ int i = 0;
+ const int minCount = qMin(text1.count(), text2.count());
+ while (i < minCount) {
+ if (text1.at(i) != text2.at(i))
+ break;
+ i++;
+ }
+ return i;
+}
+
+int Differ::commonSuffix(const QString &text1, const QString &text2) const
+{
+ int i = 0;
+ const int text1Count = text1.count();
+ const int text2Count = text2.count();
+ const int minCount = qMin(text1.count(), text2.count());
+ while (i < minCount) {
+ if (text1.at(text1Count - i - 1) != text2.at(text2Count - i - 1))
+ break;
+ i++;
+ }
+ return i;
+}
+
+} // namespace DiffEditor
diff --git a/src/plugins/diffeditor/differ.h b/src/plugins/diffeditor/differ.h
new file mode 100644
index 00000000000..8c334cb0ed3
--- /dev/null
+++ b/src/plugins/diffeditor/differ.h
@@ -0,0 +1,98 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 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.
+**
+****************************************************************************/
+
+#ifndef DIFFER_H
+#define DIFFER_H
+
+#include "diffeditor_global.h"
+#include <QString>
+
+QT_BEGIN_NAMESPACE
+template <class K, class T>
+class QMap;
+QT_END_NAMESPACE
+
+namespace DiffEditor {
+
+class DIFFEDITOR_EXPORT Diff
+{
+public:
+ enum Command {
+ Delete,
+ Insert,
+ Equal
+ };
+ Command command;
+ QString text;
+ Diff(Command com, const QString &txt);
+ Diff();
+};
+
+class DIFFEDITOR_EXPORT Differ
+{
+public:
+ enum DiffMode
+ {
+ CharMode,
+ WordMode,
+ LineMode
+ };
+ Differ();
+ QList<Diff> diff(const QString &text1, const QString &text2);
+ void setDiffMode(DiffMode mode);
+ bool diffMode() const;
+private:
+ QList<Diff> preprocess1AndDiff(const QString &text1, const QString &text2);
+ QList<Diff> preprocess2AndDiff(const QString &text1, const QString &text2);
+ QList<Diff> diffMyers(const QString &text1, const QString &text2);
+ QList<Diff> diffMyersSplit(const QString &text1, int x,
+ const QString &text2, int y);
+ QList<Diff> merge(const QList<Diff> &diffList);
+ QList<Diff> squashEqualities(const QList<Diff> &diffList);
+ QList<Diff> diffNonCharMode(const QString text1, const QString text2);
+ QStringList encode(const QString &text1,
+ const QString &text2,
+ QString *encodedText1,
+ QString *encodedText2);
+ QString encode(const QString &text,
+ QStringList *lines,
+ QMap<QString, int> *lineToCode);
+ QList<Diff> decode(const QList<Diff> &diffList,
+ const QStringList &lines);
+ int findSubtextEnd(const QString &text,
+ int subTextStart);
+ int commonPrefix(const QString &text1, const QString &text2) const;
+ int commonSuffix(const QString &text1, const QString &text2) const;
+ DiffMode m_diffMode;
+ DiffMode m_currentDiffMode;
+};
+
+} // namespace DiffEditor
+
+#endif // DIFF_H
diff --git a/src/plugins/find/searchresulttreeitems.cpp b/src/plugins/find/searchresulttreeitems.cpp
index 1503fa71e7b..b5e9ac8b5a2 100644
--- a/src/plugins/find/searchresulttreeitems.cpp
+++ b/src/plugins/find/searchresulttreeitems.cpp
@@ -36,8 +36,8 @@ SearchResultTreeItem::SearchResultTreeItem(const Find::SearchResultItem &item,
: item(item),
m_parent(parent),
m_isUserCheckable(false),
- m_checkState(Qt::Unchecked),
- m_isGenerated(false)
+ m_isGenerated(false),
+ m_checkState(Qt::Unchecked)
{
}
diff --git a/src/plugins/find/searchresulttreeitems.h b/src/plugins/find/searchresulttreeitems.h
index d7e9f1726e1..dce537be0a2 100644
--- a/src/plugins/find/searchresulttreeitems.h
+++ b/src/plugins/find/searchresulttreeitems.h
@@ -74,8 +74,8 @@ private:
SearchResultTreeItem *m_parent;
QList<SearchResultTreeItem *> m_children;
bool m_isUserCheckable;
- Qt::CheckState m_checkState;
bool m_isGenerated;
+ Qt::CheckState m_checkState;
};
} // namespace Internal
diff --git a/src/plugins/genericprojectmanager/genericproject.cpp b/src/plugins/genericprojectmanager/genericproject.cpp
index a1853024de9..91ad80d74cb 100644
--- a/src/plugins/genericprojectmanager/genericproject.cpp
+++ b/src/plugins/genericprojectmanager/genericproject.cpp
@@ -59,6 +59,27 @@ using namespace ProjectExplorer;
namespace GenericProjectManager {
namespace Internal {
+static QList<Core::MimeType> cppMimeTypes()
+{
+ QStringList mimeTypesNames;
+ mimeTypesNames << QLatin1String(CppTools::Constants::C_SOURCE_MIMETYPE)
+ << QLatin1String(CppTools::Constants::C_HEADER_MIMETYPE)
+ << QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE)
+ << QLatin1String(CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE)
+ << QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE);
+
+ QList<Core::MimeType> mimeTypes;
+
+ const Core::MimeDatabase *mimeDatabase = Core::ICore::mimeDatabase();
+ foreach (const QString &typeName, mimeTypesNames) {
+ Core::MimeType mimeType = mimeDatabase->findByType(typeName);
+ if (!mimeType.isNull())
+ mimeTypes.append(mimeType);
+ }
+
+ return mimeTypes;
+}
+
////////////////////////////////////////////////////////////////////////////////////
//
// GenericProject
@@ -70,7 +91,7 @@ GenericProject::GenericProject(Manager *manager, const QString &fileName)
m_fileName(fileName)
{
setProjectContext(Context(GenericProjectManager::Constants::PROJECTCONTEXT));
- setProjectLanguage(Context(ProjectExplorer::Constants::LANG_CXX));
+ setProjectLanguages(Context(ProjectExplorer::Constants::LANG_CXX));
QFileInfo fileInfo(m_fileName);
QDir dir = fileInfo.dir();
@@ -269,18 +290,17 @@ void GenericProject::refresh(RefreshOptions options)
// ### add _defines.
// Add any C/C++ files to be parsed
- QStringList cppMimeTypes;
- cppMimeTypes << QLatin1String(CppTools::Constants::C_SOURCE_MIMETYPE)
- << QLatin1String(CppTools::Constants::C_HEADER_MIMETYPE)
- << QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE)
- << QLatin1String(CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE)
- << QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE);
-
- const Core::MimeDatabase *mimeDatabase = Core::ICore::mimeDatabase();
+ const QList<Core::MimeType> mimeTypes = cppMimeTypes();
+ QFileInfo fileInfo;
+
foreach (const QString &file, files()) {
- const Core::MimeType mimeType = mimeDatabase->findByFile(QFileInfo(file));
- if (cppMimeTypes.contains(mimeType.type()))
- part->sourceFiles += file;
+ fileInfo.setFile(file);
+ foreach (const Core::MimeType &mimeType, mimeTypes) {
+ if (mimeType.matchesFile(fileInfo)) {
+ part->sourceFiles += file;
+ break;
+ }
+ }
}
QStringList filesToUpdate;
diff --git a/src/plugins/genericprojectmanager/selectablefilesmodel.h b/src/plugins/genericprojectmanager/selectablefilesmodel.h
index fccf9d8d736..7d1fafb126b 100644
--- a/src/plugins/genericprojectmanager/selectablefilesmodel.h
+++ b/src/plugins/genericprojectmanager/selectablefilesmodel.h
@@ -46,12 +46,12 @@ struct Tree
{
QString name;
Qt::CheckState checked;
+ bool isDir;
QList<Tree *> childDirectories;
QList<Tree *> files;
QList<Tree *> visibleFiles;
QIcon icon;
QString fullPath;
- bool isDir;
Tree *parent;
};
diff --git a/src/plugins/git/TODO.txt b/src/plugins/git/TODO.txt
index 68a03a43ba7..6f17e577ad0 100644
--- a/src/plugins/git/TODO.txt
+++ b/src/plugins/git/TODO.txt
@@ -1,22 +1,13 @@
-- Make texts translatable
-- Do not use QErrorMessage, Creator standard error instead?
Commands:
- - P2:
- - branch [list, create, delete]
- - checkout [with/without creation]
- - combine both above to a single dialog?
- P3:
- - stash [creating, listing, applying]
- allow to use external viewer instead of greenhouse one
as these have more functionality usually
GUI:
- Better diff view
- - Commit view View (reuse diff view?)
- Commit action View
- Able to add further files to commit (list of modified/untracked files)
- use List for Log (and allow 10+ entries)
- - Have commits clickable for 'git show'
Backend:
- Don't use forked processes, instead find a library connection like libgit-thin
- http://repo.or.cz/w/git/libgit-gsoc.git
diff --git a/src/plugins/git/clonewizardpage.cpp b/src/plugins/git/clonewizardpage.cpp
index 40cf166b9d4..30e3f380d30 100644
--- a/src/plugins/git/clonewizardpage.cpp
+++ b/src/plugins/git/clonewizardpage.cpp
@@ -46,15 +46,12 @@ struct CloneWizardPagePrivate {
const QString mainLinePostfix;
const QString gitPostFix;
const QString protocolDelimiter;
- QCheckBox *deleteMasterCheckBox;
- QString headBranch;
};
CloneWizardPagePrivate::CloneWizardPagePrivate() :
mainLinePostfix(QLatin1String("/mainline.git")),
gitPostFix(QLatin1String(".git")),
- protocolDelimiter(QLatin1String("://")),
- deleteMasterCheckBox(0)
+ protocolDelimiter(QLatin1String("://"))
{
}
@@ -74,10 +71,6 @@ CloneWizardPage::CloneWizardPage(QWidget *parent) :
setTitle(tr("Location"));
setSubTitle(tr("Specify repository URL, checkout directory and path."));
setRepositoryLabel(tr("Clone URL:"));
- d->deleteMasterCheckBox = new QCheckBox(tr("Delete master branch"));
- d->deleteMasterCheckBox->setToolTip(tr("Delete the master branch after checking out the repository."));
- addLocalControl(d->deleteMasterCheckBox);
- setDeleteMasterBranch(true);
}
CloneWizardPage::~CloneWizardPage()
@@ -85,16 +78,6 @@ CloneWizardPage::~CloneWizardPage()
delete d;
}
-bool CloneWizardPage::deleteMasterBranch() const
-{
- return d->deleteMasterCheckBox->isChecked();
-}
-
-void CloneWizardPage::setDeleteMasterBranch(bool v)
-{
- d->deleteMasterCheckBox->setChecked(v);
-}
-
QString CloneWizardPage::directoryFromRepository(const QString &urlIn) const
{
/* Try to figure out a good directory name from something like:
@@ -143,34 +126,13 @@ QSharedPointer<VcsBase::AbstractCheckoutJob> CloneWizardPage::createCheckoutJob(
VcsBase::ProcessCheckoutJob *job = new VcsBase::ProcessCheckoutJob;
const QProcessEnvironment env = client->processEnvironment();
-
- // 1) Basic checkout step
- QStringList args;
- args << QLatin1String("clone") << repository() << checkoutDir;
- job->addStep(binary, args, workingDirectory, env);
const QString checkoutBranch = branch();
- // 2) Checkout branch, change to checkoutDir
- if (!checkoutBranch.isEmpty() && checkoutBranch != d->headBranch) {
- // Create branch
- if (!d->urlIsLocal(repository())) {
- args.clear();
- args << QLatin1String("branch") << QLatin1String("--track")
- << checkoutBranch << (QLatin1String("origin/") + checkoutBranch);
- job->addStep(binary, args, *checkoutPath, env);
- }
- // Checkout branch
- args.clear();
- args << QLatin1String("checkout") << checkoutBranch;
- job->addStep(binary, args, *checkoutPath, env);
- if (deleteMasterBranch() && d->headBranch != QLatin1String("<detached HEAD>")) {
- // Make sure we only have the requested branch:
- args.clear();
- args << QLatin1String("branch") << QLatin1String("-D") << d->headBranch;
- }
- job->addStep(binary, args, *checkoutPath, env);
- }
-
+ QStringList args(QLatin1String("clone"));
+ if (!checkoutBranch.isEmpty())
+ args << QLatin1String("--branch") << checkoutBranch;
+ args << repository() << checkoutDir;
+ job->addStep(binary, args, workingDirectory, env);
return QSharedPointer<VcsBase::AbstractCheckoutJob>(job);
}
@@ -178,15 +140,12 @@ QStringList CloneWizardPage::branches(const QString &repository, int *current)
{
// Run git on remote repository if an URL was specified.
*current = -1;
- d->headBranch.clear();
if (repository.isEmpty())
return QStringList();
const QStringList branches = Internal::GitPlugin::instance()->gitClient()->synchronousRepositoryBranches(repository);
- if (!branches.isEmpty()) {
+ if (!branches.isEmpty())
*current = 0; // default branch is always returned first!
- d->headBranch = branches.at(0);
- }
return branches;
}
diff --git a/src/plugins/git/clonewizardpage.h b/src/plugins/git/clonewizardpage.h
index f7ad3a653bb..1b7eb1ef2b8 100644
--- a/src/plugins/git/clonewizardpage.h
+++ b/src/plugins/git/clonewizardpage.h
@@ -46,7 +46,6 @@ struct CloneWizardPagePrivate;
class CloneWizardPage : public VcsBase::BaseCheckoutWizardPage
{
Q_OBJECT
- Q_PROPERTY(bool deleteMasterBranch READ deleteMasterBranch WRITE setDeleteMasterBranch)
public:
explicit CloneWizardPage(QWidget *parent = 0);
~CloneWizardPage();
@@ -57,9 +56,6 @@ protected:
QString directoryFromRepository(const QString &r) const;
QStringList branches(const QString &repository, int *current);
- bool deleteMasterBranch() const;
- void setDeleteMasterBranch(bool v);
-
private:
CloneWizardPagePrivate *d;
};
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index f67075cf4f6..eb1bdff345b 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -365,31 +365,25 @@ const char *GitClient::decorateOption = "--decorate";
QString GitClient::findRepositoryForDirectory(const QString &dir)
{
- if (gitVersion() >= 0x010700) {
- // Find a directory to run git in:
- const QString root = QDir::rootPath();
- const QString home = QDir::homePath();
-
- QDir directory(dir);
- do {
- const QString absDirPath = directory.absolutePath();
- if (absDirPath == root || absDirPath == home)
- break;
+ // Find a directory to run git in:
+ const QString root = QDir::rootPath();
+ const QString home = QDir::homePath();
+
+ QDir directory(dir);
+ do {
+ const QString absDirPath = directory.absolutePath();
+ if (absDirPath == root || absDirPath == home)
+ break;
- if (directory.exists())
- break;
- } while (directory.cdUp());
+ if (directory.exists())
+ break;
+ } while (directory.cdUp());
- QByteArray outputText;
- QStringList arguments;
- arguments << QLatin1String("rev-parse") << QLatin1String("--show-toplevel");
- fullySynchronousGit(directory.absolutePath(), arguments, &outputText, 0, false);
- return QString::fromLocal8Bit(outputText.trimmed());
- } else {
- // Check for ".git/config"
- const QString checkFile = QLatin1String(GIT_DIRECTORY) + QLatin1String("/config");
- return VcsBase::VcsBasePlugin::findRepositoryForDirectory(dir, checkFile);
- }
+ QByteArray outputText;
+ QStringList arguments;
+ arguments << QLatin1String("rev-parse") << QLatin1String("--show-toplevel");
+ fullySynchronousGit(directory.absolutePath(), arguments, &outputText, 0, false);
+ return QString::fromLocal8Bit(outputText.trimmed());
}
QString GitClient::findGitDirForRepository(const QString &repositoryDir)
@@ -1841,9 +1835,7 @@ bool GitClient::getCommitData(const QString &workingDirectory,
if (amend) {
// Amend: get last commit data as "SHA1<tab>author<tab>email<tab>message".
QStringList args(QLatin1String("log"));
- const QString msgFormat = QLatin1String((gitVersion() > 0x010701) ? "%B" : "%s%n%n%b");
- const QString format = QLatin1String("%h\t%an\t%ae\t") + msgFormat;
- args << QLatin1String("--max-count=1") << QLatin1String("--pretty=format:") + format;
+ args << QLatin1String("--max-count=1") << QLatin1String("--pretty=format:%h\t%an\t%ae\t%B");
QTextCodec *codec = QTextCodec::codecForName(commitData->commitEncoding.toLocal8Bit());
const Utils::SynchronousProcessResponse sp = synchronousGit(repoDirectory, args, 0, codec);
if (sp.result != Utils::SynchronousProcessResponse::Finished) {
@@ -1914,7 +1906,7 @@ bool GitClient::addAndCommit(const QString &repositoryDirectory,
filesToAdd.append(file);
if ((state & StagedFile) && !checked) {
- if (state & (AddedFile | DeletedFile)) {
+ if (state & (ModifiedFile | AddedFile | DeletedFile)) {
filesToReset.append(file);
} else if (state & (RenamedFile | CopiedFile)) {
const QString newFile = file.mid(file.indexOf(renameSeparator) + renameSeparator.count());
diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h
index 66be621f2a2..58adc7d77b1 100644
--- a/src/plugins/git/gitclient.h
+++ b/src/plugins/git/gitclient.h
@@ -42,7 +42,6 @@
QT_BEGIN_NAMESPACE
class QCheckBox;
-class QErrorMessage;
class QSignalMapper;
class QDebug;
class QProcessEnvironment;
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index 54356e6e8b7..f599e613f83 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -44,6 +44,7 @@
#include "settingspage.h"
#include "resetdialog.h"
#include "mergetool.h"
+#include "gitutils.h"
#include "gerrit/gerritplugin.h"
@@ -55,6 +56,7 @@
#include <coreplugin/actionmanager/actioncontainer.h>
#include <coreplugin/actionmanager/command.h>
#include <coreplugin/id.h>
+#include <coreplugin/infobar.h>
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/editormanager/ieditor.h>
#include <coreplugin/documentmanager.h>
@@ -81,6 +83,8 @@
#include <QMenu>
#include <QMessageBox>
+static const unsigned minimumRequiredVersion = 0x010702;
+
static const VcsBase::VcsBaseEditorParameters editorParameters[] = {
{
VcsBase::RegularCommandOutput,
@@ -848,6 +852,26 @@ void GitPlugin::startCommit(bool amend)
openSubmitEditor(m_commitMessageFileName, data, amend);
}
+void GitPlugin::updateVersionWarning()
+{
+ if (m_gitClient->gitVersion() >= minimumRequiredVersion)
+ return;
+ Core::IEditor *curEditor = Core::EditorManager::currentEditor();
+ if (!curEditor)
+ return;
+ Core::IDocument *curDocument = curEditor->document();
+ if (!curDocument)
+ return;
+ Core::InfoBar *infoBar = curDocument->infoBar();
+ Core::Id gitVersionWarning("GitVersionWarning");
+ if (!infoBar->canInfoBeAdded(gitVersionWarning))
+ return;
+ infoBar->addInfo(Core::InfoBarEntry(gitVersionWarning,
+ tr("Unsupported version of Git found. Git %1 or later required.")
+ .arg(versionString(minimumRequiredVersion)),
+ Core::InfoBarEntry::GlobalSuppressionEnabled));
+}
+
Core::IEditor *GitPlugin::openSubmitEditor(const QString &fileName, const CommitData &cd, bool amend)
{
Core::IEditor *editor = Core::EditorManager::openEditor(fileName, Constants::GITSUBMITEDITOR_ID,
@@ -934,22 +958,25 @@ void GitPlugin::pull()
{
const VcsBase::VcsBasePluginState state = currentState();
QTC_ASSERT(state.hasTopLevel(), return);
+ QString topLevel = state.topLevel();
bool rebase = m_gitClient->settings()->boolValue(GitSettings::pullRebaseKey);
if (!rebase) {
bool isDetached;
- QString branchRebaseConfig = m_gitClient->synchronousRepositoryBranches(state.topLevel(), &isDetached).at(0);
+ QString branchRebaseConfig = m_gitClient->synchronousRepositoryBranches(topLevel, &isDetached).at(0);
if (!isDetached) {
branchRebaseConfig.prepend(QLatin1String("branch."));
branchRebaseConfig.append(QLatin1String(".rebase"));
- rebase = (m_gitClient->readConfigValue(state.topLevel(), branchRebaseConfig) == QLatin1String("true"));
+ rebase = (m_gitClient->readConfigValue(topLevel, branchRebaseConfig) == QLatin1String("true"));
}
}
- GitClient::StashGuard stashGuard(state.topLevel(), QLatin1String("Pull"));
- if (stashGuard.stashingFailed(false) || (rebase && (stashGuard.result() == GitClient::NotStashed)))
+ GitClient::StashGuard stashGuard(topLevel, QLatin1String("Pull"));
+ if (stashGuard.stashingFailed(false))
return;
- if (!m_gitClient->synchronousPull(state.topLevel(), rebase))
+ if (rebase && (stashGuard.result() == GitClient::NotStashed))
+ m_gitClient->synchronousCheckoutFiles(topLevel);
+ if (!m_gitClient->synchronousPull(topLevel, rebase))
stashGuard.preventPop();
}
@@ -1157,6 +1184,8 @@ void GitPlugin::updateActions(VcsBase::VcsBasePlugin::ActionState as)
m_commandLocator->setEnabled(repositoryEnabled);
if (!enableMenuAction(as, m_menuAction))
return;
+ if (repositoryEnabled)
+ updateVersionWarning();
// Note: This menu is visible if there is no repository. Only
// 'Create Repository'/'Show' actions should be available.
const QString fileName = currentState().currentFileName();
diff --git a/src/plugins/git/gitplugin.h b/src/plugins/git/gitplugin.h
index 4535ec5b6fc..3b373ecc762 100644
--- a/src/plugins/git/gitplugin.h
+++ b/src/plugins/git/gitplugin.h
@@ -194,6 +194,7 @@ private:
void cleanRepository(const QString &directory);
void applyPatch(const QString &workingDirectory, QString file = QString());
void startCommit(bool amend);
+ void updateVersionWarning();
static GitPlugin *m_instance;
Locator::CommandLocator *m_commandLocator;
diff --git a/src/plugins/git/gitutils.cpp b/src/plugins/git/gitutils.cpp
index 99d4b15bb02..d318d97ee7d 100644
--- a/src/plugins/git/gitutils.cpp
+++ b/src/plugins/git/gitutils.cpp
@@ -94,5 +94,19 @@ bool inputText(QWidget *parent, const QString &title, const QString &prompt, QSt
*s = dialog.textValue();
return true;
}
+
+static inline QString versionPart(unsigned part)
+{
+ return QString::number(part & 0xff, 16);
+}
+
+QString versionString(unsigned ver)
+{
+ return QString::fromLatin1("%1.%2.%3")
+ .arg(versionPart(ver >> 16))
+ .arg(versionPart(ver >> 8))
+ .arg(versionPart(ver));
+}
+
} // namespace Internal
} // namespace Git
diff --git a/src/plugins/git/gitutils.h b/src/plugins/git/gitutils.h
index 70de3825e6b..4275f3a38d5 100644
--- a/src/plugins/git/gitutils.h
+++ b/src/plugins/git/gitutils.h
@@ -61,6 +61,8 @@ inline unsigned version(unsigned major, unsigned minor, unsigned patch)
return (major << 16) + (minor << 8) + patch;
}
+QString versionString(unsigned ver);
+
} // namespace Internal
} // namespace Git
diff --git a/src/plugins/git/gitversioncontrol.cpp b/src/plugins/git/gitversioncontrol.cpp
index 85b94493acc..be8a42190cc 100644
--- a/src/plugins/git/gitversioncontrol.cpp
+++ b/src/plugins/git/gitversioncontrol.cpp
@@ -35,7 +35,6 @@
#include <utils/qtcassert.h>
#include <vcsbase/vcsbaseconstants.h>
-#include <QDebug>
#include <QFileInfo>
static const char stashMessageKeywordC[] = "IVersionControl@";
@@ -71,32 +70,20 @@ bool GitVersionControl::supportsOperation(Operation operation) const
if (!isConfigured())
return false;
- bool rc = false;
switch (operation) {
case AddOperation:
- rc = m_client->gitVersion() >= version(1, 6, 1);;
- break;
case DeleteOperation:
- rc = true;
- break;
case MoveOperation:
- rc = true;
- break;
- case OpenOperation:
- break;
case CreateRepositoryOperation:
case SnapshotOperations:
- rc = true;
- break;
case AnnotateOperation:
- rc = true;
- break;
case CheckoutOperation:
case GetRepositoryRootOperation:
- rc = true;
+ return true;
+ case OpenOperation:
break;
}
- return rc;
+ return false;
}
bool GitVersionControl::vcsOpen(const QString & /*fileName*/)
@@ -107,7 +94,6 @@ bool GitVersionControl::vcsOpen(const QString & /*fileName*/)
bool GitVersionControl::vcsAdd(const QString & fileName)
{
// Implement in terms of using "--intent-to-add"
- QTC_ASSERT(m_client->gitVersion() >= version(1, 6, 1), return false);
const QFileInfo fi(fileName);
return m_client->synchronousAdd(fi.absolutePath(), true, QStringList(fi.fileName()));
}
diff --git a/src/plugins/git/resetdialog.cpp b/src/plugins/git/resetdialog.cpp
index cfcffec34d9..39c68981155 100644
--- a/src/plugins/git/resetdialog.cpp
+++ b/src/plugins/git/resetdialog.cpp
@@ -122,10 +122,10 @@ bool ResetDialog::populateLog(const QString &repository)
if (const int rowCount = m_model->rowCount())
m_model->removeRows(0, rowCount);
- // Retrieve log using a custom format "Sha1:Subject"
+ // Retrieve log using a custom format "Sha1:Subject [(refs)]"
GitClient *client = GitPlugin::instance()->gitClient();
QStringList arguments;
- arguments << QLatin1String("--max-count=30") << QLatin1String("--format=%h:%s");
+ arguments << QLatin1String("--max-count=30") << QLatin1String("--format=%h:%s %d");
QString output;
if (!client->synchronousLog(repository, arguments, &output))
return false;
@@ -136,6 +136,11 @@ bool ResetDialog::populateLog(const QString &repository)
for (int c = 0; c < ColumnCount; ++c) {
QStandardItem *item = new QStandardItem;
item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
+ if (line.endsWith(QLatin1Char(')'))) {
+ QFont font = item->font();
+ font.setItalic(true);
+ item->setFont(font);
+ }
row.push_back(item);
}
row[Sha1Column]->setText(line.left(colonPos));
diff --git a/src/plugins/locator/settingspage.cpp b/src/plugins/locator/settingspage.cpp
index 7d282de2619..b5dbf2696ce 100644
--- a/src/plugins/locator/settingspage.cpp
+++ b/src/plugins/locator/settingspage.cpp
@@ -60,6 +60,7 @@ QWidget *SettingsPage::createPage(QWidget *parent)
m_page = new QWidget(parent);
m_ui.setupUi(m_page);
+ m_ui.refreshInterval->setToolTip(m_ui.refreshIntervalLabel->toolTip());
connect(m_ui.filterList, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)),
this, SLOT(updateButtonStates()));
connect(m_ui.filterList, SIGNAL(itemActivated(QListWidgetItem*)),
diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro
index 0d40c32093f..6f615111c05 100644
--- a/src/plugins/plugins.pro
+++ b/src/plugins/plugins.pro
@@ -9,6 +9,7 @@ SUBDIRS = plugin_coreplugin \
plugin_texteditor \
plugin_cppeditor \
plugin_bineditor \
+ plugin_diffeditor \
plugin_imageviewer \
plugin_bookmarks \
plugin_projectexplorer \
@@ -118,6 +119,10 @@ plugin_bineditor.subdir = bineditor
plugin_bineditor.depends = plugin_texteditor
plugin_bineditor.depends += plugin_coreplugin
+plugin_diffeditor.subdir = diffeditor
+plugin_diffeditor.depends = plugin_texteditor
+plugin_diffeditor.depends += plugin_coreplugin
+
plugin_imageviewer.subdir = imageviewer
plugin_imageviewer.depends = plugin_coreplugin
@@ -167,6 +172,7 @@ plugin_qt4projectmanager.depends += plugin_qtsupport
plugin_qt4projectmanager.depends += plugin_cpptools
plugin_qt4projectmanager.depends += plugin_debugger
plugin_qt4projectmanager.depends += plugin_qmljseditor
+plugin_qt4projectmanager.depends += plugin_qmljstools
plugin_remotelinux.subdir = remotelinux
plugin_remotelinux.depends += plugin_coreplugin
@@ -202,7 +208,6 @@ plugin_debugger.subdir = debugger
plugin_debugger.depends = plugin_projectexplorer
plugin_debugger.depends += plugin_coreplugin
plugin_debugger.depends += plugin_cpptools
-plugin_debugger.depends += plugin_qmljstools
plugin_fakevim.subdir = fakevim
plugin_fakevim.depends = plugin_coreplugin
@@ -265,6 +270,7 @@ plugin_qmlprojectmanager.subdir = qmlprojectmanager
plugin_qmlprojectmanager.depends = plugin_texteditor
plugin_qmlprojectmanager.depends += plugin_projectexplorer
plugin_qmlprojectmanager.depends += plugin_qmljseditor
+plugin_qmlprojectmanager.depends += plugin_qmljstools
plugin_qmlprojectmanager.depends += plugin_debugger
plugin_qmlprojectmanager.depends += plugin_qtsupport
@@ -315,6 +321,7 @@ plugin_qmlprofiler.depends += plugin_analyzerbase
plugin_qmlprofiler.depends += plugin_qmlprojectmanager
plugin_qmlprofiler.depends += plugin_qt4projectmanager
plugin_qmlprofiler.depends += plugin_remotelinux
+plugin_qmlprofiler.depends += plugin_qmljstools
plugin_qmljstools.subdir = qmljstools
plugin_qmljstools.depends = plugin_projectexplorer
@@ -345,6 +352,7 @@ plugin_qbsprojectmanager.subdir = qbsprojectmanager
plugin_qbsprojectmanager.depends = plugin_texteditor
plugin_qbsprojectmanager.depends += plugin_projectexplorer
plugin_qbsprojectmanager.depends += plugin_cpptools
+plugin_qbsprojectmanager.depends += plugin_qmljstools
plugin_qbsprojectmanager.depends += plugin_qtsupport
plugin_clearcase.subdir = clearcase
diff --git a/src/plugins/projectexplorer/abi.cpp b/src/plugins/projectexplorer/abi.cpp
index f962f60491a..60588280953 100644
--- a/src/plugins/projectexplorer/abi.cpp
+++ b/src/plugins/projectexplorer/abi.cpp
@@ -884,4 +884,5 @@ void ProjectExplorer::ProjectExplorerPlugin::testFlavorForOs()
}
}
+
#endif
diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp
index c867f6a04c2..0f0a03fdf0b 100644
--- a/src/plugins/projectexplorer/gcctoolchain.cpp
+++ b/src/plugins/projectexplorer/gcctoolchain.cpp
@@ -205,7 +205,7 @@ QList<HeaderPath> GccToolChain::gccHeaderPaths(const FileName &gcc, const QStrin
return systemHeaderPaths;
}
-static QList<Abi> guessGccAbi(const QString &m)
+static QList<Abi> guessGccAbi(const QString &m, const QByteArray &macros)
{
QList<Abi> abiList;
@@ -224,13 +224,13 @@ static QList<Abi> guessGccAbi(const QString &m)
foreach (const QString &p, parts) {
if (p == QLatin1String("unknown") || p == QLatin1String("pc") || p == QLatin1String("none")
- || p == QLatin1String("gnu") || p == QLatin1String("uclibc")
- || p == QLatin1String("86_64") || p == QLatin1String("redhat") || p == QLatin1String("gnueabi")) {
+ || p == QLatin1String("gnu") || p == QLatin1String("uclibc")
+ || p == QLatin1String("86_64") || p == QLatin1String("redhat")
+ || p == QLatin1String("gnueabi") || p == QLatin1String("w64")) {
continue;
} else if (p == QLatin1String("i386") || p == QLatin1String("i486") || p == QLatin1String("i586")
|| p == QLatin1String("i686") || p == QLatin1String("x86")) {
arch = Abi::X86Architecture;
- width = 32;
} else if (p.startsWith(QLatin1String("arm"))) {
arch = Abi::ArmArchitecture;
width = 32;
@@ -242,8 +242,6 @@ static QList<Abi> guessGccAbi(const QString &m)
width = 64;
} else if (p == QLatin1String("powerpc")) {
arch = Abi::PowerPCArchitecture;
- } else if (p == QLatin1String("w64")) {
- width = 64;
} else if (p == QLatin1String("linux") || p == QLatin1String("linux6e")) {
os = Abi::LinuxOS;
if (flavor == Abi::UnknownFlavor)
@@ -259,8 +257,6 @@ static QList<Abi> guessGccAbi(const QString &m)
os = Abi::WindowsOS;
flavor = Abi::WindowsMSysFlavor;
format = Abi::PEFormat;
- if (width == 0)
- width = 32;
} else if (p == QLatin1String("apple")) {
os = Abi::MacOS;
flavor = Abi::GenericMacFlavor;
@@ -285,8 +281,9 @@ static QList<Abi> guessGccAbi(const QString &m)
abiList << Abi(arch, os, flavor, format, width == 64 ? 32 : 64);
abiList << Abi(arch == Abi::X86Architecture ? Abi::PowerPCArchitecture : Abi::X86Architecture, os, flavor, format, width);
abiList << Abi(arch == Abi::X86Architecture ? Abi::PowerPCArchitecture : Abi::X86Architecture, os, flavor, format, width == 64 ? 32 : 64);
- } else if (width == 64) {
- abiList << Abi(arch, os, flavor, format, width);
+ } else if (width == 0 || width == 64) {
+ if (macros.contains("#define __x86_64 1"))
+ abiList << Abi(arch, os, flavor, format, 64);
abiList << Abi(arch, os, flavor, format, 32);
} else {
abiList << Abi(arch, os, flavor, format, width);
@@ -301,7 +298,8 @@ static QList<Abi> guessGccAbi(const FileName &path, const QStringList &env)
QStringList arguments(QLatin1String("-dumpmachine"));
QString machine = QString::fromLocal8Bit(runGcc(path, arguments, env)).trimmed();
- return guessGccAbi(machine);
+ QByteArray macros = gccPredefinedMacros(path, QStringList(), env);
+ return guessGccAbi(machine, macros);
}
static QString gccVersion(const FileName &path, const QStringList &env)
@@ -1102,113 +1100,153 @@ namespace ProjectExplorer {
void ProjectExplorerPlugin::testGccAbiGuessing_data()
{
QTest::addColumn<QString>("input");
+ QTest::addColumn<QByteArray>("macros");
QTest::addColumn<QStringList>("abiList");
QTest::newRow("invalid input")
<< QString::fromLatin1("Some text")
+ << QByteArray("")
<< (QStringList());
QTest::newRow("empty input")
<< QString::fromLatin1("")
+ << QByteArray("")
+ << (QStringList());
+ QTest::newRow("empty input (with macros)")
+ << QString::fromLatin1("")
+ << QByteArray("#define __x86_64 1\n#define __Something\n")
<< (QStringList());
QTest::newRow("broken input")
<< QString::fromLatin1("arm-none-foo-gnueabi")
+ << QByteArray("#define __ARM_64 1\n#define __Something\n")
<< (QStringList() << QLatin1String("arm-unknown-unknown-unknown-32bit"));
QTest::newRow("totally broken input")
<< QString::fromLatin1("foo-bar-foo")
+ << QByteArray("#define __ARM_64 1\n#define __Something\n")
<< (QStringList());
QTest::newRow("Maemo 1")
<< QString::fromLatin1("arm-none-linux-gnueabi")
+ << QByteArray("")
<< (QStringList() << QLatin1String("arm-linux-generic-elf-32bit"));
- QTest::newRow("Linux 1")
+ QTest::newRow("Linux 1 (32bit intel)")
<< QString::fromLatin1("i686-linux-gnu")
+ << QByteArray("")
<< (QStringList() << QLatin1String("x86-linux-generic-elf-32bit"));
- QTest::newRow("Linux 2")
+ QTest::newRow("Linux 2 (32bit intel)")
<< QString::fromLatin1("i486-linux-gnu")
+ << QByteArray("")
<< (QStringList() << QLatin1String("x86-linux-generic-elf-32bit"));
- QTest::newRow("Linux 3")
+ QTest::newRow("Linux 3 (64bit intel)")
<< QString::fromLatin1("x86_64-linux-gnu")
+ << QByteArray("#define __x86_64 1\n")
<< (QStringList() << QLatin1String("x86-linux-generic-elf-64bit")
<< QLatin1String("x86-linux-generic-elf-32bit"));
- QTest::newRow("Linux 4")
+ QTest::newRow("Linux 3 (64bit intel -- non 64bit)")
+ << QString::fromLatin1("x86_64-linux-gnu")
+ << QByteArray()
+ << (QStringList() << QLatin1String("x86-linux-generic-elf-32bit"));
+ QTest::newRow("Linux 4 (32bit mips)")
<< QString::fromLatin1("mipsel-linux-uclibc")
+ << QByteArray()
<< (QStringList() << QLatin1String("mips-linux-generic-elf-32bit"));
- QTest::newRow("Linux 5") // from QTCREATORBUG-4690
+ QTest::newRow("Linux 5 (QTCREATORBUG-4690)") // from QTCREATORBUG-4690
<< QString::fromLatin1("x86_64-redhat-linux6E")
+ << QByteArray("#define __x86_64 1\n")
<< (QStringList() << QLatin1String("x86-linux-generic-elf-64bit")
<< QLatin1String("x86-linux-generic-elf-32bit"));
- QTest::newRow("Linux 6") // from QTCREATORBUG-4690
+ QTest::newRow("Linux 6 (QTCREATORBUG-4690)") // from QTCREATORBUG-4690
<< QString::fromLatin1("x86_64-redhat-linux")
+ << QByteArray("#define __x86_64 1\n")
<< (QStringList() << QLatin1String("x86-linux-generic-elf-64bit")
<< QLatin1String("x86-linux-generic-elf-32bit"));
- QTest::newRow("Linux 7")
+ QTest::newRow("Linux 7 (arm)")
<< QString::fromLatin1("armv5tl-montavista-linux-gnueabi")
+ << QByteArray()
<< (QStringList() << QLatin1String("arm-linux-generic-elf-32bit"));
- QTest::newRow("Linux 8")
+ QTest::newRow("Linux 8 (arm)")
<< QString::fromLatin1("arm-angstrom-linux-gnueabi")
+ << QByteArray()
<< (QStringList() << QLatin1String("arm-linux-generic-elf-32bit"));
- QTest::newRow("Mingw 1")
+ QTest::newRow("Mingw 1 (32bit)")
+ << QString::fromLatin1("i686-w64-mingw32")
+ << QByteArray()
+ << (QStringList() << QLatin1String("x86-windows-msys-pe-32bit"));
+ QTest::newRow("Mingw 2 (64bit)")
<< QString::fromLatin1("i686-w64-mingw32")
+ << QByteArray("#define __x86_64 1\r\n")
<< (QStringList() << QLatin1String("x86-windows-msys-pe-64bit")
<< QLatin1String("x86-windows-msys-pe-32bit"));
- QTest::newRow("Mingw 2")
+ QTest::newRow("Mingw 3 (32 bit)")
<< QString::fromLatin1("mingw32")
+ << QByteArray()
<< (QStringList() << QLatin1String("x86-windows-msys-pe-32bit"));
- QTest::newRow("Cross Mingw 1")
+ QTest::newRow("Cross Mingw 1 (64bit)")
<< QString::fromLatin1("amd64-mingw32msvc")
+ << QByteArray("#define __x86_64 1\r\n")
<< (QStringList() << QLatin1String("x86-windows-msys-pe-64bit")
<< QLatin1String("x86-windows-msys-pe-32bit"));
- QTest::newRow("Cross Mingw 2")
+ QTest::newRow("Cross Mingw 2 (32bit)")
<< QString::fromLatin1("i586-mingw32msvc")
+ << QByteArray()
<< (QStringList() << QLatin1String("x86-windows-msys-pe-32bit"));
QTest::newRow("Clang 1: windows")
<< QString::fromLatin1("x86_64-pc-win32")
+ << QByteArray("#define __x86_64 1\r\n")
<< (QStringList() << QLatin1String("x86-windows-msys-pe-64bit")
<< QLatin1String("x86-windows-msys-pe-32bit"));
QTest::newRow("Clang 1: linux")
<< QString::fromLatin1("x86_64-unknown-linux-gnu")
+ << QByteArray("#define __x86_64 1\n")
<< (QStringList() << QLatin1String("x86-linux-generic-elf-64bit")
<< QLatin1String("x86-linux-generic-elf-32bit"));
QTest::newRow("Mac 1")
<< QString::fromLatin1("i686-apple-darwin10")
+ << QByteArray("#define __x86_64 1\n")
<< (QStringList() << QLatin1String("x86-macos-generic-mach_o-64bit")
<< QLatin1String("x86-macos-generic-mach_o-32bit")
<< QLatin1String("ppc-macos-generic-mach_o-64bit")
<< QLatin1String("ppc-macos-generic-mach_o-32bit"));
QTest::newRow("Mac 2")
<< QString::fromLatin1("powerpc-apple-darwin10")
+ << QByteArray("#define __x86_64 1\n")
<< (QStringList() << QLatin1String("ppc-macos-generic-mach_o-64bit")
<< QLatin1String("ppc-macos-generic-mach_o-32bit")
<< QLatin1String("x86-macos-generic-mach_o-64bit")
<< QLatin1String("x86-macos-generic-mach_o-32bit"));
QTest::newRow("Mac 3")
<< QString::fromLatin1("i686-apple-darwin9")
+ << QByteArray("#define __x86_64 1\n")
<< (QStringList() << QLatin1String("x86-macos-generic-mach_o-32bit")
<< QLatin1String("x86-macos-generic-mach_o-64bit")
<< QLatin1String("ppc-macos-generic-mach_o-32bit")
<< QLatin1String("ppc-macos-generic-mach_o-64bit"));
QTest::newRow("Mac IOS")
<< QString::fromLatin1("arm-apple-darwin9")
+ << QByteArray()
<< (QStringList() << QLatin1String("arm-macos-generic-mach_o-32bit"));
QTest::newRow("Intel 1")
<< QString::fromLatin1("86_64 x86_64 GNU/Linux")
+ << QByteArray("#define __x86_64 1\n")
<< (QStringList() << QLatin1String("x86-linux-generic-elf-64bit")
<< QLatin1String("x86-linux-generic-elf-32bit"));
QTest::newRow("FreeBSD 1")
<< QString::fromLatin1("i386-portbld-freebsd9.0")
+ << QByteArray()
<< (QStringList() << QLatin1String("x86-bsd-freebsd-elf-32bit"));
QTest::newRow("FreeBSD 2")
<< QString::fromLatin1("i386-undermydesk-freebsd")
+ << QByteArray()
<< (QStringList() << QLatin1String("x86-bsd-freebsd-elf-32bit"));
}
void ProjectExplorerPlugin::testGccAbiGuessing()
{
QFETCH(QString, input);
+ QFETCH(QByteArray, macros);
QFETCH(QStringList, abiList);
- QList<Abi> al = guessGccAbi(input);
+ QList<Abi> al = guessGccAbi(input, macros);
QCOMPARE(al.count(), abiList.count());
for (int i = 0; i < al.count(); ++i) {
QCOMPARE(al.at(i).toString(), abiList.at(i));
diff --git a/src/plugins/projectexplorer/kit.cpp b/src/plugins/projectexplorer/kit.cpp
index c0e44e4408c..5b2603784a9 100644
--- a/src/plugins/projectexplorer/kit.cpp
+++ b/src/plugins/projectexplorer/kit.cpp
@@ -51,6 +51,7 @@ namespace {
const char ID_KEY[] = "PE.Profile.Id";
const char DISPLAYNAME_KEY[] = "PE.Profile.Name";
const char AUTODETECTED_KEY[] = "PE.Profile.AutoDetected";
+const char SDK_PROVIDED_KEY[] = "PE.Profile.SDK";
const char DATA_KEY[] = "PE.Profile.Data";
const char ICON_KEY[] = "PE.Profile.Icon";
@@ -86,6 +87,7 @@ public:
KitPrivate(Id id) :
m_id(id),
m_autodetected(false),
+ m_sdkProvided(false),
m_isValid(true),
m_hasWarning(false),
m_nestedBlockingLevel(0),
@@ -98,6 +100,7 @@ public:
QString m_displayName;
Id m_id;
bool m_autodetected;
+ bool m_sdkProvided;
bool m_isValid;
bool m_hasWarning;
QIcon m_icon;
@@ -306,6 +309,11 @@ bool Kit::isAutoDetected() const
return d->m_autodetected;
}
+bool Kit::isSdkProvided() const
+{
+ return d->m_sdkProvided;
+}
+
Id Kit::id() const
{
return d->m_id;
@@ -379,6 +387,7 @@ QVariantMap Kit::toMap() const
data.insert(QLatin1String(ID_KEY), QString::fromLatin1(d->m_id.name()));
data.insert(QLatin1String(DISPLAYNAME_KEY), d->m_displayName);
data.insert(QLatin1String(AUTODETECTED_KEY), d->m_autodetected);
+ data.insert(QLatin1String(SDK_PROVIDED_KEY), d->m_sdkProvided);
data.insert(QLatin1String(ICON_KEY), d->m_iconPath);
QVariantMap extra;
@@ -457,6 +466,12 @@ bool Kit::fromMap(const QVariantMap &data)
return false;
d->m_id = id;
d->m_autodetected = data.value(QLatin1String(AUTODETECTED_KEY)).toBool();
+ // if we don't have that setting assume that autodetected implies sdk
+ QVariant value = data.value(QLatin1String(SDK_PROVIDED_KEY));
+ if (value.isValid())
+ d->m_sdkProvided = value.toBool();
+ else
+ d->m_sdkProvided = d->m_autodetected;
setDisplayName(data.value(QLatin1String(DISPLAYNAME_KEY)).toString());
setIconPath(data.value(QLatin1String(ICON_KEY)).toString());
@@ -472,6 +487,11 @@ void Kit::setAutoDetected(bool detected)
d->m_autodetected = detected;
}
+void Kit::setSdkProvided(bool sdkProvided)
+{
+ d->m_sdkProvided = sdkProvided;
+}
+
void Kit::kitUpdated()
{
if (d->m_nestedBlockingLevel > 0) {
diff --git a/src/plugins/projectexplorer/kit.h b/src/plugins/projectexplorer/kit.h
index 7340844ee88..bd79ff3e83f 100644
--- a/src/plugins/projectexplorer/kit.h
+++ b/src/plugins/projectexplorer/kit.h
@@ -75,6 +75,7 @@ public:
QString fileSystemFriendlyName() const;
bool isAutoDetected() const;
+ bool isSdkProvided() const;
Core::Id id() const;
QIcon icon() const;
@@ -96,14 +97,15 @@ public:
Kit *clone(bool keepName = false) const;
void copyFrom(const Kit *k);
+ void setAutoDetected(bool detected);
private:
+ void setSdkProvided(bool sdkProvided);
~Kit();
// Unimplemented.
Kit(const Kit &other);
void operator=(const Kit &other);
- void setAutoDetected(bool detected);
void kitUpdated();
diff --git a/src/plugins/projectexplorer/kitinformation.cpp b/src/plugins/projectexplorer/kitinformation.cpp
index f9d6d2d7c30..37a55d01394 100644
--- a/src/plugins/projectexplorer/kitinformation.cpp
+++ b/src/plugins/projectexplorer/kitinformation.cpp
@@ -316,7 +316,10 @@ const Core::Id DeviceTypeKitInformation::deviceTypeId(const Kit *k)
// FIXME: This should be fromSetting/toSetting instead.
if (!k)
return Core::Id();
- return Core::Id::fromName(k->value(DEVICETYPE_INFORMATION).toByteArray());
+ QByteArray value = k->value(DEVICETYPE_INFORMATION).toByteArray();
+ if (value.isEmpty())
+ return Core::Id();
+ return Core::Id::fromName(value);
}
void DeviceTypeKitInformation::setDeviceTypeId(Kit *k, Core::Id type)
diff --git a/src/plugins/projectexplorer/kitmanager.cpp b/src/plugins/projectexplorer/kitmanager.cpp
index 11890291319..7166b5ff0bb 100644
--- a/src/plugins/projectexplorer/kitmanager.cpp
+++ b/src/plugins/projectexplorer/kitmanager.cpp
@@ -34,10 +34,12 @@
#include "kitinformation.h"
#include "kitmanagerconfigwidget.h"
#include "project.h"
+#include "projectexplorer.h"
#include <coreplugin/icore.h>
#include <extensionsystem/pluginmanager.h>
+#include <extensionsystem/pluginspec.h>
#include <utils/persistentsettings.h>
#include <utils/environment.h>
@@ -137,6 +139,7 @@ void KitManager::restoreKits()
return;
initializing = true;
+ QTC_CHECK(ProjectExplorerPlugin::instance()->pluginSpec()->state() == ExtensionSystem::PluginSpec::Running);
QList<Kit *> kitsToRegister;
QList<Kit *> kitsToValidate;
@@ -150,6 +153,7 @@ void KitManager::restoreKits()
// make sure we mark these as autodetected and run additional setup logic
foreach (Kit *k, system.kits) {
k->setAutoDetected(true);
+ k->setSdkProvided(true);
k->setup();
}
@@ -161,7 +165,7 @@ void KitManager::restoreKits()
// read all kits from user file
KitList userKits = restoreKits(settingsFileName());
foreach (Kit *k, userKits.kits) {
- if (k->isAutoDetected())
+ if (k->isSdkProvided())
kitsToCheck.append(k);
else
kitsToRegister.append(k);
@@ -202,6 +206,7 @@ void KitManager::restoreKits()
if (kits().isEmpty()) {
Kit *defaultKit = new Kit; // One kit using default values
defaultKit->setDisplayName(tr("Desktop"));
+ defaultKit->setSdkProvided(false);
defaultKit->setAutoDetected(false);
defaultKit->setIconPath(QLatin1String(":///DESKTOP///"));
@@ -259,6 +264,9 @@ bool greaterPriority(KitInformation *a, KitInformation *b)
void KitManager::registerKitInformation(KitInformation *ki)
{
+ QTC_CHECK(ProjectExplorerPlugin::instance()->pluginSpec()->state() <= ExtensionSystem::PluginSpec::Initialized);
+ QTC_CHECK(d->m_kitList.isEmpty());
+
QList<KitInformation *>::iterator it
= qLowerBound(d->m_informationList.begin(), d->m_informationList.end(), ki, greaterPriority);
d->m_informationList.insert(it, ki);
@@ -454,7 +462,7 @@ void KitManager::setDefaultKit(Kit *k)
void KitManager::validateKits()
{
- foreach (Kit *k, kits())
+ foreach (Kit *k, d->m_kitList) // no need to load kits just to validate them!
k->validate();
}
diff --git a/src/plugins/projectexplorer/kitmodel.cpp b/src/plugins/projectexplorer/kitmodel.cpp
index 061ae49869c..04f34d07310 100644
--- a/src/plugins/projectexplorer/kitmodel.cpp
+++ b/src/plugins/projectexplorer/kitmodel.cpp
@@ -332,6 +332,7 @@ Kit *KitModel::markForAddition(Kit *baseKit)
if (baseKit) {
k->copyFrom(baseKit);
k->setAutoDetected(false); // Make sure we have a manual kit!
+ k->setSdkProvided(false);
k->setDisplayName(tr("Clone of %1").arg(k->displayName()));
} else {
k->setup();
diff --git a/src/plugins/projectexplorer/msvctoolchain.cpp b/src/plugins/projectexplorer/msvctoolchain.cpp
index 074d31425a1..bd73fbc5786 100644
--- a/src/plugins/projectexplorer/msvctoolchain.cpp
+++ b/src/plugins/projectexplorer/msvctoolchain.cpp
@@ -103,14 +103,10 @@ static Abi findAbiOfMsvc(MsvcToolChain::Type type, MsvcToolChain::Platform platf
QString msvcVersionString = version;
if (type == MsvcToolChain::WindowsSDK) {
- if (version.startsWith(QLatin1String("7.")))
- msvcVersionString = QLatin1String("10.0");
- else if (version.startsWith(QLatin1String("6.1"))
- || (version.startsWith(QLatin1String("6.0")) && version != QLatin1String("6.0")))
- // The 6.0 SDK is shipping MSVC2005, Starting at 6.0a it is MSVC2008.
+ if (version == QLatin1String("v7.0") || version.startsWith(QLatin1String("6.")))
msvcVersionString = QLatin1String("9.0");
- else
- msvcVersionString = QLatin1String("8.0");
+ else if (version == QLatin1String("v7.0A") || version == QLatin1String("v7.1"))
+ msvcVersionString = QLatin1String("10.0");
}
if (msvcVersionString.startsWith(QLatin1String("11.")))
flavor = Abi::WindowsMsvc2012Flavor;
@@ -376,7 +372,7 @@ QList<Utils::FileName> MsvcToolChain::suggestedMkspecList() const
QVariantMap MsvcToolChain::toMap() const
{
- QVariantMap data = ToolChain::toMap();
+ QVariantMap data = AbstractMsvcToolChain::toMap();
data.insert(QLatin1String(varsBatKeyC), m_vcvarsBat);
if (!m_varsBatArg.isEmpty())
data.insert(QLatin1String(varsBatArgKeyC), m_varsBatArg);
@@ -463,6 +459,8 @@ bool MsvcToolChainFactory::checkForVisualStudioInstallation(const QString &vsNam
QString MsvcToolChainFactory::vcVarsBatFor(const QString &basePath, const QString &toolchainName)
{
+ if (toolchainName.startsWith(QLatin1Char('/'))) // windows sdk case, all use SetEnv.cmd
+ return basePath + QLatin1String("/SetEnv.cmd");
if (toolchainName == QLatin1String("x86"))
return basePath + QLatin1String("/bin/vcvars32.bat");
if (toolchainName == QLatin1String("x86_amd64"))
@@ -494,7 +492,6 @@ QList<ToolChain *> MsvcToolChainFactory::autoDetect()
if (!defaultSdkPath.isEmpty()) {
foreach (const QString &sdkKey, sdkRegistry.childGroups()) {
const QString name = sdkRegistry.value(sdkKey + QLatin1String("/ProductName")).toString();
- const QString version = sdkRegistry.value(sdkKey + QLatin1String("/ProductVersion")).toString();
const QString folder = sdkRegistry.value(sdkKey + QLatin1String("/InstallationFolder")).toString();
if (folder.isEmpty())
continue;
@@ -508,14 +505,14 @@ QList<ToolChain *> MsvcToolChainFactory::autoDetect()
QList<ToolChain *> tmp;
tmp.append(new MsvcToolChain(generateDisplayName(name, MsvcToolChain::WindowsSDK, MsvcToolChain::x86),
- findAbiOfMsvc(MsvcToolChain::WindowsSDK, MsvcToolChain::x86, version),
+ findAbiOfMsvc(MsvcToolChain::WindowsSDK, MsvcToolChain::x86, sdkKey),
fi.absoluteFilePath(), QLatin1String("/x86"), true));
// Add all platforms, cross-compiler is automatically selected by SetEnv.cmd if needed
tmp.append(new MsvcToolChain(generateDisplayName(name, MsvcToolChain::WindowsSDK, MsvcToolChain::amd64),
- findAbiOfMsvc(MsvcToolChain::WindowsSDK, MsvcToolChain::amd64, version),
+ findAbiOfMsvc(MsvcToolChain::WindowsSDK, MsvcToolChain::amd64, sdkKey),
fi.absoluteFilePath(), QLatin1String("/x64"), true));
tmp.append(new MsvcToolChain(generateDisplayName(name, MsvcToolChain::WindowsSDK, MsvcToolChain::ia64),
- findAbiOfMsvc(MsvcToolChain::WindowsSDK, MsvcToolChain::ia64, version),
+ findAbiOfMsvc(MsvcToolChain::WindowsSDK, MsvcToolChain::ia64, sdkKey),
fi.absoluteFilePath(), QLatin1String("/ia64"), true));
// Make sure the default is front.
if (folder == defaultSdkPath)
@@ -541,7 +538,7 @@ QList<ToolChain *> MsvcToolChainFactory::autoDetect()
if (!checkForVisualStudioInstallation(vsName))
continue;
- QString path = vsRegistry.value(vsName).toString();
+ QString path = QDir::fromNativeSeparators(vsRegistry.value(vsName).toString());
if (path.endsWith(QLatin1Char('/')))
path.chop(1);
const int version = vsName.left(dotPos).toInt();
diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp
index faefbc44a7b..d3ca4925dce 100644
--- a/src/plugins/projectexplorer/project.cpp
+++ b/src/plugins/projectexplorer/project.cpp
@@ -92,7 +92,7 @@ public:
Target *m_activeTarget;
EditorConfiguration *m_editorConfiguration;
Core::Context m_projectContext;
- Core::Context m_projectLanguage;
+ Core::Context m_projectLanguages;
QVariantMap m_pluginSettings;
SettingsAccessor *m_accessor;
};
@@ -400,9 +400,9 @@ void Project::setProjectContext(Core::Context context)
d->m_projectContext = context;
}
-void Project::setProjectLanguage(Core::Context language)
+void Project::setProjectLanguages(Core::Context language)
{
- d->m_projectLanguage = language;
+ d->m_projectLanguages = language;
}
Core::Context Project::projectContext() const
@@ -410,9 +410,9 @@ Core::Context Project::projectContext() const
return d->m_projectContext;
}
-Core::Context Project::projectLanguage() const
+Core::Context Project::projectLanguages() const
{
- return d->m_projectLanguage;
+ return d->m_projectLanguages;
}
QVariant Project::namedSettings(const QString &name) const
diff --git a/src/plugins/projectexplorer/project.h b/src/plugins/projectexplorer/project.h
index a1cb6419f51..2795b62d68a 100644
--- a/src/plugins/projectexplorer/project.h
+++ b/src/plugins/projectexplorer/project.h
@@ -114,7 +114,7 @@ public:
static QString projectDirectory(const QString &top);
virtual Core::Context projectContext() const;
- virtual Core::Context projectLanguage() const;
+ virtual Core::Context projectLanguages() const;
QVariant namedSettings(const QString &name) const;
void setNamedSettings(const QString &name, const QVariant &value);
@@ -148,7 +148,7 @@ protected:
virtual bool setupTarget(Target *t);
virtual void setProjectContext(Core::Context context);
- virtual void setProjectLanguage(Core::Context language);
+ virtual void setProjectLanguages(Core::Context language);
private slots:
void changeEnvironment();
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index 5eefe2bc852..105e806996c 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -134,6 +134,7 @@
#include <QFileDialog>
#include <QMenu>
#include <QMessageBox>
+#include <QTimer>
#include <QWizard>
/*!
@@ -247,6 +248,7 @@ struct ProjectExplorerPluginPrivate {
KitManager *m_kitManager;
ToolChainManager *m_toolChainManager;
bool m_shuttingDown;
+ QStringList m_arguments;
};
ProjectExplorerPluginPrivate::ProjectExplorerPluginPrivate() :
@@ -1597,10 +1599,17 @@ void ProjectExplorerPlugin::restoreSession()
connect(d->m_welcomePage, SIGNAL(requestSession(QString)), this, SLOT(loadSession(QString)));
connect(d->m_welcomePage, SIGNAL(requestProject(QString)), this, SLOT(openProjectWelcomePage(QString)));
- Core::ICore::openFiles(arguments, Core::ICore::OpenFilesFlags(Core::ICore::CanContainLineNumbers | Core::ICore::SwitchMode));
+ d->m_arguments = arguments;
+ QTimer::singleShot(0, this, SLOT(restoreSession2()));
updateActions();
}
+void ProjectExplorerPlugin::restoreSession2()
+{
+ QApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
+ Core::ICore::openFiles(d->m_arguments, Core::ICore::OpenFilesFlags(Core::ICore::CanContainLineNumbers | Core::ICore::SwitchMode));
+}
+
void ProjectExplorerPlugin::loadSession(const QString &session)
{
if (debug)
@@ -1800,11 +1809,11 @@ void ProjectExplorerPlugin::setCurrent(Project *project, QString filePath, Node
if (d->m_currentProject) {
oldContext.add(d->m_currentProject->projectContext());
- oldContext.add(d->m_currentProject->projectLanguage());
+ oldContext.add(d->m_currentProject->projectLanguages());
}
if (project) {
newContext.add(project->projectContext());
- newContext.add(project->projectLanguage());
+ newContext.add(project->projectLanguages());
}
Core::ICore::updateAdditionalContexts(oldContext, newContext);
diff --git a/src/plugins/projectexplorer/projectexplorer.h b/src/plugins/projectexplorer/projectexplorer.h
index d85c784d76a..b8bbfee40e6 100644
--- a/src/plugins/projectexplorer/projectexplorer.h
+++ b/src/plugins/projectexplorer/projectexplorer.h
@@ -188,6 +188,7 @@ private slots:
void determineSessionToRestoreAtStartup();
void restoreSession();
+ void restoreSession2();
void loadSession(const QString &session);
void runProject();
void runProjectWithoutDeploy();
diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp
index 890f53f636e..3d6046c53d5 100644
--- a/src/plugins/projectexplorer/projectwindow.cpp
+++ b/src/plugins/projectexplorer/projectwindow.cpp
@@ -134,10 +134,17 @@ PanelsWidget::PanelsWidget(QWidget *parent) :
setPalette(pal);
pal.setColor(QPalette::All, QPalette::Window, background);
m_root->setPalette(pal);
+
// The layout holding the individual panels:
- m_layout = new QGridLayout(m_root);
+ QVBoxLayout *topLayout = new QVBoxLayout(m_root);
+ topLayout->setMargin(0);
+ topLayout->setSpacing(0);
+
+ m_layout = new QGridLayout;
m_layout->setColumnMinimumWidth(0, ICON_SIZE + 4);
m_layout->setSpacing(0);
+ topLayout->addLayout(m_layout);
+ topLayout->addStretch(100);
setWidget(m_root);
setFrameStyle(QFrame::NoFrame);
diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp
index aaf3d08e482..99ea22ef1fe 100644
--- a/src/plugins/projectexplorer/runconfiguration.cpp
+++ b/src/plugins/projectexplorer/runconfiguration.cpp
@@ -157,23 +157,11 @@ bool DebuggerRunConfigurationAspect::useCppDebugger() const
return m_useCppDebugger;
}
-static bool isQtQuickAppProject(Project *project)
-{
- const QString projectDirectory = project->projectDirectory();
- // Qt Quick 1 wizard generated file
- const QString qq1FilePath = projectDirectory
- + QLatin1String("/qmlapplicationviewer/qmlapplicationviewer.pri");
- // Qt Quick 2 wizard generated file
- const QString qq2FilePath = projectDirectory
- + QLatin1String("/qtquick2applicationviewer/qtquick2applicationviewer.pri");
- const QStringList projectFiles = project->files(Project::ExcludeGeneratedFiles);
- return projectFiles.contains(qq1FilePath) || projectFiles.contains(qq2FilePath);
-}
-
bool DebuggerRunConfigurationAspect::useQmlDebugger() const
{
if (m_useQmlDebugger == DebuggerRunConfigurationAspect::AutoEnableQmlDebugger)
- return isQtQuickAppProject(m_runConfiguration->target()->project());
+ return m_runConfiguration->target()->project()->projectLanguages().contains(
+ ProjectExplorer::Constants::LANG_QMLJS);
return m_useQmlDebugger == DebuggerRunConfigurationAspect::EnableQmlDebugger;
}
diff --git a/src/plugins/projectexplorer/session.cpp b/src/plugins/projectexplorer/session.cpp
index 75423af7869..a52c948f9c5 100644
--- a/src/plugins/projectexplorer/session.cpp
+++ b/src/plugins/projectexplorer/session.cpp
@@ -880,6 +880,10 @@ bool SessionManager::loadSession(const QString &session)
m_future.setProgressRange(0, fileList.count() + openEditorsCount + 2);
m_future.setProgressValue(1);
+ // if one processEvents doesn't get the job done
+ // just use two!
+ QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
+ QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
restoreProjects(fileList);
sessionLoadingProgress();
restoreDependencies(reader);
diff --git a/src/plugins/projectexplorer/showineditortaskhandler.cpp b/src/plugins/projectexplorer/showineditortaskhandler.cpp
index 128c34f2d01..aee1be4749d 100644
--- a/src/plugins/projectexplorer/showineditortaskhandler.cpp
+++ b/src/plugins/projectexplorer/showineditortaskhandler.cpp
@@ -50,7 +50,7 @@ bool ShowInEditorTaskHandler::canHandle(const ProjectExplorer::Task &task) const
void ShowInEditorTaskHandler::handle(const ProjectExplorer::Task &task)
{
QFileInfo fi(task.file.toFileInfo());
- TextEditor::BaseTextEditorWidget::openEditorAt(fi.canonicalFilePath(), task.movedLine);
+ TextEditor::BaseTextEditorWidget::openEditorAt(fi.filePath(), task.movedLine);
}
QAction *ShowInEditorTaskHandler::createAction(QObject *parent) const
diff --git a/src/plugins/projectexplorer/toolchainmanager.cpp b/src/plugins/projectexplorer/toolchainmanager.cpp
index cd7399d9a35..f8db099b3dd 100644
--- a/src/plugins/projectexplorer/toolchainmanager.cpp
+++ b/src/plugins/projectexplorer/toolchainmanager.cpp
@@ -31,11 +31,13 @@
#include "abi.h"
#include "kitinformation.h"
+#include "projectexplorer.h"
#include "toolchain.h"
#include <coreplugin/icore.h>
#include <extensionsystem/pluginmanager.h>
+#include <extensionsystem/pluginspec.h>
#include <utils/persistentsettings.h>
#include <utils/qtcassert.h>
@@ -93,7 +95,11 @@ ToolChainManagerPrivate::ToolChainManagerPrivate(ToolChainManager *parent)
{ }
ToolChainManagerPrivate::~ToolChainManagerPrivate()
-{ delete m_writer; }
+{
+ qDeleteAll(m_toolChains);
+ m_toolChains.clear();
+ delete m_writer;
+}
QList<ToolChain *> &ToolChainManagerPrivate::toolChains()
{
@@ -133,6 +139,7 @@ ToolChainManager::ToolChainManager(QObject *parent) :
void ToolChainManager::restoreToolChains()
{
QTC_ASSERT(!d->m_writer, return);
+ QTC_CHECK(ProjectExplorerPlugin::instance()->pluginSpec()->state() == ExtensionSystem::PluginSpec::Running);
d->m_writer =
new Utils::PersistentSettingsWriter(settingsFileName(QLatin1String(TOOLCHAIN_FILENAME)), QLatin1String("QtCreatorToolChains"));
@@ -206,13 +213,6 @@ void ToolChainManager::restoreToolChains()
ToolChainManager::~ToolChainManager()
{
- saveToolChains(); // Make sure to save tool chains when closing
-
- // Deregister tool chains
- QList<ToolChain *> copy = d->toolChains();
- foreach (ToolChain *tc, copy)
- deregisterToolChain(tc);
-
delete d;
m_instance = 0;
}
diff --git a/src/plugins/projectexplorer/wincetoolchain.cpp b/src/plugins/projectexplorer/wincetoolchain.cpp
index 923744edfa9..558658ded4e 100644
--- a/src/plugins/projectexplorer/wincetoolchain.cpp
+++ b/src/plugins/projectexplorer/wincetoolchain.cpp
@@ -308,7 +308,7 @@ QString WinCEToolChain::ceVer() const
QVariantMap WinCEToolChain::toMap() const
{
- QVariantMap data = ToolChain::toMap();
+ QVariantMap data = AbstractMsvcToolChain::toMap();
data.insert(QLatin1String(msvcVerKeyC), m_msvcVer);
data.insert(QLatin1String(ceVerKeyC), m_ceVer);
diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp
index 7a5ffa285cd..cc132e929df 100644
--- a/src/plugins/qbsprojectmanager/qbsproject.cpp
+++ b/src/plugins/qbsprojectmanager/qbsproject.cpp
@@ -54,6 +54,7 @@
#include <projectexplorer/target.h>
#include <projectexplorer/taskhub.h>
#include <qtsupport/qtkitinformation.h>
+#include <qmljstools/qmljsmodelmanager.h>
#include <qmljs/qmljsmodelmanagerinterface.h>
@@ -66,11 +67,12 @@
// Constants:
// --------------------------------------------------------------------
-static const char CONFIG_CXXFLAGS[] = "cpp.cxxflags";
-static const char CONFIG_DEFINES[] = "cpp.defines";
-static const char CONFIG_INCLUDEPATHS[] = "cpp.includePaths";
-static const char CONFIG_FRAMEWORKPATHS[] = "cpp.frameworkPaths";
-static const char CONFIG_PRECOMPILEDHEADER[] = "modules.cpp.precompiledHeader";
+static const char CONFIG_CPP_MODULE[] = "cpp";
+static const char CONFIG_CXXFLAGS[] = "cxxflags";
+static const char CONFIG_DEFINES[] = "defines";
+static const char CONFIG_INCLUDEPATHS[] = "includePaths";
+static const char CONFIG_FRAMEWORKPATHS[] = "frameworkPaths";
+static const char CONFIG_PRECOMPILEDHEADER[] = "precompiledHeader";
static const char CONFIGURATION_PATH[] = "<configuration>";
@@ -78,71 +80,12 @@ static const char CONFIGURATION_PATH[] = "<configuration>";
// HELPERS:
// --------------------------------------------------------------------
-// FIXME: All this should be in QBS! They do the same thing in JS.
-
-static const char MODULES_KEY[] = "modules";
-
ProjectExplorer::TaskHub *taskHub()
{
return ProjectExplorer::ProjectExplorerPlugin::instance()->taskHub();
}
-static QVariant extract(const QVariantMap &data, const QString &key)
-{
- QStringList keyParts = key.split(QLatin1Char('.'), QString::SkipEmptyParts);
- return qbs::Internal::getConfigProperty(data, keyParts);
-}
-
-static void expand(const QVariant &v, QStringList &partial, QSet<QString> &seenSet)
-{
- if (v.isNull())
- return;
-
- QStringList tokenList;
- if (v.type() == QVariant::StringList)
- tokenList = v.toStringList();
- else
- tokenList << v.toString();
-
- foreach (const QString &token, tokenList) {
- if (!seenSet.contains(token)) {
- partial << token;
- seenSet.insert(token);
- }
- }
-}
-
-static QVariantList modules(const QVariantMap &root)
-{
- QVariantList result;
- if (!root.contains(QLatin1String(MODULES_KEY)))
- return result;
- const QVariantMap &moduleRoot = root.value(QLatin1String(MODULES_KEY)).toMap();
- QVariantMap::const_iterator end = moduleRoot.end();
- for (QVariantMap::const_iterator i = moduleRoot.begin(); i != end; ++i)
- result << i.value();
- return result;
-}
-
-static void recursiveAppendAll(const QString &key, const QVariantMap &root,
- QStringList &partial, QSet<QString> &seenSet)
-{
- if (root.isEmpty())
- return;
- expand(extract(root, key), partial, seenSet);
- foreach (const QVariant &v, modules(root))
- recursiveAppendAll(key, v.toMap(), partial, seenSet);
-}
-
-static QStringList appendAll(const QVariantMap &data, const QString &key)
-{
- QStringList result;
- QSet<QString> seenSet;
- recursiveAppendAll(key, data, result, seenSet);
- return result;
-}
-
namespace QbsProjectManager {
namespace Internal {
@@ -158,7 +101,7 @@ QbsProject::QbsProject(QbsManager *manager, const QString &fileName) :
m_currentBc(0)
{
setProjectContext(Core::Context(Constants::PROJECT_ID));
- setProjectLanguage(Core::Context(ProjectExplorer::Constants::LANG_CXX));
+ setProjectLanguages(Core::Context(ProjectExplorer::Constants::LANG_CXX));
connect(this, SIGNAL(activeTargetChanged(ProjectExplorer::Target*)),
this, SLOT(changeActiveTarget(ProjectExplorer::Target*)));
@@ -389,8 +332,9 @@ void QbsProject::parse(const QVariantMap &config, const QString &dir)
params.projectFilePath = m_fileName;
params.ignoreDifferentProjectFilePath = false;
qbs::Preferences *prefs = QbsManager::preferences();
- params.searchPaths = prefs->searchPaths(QLatin1String(QBS_BUILD_DIR));
- params.pluginPaths = prefs->pluginPaths(QLatin1String(QBS_BUILD_DIR));
+ const QString buildDir = qbsBuildDir();
+ params.searchPaths = prefs->searchPaths(buildDir);
+ params.pluginPaths = prefs->pluginPaths(buildDir);
m_qbsSetupProjectJob
= qbs::Project::setupProject(params, m_manager->settings(), m_manager->logSink(), 0);
@@ -493,13 +437,15 @@ void QbsProject::updateCppCodeModel(const qbs::ProjectData *prj)
QStringList allFiles;
foreach (const qbs::ProductData &prd, prj->products()) {
foreach (const qbs::GroupData &grp, prd.groups()) {
- QVariantMap props = grp.properties();
+ const qbs::PropertyMap &props = grp.properties();
QStringList grpIncludePaths;
QStringList grpFrameworkPaths;
QByteArray grpDefines;
bool isCxx11;
- const QStringList cxxFlags = appendAll(props, QLatin1String(CONFIG_CXXFLAGS));
+ const QStringList cxxFlags = props.getModulePropertiesAsStringList(
+ QLatin1String(CONFIG_CPP_MODULE),
+ QLatin1String(CONFIG_CXXFLAGS));
// Toolchain specific stuff:
QList<ProjectExplorer::HeaderPath> includePaths;
@@ -516,23 +462,28 @@ void QbsProject::updateCppCodeModel(const qbs::ProjectData *prj)
grpIncludePaths.append(headerPath.path());
}
- QStringList list = appendAll(props, QLatin1String(CONFIG_DEFINES));
+ QStringList list = props.getModulePropertiesAsStringList(
+ QLatin1String(CONFIG_CPP_MODULE),
+ QLatin1String(CONFIG_DEFINES));
foreach (const QString &def, list)
grpDefines += (QByteArray("#define ") + def.toUtf8() + '\n');
- list = appendAll(props, QLatin1String(CONFIG_INCLUDEPATHS));
+ list = props.getModulePropertiesAsStringList(QLatin1String(CONFIG_CPP_MODULE),
+ QLatin1String(CONFIG_INCLUDEPATHS));
foreach (const QString &p, list) {
const QString cp = Utils::FileName::fromUserInput(p).toString();
grpIncludePaths.append(cp);
}
- list = appendAll(props, QLatin1String(CONFIG_FRAMEWORKPATHS));
+ list = props.getModulePropertiesAsStringList(QLatin1String(CONFIG_CPP_MODULE),
+ QLatin1String(CONFIG_FRAMEWORKPATHS));
foreach (const QString &p, list) {
const QString cp = Utils::FileName::fromUserInput(p).toString();
grpFrameworkPaths.append(cp);
}
- const QString pch = extract(props, QLatin1String(CONFIG_PRECOMPILEDHEADER)).toString();
+ const QString pch = props.getModuleProperty(QLatin1String(CONFIG_CPP_MODULE),
+ QLatin1String(CONFIG_PRECOMPILEDHEADER)).toString();
QStringList cxxSources;
QStringList cSources;
@@ -603,61 +554,23 @@ void QbsProject::updateCppCodeModel(const qbs::ProjectData *prj)
void QbsProject::updateQmlJsCodeModel(const qbs::ProjectData *prj)
{
- // FIXME: No information about import directories, so ignore this for now.
-#if 1
Q_UNUSED(prj);
-#else
QmlJS::ModelManagerInterface *modelManager = QmlJS::ModelManagerInterface::instance();
if (!modelManager)
return;
- QmlJS::ModelManagerInterface::ProjectInfo projectInfo = modelManager->projectInfo(this);
- projectInfo.sourceFiles = m_projectFiles->files[QMLType];
-
- FindQt4ProFiles findQt4ProFiles;
- QList<Qt4ProFileNode *> proFiles = findQt4ProFiles(rootProjectNode());
-
- projectInfo.importPaths.clear();
- foreach (Qt4ProFileNode *node, proFiles) {
- projectInfo.importPaths.append(node->variableValue(QmlImportPathVar));
- }
-
- bool preferDebugDump = false;
- projectInfo.tryQmlDump = false;
-
- ProjectExplorer::Target *t = activeTarget();
- ProjectExplorer::Kit *k = t ? t->kit() : ProjectExplorer::KitManager::instance()->defaultKit();
- QtSupport::BaseQtVersion *qtVersion = QtSupport::QtKitInformation::qtVersion(k);
-
- if (t) {
- if (Qt4BuildConfiguration *bc = qobject_cast<Qt4BuildConfiguration *>(t->activeBuildConfiguration()))
- preferDebugDump = bc->qmakeBuildConfiguration() & QtSupport::BaseQtVersion::DebugBuild;
- } else {
- if (qtVersion)
- preferDebugDump = qtVersion->defaultBuildConfig() & QtSupport::BaseQtVersion::DebugBuild;
- }
- if (qtVersion && qtVersion->isValid()) {
- projectInfo.tryQmlDump = qtVersion->type() == QLatin1String(QtSupport::Constants::DESKTOPQT)
- || qtVersion->type() == QLatin1String(QtSupport::Constants::SIMULATORQT);
- projectInfo.qtImportsPath = qtVersion->qmakeProperty("QT_INSTALL_IMPORTS");
- if (!projectInfo.qtImportsPath.isEmpty())
- projectInfo.importPaths += projectInfo.qtImportsPath;
- projectInfo.qtVersionString = qtVersion->qtVersionString();
- }
- projectInfo.importPaths.removeDuplicates();
-
- if (projectInfo.tryQmlDump) {
- QtSupport::QmlDumpTool::pathAndEnvironment(this, qtVersion,
- ToolChainKitInformation::toolChain(k),
- preferDebugDump, &projectInfo.qmlDumpPath,
- &projectInfo.qmlDumpEnvironment);
- } else {
- projectInfo.qmlDumpPath.clear();
- projectInfo.qmlDumpEnvironment.clear();
- }
-
+ QmlJS::ModelManagerInterface::ProjectInfo projectInfo =
+ QmlJSTools::defaultProjectInfoForProject(this);
modelManager->updateProjectInfo(projectInfo);
-#endif
+}
+
+QString QbsProject::qbsBuildDir() const
+{
+ QString buildDir = Utils::Environment::systemEnvironment()
+ .value(QLatin1String("QBS_BUILD_DIR"));
+ if (buildDir.isEmpty())
+ buildDir = QLatin1String(QBS_BUILD_DIR);
+ return buildDir;
}
} // namespace Internal
diff --git a/src/plugins/qbsprojectmanager/qbsproject.h b/src/plugins/qbsprojectmanager/qbsproject.h
index b9fbd081295..1c98a04ab3c 100644
--- a/src/plugins/qbsprojectmanager/qbsproject.h
+++ b/src/plugins/qbsprojectmanager/qbsproject.h
@@ -117,6 +117,7 @@ private:
void updateDocuments(const qbs::ProjectData *prj);
void updateCppCodeModel(const qbs::ProjectData *prj);
void updateQmlJsCodeModel(const qbs::ProjectData *prj);
+ QString qbsBuildDir() const;
QbsManager *const m_manager;
const QString m_projectName;
diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs b/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs
index 7b0c2559d20..17ddb68285a 100644
--- a/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs
+++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs
@@ -17,6 +17,7 @@ QtcPlugin {
Depends { name: "TextEditor" }
Depends { name: "QtSupport" }
Depends { name: "QmlJS" }
+ Depends { name: "QmlJSTools" }
Depends { name: "cpp" }
diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager_dependencies.pri b/src/plugins/qbsprojectmanager/qbsprojectmanager_dependencies.pri
index 03f29efcdb1..35151814588 100644
--- a/src/plugins/qbsprojectmanager/qbsprojectmanager_dependencies.pri
+++ b/src/plugins/qbsprojectmanager/qbsprojectmanager_dependencies.pri
@@ -2,3 +2,4 @@ include(../../plugins/projectexplorer/projectexplorer.pri)
include(../../plugins/cpptools/cpptools.pri)
include(../../plugins/texteditor/texteditor.pri)
include(../../plugins/qtsupport/qtsupport.pri)
+include(../../plugins/qmljstools/qmljstools.pri)
diff --git a/src/plugins/qbsprojectmanager/qbsstep.cpp b/src/plugins/qbsprojectmanager/qbsstep.cpp
index 891995832a6..4fe25df5f96 100644
--- a/src/plugins/qbsprojectmanager/qbsstep.cpp
+++ b/src/plugins/qbsprojectmanager/qbsstep.cpp
@@ -75,7 +75,7 @@ QbsStep::QbsStep(ProjectExplorer::BuildStepList *bsl, const QbsStep *other) :
QbsBuildConfiguration *QbsStep::currentBuildConfiguration() const
{
- QbsBuildConfiguration *bc = static_cast<QbsBuildConfiguration *>(currentBuildConfiguration());
+ QbsBuildConfiguration *bc = static_cast<QbsBuildConfiguration *>(buildConfiguration());
if (!bc)
bc = static_cast<QbsBuildConfiguration *>(target()->activeBuildConfiguration());
return bc;
diff --git a/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h b/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h
index 48eea638b67..798bbd60007 100644
--- a/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h
+++ b/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h
@@ -44,6 +44,7 @@
#include <QWeakPointer>
#include <QRectF>
#include <QTime>
+#include <QTimer>
QT_BEGIN_NAMESPACE
class QDeclarativeEngine;
@@ -193,9 +194,11 @@ private: // functions
void resetVerticalAnchors(const ModelNode &node);
void restartProcess();
+ void restartProcessDelayed();
private slots:
void handleChrash();
+ void restartProcessDelayedTimeOut();
private: //variables
NodeInstance m_rootNodeInstance;
@@ -210,6 +213,8 @@ private: //variables
QTime m_lastCrashTime;
NodeInstanceServerInterface::RunModus m_runModus;
QString m_pathToQt;
+ bool m_puppetRestarted;
+ QTimer m_singleShotTimerRestartProcessDelayed;
};
} // namespace ProxyNodeInstanceView
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
index 97037f34bd8..b8b4908ba48 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
@@ -35,6 +35,7 @@
#include <QGraphicsObject>
#include <QFileSystemWatcher>
#include <QMultiHash>
+#include <QTimer>
#include <model.h>
#include <modelnode.h>
@@ -110,9 +111,13 @@ d too.
NodeInstanceView::NodeInstanceView(QObject *parent, NodeInstanceServerInterface::RunModus runModus)
: AbstractView(parent),
m_baseStatePreviewImage(QSize(100, 100), QImage::Format_ARGB32),
- m_runModus(runModus)
+ m_runModus(runModus),
+ m_puppetRestarted(false)
{
m_baseStatePreviewImage.fill(0xFFFFFF);
+ m_singleShotTimerRestartProcessDelayed.setSingleShot(true);
+ m_singleShotTimerRestartProcessDelayed.setInterval(400);
+ connect(&m_singleShotTimerRestartProcessDelayed, SIGNAL(timeout()), this, SLOT(restartProcessDelayedTimeOut()));
}
@@ -197,10 +202,15 @@ void NodeInstanceView::handleChrash()
emit qmlPuppetCrashed();
}
-
+void NodeInstanceView::restartProcessDelayedTimeOut()
+{
+ if (!m_puppetRestarted)
+ restartProcess();
+}
void NodeInstanceView::restartProcess()
{
+ m_puppetRestarted = true;
if (model()) {
delete nodeInstanceServer();
@@ -218,6 +228,12 @@ void NodeInstanceView::restartProcess()
}
}
+void NodeInstanceView::restartProcessDelayed()
+{
+ m_puppetRestarted = false;
+ m_singleShotTimerRestartProcessDelayed.start();
+}
+
void NodeInstanceView::nodeCreated(const ModelNode &createdNode)
{
NodeInstance instance = loadNode(createdNode);
@@ -1123,7 +1139,16 @@ void NodeInstanceView::setPathToQt(const QString &pathToQt)
{
if (m_pathToQt != pathToQt) {
m_pathToQt = pathToQt;
- restartProcess();
+
+ /* The restart is done delayed, because when creating a new project we switch to that project
+ * before we open the new file. This means the user can get an error about a missing puppet,
+ * because the new project is based on another Qt version.
+ *
+ * See QTCREATORBUG-8756 for more details.
+ *
+ */
+
+ restartProcessDelayed();
}
}
diff --git a/src/plugins/qmljseditor/qmljscompletionassist.cpp b/src/plugins/qmljseditor/qmljscompletionassist.cpp
index 0eacbcbe706..d1c559988b7 100644
--- a/src/plugins/qmljseditor/qmljscompletionassist.cpp
+++ b/src/plugins/qmljseditor/qmljscompletionassist.cpp
@@ -51,7 +51,9 @@
#include <qmljs/qmljsscanner.h>
#include <qmljs/qmljsbind.h>
#include <qmljs/qmljscompletioncontextfinder.h>
+#include <qmljs/qmljsbundle.h>
#include <qmljs/qmljsscopebuilder.h>
+#include <projectexplorer/projectexplorer.h>
#include <QFile>
#include <QFileInfo>
@@ -61,6 +63,7 @@
#include <QDirIterator>
#include <QStringList>
#include <QIcon>
+#include <QTextDocumentFragment>
using namespace QmlJS;
using namespace QmlJSEditor;
@@ -645,8 +648,37 @@ IAssistProposal *QmlJSCompletionAssistProcessor::perform(const IAssistInterface
}
// currently path-in-stringliteral is the only completion available in imports
- if (contextFinder.isInImport())
+ if (contextFinder.isInImport()) {
+ QmlJS::ModelManagerInterface::ProjectInfo pInfo = QmlJS::ModelManagerInterface::instance()
+ ->projectInfo(ProjectExplorer::ProjectExplorerPlugin::currentProject());
+ QmlBundle platform = pInfo.extendedBundle.bundleForLanguage(document->language());
+ if (!platform.supportedImports().isEmpty()) {
+ QTextCursor tc(qmlInterface->textDocument());
+ tc.setPosition(qmlInterface->position());
+ QmlExpressionUnderCursor expressionUnderCursor;
+ expressionUnderCursor(tc);
+ QString libVersion = contextFinder.libVersionImport();
+ if (!libVersion.isNull()) {
+ QStringList completions=platform.supportedImports().complete(libVersion, QString(), QmlJS::PersistentTrie::LookupFlags(QmlJS::PersistentTrie::CaseInsensitive|QmlJS::PersistentTrie::SkipChars|QmlJS::PersistentTrie::SkipSpaces));
+ completions = QmlJS::PersistentTrie::matchStrengthSort(libVersion, completions);
+
+ int toSkip = qMax(libVersion.lastIndexOf(QLatin1Char(' '))
+ , libVersion.lastIndexOf(QLatin1Char('.')));
+ if (++toSkip > 0) {
+ QStringList nCompletions;
+ QString prefix(libVersion.left(toSkip));
+ nCompletions.reserve(completions.size());
+ foreach (QString completion, completions)
+ if (completion.startsWith(prefix))
+ nCompletions.append(completion.right(completion.size()-toSkip));
+ completions = nCompletions;
+ }
+ addCompletions(&m_completions, completions, m_interface->fileNameIcon(), KeywordOrder);
+ return createContentProposal();
+ }
+ }
return 0;
+ }
// member "a.bc<complete>" or function "foo(<complete>" completion
if (completionOperator == QLatin1Char('.')
diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp
index 859b7c956d1..121b95e0bc8 100644
--- a/src/plugins/qmljseditor/qmljseditor.cpp
+++ b/src/plugins/qmljseditor/qmljseditor.cpp
@@ -76,6 +76,7 @@
#include <QFileInfo>
#include <QSignalMapper>
#include <QTimer>
+#include <QPointer>
#include <QScopedPointer>
#include <QTextCodec>
@@ -1174,7 +1175,7 @@ void QmlJSTextEditorWidget::performQuickFix(int index)
void QmlJSTextEditorWidget::contextMenuEvent(QContextMenuEvent *e)
{
- QMenu *menu = new QMenu();
+ QPointer<QMenu> menu(new QMenu(this));
QMenu *refactoringMenu = new QMenu(tr("Refactoring"), menu);
@@ -1223,8 +1224,10 @@ void QmlJSTextEditorWidget::contextMenuEvent(QContextMenuEvent *e)
appendStandardContextMenuActions(menu);
menu->exec(e->globalPos());
- menu->deleteLater();
+ if (!menu)
+ return;
m_quickFixes.clear();
+ delete menu;
}
bool QmlJSTextEditorWidget::event(QEvent *e)
diff --git a/src/plugins/qmljseditor/qmljshoverhandler.cpp b/src/plugins/qmljseditor/qmljshoverhandler.cpp
index 59c940d0385..4f0f94c32a0 100644
--- a/src/plugins/qmljseditor/qmljshoverhandler.cpp
+++ b/src/plugins/qmljseditor/qmljshoverhandler.cpp
@@ -461,10 +461,11 @@ bool HoverHandler::setQmlHelpItem(const ScopeChain &scopeChain,
if (const ObjectValue *scope = isMember(scopeChain, node, &name)) {
// maybe it's a type?
if (!name.isEmpty() && name.at(0).isUpper()) {
- AST::UiQualifiedId *qualifiedId = AST::cast<AST::UiQualifiedId *>(node);
- const ObjectValue *value = scopeChain.context()->lookupType(qmlDocument.data(), qualifiedId);
- if (setQmlTypeHelp(scopeChain, qmlDocument, value, QStringList(qualifiedId->name.toString())))
- return true;
+ if (AST::UiQualifiedId *qualifiedId = AST::cast<AST::UiQualifiedId *>(node)) {
+ const ObjectValue *value = scopeChain.context()->lookupType(qmlDocument.data(), qualifiedId);
+ if (setQmlTypeHelp(scopeChain, qmlDocument, value, QStringList(qualifiedId->name.toString())))
+ return true;
+ }
}
// otherwise, it's probably a property
diff --git a/src/plugins/qmljstools/qmljsbundleprovider.cpp b/src/plugins/qmljstools/qmljsbundleprovider.cpp
new file mode 100644
index 00000000000..fa3933a0c43
--- /dev/null
+++ b/src/plugins/qmljstools/qmljsbundleprovider.cpp
@@ -0,0 +1,201 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 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.
+**
+****************************************************************************/
+
+#include "qmljsbundleprovider.h"
+
+#include <coreplugin/icore.h>
+#include <extensionsystem/pluginmanager.h>
+#include <projectexplorer/kit.h>
+#include <projectexplorer/kit.h>
+#include <projectexplorer/kitmanager.h>
+#include <projectexplorer/project.h>
+#include <projectexplorer/projectexplorer.h>
+#include <projectexplorer/target.h>
+#include <qmljs/qmljsbundle.h>
+#include <qmljs/qmljsdocument.h>
+#include <qtsupport/qtkitinformation.h>
+#include <qtsupport/qtsupportconstants.h>
+
+#include <QDir>
+#include <QFile>
+#include <QHash>
+#include <QHashIterator>
+#include <QList>
+#include <QMutex>
+#include <QMutexLocker>
+#include <QtAlgorithms>
+
+namespace QmlJSTools {
+
+namespace {
+typedef QmlJS::Document::Language Language;
+typedef QmlJS::QmlBundle QmlBundle;
+typedef QmlJS::QmlLanguageBundles QmlLanguageBundles;
+}
+
+/*!
+ \class QmlJSEditor::BasicBundleProvider
+
+ \brief a class that sets up the default bundles for qt and various qml states.
+ */
+BasicBundleProvider::BasicBundleProvider(QObject *parent) :
+ IBundleProvider(parent)
+{ }
+
+QmlBundle BasicBundleProvider::defaultBundle(const QString &bundleInfoName)
+{
+ static bool wroteErrors = false;
+ QmlBundle res;
+ QString defaultBundlePath = Core::ICore::resourcePath()
+ + QLatin1String("/qml-type-descriptions/")
+ + bundleInfoName;
+ if (!QFileInfo(defaultBundlePath).exists()) {
+ qWarning() << "BasicBundleProvider: ERROR " << defaultBundlePath
+ << " not found";
+ return res;
+ }
+ QStringList errors;
+ if (!res.readFrom(defaultBundlePath, &errors) && ! wroteErrors) {
+ qWarning() << "BasicBundleProvider: ERROR reading " << defaultBundlePath
+ << " : " << errors;
+ wroteErrors = true;
+ }
+ return res;
+}
+
+QmlBundle BasicBundleProvider::defaultQt4QtQuick1Bundle()
+{
+ return defaultBundle(QLatin1String("qt4QtQuick1-bundle.json"));
+}
+
+QmlBundle BasicBundleProvider::defaultQt5QtQuick1Bundle()
+{
+ return defaultBundle(QLatin1String("qt5QtQuick1-bundle.json"));
+}
+
+QmlBundle BasicBundleProvider::defaultQt5QtQuick2Bundle()
+{
+ return defaultBundle(QLatin1String("qt5QtQuick2-bundle.json"));
+}
+
+QmlBundle BasicBundleProvider::defaultQbsBundle()
+{
+ return defaultBundle(QLatin1String("qbs-bundle.json"));
+}
+
+QmlBundle BasicBundleProvider::defaultQmltypesBundle()
+{
+ return defaultBundle(QLatin1String("qmltypes-bundle.json"));
+}
+
+QmlBundle BasicBundleProvider::defaultQmlprojectBundle()
+{
+ return defaultBundle(QLatin1String("qmlproject-bundle.json"));
+}
+
+void BasicBundleProvider::mergeBundlesForKit(ProjectExplorer::Kit *kit
+ , QmlJS::QmlLanguageBundles &bundles
+ , const QHash<QString,QString> &replacements)
+{
+ typedef QmlJS::Document Doc;
+ QHash<QString,QString> myReplacements = replacements;
+
+ bundles.mergeBundleForLanguage(Doc::QmlQbsLanguage, defaultQbsBundle());
+ bundles.mergeBundleForLanguage(Doc::QmlTypeInfoLanguage, defaultQmltypesBundle());
+ bundles.mergeBundleForLanguage(Doc::QmlProjectLanguage, defaultQmlprojectBundle());
+
+ QtSupport::BaseQtVersion *qtVersion = QtSupport::QtKitInformation::qtVersion(kit);
+ if (!qtVersion) {
+ QmlBundle b1(defaultQt4QtQuick1Bundle());
+ bundles.mergeBundleForLanguage(Doc::QmlLanguage, b1);
+ bundles.mergeBundleForLanguage(Doc::QmlQtQuick1Language, b1);
+ QmlBundle b11(defaultQt5QtQuick1Bundle());
+ bundles.mergeBundleForLanguage(Doc::QmlLanguage, b11);
+ bundles.mergeBundleForLanguage(Doc::QmlQtQuick1Language, b11);
+ QmlBundle b2(defaultQt5QtQuick2Bundle());
+ bundles.mergeBundleForLanguage(Doc::QmlLanguage, b2);
+ bundles.mergeBundleForLanguage(Doc::QmlQtQuick2Language, b2);
+ return;
+ }
+ QString qtImportsPath = qtVersion->qmakeProperty("QT_INSTALL_IMPORTS");
+ QString qtQmlPath = qtVersion->qmakeProperty("QT_INSTALL_QML");
+
+ Core::FeatureSet features = qtVersion->availableFeatures();
+ if (features.contains(Core::Feature(QtSupport::Constants::FEATURE_QT_QUICK))
+ || features.contains(Core::Feature(QtSupport::Constants::FEATURE_QT_QUICK_1))
+ || features.contains(Core::Feature(QtSupport::Constants::FEATURE_QT_QUICK_1_1))) {
+ myReplacements.insert(QLatin1String("$(CURRENT_DIRECTORY)"), qtImportsPath);
+ QDir qtQuick1Bundles(qtImportsPath);
+ qtQuick1Bundles.setNameFilters(QStringList(QLatin1String("*-bundle.json")));
+ QmlBundle qtQuick1Bundle;
+ QFileInfoList list = qtQuick1Bundles.entryInfoList();
+ for (int i = 0; i < list.size(); ++i) {
+ QmlBundle bAtt;
+ QStringList errors;
+ if (!bAtt.readFrom(list.value(i).filePath(), &errors))
+ qWarning() << "BasicBundleProvider: ERROR reading " << list[i].filePath() << " : "
+ << errors;
+ qtQuick1Bundle.merge(bAtt);
+ }
+ if (!qtQuick1Bundle.supportedImports().contains(QLatin1String("QtQuick 1."),
+ QmlJS::PersistentTrie::Partial)) {
+ if (qtVersion->qtVersion().majorVersion == 4)
+ qtQuick1Bundle.merge(defaultQt4QtQuick1Bundle());
+ else if (qtVersion->qtVersion().majorVersion > 4)
+ qtQuick1Bundle.merge(defaultQt5QtQuick1Bundle());
+ }
+ qtQuick1Bundle.replaceVars(myReplacements);
+ bundles.mergeBundleForLanguage(Doc::QmlLanguage, qtQuick1Bundle);
+ bundles.mergeBundleForLanguage(Doc::QmlQtQuick1Language, qtQuick1Bundle);
+ }
+ if (features.contains(Core::Feature(QtSupport::Constants::FEATURE_QT_QUICK_2))) {
+ myReplacements.insert(QLatin1String("$(CURRENT_DIRECTORY)"), qtQmlPath);
+ QDir qtQuick2Bundles(qtQmlPath);
+ qtQuick2Bundles.setNameFilters(QStringList(QLatin1String("*-bundle.json")));
+ QmlBundle qtQuick2Bundle;
+ QFileInfoList list = qtQuick2Bundles.entryInfoList();
+ for (int i = 0; i < list.size(); ++i) {
+ QmlBundle bAtt;
+ QStringList errors;
+ if (!bAtt.readFrom(list.value(i).filePath(), &errors))
+ qWarning() << "BasicBundleProvider: ERROR reading " << list[i].filePath() << " : "
+ << errors;
+ qtQuick2Bundle.merge(bAtt);
+ }
+ if (!qtQuick2Bundle.supportedImports().contains(QLatin1String("QtQuick 2."),
+ QmlJS::PersistentTrie::Partial)) {
+ qtQuick2Bundle.merge(defaultQt5QtQuick2Bundle());
+ }
+ qtQuick2Bundle.replaceVars(myReplacements);
+ bundles.mergeBundleForLanguage(Doc::QmlLanguage, qtQuick2Bundle);
+ bundles.mergeBundleForLanguage(Doc::QmlQtQuick2Language, qtQuick2Bundle);
+ }
+}
+
+} // end namespace QmlJSTools
diff --git a/src/plugins/qmljstools/qmljsbundleprovider.h b/src/plugins/qmljstools/qmljsbundleprovider.h
new file mode 100644
index 00000000000..f02a6e3fe7e
--- /dev/null
+++ b/src/plugins/qmljstools/qmljsbundleprovider.h
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 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.
+**
+****************************************************************************/
+
+#ifndef QMLJSBUNDLEPROVIDER_H
+#define QMLJSBUNDLEPROVIDER_H
+
+#include <QObject>
+
+#include <qmljs/qmljsbundle.h>
+#include <qmljs/qmljsdocument.h>
+
+#include "qmljstools_global.h"
+
+namespace ProjectExplorer {
+class Kit;
+class Project;
+class Target;
+}
+
+namespace QmlJSTools {
+
+class QMLJSTOOLS_EXPORT IBundleProvider : public QObject
+{
+ Q_OBJECT
+public:
+ explicit IBundleProvider(QObject *parent = 0)
+ : QObject(parent)
+ { }
+
+ virtual void mergeBundlesForKit(ProjectExplorer::Kit *kit, QmlJS::QmlLanguageBundles &bundles
+ , const QHash<QString,QString> &replacements) = 0;
+};
+
+class QMLJSTOOLS_EXPORT BasicBundleProvider : public IBundleProvider
+{
+ Q_OBJECT
+public:
+ explicit BasicBundleProvider(QObject *parent = 0);
+
+ virtual void mergeBundlesForKit(ProjectExplorer::Kit *kit, QmlJS::QmlLanguageBundles &bundles
+ , const QHash<QString,QString> &replacements);
+
+ static QmlJS::QmlBundle defaultBundle(const QString &bundleInfoName);
+ static QmlJS::QmlBundle defaultQt4QtQuick1Bundle();
+ static QmlJS::QmlBundle defaultQt5QtQuick1Bundle();
+ static QmlJS::QmlBundle defaultQt5QtQuick2Bundle();
+ static QmlJS::QmlBundle defaultQbsBundle();
+ static QmlJS::QmlBundle defaultQmltypesBundle();
+ static QmlJS::QmlBundle defaultQmlprojectBundle();
+};
+
+} // end QmlJSTools namespace
+
+#endif // QMLJSBUNDLEPROVIDER_H
diff --git a/src/plugins/qmljstools/qmljsmodelmanager.cpp b/src/plugins/qmljstools/qmljsmodelmanager.cpp
index 6020dd9e551..36cac68fdac 100644
--- a/src/plugins/qmljstools/qmljsmodelmanager.cpp
+++ b/src/plugins/qmljstools/qmljsmodelmanager.cpp
@@ -32,6 +32,7 @@
#include "qmljsplugindumper.h"
#include "qmljsfindexportedcpptypes.h"
#include "qmljssemanticinfo.h"
+#include "qmljsbundleprovider.h"
#include <coreplugin/icore.h>
#include <coreplugin/editormanager/editormanager.h>
@@ -42,15 +43,25 @@
#include <cplusplus/CppDocument.h>
#include <qmljs/qmljscontext.h>
#include <qmljs/qmljsbind.h>
+#include <qmljs/qmljsbundle.h>
#include <qmljs/parser/qmldirparser_p.h>
#include <texteditor/itexteditor.h>
#include <texteditor/basetexteditor.h>
+#include <projectexplorer/buildconfiguration.h>
+#include <projectexplorer/kit.h>
+#include <projectexplorer/kitinformation.h>
#include <projectexplorer/project.h>
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/session.h>
+#include <projectexplorer/target.h>
+#include <projectexplorer/toolchain.h>
#include <qtsupport/baseqtversion.h>
+#include <qtsupport/qtkitinformation.h>
+#include <qtsupport/qmldumptool.h>
+#include <qtsupport/qtsupportconstants.h>
#include <utils/hostosinfo.h>
+#include <extensionsystem/pluginmanager.h>
#include <QDir>
#include <QFile>
@@ -61,6 +72,7 @@
#include <QTextStream>
#include <QCoreApplication>
#include <QTimer>
+#include <QRegExp>
#include <QDebug>
@@ -68,6 +80,104 @@ using namespace QmlJS;
using namespace QmlJSTools;
using namespace QmlJSTools::Internal;
+
+ModelManagerInterface::ProjectInfo QmlJSTools::defaultProjectInfoForProject(
+ ProjectExplorer::Project *project)
+{
+ ModelManagerInterface::ProjectInfo projectInfo(project);
+ ProjectExplorer::Target *activeTarget = 0;
+ if (project) {
+ Core::MimeDatabase *db = Core::ICore::mimeDatabase();
+ QList<Core::MimeGlobPattern> globs;
+ QList<Core::MimeType> mimeTypes = db->mimeTypes();
+ foreach (const Core::MimeType &mimeType, mimeTypes)
+ if (mimeType.type() == QLatin1String(Constants::QML_MIMETYPE)
+ || mimeType.subClassesOf().contains(QLatin1String(Constants::QML_MIMETYPE)))
+ globs << mimeType.globPatterns();
+ if (globs.isEmpty())
+ globs << Core::MimeGlobPattern(QRegExp(QLatin1String(".*\\.(?:qbs|qml|qmltypes|qmlproject)$")));
+ foreach (const QString &filePath
+ , project->files(ProjectExplorer::Project::ExcludeGeneratedFiles))
+ foreach (const Core::MimeGlobPattern &glob, globs)
+ if (glob.regExp().exactMatch(filePath))
+ projectInfo.sourceFiles << filePath;
+ activeTarget = project->activeTarget();
+ }
+ ProjectExplorer::Kit *activeKit = activeTarget ? activeTarget->kit() :
+ ProjectExplorer::KitManager::instance()->defaultKit();
+ QtSupport::BaseQtVersion *qtVersion = QtSupport::QtKitInformation::qtVersion(activeKit);
+
+ bool preferDebugDump = false;
+ bool setPreferDump = false;
+ projectInfo.tryQmlDump = false;
+
+ if (activeTarget) {
+ if (ProjectExplorer::BuildConfiguration *bc = activeTarget->activeBuildConfiguration()) {
+ preferDebugDump = bc->buildType() == ProjectExplorer::BuildConfiguration::Debug;
+ setPreferDump = true;
+ }
+ }
+ if (!setPreferDump && qtVersion)
+ preferDebugDump = (qtVersion->defaultBuildConfig() & QtSupport::BaseQtVersion::DebugBuild);
+ if (qtVersion && qtVersion->isValid()) {
+ projectInfo.tryQmlDump = project && (
+ qtVersion->type() == QLatin1String(QtSupport::Constants::DESKTOPQT)
+ || qtVersion->type() == QLatin1String(QtSupport::Constants::SIMULATORQT));
+ projectInfo.qtQmlPath = qtVersion->qmakeProperty("QT_INSTALL_QML");
+ projectInfo.qtImportsPath = qtVersion->qmakeProperty("QT_INSTALL_IMPORTS");
+ projectInfo.qtVersionString = qtVersion->qtVersionString();
+ }
+
+ if (projectInfo.tryQmlDump) {
+ ProjectExplorer::ToolChain *toolChain =
+ ProjectExplorer::ToolChainKitInformation::toolChain(activeKit);
+ QtSupport::QmlDumpTool::pathAndEnvironment(project, qtVersion,
+ toolChain,
+ preferDebugDump, &projectInfo.qmlDumpPath,
+ &projectInfo.qmlDumpEnvironment);
+ } else {
+ projectInfo.qmlDumpPath.clear();
+ projectInfo.qmlDumpEnvironment.clear();
+ }
+ setupProjectInfoQmlBundles(projectInfo);
+ return projectInfo;
+}
+
+void QmlJSTools::setupProjectInfoQmlBundles(ModelManagerInterface::ProjectInfo &projectInfo)
+{
+ ProjectExplorer::Target *activeTarget = 0;
+ if (projectInfo.project) {
+ activeTarget = projectInfo.project->activeTarget();
+ }
+ ProjectExplorer::Kit *activeKit = activeTarget
+ ? activeTarget->kit() : ProjectExplorer::KitManager::instance()->defaultKit();
+ QHash<QString, QString> replacements;
+ replacements.insert(QLatin1String("$(QT_INSTALL_IMPORTS)"), projectInfo.qtImportsPath);
+ replacements.insert(QLatin1String("$(QT_INSTALL_QML)"), projectInfo.qtQmlPath);
+
+ QList<IBundleProvider *> bundleProviders =
+ ExtensionSystem::PluginManager::getObjects<IBundleProvider>();
+
+ foreach (IBundleProvider *bp, bundleProviders) {
+ if (bp)
+ bp->mergeBundlesForKit(activeKit, projectInfo.activeBundle, replacements);
+ }
+ projectInfo.extendedBundle = projectInfo.activeBundle;
+
+ if (projectInfo.project) {
+ QSet<ProjectExplorer::Kit *> currentKits;
+ foreach (const ProjectExplorer::Target *t, projectInfo.project->targets())
+ if (t->kit())
+ currentKits.insert(t->kit());
+ currentKits.remove(activeKit);
+ foreach (ProjectExplorer::Kit *kit, currentKits) {
+ foreach (IBundleProvider *bp, bundleProviders)
+ if (bp)
+ bp->mergeBundlesForKit(kit, projectInfo.extendedBundle, replacements);
+ }
+ }
+}
+
static QStringList environmentImportPaths();
static void mergeSuffixes(QStringList &l1, const QStringList &l2)
@@ -373,6 +483,7 @@ void ModelManager::updateProjectInfo(const ProjectInfo &pinfo)
void ModelManager::removeProjectInfo(ProjectExplorer::Project *project)
{
ProjectInfo info(project);
+ info.sourceFiles.clear();
// update with an empty project info to clear data
updateProjectInfo(info);
@@ -382,6 +493,16 @@ void ModelManager::removeProjectInfo(ProjectExplorer::Project *project)
}
}
+ModelManagerInterface::ProjectInfo ModelManager::projectInfoForPath(QString path)
+{
+ QMutexLocker locker(&m_mutex);
+
+ foreach (const ProjectInfo &p, m_projects)
+ if (p.sourceFiles.contains(path))
+ return p;
+ return ProjectInfo();
+}
+
void ModelManager::emitDocumentChangedOnDisk(Document::Ptr doc)
{ emit documentChangedOnDisk(doc); }
@@ -660,6 +781,18 @@ QStringList ModelManager::importPaths() const
return m_allImportPaths;
}
+QmlLanguageBundles ModelManager::activeBundles() const
+{
+ QMutexLocker l(&m_mutex);
+ return m_activeBundles;
+}
+
+QmlLanguageBundles ModelManager::extendedBundles() const
+{
+ QMutexLocker l(&m_mutex);
+ return m_extendedBundles;
+}
+
static QStringList environmentImportPaths()
{
QStringList paths;
@@ -679,6 +812,8 @@ static QStringList environmentImportPaths()
void ModelManager::updateImportPaths()
{
QStringList allImportPaths;
+ QmlLanguageBundles activeBundles;
+ QmlLanguageBundles extendedBundles;
QMapIterator<ProjectExplorer::Project *, ProjectInfo> it(m_projects);
while (it.hasNext()) {
it.next();
@@ -688,12 +823,40 @@ void ModelManager::updateImportPaths()
allImportPaths += canonicalPath;
}
}
+ it.toFront();
+ while (it.hasNext()) {
+ it.next();
+ activeBundles.mergeLanguageBundles(it.value().activeBundle);
+ foreach (Document::Language l, it.value().activeBundle.languages()) {
+ foreach (const QString &path, it.value().activeBundle.bundleForLanguage(l)
+ .searchPaths().stringList()) {
+ const QString canonicalPath = QFileInfo(path).canonicalFilePath();
+ if (!canonicalPath.isEmpty())
+ allImportPaths += canonicalPath;
+ }
+ }
+ }
+ it.toFront();
+ while (it.hasNext()) {
+ it.next();
+ extendedBundles.mergeLanguageBundles(it.value().extendedBundle);
+ foreach (Document::Language l, it.value().extendedBundle.languages()) {
+ foreach (const QString &path, it.value().extendedBundle.bundleForLanguage(l)
+ .searchPaths().stringList()) {
+ const QString canonicalPath = QFileInfo(path).canonicalFilePath();
+ if (!canonicalPath.isEmpty())
+ allImportPaths += canonicalPath;
+ }
+ }
+ }
allImportPaths += m_defaultImportPaths;
allImportPaths.removeDuplicates();
{
QMutexLocker l(&m_mutex);
m_allImportPaths = allImportPaths;
+ m_activeBundles = activeBundles;
+ m_extendedBundles = extendedBundles;
}
diff --git a/src/plugins/qmljstools/qmljsmodelmanager.h b/src/plugins/qmljstools/qmljsmodelmanager.h
index 571ea8b0550..3b0763f904a 100644
--- a/src/plugins/qmljstools/qmljsmodelmanager.h
+++ b/src/plugins/qmljstools/qmljsmodelmanager.h
@@ -82,12 +82,15 @@ public:
virtual ProjectInfo projectInfo(ProjectExplorer::Project *project) const;
virtual void updateProjectInfo(const ProjectInfo &pinfo);
Q_SLOT virtual void removeProjectInfo(ProjectExplorer::Project *project);
+ virtual ProjectInfo projectInfoForPath(QString path);
void updateDocument(QmlJS::Document::Ptr doc);
void updateLibraryInfo(const QString &path, const QmlJS::LibraryInfo &info);
void emitDocumentChangedOnDisk(QmlJS::Document::Ptr doc);
virtual QStringList importPaths() const;
+ virtual QmlJS::QmlLanguageBundles activeBundles() const;
+ virtual QmlJS::QmlLanguageBundles extendedBundles() const;
virtual void loadPluginTypes(const QString &libraryPath, const QString &importPath,
const QString &importUri, const QString &importVersion);
@@ -136,6 +139,8 @@ private:
QmlJS::Snapshot _newestSnapshot;
QStringList m_allImportPaths;
QStringList m_defaultImportPaths;
+ QmlJS::QmlLanguageBundles m_activeBundles;
+ QmlJS::QmlLanguageBundles m_extendedBundles;
QFutureSynchronizer<void> m_synchronizer;
@@ -153,6 +158,11 @@ private:
};
} // namespace Internal
+
+QMLJSTOOLS_EXPORT QmlJS::ModelManagerInterface::ProjectInfo defaultProjectInfoForProject(
+ ProjectExplorer::Project *project);
+QMLJSTOOLS_EXPORT void setupProjectInfoQmlBundles(QmlJS::ModelManagerInterface::ProjectInfo &projectInfo);
+
} // namespace QmlJSTools
#endif // QMLJSMODELMANAGER_H
diff --git a/src/plugins/qmljstools/qmljsplugindumper.cpp b/src/plugins/qmljstools/qmljsplugindumper.cpp
index 41e29f19fd6..766024d9810 100644
--- a/src/plugins/qmljstools/qmljsplugindumper.cpp
+++ b/src/plugins/qmljstools/qmljsplugindumper.cpp
@@ -119,6 +119,13 @@ void PluginDumper::onLoadBuiltinTypes(const QmlJS::ModelManagerInterface::Projec
loadQmltypesFile(QStringList(builtinQmltypesPath), info.qtImportsPath, builtinInfo);
return;
}
+ // QTDIR/imports/QtQuick1/builtins.qmltypes was used in developer builds of 5.0.0, 5.0.1
+ const QString builtinQmltypesPath2 = info.qtImportsPath
+ + QLatin1String("/QtQuick1/builtins.qmltypes");
+ if (QFile::exists(builtinQmltypesPath2)) {
+ loadQmltypesFile(QStringList(builtinQmltypesPath2), info.qtImportsPath, builtinInfo);
+ return;
+ }
// run qmldump
QProcess *process = new QProcess(this);
diff --git a/src/plugins/qmljstools/qmljstools.pro b/src/plugins/qmljstools/qmljstools.pro
index b653f9b0843..575d486be1b 100644
--- a/src/plugins/qmljstools/qmljstools.pro
+++ b/src/plugins/qmljstools/qmljstools.pro
@@ -10,6 +10,7 @@ DEFINES += QMLJSTOOLS_LIBRARY
}
HEADERS += \
+ $$PWD/qmljsbundleprovider.h \
$$PWD/qmljstoolsplugin.h \
$$PWD/qmljstoolsconstants.h \
$$PWD/qmljstoolssettings.h \
@@ -36,6 +37,7 @@ HEADERS += \
$$PWD/qmlconsoleproxymodel.h
SOURCES += \
+ $$PWD/qmljsbundleprovider.cpp \
$$PWD/qmljstoolsplugin.cpp \
$$PWD/qmljstoolssettings.cpp \
$$PWD/qmljscodestylepreferencesfactory.cpp \
diff --git a/src/plugins/qmljstools/qmljstools.qbs b/src/plugins/qmljstools/qmljstools.qbs
index 9f62253750f..d787c842b1c 100644
--- a/src/plugins/qmljstools/qmljstools.qbs
+++ b/src/plugins/qmljstools/qmljstools.qbs
@@ -21,6 +21,8 @@ QtcPlugin {
cpp.includePaths: base.concat("../../libs/3rdparty")
files: [
+ "qmljsbundleprovider.cpp",
+ "qmljsbundleprovider.h",
"qmljscodestylepreferencesfactory.cpp",
"qmljscodestylepreferencesfactory.h",
"qmljscodestylesettingspage.cpp",
diff --git a/src/plugins/qmljstools/qmljstoolsplugin.cpp b/src/plugins/qmljstools/qmljstoolsplugin.cpp
index 22d6717294d..dc9ba4ec1bf 100644
--- a/src/plugins/qmljstools/qmljstoolsplugin.cpp
+++ b/src/plugins/qmljstools/qmljstoolsplugin.cpp
@@ -35,6 +35,7 @@
#include "qmljstoolsconstants.h"
#include "qmljstoolssettings.h"
#include "qmlconsolemanager.h"
+#include "qmljsbundleprovider.h"
#include <extensionsystem/pluginmanager.h>
@@ -94,6 +95,7 @@ bool QmlJSToolsPlugin::initialize(const QStringList &arguments, QString *error)
addAutoReleasedObject(locatorData);
addAutoReleasedObject(new FunctionFilter(locatorData));
addAutoReleasedObject(new QmlJSCodeStyleSettingsPage);
+ addAutoReleasedObject(new BasicBundleProvider);
// Menus
Core::ActionContainer *mtools = Core::ActionManager::actionContainer(Core::Constants::M_TOOLS);
diff --git a/src/plugins/qmlprofiler/QmlProfiler.pluginspec.in b/src/plugins/qmlprofiler/QmlProfiler.pluginspec.in
index 0e748f93a75..19fc666230d 100644
--- a/src/plugins/qmlprofiler/QmlProfiler.pluginspec.in
+++ b/src/plugins/qmlprofiler/QmlProfiler.pluginspec.in
@@ -17,6 +17,7 @@
<dependency name=\"Core\" version=\"$$QTCREATOR_VERSION\"/>
<dependency name=\"AnalyzerBase\" version=\"$$QTCREATOR_VERSION\"/>
<dependency name=\"QmlProjectManager\" version=\"$$QTCREATOR_VERSION\"/>
+ <dependency name=\"QmlJSTools\" version=\"$$QTCREATOR_VERSION\"/>
<dependency name=\"Qt4ProjectManager\" version=\"$$QTCREATOR_VERSION\"/>
<dependency name=\"RemoteLinux\" version=\"$$QTCREATOR_VERSION\"/>
</dependencyList>
diff --git a/src/plugins/qmlprofiler/qmlprofiler.pro b/src/plugins/qmlprofiler/qmlprofiler.pro
index ca75dc68c00..6f9841f6974 100644
--- a/src/plugins/qmlprofiler/qmlprofiler.pro
+++ b/src/plugins/qmlprofiler/qmlprofiler.pro
@@ -10,6 +10,7 @@ include(../../plugins/coreplugin/coreplugin.pri)
include(../../plugins/analyzerbase/analyzerbase.pri)
include(../../plugins/qmlprojectmanager/qmlprojectmanager.pri)
include(../../plugins/qt4projectmanager/qt4projectmanager.pri)
+include(../../plugins/qmljstools/qmljstools.pri)
include(../../plugins/remotelinux/remotelinux.pri)
include(../../libs/qmldebug/qmldebug.pri)
include(../../libs/extensionsystem/extensionsystem.pri)
diff --git a/src/plugins/qmlprofiler/qmlprofilerdatamodel.cpp b/src/plugins/qmlprofiler/qmlprofilerdatamodel.cpp
index f1ea71d1726..77f11b70fe2 100644
--- a/src/plugins/qmlprofiler/qmlprofilerdatamodel.cpp
+++ b/src/plugins/qmlprofiler/qmlprofilerdatamodel.cpp
@@ -174,7 +174,6 @@ public:
void prepareForDisplay();
void linkStartsToEnds();
void linkEndsToStarts();
- bool checkBindingLoop(QmlRangeEventData *from, QmlRangeEventData *current, QList<QmlRangeEventData *>visited);
// stats
@@ -320,7 +319,7 @@ void QmlProfilerDataModel::addRangedEvent(int type, int bindingType, qint64 star
// backwards compatibility: "compiling" events don't have a proper location in older
// version of the protocol, but the filename is passed in the details string
- if (type == QmlDebug::Compiling && eventLocation.filename.isEmpty()) {
+ if ((type == QmlDebug::Creating || type == QmlDebug::Compiling) && eventLocation.filename.isEmpty()) {
eventLocation.filename = details;
eventLocation.line = 1;
eventLocation.column = 1;
@@ -803,6 +802,9 @@ void QmlProfilerDataModel::complete()
d->v8DataModel->collectV8Statistics();
compileStatistics(traceStartTime(), traceEndTime());
setState(Done);
+ } else
+ if (currentState() == Done) {
+ // ignore duplicated complete signals
} else {
emit error(tr("Unexpected complete signal in data model."));
}
@@ -1246,7 +1248,8 @@ void QmlProfilerDataModel::QmlProfilerDataModelPrivate::findBindingLoops(qint64
stack << inTimeEvent;
stackRefs << currentEvent;
- if (loopDetected) {
+ // skip loops if bindings are anonymous
+ if (loopDetected && !currentEvent->location.filename.isEmpty()) {
if (i >= fromIndex && i <= toIndex) {
// for the statistics
currentEvent->isBindingLoop = true;
diff --git a/src/plugins/qmlprofiler/qmlprofilerdatamodel.h b/src/plugins/qmlprofiler/qmlprofilerdatamodel.h
index bbd2c279dfb..0eb31b43f26 100644
--- a/src/plugins/qmlprofiler/qmlprofilerdatamodel.h
+++ b/src/plugins/qmlprofiler/qmlprofilerdatamodel.h
@@ -56,6 +56,8 @@ struct QmlRangeEventData
QmlDebug::QmlEventLocation location;
QmlDebug::QmlEventType eventType;
+ bool isBindingLoop;
+
QHash <QString, QmlRangeEventRelative *> parentHash;
QHash <QString, QmlRangeEventRelative *> childrenHash;
@@ -67,8 +69,6 @@ struct QmlRangeEventData
double percentOfTime;
qint64 medianTime;
- bool isBindingLoop;
-
QmlRangeEventData &operator=(const QmlRangeEventData &ref);
};
diff --git a/src/plugins/qmlprojectmanager/QmlProjectManager.pluginspec.in b/src/plugins/qmlprojectmanager/QmlProjectManager.pluginspec.in
index 0de93f8f852..004d66da4db 100644
--- a/src/plugins/qmlprojectmanager/QmlProjectManager.pluginspec.in
+++ b/src/plugins/qmlprojectmanager/QmlProjectManager.pluginspec.in
@@ -17,6 +17,7 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
<dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
<dependency name=\"TextEditor\" version=\"$$QTCREATOR_VERSION\"/>
<dependency name=\"QmlJSEditor\" version=\"$$QTCREATOR_VERSION\"/>
+ <dependency name=\"QmlJSTools\" version=\"$$QTCREATOR_VERSION\"/>
<dependency name=\"Debugger\" version=\"$$QTCREATOR_VERSION\" />
<dependency name=\"QtSupport\" version=\"$$QTCREATOR_VERSION\" />
</dependencyList>
diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp
index fdaabe37d4c..abae2fc9d51 100644
--- a/src/plugins/qmlprojectmanager/qmlproject.cpp
+++ b/src/plugins/qmlprojectmanager/qmlproject.cpp
@@ -45,6 +45,7 @@
#include <qtsupport/qtversionmanager.h>
#include <qtsupport/qtkitinformation.h>
#include <qmljs/qmljsmodelmanagerinterface.h>
+#include <qmljstools/qmljsmodelmanager.h>
#include <utils/fileutils.h>
#include <projectexplorer/kitinformation.h>
#include <projectexplorer/kitmanager.h>
@@ -64,7 +65,7 @@ QmlProject::QmlProject(Internal::Manager *manager, const QString &fileName)
m_modelManager(QmlJS::ModelManagerInterface::instance())
{
setProjectContext(Core::Context(QmlProjectManager::Constants::PROJECTCONTEXT));
- setProjectLanguage(Core::Context(QmlProjectManager::Constants::LANG_QML));
+ setProjectLanguages(Core::Context(QmlProjectManager::Constants::LANG_QML));
QFileInfo fileInfo(m_fileName);
m_projectName = fileInfo.completeBaseName();
@@ -184,32 +185,10 @@ void QmlProject::refresh(RefreshOptions options)
if (options & Files)
m_rootNode->refresh();
- QmlJS::ModelManagerInterface::ProjectInfo projectInfo(this);
- projectInfo.sourceFiles = files();
+ QmlJS::ModelManagerInterface::ProjectInfo projectInfo =
+ QmlJSTools::defaultProjectInfoForProject(this);
projectInfo.importPaths = customImportPaths();
- QtSupport::BaseQtVersion *qtVersion = 0;
- {
- ProjectExplorer::Target *target = activeTarget();
- ProjectExplorer::Kit *kit = target ? target->kit() : ProjectExplorer::KitManager::instance()->defaultKit();
- ProjectExplorer::ToolChain *toolChain = ProjectExplorer::ToolChainKitInformation::toolChain(kit);
- qtVersion = QtSupport::QtKitInformation::qtVersion(kit);
- QtSupport::QmlDumpTool::pathAndEnvironment(this, qtVersion, toolChain, false,
- &projectInfo.qmlDumpPath, &projectInfo.qmlDumpEnvironment);
- }
-
- if (qtVersion) {
- projectInfo.tryQmlDump = true;
- projectInfo.qtImportsPath = qtVersion->qmakeProperty("QT_INSTALL_IMPORTS");
- projectInfo.qtQmlPath = qtVersion->qmakeProperty("QT_INSTALL_QML");
- projectInfo.qtVersionString = qtVersion->qtVersionString();
-
- if (!projectInfo.qtQmlPath.isEmpty())
- projectInfo.importPaths += projectInfo.qtQmlPath;
- if (!projectInfo.qtImportsPath.isEmpty())
- projectInfo.importPaths += projectInfo.qtImportsPath;
-
- }
m_modelManager->updateProjectInfo(projectInfo);
}
diff --git a/src/plugins/qmlprojectmanager/qmlprojectmanager.qbs b/src/plugins/qmlprojectmanager/qmlprojectmanager.qbs
index 3900c9d1084..06527a94628 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectmanager.qbs
+++ b/src/plugins/qmlprojectmanager/qmlprojectmanager.qbs
@@ -12,6 +12,7 @@ QtcPlugin {
Depends { name: "TextEditor" }
Depends { name: "QmlJSEditor" }
Depends { name: "QmlJS" }
+ Depends { name: "QmlJSTools" }
Depends { name: "Debugger" }
Depends { name: "QtSupport" }
Depends { name: "app_version_header" }
diff --git a/src/plugins/qmlprojectmanager/qmlprojectmanager_dependencies.pri b/src/plugins/qmlprojectmanager/qmlprojectmanager_dependencies.pri
index 24a66d37a2a..397018b9103 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectmanager_dependencies.pri
+++ b/src/plugins/qmlprojectmanager/qmlprojectmanager_dependencies.pri
@@ -1,5 +1,6 @@
include(../../plugins/projectexplorer/projectexplorer.pri)
include(../../plugins/texteditor/texteditor.pri)
include(../../plugins/qmljseditor/qmljseditor.pri)
+include(../../plugins/qmljstools/qmljstools.pri)
include(../../plugins/debugger/debugger.pri)
include(../../plugins/qtsupport/qtsupport.pri)
diff --git a/src/plugins/qnx/bardescriptoreditorwidget.cpp b/src/plugins/qnx/bardescriptoreditorwidget.cpp
index f2c2c9e93fc..3d64cb3f17d 100644
--- a/src/plugins/qnx/bardescriptoreditorwidget.cpp
+++ b/src/plugins/qnx/bardescriptoreditorwidget.cpp
@@ -35,13 +35,18 @@
#include "qnxconstants.h"
#include "bardescriptoreditor.h"
#include "bardescriptorpermissionsmodel.h"
+#include "blackberrydeviceconfiguration.h"
+#include "blackberrydebugtokenreader.h"
+#include <projectexplorer/devicesupport/devicemanager.h>
#include <qtsupport/qtversionmanager.h>
#include <texteditor/plaintexteditor.h>
#include <utils/qtcassert.h>
#include <QFileDialog>
+#include <QInputDialog>
#include <QItemSelection>
+#include <QMessageBox>
#include <QStandardItemModel>
#include <QStringListModel>
@@ -103,6 +108,8 @@ BarDescriptorEditorWidget::~BarDescriptorEditorWidget()
void BarDescriptorEditorWidget::initGeneralPage()
{
+ m_ui->setFromDebugToken->setVisible(BlackBerryDebugTokenReader::isSupported());
+
QRegExp versionNumberRegExp(QLatin1String("(\\d{1,3}\\.)?(\\d{1,3}\\.)?(\\d{1,3})"));
QRegExpValidator *versionNumberValidator = new QRegExpValidator(versionNumberRegExp, this);
m_ui->packageVersion->setValidator(versionNumberValidator);
@@ -113,6 +120,7 @@ void BarDescriptorEditorWidget::initGeneralPage()
connect(m_ui->author, SIGNAL(textChanged(QString)), this, SLOT(setDirty()));
connect(m_ui->authorId, SIGNAL(textChanged(QString)), this, SLOT(setDirty()));
+ connect(m_ui->setFromDebugToken, SIGNAL(clicked()), this, SLOT(setAuthorFromDebugToken()));
}
void BarDescriptorEditorWidget::clearGeneralPage()
@@ -214,14 +222,15 @@ void BarDescriptorEditorWidget::initAssetsPage()
connect(m_ui->addAsset, SIGNAL(clicked()), this, SLOT(addNewAsset()));
connect(m_ui->removeAsset, SIGNAL(clicked()), this, SLOT(removeSelectedAsset()));
connect(m_assetsModel, SIGNAL(itemChanged(QStandardItem*)), this, SLOT(updateEntryCheckState(QStandardItem*)));
- connect(m_assetsModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(setDirty()));
+ connectAssetsModel();
}
void BarDescriptorEditorWidget::clearAssetsPage()
{
- disconnect(m_assetsModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(setDirty()));
+ // We can't just block signals, as the view depends on them
+ disconnectAssetsModel();
m_assetsModel->removeRows(0, m_assetsModel->rowCount());
- connect(m_assetsModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(setDirty()));
+ connectAssetsModel();
}
void BarDescriptorEditorWidget::initSourcePage()
@@ -237,6 +246,20 @@ void BarDescriptorEditorWidget::clearSourcePage()
connect(m_ui->xmlSourceView, SIGNAL(textChanged()), this, SLOT(setDirty()));
}
+void BarDescriptorEditorWidget::disconnectAssetsModel()
+{
+ disconnect(m_assetsModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(setDirty()));
+ disconnect(m_assetsModel, SIGNAL(rowsInserted(QModelIndex, int, int)), this, SLOT(setDirty()));
+ disconnect(m_assetsModel, SIGNAL(rowsRemoved(QModelIndex, int, int)), this, SLOT(setDirty()));
+}
+
+void BarDescriptorEditorWidget::connectAssetsModel()
+{
+ connect(m_assetsModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(setDirty()));
+ connect(m_assetsModel, SIGNAL(rowsInserted(QModelIndex, int, int)), this, SLOT(setDirty()));
+ connect(m_assetsModel, SIGNAL(rowsRemoved(QModelIndex, int, int)), this, SLOT(setDirty()));
+}
+
Core::IEditor *BarDescriptorEditorWidget::editor() const
{
if (!m_editor) {
@@ -522,6 +545,13 @@ void BarDescriptorEditorWidget::handleSplashScreenSelectionChanged(const QItemSe
void BarDescriptorEditorWidget::addAsset(const BarDescriptorAsset &asset)
{
+ disconnectAssetsModel();
+ addAssetInternal(asset);
+ connectAssetsModel();
+}
+
+void BarDescriptorEditorWidget::addAssetInternal(const BarDescriptorAsset &asset)
+{
const QString path = asset.source;
const QString dest = asset.destination;
QTC_ASSERT(!path.isEmpty(), return);
@@ -530,8 +560,6 @@ void BarDescriptorEditorWidget::addAsset(const BarDescriptorAsset &asset)
if (hasAsset(asset))
return;
- disconnect(m_assetsModel, SIGNAL(itemChanged(QStandardItem*)), this, SLOT(updateEntryCheckState(QStandardItem*)));
-
QList<QStandardItem *> items;
items << new QStandardItem(path);
items << new QStandardItem(dest);
@@ -542,7 +570,6 @@ void BarDescriptorEditorWidget::addAsset(const BarDescriptorAsset &asset)
items << entryItem;
m_assetsModel->appendRow(items);
- connect(m_assetsModel, SIGNAL(itemChanged(QStandardItem*)), this, SLOT(updateEntryCheckState(QStandardItem*)));
}
bool BarDescriptorEditorWidget::hasAsset(const BarDescriptorAsset &asset)
@@ -631,7 +658,7 @@ void BarDescriptorEditorWidget::addNewAsset()
asset.source = fileName;
asset.destination = fi.fileName();
asset.entry = false; // TODO
- addAsset(asset);
+ addAssetInternal(asset);
}
void BarDescriptorEditorWidget::removeSelectedAsset()
@@ -670,5 +697,37 @@ void BarDescriptorEditorWidget::addImageAsAsset(const QString &path)
asset.source = path;
asset.destination = QFileInfo(path).fileName();
asset.entry = false;
- addAsset(asset);
+ addAssetInternal(asset);
+}
+
+void BarDescriptorEditorWidget::setAuthorFromDebugToken()
+{
+ // To select debug token, make it fancier once the debug token management is done in
+ // Qt Creator
+ QStringList debugTokens;
+ ProjectExplorer::DeviceManager *deviceManager = ProjectExplorer::DeviceManager::instance();
+ for (int i = 0; i < deviceManager->deviceCount(); ++i) {
+ ProjectExplorer::IDevice::ConstPtr device = deviceManager->deviceAt(i);
+ if (device->type() == Core::Id(Constants::QNX_BB_OS_TYPE)) {
+ BlackBerryDeviceConfiguration::ConstPtr bbDevice = device.dynamicCast<const BlackBerryDeviceConfiguration>();
+ QTC_ASSERT(bbDevice, continue);
+
+ debugTokens << bbDevice->debugToken();
+ }
+ }
+ debugTokens.removeDuplicates();
+
+ bool ok;
+ QString debugToken = QInputDialog::getItem(this, tr("Select Debug Token"), tr("Debug token:"), debugTokens, 0, false, &ok);
+ if (!ok || debugToken.isEmpty())
+ return;
+
+ BlackBerryDebugTokenReader debugTokenReader(debugToken);
+ if (!debugTokenReader.isValid()) {
+ QMessageBox::warning(this, tr("Error Reading Debug Token"), tr("There was a problem reading debug token"));
+ return;
+ }
+
+ m_ui->author->setText(debugTokenReader.author());
+ m_ui->authorId->setText(debugTokenReader.authorId());
}
diff --git a/src/plugins/qnx/bardescriptoreditorwidget.h b/src/plugins/qnx/bardescriptoreditorwidget.h
index b9fa8fcd7f8..aaaae431b43 100644
--- a/src/plugins/qnx/bardescriptoreditorwidget.h
+++ b/src/plugins/qnx/bardescriptoreditorwidget.h
@@ -137,6 +137,8 @@ signals:
void changed();
private slots:
+ void setAuthorFromDebugToken();
+
void addNewAsset();
void removeSelectedAsset();
void updateEntryCheckState(QStandardItem *item);
@@ -162,6 +164,10 @@ private:
void initSourcePage();
void clearSourcePage();
+ void disconnectAssetsModel();
+ void connectAssetsModel();
+
+ void addAssetInternal(const BarDescriptorAsset &asset);
bool hasAsset(const BarDescriptorAsset &asset);
QString localAssetPathFromDestination(const QString &path);
diff --git a/src/plugins/qnx/bardescriptoreditorwidget.ui b/src/plugins/qnx/bardescriptoreditorwidget.ui
index 362b687f5ba..919603d211f 100644
--- a/src/plugins/qnx/bardescriptoreditorwidget.ui
+++ b/src/plugins/qnx/bardescriptoreditorwidget.ui
@@ -107,16 +107,23 @@
<item row="0" column="1">
<widget class="QLineEdit" name="author"/>
</item>
- <item row="1" column="0">
+ <item row="3" column="0">
<widget class="QLabel" name="label_15">
<property name="text">
<string>Author ID:</string>
</property>
</widget>
</item>
- <item row="1" column="1">
+ <item row="3" column="1">
<widget class="QLineEdit" name="authorId"/>
</item>
+ <item row="4" column="1">
+ <widget class="QPushButton" name="setFromDebugToken">
+ <property name="text">
+ <string>Set from debug token...</string>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
</item>
diff --git a/src/plugins/qnx/blackberrycertificatemodel.cpp b/src/plugins/qnx/blackberrycertificatemodel.cpp
index e456615e050..5837bcea2ec 100644
--- a/src/plugins/qnx/blackberrycertificatemodel.cpp
+++ b/src/plugins/qnx/blackberrycertificatemodel.cpp
@@ -142,9 +142,8 @@ bool BlackBerryCertificateModel::removeRows(int row, int count,
beginRemoveRows(parent, row, row + count - 1);
for (int i = 0; i < count; i++) {
- BlackBerryCertificate *cert = m_certificates.takeAt(row);
+ m_certificates.removeAt(row);
//XXX shall we also delete from disk?
- delete cert;
}
endRemoveRows();
diff --git a/src/plugins/qnx/blackberryconfiguration.cpp b/src/plugins/qnx/blackberryconfiguration.cpp
index c27a84bdda1..8fecd7fbfef 100644
--- a/src/plugins/qnx/blackberryconfiguration.cpp
+++ b/src/plugins/qnx/blackberryconfiguration.cpp
@@ -210,7 +210,8 @@ void BlackBerryConfiguration::setupNdkConfiguration(const QString &ndkPath)
ProjectExplorer::Kit *deviceKit = createKit(ArmLeV7, qtVersion, tc);
ProjectExplorer::Kit *simulatorKit = createKit(X86, qtVersion, tc);
if (qtVersion && tc && deviceKit && simulatorKit) {
- tc->setTargetAbi(qtVersion->qtAbis().first());
+ if (!qtVersion->qtAbis().isEmpty())
+ tc->setTargetAbi(qtVersion->qtAbis().first());
// register
QtSupport::QtVersionManager::instance()->addVersion(qtVersion);
ProjectExplorer::ToolChainManager::instance()->registerToolChain(tc);
diff --git a/src/plugins/qnx/blackberrydebugtokenreader.cpp b/src/plugins/qnx/blackberrydebugtokenreader.cpp
new file mode 100644
index 00000000000..836b6a771db
--- /dev/null
+++ b/src/plugins/qnx/blackberrydebugtokenreader.cpp
@@ -0,0 +1,114 @@
+/**************************************************************************
+**
+** Copyright (C) 2011 - 2013 Research In Motion
+**
+** Contact: Research In Motion (blackberry-qt@qnx.com)
+** Contact: KDAB (info@kdab.com)
+**
+** 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.
+**
+****************************************************************************/
+
+#include "blackberrydebugtokenreader.h"
+
+#ifdef QNX_ZIP_FILE_SUPPORT
+#include <private/qzipreader_p.h>
+#endif
+
+using namespace Qnx;
+using namespace Qnx::Internal;
+
+namespace {
+const char MANIFEST_FILENAME[] = "META-INF/MANIFEST.MF";
+
+const char MANIFEST_AUTHOR_KEY[] = "Package-Author: ";
+const char MANIFEST_AUTHOR_ID_KEY[] = "Package-Author-Id: ";
+}
+
+BlackBerryDebugTokenReader::BlackBerryDebugTokenReader(const QString &filePath)
+{
+#ifdef QNX_ZIP_FILE_SUPPORT
+ m_zipReader = new QZipReader(filePath);
+#else
+ Q_UNUSED(filePath);
+ Q_UNUSED(m_zipReader);
+#endif
+}
+
+BlackBerryDebugTokenReader::~BlackBerryDebugTokenReader()
+{
+#ifdef QNX_ZIP_FILE_SUPPORT
+ m_zipReader->close();
+ delete m_zipReader;
+ m_zipReader = 0;
+#endif
+}
+
+bool BlackBerryDebugTokenReader::isValid() const
+{
+#ifdef QNX_ZIP_FILE_SUPPORT
+ return m_zipReader->status() == QZipReader::NoError;
+#else
+ return false;
+#endif
+}
+
+QString BlackBerryDebugTokenReader::author() const
+{
+ return manifestValue(MANIFEST_AUTHOR_KEY);
+}
+
+QString BlackBerryDebugTokenReader::authorId() const
+{
+ return manifestValue(MANIFEST_AUTHOR_ID_KEY);
+}
+
+bool BlackBerryDebugTokenReader::isSupported()
+{
+#ifdef QNX_ZIP_FILE_SUPPORT
+ return true;
+#else
+ return false;
+#endif
+}
+
+QString BlackBerryDebugTokenReader::manifestValue(const QByteArray &key) const
+{
+ if (!isValid())
+ return QString();
+
+#ifdef QNX_ZIP_FILE_SUPPORT
+ QByteArray manifestContent = m_zipReader->fileData(QLatin1String(MANIFEST_FILENAME));
+ return value(key, manifestContent);
+#else
+ Q_UNUSED(key);
+ return QString();
+#endif
+}
+
+QString BlackBerryDebugTokenReader::value(const QByteArray &key, const QByteArray &data) const
+{
+ int valueStart = data.indexOf(key) + key.size();
+ int valueEnd = data.indexOf(QByteArray("\r\n"), valueStart);
+ return QString::fromAscii(data.mid(valueStart, valueEnd - valueStart));
+}
diff --git a/src/plugins/qnx/blackberrydebugtokenreader.h b/src/plugins/qnx/blackberrydebugtokenreader.h
new file mode 100644
index 00000000000..4bd45723a9e
--- /dev/null
+++ b/src/plugins/qnx/blackberrydebugtokenreader.h
@@ -0,0 +1,67 @@
+/**************************************************************************
+**
+** Copyright (C) 2011 - 2013 Research In Motion
+**
+** Contact: Research In Motion (blackberry-qt@qnx.com)
+** Contact: KDAB (info@kdab.com)
+**
+** 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.
+**
+****************************************************************************/
+
+#ifndef QNX_INTERNAL_BLACKBERRYDEBUGTOKENREADER_H
+#define QNX_INTERNAL_BLACKBERRYDEBUGTOKENREADER_H
+
+#include <QString>
+
+QT_BEGIN_NAMESPACE
+class QZipReader;
+QT_END_NAMESPACE
+
+namespace Qnx {
+namespace Internal {
+
+class BlackBerryDebugTokenReader
+{
+public:
+ BlackBerryDebugTokenReader(const QString &filePath);
+ ~BlackBerryDebugTokenReader();
+
+ bool isValid() const;
+
+ QString author() const;
+ QString authorId() const;
+
+ static bool isSupported();
+
+private:
+ QString manifestValue(const QByteArray &key) const;
+ QString value(const QByteArray &key, const QByteArray &data) const;
+
+ QZipReader *m_zipReader;
+};
+
+} // namespace Internal
+} // namespace Qnx
+
+#endif // QNX_INTERNAL_BLACKBERRYDEBUGTOKENREADER_H
diff --git a/src/plugins/qnx/blackberrydebugtokenrequestdialog.cpp b/src/plugins/qnx/blackberrydebugtokenrequestdialog.cpp
new file mode 100644
index 00000000000..955ed226d43
--- /dev/null
+++ b/src/plugins/qnx/blackberrydebugtokenrequestdialog.cpp
@@ -0,0 +1,229 @@
+/**************************************************************************
+**
+** Copyright (C) 2011 - 2013 Research In Motion
+**
+** Contact: Research In Motion (blackberry-qt@qnx.com)
+** Contact: KDAB (info@kdab.com)
+**
+** 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.
+**
+****************************************************************************/
+
+#include "blackberrydebugtokenrequestdialog.h"
+#include "blackberrydebugtokenrequester.h"
+#include "blackberryconfiguration.h"
+#include "blackberrycertificate.h"
+#include "ui_blackberrydebugtokenrequestdialog.h"
+
+#include <QPushButton>
+#include <QDir>
+#include <QMessageBox>
+
+namespace Qnx {
+namespace Internal {
+
+BlackBerryDebugTokenRequestDialog::BlackBerryDebugTokenRequestDialog(
+ QWidget *parent, Qt::WindowFlags f) :
+ QDialog(parent, f),
+ m_ui(new Ui_BlackBerryDebugTokenRequestDialog),
+ m_requester(new BlackBerryDebugTokenRequester)
+{
+ m_ui->setupUi(this);
+ m_ui->progressBar->hide();
+ m_ui->status->clear();
+ m_ui->debugTokenPath->setExpectedKind(Utils::PathChooser::Any);
+ m_ui->debugTokenPath->setPromptDialogTitle(tr("Request Debug Token"));
+ m_ui->debugTokenPath->setPromptDialogFilter(tr("BAR Files (*.bar)"));
+
+ m_cancelButton = m_ui->buttonBox->button(QDialogButtonBox::Cancel);
+ m_okButton = m_ui->buttonBox->button(QDialogButtonBox::Ok);
+ m_okButton->setEnabled(false);
+
+ populateComboBox();
+
+ connect(m_cancelButton, SIGNAL(clicked()),
+ this, SLOT(reject()));
+ connect(m_okButton, SIGNAL(clicked()),
+ this, SLOT(requestDebugToken()));
+ connect(m_ui->debugTokenPath, SIGNAL(changed(QString)),
+ this, SLOT(validate()));
+ connect(m_ui->debugTokenPath, SIGNAL(editingFinished()),
+ this, SLOT(appendExtension()));
+ connect(m_ui->keystorePassword, SIGNAL(textChanged(QString)),
+ this, SLOT(validate()));
+ connect(m_ui->cskPassword, SIGNAL(textChanged(QString)),
+ this, SLOT(validate()));
+ connect(m_ui->devicePin, SIGNAL(textChanged(QString)),
+ this, SLOT(validate()));
+ connect(m_ui->showPassword, SIGNAL(stateChanged(int)),
+ this, SLOT(checkBoxChanged(int)));
+ connect(m_requester, SIGNAL(finished(int)),
+ this, SLOT(debugTokenArrived(int)));
+}
+
+QString BlackBerryDebugTokenRequestDialog::debugToken() const
+{
+ return m_ui->debugTokenPath->path();
+}
+
+void BlackBerryDebugTokenRequestDialog::validate()
+{
+ if (!m_ui->debugTokenPath->isValid()
+ || m_ui->keystorePassword->text().isEmpty()
+ || m_ui->devicePin->text().isEmpty()
+ || m_ui->cskPassword->text().isEmpty()) {
+ m_okButton->setEnabled(false);
+ return;
+ }
+
+ QFileInfo fileInfo(m_ui->debugTokenPath->path());
+
+ if (!fileInfo.dir().exists()) {
+ m_ui->status->setText(tr("Base directory does not exist."));
+ m_okButton->setEnabled(false);
+ return;
+ }
+
+ m_ui->status->clear();
+ m_okButton->setEnabled(true);
+}
+
+void BlackBerryDebugTokenRequestDialog::requestDebugToken()
+{
+ setBusy(true);
+
+ QFile file(m_ui->debugTokenPath->path());
+
+ if (file.exists()) {
+ const int result = QMessageBox::question(this, tr("Are you sure?"),
+ tr("The file '%1' will be overwritten. Do you want to proceed?")
+ .arg(file.fileName()), QMessageBox::Yes | QMessageBox::No);
+
+ if (result & QMessageBox::Yes) {
+ file.remove();
+ } else {
+ setBusy(false);
+ return;
+ }
+ }
+
+ m_requester->requestDebugToken(m_ui->debugTokenPath->path(),
+ m_ui->cskPassword->text(),
+ m_ui->keystore->itemText(m_ui->keystore->currentIndex()),
+ m_ui->keystorePassword->text(), m_ui->devicePin->text());
+}
+
+void BlackBerryDebugTokenRequestDialog::appendExtension()
+{
+ QString path = m_ui->debugTokenPath->path();
+
+ if (!path.endsWith(QLatin1String(".bar"))) {
+ path += QLatin1String(".bar");
+ m_ui->debugTokenPath->setPath(path);
+ }
+}
+
+void BlackBerryDebugTokenRequestDialog::checkBoxChanged(int state)
+{
+ if (state == Qt::Checked) {
+ m_ui->cskPassword->setEchoMode(QLineEdit::Normal);
+ m_ui->keystorePassword->setEchoMode(QLineEdit::Normal);
+ } else {
+ m_ui->cskPassword->setEchoMode(QLineEdit::Password);
+ m_ui->keystorePassword->setEchoMode(QLineEdit::Password);
+ }
+}
+
+void BlackBerryDebugTokenRequestDialog::debugTokenArrived(int status)
+{
+ QString errorString = tr("Failed to request debug token: ");
+
+ switch (status) {
+ case BlackBerryDebugTokenRequester::Success:
+ accept();
+ return;
+ case BlackBerryDebugTokenRequester::WrongCskPassword:
+ errorString += tr("Wrong CSK password.");
+ break;
+ case BlackBerryDebugTokenRequester::WrongKeystorePassword:
+ errorString += tr("Wrong keystore password.");
+ break;
+ case BlackBerryDebugTokenRequester::NetworkUnreachable:
+ errorString += tr("Network unreachable.");
+ break;
+ case BlackBerryDebugTokenRequester::IllegalPin:
+ errorString += tr("Illegal device PIN.");
+ break;
+ case BlackBerryDebugTokenRequester::FailedToStartInferiorProcess:
+ errorString += tr("Failed to start inferior process.");
+ break;
+ case BlackBerryDebugTokenRequester::InferiorProcessTimedOut:
+ errorString += tr("Inferior processes timed out.");
+ break;
+ case BlackBerryDebugTokenRequester::InferiorProcessCrashed:
+ errorString += tr("Inferior process has crashed.");
+ break;
+ case BlackBerryDebugTokenRequester::InferiorProcessReadError:
+ case BlackBerryDebugTokenRequester::InferiorProcessWriteError:
+ errorString += tr("Failed to communicate with the inferior process.");
+ break;
+ case BlackBerryDebugTokenRequester::UnknownError:
+ errorString += tr("An unknwon error has occurred.");
+ break;
+ }
+
+ QMessageBox::critical(this, tr("Error"), errorString);
+
+ setBusy(false);
+}
+
+void BlackBerryDebugTokenRequestDialog::setBusy(bool busy)
+{
+ m_okButton->setEnabled(!busy);
+ m_cancelButton->setEnabled(!busy);
+ m_ui->debugTokenPath->setEnabled(!busy);
+ m_ui->keystore->setEnabled(!busy);
+ m_ui->keystorePassword->setEnabled(!busy);
+ m_ui->cskPassword->setEnabled(!busy);
+ m_ui->showPassword->setEnabled(!busy);
+ m_ui->devicePin->setEnabled(!busy);
+ m_ui->progressBar->setVisible(busy);
+
+ if (busy)
+ m_ui->status->setText(tr("Requesting debug token..."));
+ else
+ m_ui->status->clear();
+}
+
+void BlackBerryDebugTokenRequestDialog::populateComboBox()
+{
+ BlackBerryConfiguration &configuration = BlackBerryConfiguration::instance();
+
+ QList<BlackBerryCertificate*> certificates = configuration.certificates();
+
+ foreach (const BlackBerryCertificate *certificate, certificates)
+ m_ui->keystore->addItem(certificate->fileName());
+}
+
+}
+} // namespace Qnx
diff --git a/src/plugins/qnx/blackberrydebugtokenrequestdialog.h b/src/plugins/qnx/blackberrydebugtokenrequestdialog.h
new file mode 100644
index 00000000000..e31a1fd8885
--- /dev/null
+++ b/src/plugins/qnx/blackberrydebugtokenrequestdialog.h
@@ -0,0 +1,79 @@
+/**************************************************************************
+**
+** Copyright (C) 2011 - 2013 Research In Motion
+**
+** Contact: Research In Motion (blackberry-qt@qnx.com)
+** Contact: KDAB (info@kdab.com)
+**
+** 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.
+**
+****************************************************************************/
+
+#ifndef QNX_INTERNAL_BLACKBERRYDEBUGTOKENREQUESTDIALOG_H
+#define QNX_INTERNAL_BLACKBERRYDEBUGTOKENREQUESTDIALOG_H
+
+#include <QDialog>
+
+QT_BEGIN_NAMESPACE
+class QPushButton;
+QT_END_NAMESPACE
+
+namespace Qnx {
+namespace Internal {
+
+class Ui_BlackBerryDebugTokenRequestDialog;
+class BlackBerryDebugTokenRequester;
+
+class BlackBerryDebugTokenRequestDialog : public QDialog
+{
+Q_OBJECT
+
+public:
+ explicit BlackBerryDebugTokenRequestDialog(QWidget *parent = 0,
+ Qt::WindowFlags f = 0);
+
+ QString debugToken() const;
+
+private slots:
+ void validate();
+ void requestDebugToken();
+ void appendExtension();
+ void checkBoxChanged(int state);
+ void debugTokenArrived(int status);
+
+private:
+ void setBusy(bool busy);
+ void populateComboBox();
+
+ Ui_BlackBerryDebugTokenRequestDialog *m_ui;
+
+ BlackBerryDebugTokenRequester *m_requester;
+
+ QPushButton *m_cancelButton;
+ QPushButton *m_okButton;
+};
+
+}
+} // namespace Qnx
+
+#endif // QNX_INTERNAL_BLACKBERRYDEBUGTOKENREQUESTDIALOG_H
diff --git a/src/plugins/qnx/blackberrydebugtokenrequestdialog.ui b/src/plugins/qnx/blackberrydebugtokenrequestdialog.ui
new file mode 100644
index 00000000000..e2059c55559
--- /dev/null
+++ b/src/plugins/qnx/blackberrydebugtokenrequestdialog.ui
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Qnx::Internal::BlackBerryDebugTokenRequestDialog</class>
+ <widget class="QDialog" name="Qnx::Internal::BlackBerryDebugTokenRequestDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>388</width>
+ <height>198</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Request Debug Token</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Debug token path:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="Utils::PathChooser" name="debugTokenPath" native="true"/>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Keystore:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QComboBox" name="keystore"/>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Keystore password:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QLineEdit" name="keystorePassword">
+ <property name="echoMode">
+ <enum>QLineEdit::Password</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="label_4">
+ <property name="text">
+ <string>CSK password:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QLineEdit" name="cskPassword">
+ <property name="echoMode">
+ <enum>QLineEdit::Password</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="label_5">
+ <property name="text">
+ <string>Device PIN:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="QLineEdit" name="devicePin">
+ <property name="inputMask">
+ <string notr="true">HHHHHHHH; </string>
+ </property>
+ <property name="maxLength">
+ <number>8</number>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0">
+ <widget class="QCheckBox" name="showPassword">
+ <property name="text">
+ <string>Show password</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="1">
+ <widget class="QProgressBar" name="progressBar">
+ <property name="maximum">
+ <number>0</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QLabel" name="status">
+ <property name="font">
+ <font>
+ <weight>75</weight>
+ <bold>true</bold>
+ </font>
+ </property>
+ <property name="text">
+ <string>Status</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>Utils::PathChooser</class>
+ <extends>QWidget</extends>
+ <header location="global">utils/pathchooser.h</header>
+ <container>1</container>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/plugins/qnx/blackberrydebugtokenrequester.cpp b/src/plugins/qnx/blackberrydebugtokenrequester.cpp
new file mode 100644
index 00000000000..b83cb371383
--- /dev/null
+++ b/src/plugins/qnx/blackberrydebugtokenrequester.cpp
@@ -0,0 +1,75 @@
+/**************************************************************************
+**
+** Copyright (C) 2011 - 2013 Research In Motion
+**
+** Contact: Research In Motion (blackberry-qt@qnx.com)
+** Contact: KDAB (info@kdab.com)
+**
+** 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.
+**
+****************************************************************************/
+
+#include "blackberrydebugtokenrequester.h"
+
+namespace {
+static const char PROCESS_NAME[] = "blackberry-debugtokenrequest";
+static const char ERR_WRONG_CSK_PASS[] = "The signature on the code signing request didn't verify.";
+static const char ERR_WRONG_KEYSTORE_PASS[] = "Failed to decrypt keystore, invalid password";
+static const char ERR_ILLEGAL_DEVICE_PIN[] = "Illegal device PIN";
+static const char ERR_NETWORK_UNREACHABLE[] = "Network is unreachable";
+}
+
+namespace Qnx {
+namespace Internal {
+
+BlackBerryDebugTokenRequester::BlackBerryDebugTokenRequester(QObject *parent) :
+ BlackBerryNdkProcess(QLatin1String(PROCESS_NAME), parent)
+{
+ addErrorStringMapping(QLatin1String(ERR_WRONG_CSK_PASS), WrongCskPassword);
+ addErrorStringMapping(QLatin1String(ERR_WRONG_KEYSTORE_PASS), WrongKeystorePassword);
+ addErrorStringMapping(QLatin1String(ERR_WRONG_KEYSTORE_PASS), WrongKeystorePassword);
+ addErrorStringMapping(QLatin1String(ERR_NETWORK_UNREACHABLE), NetworkUnreachable);
+}
+
+void BlackBerryDebugTokenRequester::requestDebugToken(const QString &path,
+ const QString &cskPassword, const QString &keyStore,
+ const QString &keyStorePassword, const QString &devicePin)
+{
+ QStringList arguments;
+
+ arguments << QLatin1String("-keystore")
+ << keyStore
+ << QLatin1String("-storepass")
+ << keyStorePassword
+ << QLatin1String("-cskpass")
+ << cskPassword
+ << QLatin1String("-devicepin")
+ << devicePin
+ << path;
+
+ start(arguments);
+
+}
+
+} // namespace Internal
+} // namespace Qnx
diff --git a/src/plugins/qnx/blackberrydebugtokenrequester.h b/src/plugins/qnx/blackberrydebugtokenrequester.h
new file mode 100644
index 00000000000..d91d2edb085
--- /dev/null
+++ b/src/plugins/qnx/blackberrydebugtokenrequester.h
@@ -0,0 +1,63 @@
+/**************************************************************************
+**
+** Copyright (C) 2011 - 2013 Research In Motion
+**
+** Contact: Research In Motion (blackberry-qt@qnx.com)
+** Contact: KDAB (info@kdab.com)
+**
+** 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.
+**
+****************************************************************************/
+
+#ifndef QNX_INTERNAL_BLACKBERRYDEBUGTOKENREQUESTER_H
+#define QNX_INTERNAL_BLACKBERRYDEBUGTOKENREQUESTER_H
+
+#include "blackberryndkprocess.h"
+
+namespace Qnx {
+namespace Internal {
+
+class BlackBerryDebugTokenRequester : public BlackBerryNdkProcess
+{
+ Q_OBJECT
+
+public:
+ enum ReturnStatus
+ {
+ WrongCskPassword = UserStatus,
+ WrongKeystorePassword,
+ NetworkUnreachable,
+ IllegalPin
+ };
+
+ explicit BlackBerryDebugTokenRequester(QObject *parent = 0);
+
+ void requestDebugToken(const QString &path, const QString &cskPassword,
+ const QString &keyStore, const QString &keyStorePassword,
+ const QString &devicePin);
+};
+
+}
+}
+
+#endif // QNX_INTERNAL_BLACKBERRYDEBUGTOKENREQUESTER_H
diff --git a/src/plugins/qnx/blackberrydebugtokenuploader.cpp b/src/plugins/qnx/blackberrydebugtokenuploader.cpp
new file mode 100644
index 00000000000..cb336a09ce3
--- /dev/null
+++ b/src/plugins/qnx/blackberrydebugtokenuploader.cpp
@@ -0,0 +1,68 @@
+/**************************************************************************
+**
+** Copyright (C) 2011 - 2013 Research In Motion
+**
+** Contact: Research In Motion (blackberry-qt@qnx.com)
+** Contact: KDAB (info@kdab.com)
+**
+** 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.
+**
+****************************************************************************/
+
+#include "blackberrydebugtokenuploader.h"
+
+namespace {
+static const char PROCESS_NAME[] = "blackberry-deploy";
+static const char ERR_NO_ROUTE_HOST[] = "Cannot connect";
+static const char ERR_AUTH_FAILED[] = "Authentication failed";
+static const char ERR_DEVELOPMENT_MODE_DISABLED[] = "Device is not in the Development Mode";
+}
+
+namespace Qnx {
+namespace Internal {
+
+BlackBerryDebugTokenUploader::BlackBerryDebugTokenUploader(QObject *parent) :
+ BlackBerryNdkProcess(QLatin1String(PROCESS_NAME), parent)
+{
+ addErrorStringMapping(QLatin1String(ERR_NO_ROUTE_HOST), NoRouteToHost);
+ addErrorStringMapping(QLatin1String(ERR_AUTH_FAILED), AuthenticationFailed);
+ addErrorStringMapping(QLatin1String(ERR_DEVELOPMENT_MODE_DISABLED), DevelopmentModeDisabled);
+}
+
+void BlackBerryDebugTokenUploader::uploadDebugToken(const QString &path,
+ const QString &deviceIp, const QString &devicePassword)
+{
+ QStringList arguments;
+
+ arguments << QLatin1String("-installDebugToken")
+ << path
+ << QLatin1String("-device")
+ << deviceIp
+ << QLatin1String("-password")
+ << devicePassword;
+
+ start(arguments);
+}
+
+} // namespace Internal
+} // namespace Qnx
diff --git a/src/plugins/qnx/blackberrydebugtokenuploader.h b/src/plugins/qnx/blackberrydebugtokenuploader.h
new file mode 100644
index 00000000000..ff892b8b90e
--- /dev/null
+++ b/src/plugins/qnx/blackberrydebugtokenuploader.h
@@ -0,0 +1,66 @@
+/**************************************************************************
+**
+** Copyright (C) 2011 - 2013 Research In Motion
+**
+** Contact: Research In Motion (blackberry-qt@qnx.com)
+** Contact: KDAB (info@kdab.com)
+**
+** 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.
+**
+****************************************************************************/
+
+#ifndef QNX_INTERNAL_BLACKBERRYDEBUGTOKENUPLOADER_H
+#define QNX_INTERNAL_BLACKBERRYDEBUGTOKENUPLOADER_H
+
+#include "blackberryndkprocess.h"
+
+namespace Qnx {
+namespace Internal {
+
+class BlackBerryDebugTokenUploader : public BlackBerryNdkProcess
+{
+ Q_OBJECT
+
+public:
+ enum ReturnStatus
+ {
+ NoRouteToHost = UserStatus,
+ AuthenticationFailed,
+ DevelopmentModeDisabled,
+ FailedToStartInferiorProcess,
+ InferiorProcessTimedOut,
+ InferiorProcessCrashed,
+ InferiorProcessWriteError,
+ InferiorProcessReadError
+ };
+
+ explicit BlackBerryDebugTokenUploader(QObject *parent = 0);
+
+ void uploadDebugToken(const QString &path, const QString &deviceIp,
+ const QString &devicePassword);
+};
+
+}
+}
+
+#endif // QNX_INTERNAL_BLACKBERRYDEBUGTOKENUPLOADER_H
diff --git a/src/plugins/qnx/blackberrydeployconfiguration.cpp b/src/plugins/qnx/blackberrydeployconfiguration.cpp
index 809e6e74a6d..4d1f38641d3 100644
--- a/src/plugins/qnx/blackberrydeployconfiguration.cpp
+++ b/src/plugins/qnx/blackberrydeployconfiguration.cpp
@@ -43,6 +43,7 @@
#include <qt4projectmanager/qt4nodes.h>
#include <qt4projectmanager/qt4project.h>
#include <qt4projectmanager/qt4buildconfiguration.h>
+#include <qtsupport/qtkitinformation.h>
#include <coreplugin/icore.h>
#include <ssh/sshconnection.h>
@@ -109,16 +110,16 @@ void BlackBerryDeployConfiguration::setupBarDescriptor()
if (button == QDialogButtonBox::No)
return;
- Utils::FileReader reader;
QString barDescriptorTemplate;
- if (QDir(Utils::FileName::fromString(target()->project()->projectDirectory()).appendPath(QLatin1String("qml")).toString()).exists())
+ QtSupport::QtVersionNumber qtVersion = QtSupport::QtKitInformation::qtVersion(target()->kit())->qtVersion();
+ if (qtVersion >= QtSupport::QtVersionNumber(5, 0, 0))
barDescriptorTemplate = Core::ICore::resourcePath()
- + QLatin1String("/templates/wizards/bb-quickapp/") + barDescriptorFileName;
+ + QLatin1String("/templates/wizards/bb-qt5-bardescriptor/bar-descriptor.xml");
else
barDescriptorTemplate = Core::ICore::resourcePath()
- + QLatin1String("/templates/wizards/bb-guiapp/") + barDescriptorFileName;
-
+ + QLatin1String("/templates/wizards/bb-bardescriptor/bar-descriptor.xml");
+ Utils::FileReader reader;
if (!reader.fetch(barDescriptorTemplate)) {
QMessageBox::warning(Core::ICore::mainWindow(),
tr("Cannot Set up Application Descriptor File"),
@@ -128,7 +129,15 @@ void BlackBerryDeployConfiguration::setupBarDescriptor()
}
QString content = QString::fromUtf8(reader.data());
- content.replace(QLatin1String("%ProjectName%"), projectName);
+ content.replace(QLatin1String("PROJECTNAME"), projectName);
+ content.replace(QLatin1String("PROJECTPATH"), projectName);
+ content.replace(QLatin1String("ID"), QLatin1String("com.example.") + projectName);
+
+ if (Utils::FileName::fromString(target()->project()->projectDirectory())
+ .appendPath(QLatin1String("qml")).toFileInfo().exists())
+ content.replace(QLatin1String("</qnx>"),
+ QLatin1String(" <asset path=\"%SRC_DIR%/qml\">qml</asset>\n</qnx>"));
+
Utils::FileSaver writer(barDescriptorFile.fileName(), QIODevice::WriteOnly);
writer.write(content.toUtf8());
if (!writer.finalize()) {
diff --git a/src/plugins/qnx/blackberrydeviceconfigurationwidget.cpp b/src/plugins/qnx/blackberrydeviceconfigurationwidget.cpp
index b5549cb08a3..27e6fff58be 100644
--- a/src/plugins/qnx/blackberrydeviceconfigurationwidget.cpp
+++ b/src/plugins/qnx/blackberrydeviceconfigurationwidget.cpp
@@ -29,6 +29,8 @@
**
****************************************************************************/
+#include "blackberrydebugtokenuploader.h"
+#include "blackberrydebugtokenrequestdialog.h"
#include "blackberrydeviceconfigurationwidget.h"
#include "ui_blackberrydeviceconfigurationwidget.h"
#include "qnxconstants.h"
@@ -36,12 +38,17 @@
#include <ssh/sshconnection.h>
#include <utils/pathchooser.h>
+#include <QProgressDialog>
+#include <QMessageBox>
+
using namespace ProjectExplorer;
using namespace Qnx::Internal;
BlackBerryDeviceConfigurationWidget::BlackBerryDeviceConfigurationWidget(const IDevice::Ptr &device, QWidget *parent) :
IDeviceWidget(device, parent),
- ui(new Ui::BlackBerryDeviceConfigurationWidget)
+ ui(new Ui::BlackBerryDeviceConfigurationWidget),
+ progressDialog(new QProgressDialog(this)),
+ uploader(new BlackBerryDebugTokenUploader(this))
{
ui->setupUi(this);
connect(ui->hostLineEdit, SIGNAL(editingFinished()), this, SLOT(hostNameEditingFinished()));
@@ -49,7 +56,11 @@ BlackBerryDeviceConfigurationWidget::BlackBerryDeviceConfigurationWidget(const I
connect(ui->keyFileLineEdit, SIGNAL(editingFinished()), this, SLOT(keyFileEditingFinished()));
connect(ui->keyFileLineEdit, SIGNAL(browsingFinished()), this, SLOT(keyFileEditingFinished()));
connect(ui->showPasswordCheckBox, SIGNAL(toggled(bool)), this, SLOT(showPassword(bool)));
+ connect(ui->debugToken, SIGNAL(changed(QString)), this, SLOT(updateUploadButton()));
connect(ui->debugToken, SIGNAL(editingFinished()), this, SLOT(debugTokenEditingFinished()));
+ connect(ui->requestButton, SIGNAL(clicked()), this, SLOT(requestDebugToken()));
+ connect(ui->uploadButton, SIGNAL(clicked()), this, SLOT(uploadDebugToken()));
+ connect(uploader, SIGNAL(finished(int)), this, SLOT(uploadFinished(int)));
initGui();
}
@@ -91,6 +102,72 @@ void BlackBerryDeviceConfigurationWidget::debugTokenEditingFinished()
deviceConfiguration()->setDebugToken(ui->debugToken->path());
}
+void BlackBerryDeviceConfigurationWidget::requestDebugToken()
+{
+ BlackBerryDebugTokenRequestDialog dialog;
+
+ const int result = dialog.exec();
+
+ if (result != QDialog::Accepted)
+ return;
+
+ ui->debugToken->setPath(dialog.debugToken());
+ debugTokenEditingFinished();
+}
+
+void BlackBerryDeviceConfigurationWidget::uploadDebugToken()
+{
+ progressDialog->show();
+
+ uploader->uploadDebugToken(ui->debugToken->path(),
+ ui->hostLineEdit->text(), ui->pwdLineEdit->text());
+}
+
+void BlackBerryDeviceConfigurationWidget::updateUploadButton()
+{
+ ui->uploadButton->setEnabled(!ui->debugToken->path().isEmpty());
+}
+
+void BlackBerryDeviceConfigurationWidget::uploadFinished(int status)
+{
+ progressDialog->hide();
+
+ QString errorString = tr("Failed to upload debug token: ");
+
+ switch (status) {
+ case BlackBerryDebugTokenUploader::Success:
+ QMessageBox::information(this, tr("Qt Creator"), tr("Debug token successfully uploaded."));
+ return;
+ case BlackBerryDebugTokenUploader::NoRouteToHost:
+ errorString += tr("No route to host.");
+ break;
+ case BlackBerryDebugTokenUploader::AuthenticationFailed:
+ errorString += tr("Authentication failed.");
+ break;
+ case BlackBerryDebugTokenUploader::DevelopmentModeDisabled:
+ errorString += tr("Development mode is disabled on the device.");
+ break;
+ case BlackBerryDebugTokenUploader::FailedToStartInferiorProcess:
+ errorString += tr("Failed to start inferior process.");
+ break;
+ case BlackBerryDebugTokenUploader::InferiorProcessTimedOut:
+ errorString += tr("Inferior processes timed out.");
+ break;
+ case BlackBerryDebugTokenUploader::InferiorProcessCrashed:
+ errorString += tr("Inferior process has crashed.");
+ break;
+ case BlackBerryDebugTokenUploader::InferiorProcessReadError:
+ case BlackBerryDebugTokenUploader::InferiorProcessWriteError:
+ errorString += tr("Failed to communicate with the inferior process.");
+ break;
+ case BlackBerryDebugTokenUploader::UnknownError:
+ errorString += tr("An unknwon error has happened.");
+ break;
+ }
+
+ QMessageBox::critical(this, tr("Error"), errorString);
+}
+
void BlackBerryDeviceConfigurationWidget::updateDeviceFromUi()
{
hostNameEditingFinished();
@@ -121,6 +198,13 @@ void BlackBerryDeviceConfigurationWidget::initGui()
ui->debugToken->setEnabled(false);
ui->debugTokenLabel->setEnabled(false);
}
+
+ progressDialog->setWindowModality(Qt::WindowModal);
+ progressDialog->setWindowTitle(tr("Operation in Progress"));
+ progressDialog->setCancelButton(0);
+ progressDialog->setLabelText(tr("Uploading debug token"));
+ progressDialog->setMinimum(0);
+ progressDialog->setMaximum(0);
}
BlackBerryDeviceConfiguration::Ptr BlackBerryDeviceConfigurationWidget::deviceConfiguration() const
diff --git a/src/plugins/qnx/blackberrydeviceconfigurationwidget.h b/src/plugins/qnx/blackberrydeviceconfigurationwidget.h
index c7ab2cd8ac2..68353abfbec 100644
--- a/src/plugins/qnx/blackberrydeviceconfigurationwidget.h
+++ b/src/plugins/qnx/blackberrydeviceconfigurationwidget.h
@@ -36,9 +36,15 @@
#include "blackberrydeviceconfiguration.h"
+QT_BEGIN_NAMESPACE
+class QProgressDialog;
+QT_END_NAMESPACE
+
namespace Qnx {
namespace Internal {
+class BlackBerryDebugTokenUploader;
+
namespace Ui {
class BlackBerryDeviceConfigurationWidget;
}
@@ -58,6 +64,10 @@ private slots:
void keyFileEditingFinished();
void showPassword(bool showClearText);
void debugTokenEditingFinished();
+ void requestDebugToken();
+ void uploadDebugToken();
+ void updateUploadButton();
+ void uploadFinished(int status);
private:
void updateDeviceFromUi();
@@ -66,6 +76,10 @@ private:
BlackBerryDeviceConfiguration::Ptr deviceConfiguration() const;
Ui::BlackBerryDeviceConfigurationWidget *ui;
+
+ QProgressDialog *progressDialog;
+
+ BlackBerryDebugTokenUploader *uploader;
};
diff --git a/src/plugins/qnx/blackberrydeviceconfigurationwidget.ui b/src/plugins/qnx/blackberrydeviceconfigurationwidget.ui
index c8d14acfba2..2794b2aabdb 100644
--- a/src/plugins/qnx/blackberrydeviceconfigurationwidget.ui
+++ b/src/plugins/qnx/blackberrydeviceconfigurationwidget.ui
@@ -11,9 +11,6 @@
</rect>
</property>
<layout class="QFormLayout" name="formLayout">
- <property name="fieldGrowthPolicy">
- <enum>QFormLayout::FieldsStayAtSizeHint</enum>
- </property>
<item row="0" column="0">
<widget class="QLabel" name="hostNameLabel">
<property name="text">
@@ -70,7 +67,25 @@
</widget>
</item>
<item row="2" column="1">
- <widget class="Utils::PathChooser" name="debugToken" native="true"/>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="Utils::PathChooser" name="debugToken" native="true"/>
+ </item>
+ <item>
+ <widget class="QPushButton" name="requestButton">
+ <property name="text">
+ <string>Request</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="uploadButton">
+ <property name="text">
+ <string>Upload</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
</item>
<item row="3" column="0">
<widget class="QLabel" name="keyLabel">
@@ -83,12 +98,12 @@
<widget class="Utils::PathChooser" name="keyFileLineEdit" native="true"/>
</item>
</layout>
+ <zorder>keyFileLineEdit</zorder>
<zorder>hostNameLabel</zorder>
<zorder>hostLineEdit</zorder>
<zorder>passwordLabel</zorder>
<zorder>keyLabel</zorder>
<zorder>debugTokenLabel</zorder>
- <zorder>debugToken</zorder>
</widget>
<customwidgets>
<customwidget>
diff --git a/src/plugins/qnx/blackberrydeviceconfigurationwizardpages.cpp b/src/plugins/qnx/blackberrydeviceconfigurationwizardpages.cpp
index 0d62fa430bb..00926822929 100644
--- a/src/plugins/qnx/blackberrydeviceconfigurationwizardpages.cpp
+++ b/src/plugins/qnx/blackberrydeviceconfigurationwizardpages.cpp
@@ -29,6 +29,7 @@
**
****************************************************************************/
+#include "blackberrydebugtokenrequestdialog.h"
#include "blackberrydeviceconfigurationwizardpages.h"
#include "ui_blackberrydeviceconfigurationwizardsetuppage.h"
#include "ui_blackberrydeviceconfigurationwizardsshkeypage.h"
@@ -67,6 +68,7 @@ BlackBerryDeviceConfigurationWizardSetupPage::BlackBerryDeviceConfigurationWizar
connect(m_ui->physicalDevice, SIGNAL(toggled(bool)), this, SLOT(handleMachineTypeChanged()));
connect(m_ui->physicalDevice, SIGNAL(toggled(bool)), this, SIGNAL(completeChanged()));
connect(m_ui->debugToken, SIGNAL(changed(QString)), this, SIGNAL(completeChanged()));
+ connect(m_ui->requestButton, SIGNAL(clicked()), this, SLOT(requestDebugToken()));
registerField(QLatin1String(DEVICENAME_FIELD_ID), m_ui->deviceName);
}
@@ -126,6 +128,17 @@ void BlackBerryDeviceConfigurationWizardSetupPage::handleMachineTypeChanged()
m_ui->deviceHostIp->setText(defaultDeviceHostIp(machineType()));
}
+void BlackBerryDeviceConfigurationWizardSetupPage::requestDebugToken()
+{
+ BlackBerryDebugTokenRequestDialog dialog;
+
+ const int result = dialog.exec();
+
+ if (result != QDialog::Accepted)
+ return;
+
+ m_ui->debugToken->setPath(dialog.debugToken());
+}
// ----------------------------------------------------------------------------
diff --git a/src/plugins/qnx/blackberrydeviceconfigurationwizardpages.h b/src/plugins/qnx/blackberrydeviceconfigurationwizardpages.h
index 8467bcece6f..95feefbbb95 100644
--- a/src/plugins/qnx/blackberrydeviceconfigurationwizardpages.h
+++ b/src/plugins/qnx/blackberrydeviceconfigurationwizardpages.h
@@ -65,6 +65,7 @@ public:
private slots:
void handleMachineTypeChanged();
+ void requestDebugToken();
private:
Ui::BlackBerryDeviceConfigurationWizardSetupPage *m_ui;
diff --git a/src/plugins/qnx/blackberrydeviceconfigurationwizardsetuppage.ui b/src/plugins/qnx/blackberrydeviceconfigurationwizardsetuppage.ui
index 47ec51805fe..4437a2d7d80 100644
--- a/src/plugins/qnx/blackberrydeviceconfigurationwizardsetuppage.ui
+++ b/src/plugins/qnx/blackberrydeviceconfigurationwizardsetuppage.ui
@@ -14,9 +14,6 @@
<string>WizardPage</string>
</property>
<layout class="QFormLayout" name="formLayout">
- <property name="fieldGrowthPolicy">
- <enum>QFormLayout::FieldsStayAtSizeHint</enum>
- </property>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
@@ -27,14 +24,39 @@
<item row="0" column="1">
<widget class="QLineEdit" name="deviceName"/>
</item>
- <item row="3" column="0">
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_4">
+ <property name="text">
+ <string>Device type:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <item>
+ <widget class="QRadioButton" name="physicalDevice">
+ <property name="text">
+ <string>Physical device</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="simulator">
+ <property name="text">
+ <string>Simulator</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="2" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>The device's host name or IP address:</string>
</property>
</widget>
</item>
- <item row="3" column="1">
+ <item row="2" column="1">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLineEdit" name="deviceHostIp"/>
@@ -54,14 +76,14 @@
</item>
</layout>
</item>
- <item row="4" column="0">
+ <item row="3" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Device password:</string>
</property>
</widget>
</item>
- <item row="4" column="1">
+ <item row="3" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLineEdit" name="password">
@@ -85,36 +107,22 @@
</item>
</layout>
</item>
- <item row="6" column="0">
+ <item row="4" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Debug token:</string>
</property>
</widget>
</item>
- <item row="6" column="1">
- <widget class="Utils::PathChooser" name="debugToken" native="true"/>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_4">
- <property name="text">
- <string>Device type:</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <item row="4" column="1">
+ <layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
- <widget class="QRadioButton" name="physicalDevice">
- <property name="text">
- <string>Physical device</string>
- </property>
- </widget>
+ <widget class="Utils::PathChooser" name="debugToken" native="true"/>
</item>
<item>
- <widget class="QRadioButton" name="simulator">
+ <widget class="QPushButton" name="requestButton">
<property name="text">
- <string>Simulator</string>
+ <string>Request</string>
</property>
</widget>
</item>
diff --git a/src/plugins/qnx/blackberryndkprocess.cpp b/src/plugins/qnx/blackberryndkprocess.cpp
new file mode 100644
index 00000000000..acbe5bd89e0
--- /dev/null
+++ b/src/plugins/qnx/blackberryndkprocess.cpp
@@ -0,0 +1,145 @@
+/**************************************************************************
+**
+** Copyright (C) 2011 - 2013 Research In Motion
+**
+** Contact: Research In Motion (blackberry-qt@qnx.com)
+** Contact: KDAB (info@kdab.com)
+**
+** 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.
+**
+****************************************************************************/
+
+#include "blackberryndkprocess.h"
+#include "blackberryconfiguration.h"
+
+#include <utils/hostosinfo.h>
+
+#include <QTextStream>
+
+namespace Qnx {
+namespace Internal {
+
+BlackBerryNdkProcess::BlackBerryNdkProcess(const QString &command, QObject *parent) :
+ QObject(parent),
+ m_process(new QProcess(this)),
+ m_command(command)
+{
+ m_process->setProcessChannelMode(QProcess::MergedChannels);
+
+ connect(m_process, SIGNAL(finished(int,QProcess::ExitStatus)),
+ this, SLOT(processFinished()));
+ connect(m_process, SIGNAL(error(QProcess::ProcessError)),
+ this, SLOT(processError(QProcess::ProcessError)));
+}
+
+QString BlackBerryNdkProcess::command() const
+{
+ QString command = BlackBerryConfiguration::instance()
+ .qnxEnv().value(QLatin1String("QNX_HOST"))
+ + (QLatin1String("/usr/bin/")) + m_command;
+
+ if (Utils::HostOsInfo::isWindowsHost())
+ command += QLatin1String(".bat");
+
+ return command;
+}
+
+void BlackBerryNdkProcess::start(const QStringList &arguments)
+{
+ if (m_process->state() != QProcess::NotRunning)
+ return;
+
+ m_process->start(command(), arguments);
+}
+
+void BlackBerryNdkProcess::addErrorStringMapping(
+ const QString &message, int errorCode)
+{
+ m_errorStringMap.insert(message, errorCode);
+}
+
+void BlackBerryNdkProcess::processFinished()
+{
+ if (m_process->exitCode() == 0) {
+ emit finished(Success);
+ return;
+ }
+
+ QTextStream processOutput(m_process);
+
+ QString errorString;
+ int returnStatus = UnknownError;
+
+ while (!processOutput.atEnd()) {
+ const QString line = processOutput.readLine();
+
+ returnStatus = errorLineToReturnStatus(line);
+
+ if (returnStatus >= 0)
+ break;
+ }
+
+ emit finished(returnStatus);
+}
+
+void BlackBerryNdkProcess::processError(QProcess::ProcessError error)
+{
+ int errorCode;
+
+ switch (error) {
+ case QProcess::FailedToStart:
+ errorCode = FailedToStartInferiorProcess;
+ break;
+ case QProcess::Timedout:
+ errorCode = InferiorProcessTimedOut;
+ break;
+ case QProcess::Crashed:
+ errorCode = InferiorProcessCrashed;
+ break;
+ case QProcess::WriteError:
+ errorCode = InferiorProcessWriteError;
+ break;
+ case QProcess::ReadError:
+ errorCode = InferiorProcessReadError;
+ break;
+ case QProcess::UnknownError:
+ default:
+ errorCode = UnknownError;
+ break;
+ }
+
+ emit finished(errorCode);
+}
+
+int BlackBerryNdkProcess::errorLineToReturnStatus(const QString &line) const
+{
+ foreach (const QString &key, m_errorStringMap.keys()) {
+ if (line.contains(key))
+ return m_errorStringMap.value(key);
+ }
+
+ return -1;
+}
+
+} // namespace Internal
+} // namespace Qnx
diff --git a/src/plugins/qnx/blackberryndkprocess.h b/src/plugins/qnx/blackberryndkprocess.h
new file mode 100644
index 00000000000..5e38914b3b9
--- /dev/null
+++ b/src/plugins/qnx/blackberryndkprocess.h
@@ -0,0 +1,87 @@
+/**************************************************************************
+**
+** Copyright (C) 2011 - 2013 Research In Motion
+**
+** Contact: Research In Motion (blackberry-qt@qnx.com)
+** Contact: KDAB (info@kdab.com)
+**
+** 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.
+**
+****************************************************************************/
+
+#ifndef QNX_INTERNAL_BLACKBERRYNDKPROCESS_H
+#define QNX_INTERNAL_BLACKBERRYNDKPROCESS_H
+
+#include <QObject>
+#include <QProcess>
+#include <QMap>
+
+namespace Qnx {
+namespace Internal {
+
+class BlackBerryNdkProcess : public QObject
+{
+ Q_OBJECT
+
+public:
+ enum ProcessStatus
+ {
+ Success,
+ FailedToStartInferiorProcess,
+ InferiorProcessTimedOut,
+ InferiorProcessCrashed,
+ InferiorProcessWriteError,
+ InferiorProcessReadError,
+ UnknownError,
+ UserStatus
+ };
+
+signals:
+ void finished(int status);
+
+protected:
+ explicit BlackBerryNdkProcess(const QString &command, QObject *parent = 0);
+
+ void start(const QStringList &arguments);
+ void addErrorStringMapping(const QString &message, int errorCode);
+
+ QString command() const;
+
+private slots:
+ void processFinished();
+ void processError(QProcess::ProcessError error);
+
+private:
+ int errorLineToReturnStatus(const QString &line) const;
+
+ QProcess *m_process;
+
+ QString m_command;
+
+ QMap<QString, int> m_errorStringMap;
+};
+
+}
+}
+
+#endif // QNX_INTERNAL_BLACKBERRYNDKPROCESS_H
diff --git a/src/plugins/qnx/qnx.pro b/src/plugins/qnx/qnx.pro
index fbc201a7e41..6a08e9f7935 100644
--- a/src/plugins/qnx/qnx.pro
+++ b/src/plugins/qnx/qnx.pro
@@ -68,7 +68,12 @@ SOURCES += qnxplugin.cpp \
blackberrycertificatemodel.cpp \
blackberryregisterkeydialog.cpp \
blackberryimportcertificatedialog.cpp \
- blackberrycreatecertificatedialog.cpp
+ blackberrycreatecertificatedialog.cpp \
+ blackberrydebugtokenrequester.cpp \
+ blackberrydebugtokenrequestdialog.cpp \
+ blackberrydebugtokenuploader.cpp \
+ blackberrydebugtokenreader.cpp \
+ blackberryndkprocess.cpp
HEADERS += qnxplugin.h\
qnxconstants.h \
@@ -133,7 +138,12 @@ HEADERS += qnxplugin.h\
blackberrycertificatemodel.h \
blackberryregisterkeydialog.h \
blackberryimportcertificatedialog.h \
- blackberrycreatecertificatedialog.h
+ blackberrycreatecertificatedialog.h \
+ blackberrydebugtokenrequester.h \
+ blackberrydebugtokenrequestdialog.h \
+ blackberrydebugtokenuploader.h \
+ blackberrydebugtokenreader.h \
+ blackberryndkprocess.h
FORMS += \
blackberrydeviceconfigurationwizardsetuppage.ui \
@@ -147,7 +157,16 @@ FORMS += \
blackberrykeyswidget.ui \
blackberryregisterkeydialog.ui \
blackberryimportcertificatedialog.ui \
- blackberrycreatecertificatedialog.ui
+ blackberrycreatecertificatedialog.ui \
+ blackberrydebugtokenrequestdialog.ui
+
+include(../../private_headers.pri)
+exists($${QT_PRIVATE_HEADERS}/QtGui/private/qzipreader_p.h) {
+ DEFINES += QNX_ZIP_FILE_SUPPORT
+} else {
+ warning("The QNX plugin depends on private headers from QtGui module, to be fully functional.")
+ warning("To fix it, pass 'QT_PRIVATE_HEADERS=$QTDIR/include' to qmake, where $QTDIR is the source directory of qt.")
+}
DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
diff --git a/src/plugins/qnx/qnx.qbs b/src/plugins/qnx/qnx.qbs
index 52b127492e7..28339146efa 100644
--- a/src/plugins/qnx/qnx.qbs
+++ b/src/plugins/qnx/qnx.qbs
@@ -62,6 +62,8 @@ QtcPlugin {
"blackberrydeploystepconfigwidget.h",
"blackberrydeploystepfactory.cpp",
"blackberrydeploystepfactory.h",
+ "blackberrydebugtokenreader.cpp",
+ "blackberrydebugtokenreader.h",
"blackberrydeviceconfiguration.cpp",
"blackberrydeviceconfiguration.h",
"blackberrydeviceconfigurationfactory.cpp",
@@ -117,6 +119,15 @@ QtcPlugin {
"blackberrycreatecertificatedialog.cpp",
"blackberrycreatecertificatedialog.h",
"blackberrycreatecertificatedialog.ui",
+ "blackberrydebugtokenrequester.cpp",
+ "blackberrydebugtokenrequester.h",
+ "blackberrydebugtokenrequestdialog.cpp",
+ "blackberrydebugtokenrequestdialog.h",
+ "blackberrydebugtokenrequestdialog.ui",
+ "blackberrydebugtokenuploader.cpp",
+ "blackberrydebugtokenuploader.h",
+ "blackberryndkprocess.cpp",
+ "blackberryndkprocess.h",
"pathchooserdelegate.cpp",
"pathchooserdelegate.h",
"qnx.qrc",
diff --git a/src/plugins/qt4projectmanager/Qt4ProjectManager.pluginspec.in b/src/plugins/qt4projectmanager/Qt4ProjectManager.pluginspec.in
index 472df4ea654..675627cc570 100644
--- a/src/plugins/qt4projectmanager/Qt4ProjectManager.pluginspec.in
+++ b/src/plugins/qt4projectmanager/Qt4ProjectManager.pluginspec.in
@@ -18,6 +18,7 @@ Alternatively, this plugin may be used under the terms of the GNU Lesser General
<dependency name=\"ProjectExplorer\" version=\"$$QTCREATOR_VERSION\"/>
<dependency name=\"QtSupport\" version=\"$$QTCREATOR_VERSION\"/>
<dependency name=\"CppTools\" version=\"$$QTCREATOR_VERSION\"/>
+ <dependency name=\"QmlJsTools\" version=\"$$QTCREATOR_VERSION\"/>
<dependency name=\"Debugger\" version=\"$$QTCREATOR_VERSION\"/>
<dependency name=\"Designer\" version=\"$$QTCREATOR_VERSION\" type=\"optional\"/>
</dependencyList>
diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.cpp
index c2dbf17f45d..d9a1c6b871b 100644
--- a/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.cpp
@@ -257,10 +257,19 @@ Qt4RunConfigurationWidget::Qt4RunConfigurationWidget(Qt4RunConfiguration *qt4Run
boxlayout->addWidget(resetButton);
toplayout->addRow(tr("Working directory:"), boxlayout);
+ QHBoxLayout *innerBox = new QHBoxLayout();
m_useTerminalCheck = new QCheckBox(tr("Run in terminal"), this);
m_useTerminalCheck->setChecked(m_qt4RunConfiguration->runMode() == ProjectExplorer::LocalApplicationRunConfiguration::Console);
- toplayout->addRow(QString(), m_useTerminalCheck);
m_useTerminalCheck->setVisible(!m_qt4RunConfiguration->forcedGuiMode());
+ innerBox->addWidget(m_useTerminalCheck);
+
+ m_useQvfbCheck = new QCheckBox(tr("Run on QVFb"), this);
+ m_useQvfbCheck->setToolTip(tr("Check this option to run the application on a Qt Virtual Framebuffer."));
+ m_useQvfbCheck->setChecked(m_qt4RunConfiguration->runMode() == ProjectExplorer::LocalApplicationRunConfiguration::Console);
+ m_useQvfbCheck->setVisible(false);
+ innerBox->addWidget(m_useQvfbCheck);
+ innerBox->addStretch();
+ toplayout->addRow(QString(), innerBox);
if (Utils::HostOsInfo::isMacHost()) {
m_usingDyldImageSuffix = new QCheckBox(tr("Use debug version of frameworks (DYLD_IMAGE_SUFFIX=_debug)"), this);
@@ -313,6 +322,8 @@ Qt4RunConfigurationWidget::Qt4RunConfigurationWidget(Qt4RunConfiguration *qt4Run
this, SLOT(argumentsEdited(QString)));
connect(m_useTerminalCheck, SIGNAL(toggled(bool)),
this, SLOT(termToggled(bool)));
+ connect(m_useQvfbCheck, SIGNAL(toggled(bool)),
+ this, SLOT(qvfbToggled(bool)));
connect(m_environmentWidget, SIGNAL(userChangesChanged()),
this, SLOT(userChangesEdited()));
@@ -418,6 +429,12 @@ void Qt4RunConfigurationWidget::termToggled(bool on)
m_ignoreChange = false;
}
+void Qt4RunConfigurationWidget::qvfbToggled(bool on)
+{
+ m_ignoreChange = true;
+ m_ignoreChange = false;
+}
+
void Qt4RunConfigurationWidget::usingDyldImageSuffixToggled(bool state)
{
m_ignoreChange = true;
diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.h b/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.h
index 8fa80838ca3..ce61c7baa37 100644
--- a/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.h
+++ b/src/plugins/qt4projectmanager/qt-desktop/qt4runconfiguration.h
@@ -181,6 +181,7 @@ private slots:
void effectiveTargetInformationChanged();
void termToggled(bool);
+ void qvfbToggled(bool);
void usingDyldImageSuffixToggled(bool);
void usingDyldImageSuffixChanged(bool);
void baseEnvironmentSelected(int index);
@@ -194,6 +195,7 @@ private:
Utils::PathChooser *m_workingDirectoryEdit;
QLineEdit *m_argumentsLineEdit;
QCheckBox *m_useTerminalCheck;
+ QCheckBox *m_useQvfbCheck;
QCheckBox *m_usingDyldImageSuffix;
QLineEdit *m_qmlDebugPort;
diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp
index 4322925fd1f..66ef36b598c 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.cpp
+++ b/src/plugins/qt4projectmanager/qt4nodes.cpp
@@ -287,9 +287,9 @@ struct InternalNode
QMap<QString, InternalNode *> subnodes;
QStringList files;
ProjectExplorer::FileType type;
+ int priority;
QString displayName;
QString typeName;
- int priority;
QString fullPath;
QIcon icon;
@@ -305,7 +305,7 @@ struct InternalNode
qDeleteAll(subnodes);
}
- // Creates a tree structure from a list of absolute file paths.
+ // Creates: a tree structure from a list of absolute file paths.
// Empty directories are compressed into a single entry with a longer path.
// * project
// * /absolute/path
@@ -1437,9 +1437,9 @@ Qt4ProFileNode::Qt4ProFileNode(Qt4Project *project,
const QString &filePath,
QObject *parent)
: Qt4PriFileNode(project, this, filePath),
- m_projectType(InvalidProject),
m_validParse(false),
m_parseInProgress(true),
+ m_projectType(InvalidProject),
m_readerExact(0),
m_readerCumulative(0)
{
@@ -1943,6 +1943,7 @@ void Qt4ProFileNode::applyEvaluate(EvalResult evalResult, bool async)
= m_readerExact->values(QLatin1String("TARGET_VERSION_EXT"));
newVarValues[StaticLibExtensionVar] = m_readerExact->values(QLatin1String("QMAKE_EXTENSION_STATICLIB"));
newVarValues[ShLibExtensionVar] = m_readerExact->values(QLatin1String("QMAKE_EXTENSION_SHLIB"));
+ newVarValues[AndroidArchVar] = m_readerExact->values(QLatin1String("ANDROID_TARGET_ARCH"));
m_isDeployable = false;
if (m_projectType == ApplicationTemplate) {
diff --git a/src/plugins/qt4projectmanager/qt4nodes.h b/src/plugins/qt4projectmanager/qt4nodes.h
index 67d8b962460..b3231a0e78c 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.h
+++ b/src/plugins/qt4projectmanager/qt4nodes.h
@@ -98,7 +98,8 @@ enum Qt4Variable {
VersionVar,
TargetVersionExtVar,
StaticLibExtensionVar,
- ShLibExtensionVar
+ ShLibExtensionVar,
+ AndroidArchVar
};
// Import base classes into namespace
@@ -433,9 +434,13 @@ private:
TargetInformation targetInformation(QtSupport::ProFileReader *reader) const;
void setupInstallsList(const QtSupport::ProFileReader *reader);
+ bool m_isDeployable;
+
+ bool m_validParse;
+ bool m_parseInProgress;
+
Qt4ProjectType m_projectType;
Qt4VariablesHash m_varValues;
- bool m_isDeployable;
QMap<QString, QDateTime> m_uitimestamps;
TargetInformation m_qt4targetInformation;
@@ -444,9 +449,6 @@ private:
InstallsList m_installsList;
friend class Qt4NodeHierarchy;
- bool m_validParse;
- bool m_parseInProgress;
-
QStringList m_uiHeaderFiles;
// Async stuff
diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index 1945f54ebc5..6dac1e54633 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -51,6 +51,7 @@
#include <extensionsystem/pluginmanager.h>
#include <cpptools/ModelManagerInterface.h>
#include <qmljs/qmljsmodelmanagerinterface.h>
+#include <qmljstools/qmljsmodelmanager.h>
#include <projectexplorer/buildtargetinfo.h>
#include <projectexplorer/deploymentdata.h>
#include <projectexplorer/toolchain.h>
@@ -348,7 +349,7 @@ Qt4Project::Qt4Project(Qt4Manager *manager, const QString& fileName) :
m_activeTarget(0)
{
setProjectContext(Core::Context(Qt4ProjectManager::Constants::PROJECT_ID));
- setProjectLanguage(Core::Context(ProjectExplorer::Constants::LANG_CXX));
+ setProjectLanguages(Core::Context(ProjectExplorer::Constants::LANG_CXX));
m_asyncUpdateTimer.setSingleShot(true);
m_asyncUpdateTimer.setInterval(3000);
@@ -592,54 +593,36 @@ void Qt4Project::updateQmlJSCodeModel()
if (!modelManager)
return;
- QmlJS::ModelManagerInterface::ProjectInfo projectInfo = modelManager->projectInfo(this);
- projectInfo.sourceFiles = m_projectFiles->files[QMLType];
+ QmlJS::ModelManagerInterface::ProjectInfo projectInfo =
+ QmlJSTools::defaultProjectInfoForProject(this);
FindQt4ProFiles findQt4ProFiles;
QList<Qt4ProFileNode *> proFiles = findQt4ProFiles(rootProjectNode());
projectInfo.importPaths.clear();
+
+ bool hasQmlLib = false;
foreach (Qt4ProFileNode *node, proFiles) {
projectInfo.importPaths.append(node->variableValue(QmlImportPathVar));
+ if (!hasQmlLib) {
+ QStringList qtLibs = node->variableValue(QtVar);
+ hasQmlLib = qtLibs.contains(QLatin1String("declarative")) ||
+ qtLibs.contains(QLatin1String("qml")) ||
+ qtLibs.contains(QLatin1String("quick"));
+ }
}
- bool preferDebugDump = false;
- projectInfo.tryQmlDump = false;
-
- ProjectExplorer::Target *t = activeTarget();
- ProjectExplorer::Kit *k = t ? t->kit() : ProjectExplorer::KitManager::instance()->defaultKit();
- QtSupport::BaseQtVersion *qtVersion = QtSupport::QtKitInformation::qtVersion(k);
+ // If the project directory has a pro/pri file that includes a qml or quick or declarative
+ // library then chances of the project being a QML project is quite high.
+ // This assumption fails when there are no QDeclarativeEngine/QDeclarativeView (QtQuick 1)
+ // or QQmlEngine/QQuickView (QtQuick 2) instances.
+ Core::Context pl(ProjectExplorer::Constants::LANG_CXX);
+ if (m_projectFiles->files[QMLType].count() && hasQmlLib)
+ pl.add(ProjectExplorer::Constants::LANG_QMLJS);
+ setProjectLanguages(pl);
- if (t) {
- if (Qt4BuildConfiguration *bc = qobject_cast<Qt4BuildConfiguration *>(t->activeBuildConfiguration()))
- preferDebugDump = bc->qmakeBuildConfiguration() & QtSupport::BaseQtVersion::DebugBuild;
- } else {
- if (qtVersion)
- preferDebugDump = qtVersion->defaultBuildConfig() & QtSupport::BaseQtVersion::DebugBuild;
- }
- if (qtVersion && qtVersion->isValid()) {
- projectInfo.tryQmlDump = qtVersion->type() == QLatin1String(QtSupport::Constants::DESKTOPQT)
- || qtVersion->type() == QLatin1String(QtSupport::Constants::SIMULATORQT);
- projectInfo.qtQmlPath = qtVersion->qmakeProperty("QT_INSTALL_QML");
- if (!projectInfo.qtQmlPath.isEmpty())
- projectInfo.importPaths += projectInfo.qtQmlPath;
- projectInfo.qtImportsPath = qtVersion->qmakeProperty("QT_INSTALL_IMPORTS");
- if (!projectInfo.qtImportsPath.isEmpty())
- projectInfo.importPaths += projectInfo.qtImportsPath;
- projectInfo.qtVersionString = qtVersion->qtVersionString();
- }
projectInfo.importPaths.removeDuplicates();
- if (projectInfo.tryQmlDump) {
- QtSupport::QmlDumpTool::pathAndEnvironment(this, qtVersion,
- ToolChainKitInformation::toolChain(k),
- preferDebugDump, &projectInfo.qmlDumpPath,
- &projectInfo.qmlDumpEnvironment);
- } else {
- projectInfo.qmlDumpPath.clear();
- projectInfo.qmlDumpEnvironment.clear();
- }
-
modelManager->updateProjectInfo(projectInfo);
}
diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.qbs b/src/plugins/qt4projectmanager/qt4projectmanager.qbs
index 57502c1d0e7..1aee5b998bd 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanager.qbs
+++ b/src/plugins/qt4projectmanager/qt4projectmanager.qbs
@@ -14,6 +14,7 @@ QtcPlugin {
Depends { name: "QmlJS" }
Depends { name: "CPlusPlus" }
Depends { name: "TextEditor" }
+ Depends { name: "QmlJSTools" }
Depends { name: "cpp" }
cpp.defines: base.concat([
diff --git a/src/plugins/qt4projectmanager/qt4projectmanager_dependencies.pri b/src/plugins/qt4projectmanager/qt4projectmanager_dependencies.pri
index 2f469a603d1..35c58553abe 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanager_dependencies.pri
+++ b/src/plugins/qt4projectmanager/qt4projectmanager_dependencies.pri
@@ -3,3 +3,4 @@ include(../../plugins/qtsupport/qtsupport.pri)
include(../../plugins/cpptools/cpptools.pri)
include(../../plugins/debugger/debugger.pri)
include(../../libs/qmljs/qmljs.pri)
+include(../../plugins/qmljstools/qmljstools.pri)
diff --git a/src/plugins/qtsupport/exampleslistmodel.h b/src/plugins/qtsupport/exampleslistmodel.h
index 1a32c5b4930..d23a0a5deb5 100644
--- a/src/plugins/qtsupport/exampleslistmodel.h
+++ b/src/plugins/qtsupport/exampleslistmodel.h
@@ -56,7 +56,6 @@ enum InstructionalType
struct ExampleItem
{
ExampleItem(): difficulty(0), isVideo(false), isHighlighted(false) {}
- InstructionalType type;
QString name;
QString projectPath;
QString description;
@@ -65,13 +64,14 @@ struct ExampleItem
QStringList filesToOpen;
QStringList tags;
QStringList dependencies;
+ InstructionalType type;
int difficulty;
bool hasSourceCode;
bool isVideo;
+ bool isHighlighted;
QString videoUrl;
QString videoLength;
QStringList platforms;
- bool isHighlighted;
};
class ExamplesListModel : public QAbstractListModel
diff --git a/src/plugins/texteditor/behaviorsettingspage.cpp b/src/plugins/texteditor/behaviorsettingspage.cpp
index cefae4985ba..8222991fbaa 100644
--- a/src/plugins/texteditor/behaviorsettingspage.cpp
+++ b/src/plugins/texteditor/behaviorsettingspage.cpp
@@ -42,6 +42,7 @@
#include <coreplugin/icore.h>
#include <coreplugin/coreconstants.h>
#include <coreplugin/editormanager/editormanager.h>
+#include <utils/hostosinfo.h>
#include <QSettings>
#include <QTextCodec>
@@ -113,6 +114,8 @@ QWidget *BehaviorSettingsPage::createPage(QWidget *parent)
QWidget *w = new QWidget(parent);
d->m_page = new Internal::Ui::BehaviorSettingsPage;
d->m_page->setupUi(w);
+ if (Utils::HostOsInfo::isMacHost())
+ d->m_page->gridLayout->setContentsMargins(-1, 0, -1, 0); // don't ask.
d->m_pageCodeStyle = new SimpleCodeStylePreferences(w);
d->m_pageCodeStyle->setDelegatingPool(d->m_codeStyle->delegatingPool());
d->m_pageCodeStyle->setTabSettings(d->m_codeStyle->tabSettings());
diff --git a/src/plugins/texteditor/behaviorsettingspage.ui b/src/plugins/texteditor/behaviorsettingspage.ui
index 0ff81ee3a0c..d2773135e53 100644
--- a/src/plugins/texteditor/behaviorsettingspage.ui
+++ b/src/plugins/texteditor/behaviorsettingspage.ui
@@ -14,12 +14,6 @@
<string>Form</string>
</property>
<layout class="QGridLayout" name="gridLayout">
- <property name="topMargin">
- <number>0</number>
- </property>
- <property name="bottomMargin">
- <number>0</number>
- </property>
<item row="0" column="0">
<widget class="TextEditor::BehaviorSettingsWidget" name="behaviorWidget" native="true"/>
</item>
diff --git a/src/plugins/texteditor/codeassist/codeassistant.cpp b/src/plugins/texteditor/codeassist/codeassistant.cpp
index 84ad277c062..2616924ffc2 100644
--- a/src/plugins/texteditor/codeassist/codeassistant.cpp
+++ b/src/plugins/texteditor/codeassist/codeassistant.cpp
@@ -132,6 +132,8 @@ private:
// --------------------
const QChar CodeAssistantPrivate::m_null;
+static const int AutomaticProposalTimerInterval = 400;
+
CodeAssistantPrivate::CodeAssistantPrivate(CodeAssistant *assistant)
: m_q(assistant)
, m_textEditor(0)
@@ -142,7 +144,7 @@ CodeAssistantPrivate::CodeAssistantPrivate(CodeAssistant *assistant)
, m_settings(TextEditorSettings::instance()->completionSettings())
{
m_automaticProposalTimer.setSingleShot(true);
- m_automaticProposalTimer.setInterval(400);
+ m_automaticProposalTimer.setInterval(AutomaticProposalTimerInterval);
connect(&m_automaticProposalTimer, SIGNAL(timeout()), this, SLOT(automaticProposalTimeout()));
connect(TextEditorSettings::instance(),
@@ -248,7 +250,7 @@ void CodeAssistantPrivate::requestProposal(AssistReason reason,
m_requestRunner = new ProcessorRunner;
connect(m_requestRunner, SIGNAL(finished()), this, SLOT(proposalComputed()));
connect(m_requestRunner, SIGNAL(finished()), this, SLOT(finalizeRequest()));
- assistInterface->detach(m_requestRunner);
+ assistInterface->prepareForAsyncUse();
m_requestRunner->setReason(reason);
m_requestRunner->setProcessor(processor);
m_requestRunner->setAssistInterface(assistInterface);
diff --git a/src/plugins/texteditor/codeassist/defaultassistinterface.cpp b/src/plugins/texteditor/codeassist/defaultassistinterface.cpp
index f6fccae70c8..325549db61b 100644
--- a/src/plugins/texteditor/codeassist/defaultassistinterface.cpp
+++ b/src/plugins/texteditor/codeassist/defaultassistinterface.cpp
@@ -42,7 +42,7 @@ DefaultAssistInterface::DefaultAssistInterface(QTextDocument *textDocument,
Core::IDocument *document,
AssistReason reason)
: m_textDocument(textDocument)
- , m_detached(false)
+ , m_isAsync(false)
, m_position(position)
, m_document(document)
, m_reason(reason)
@@ -50,7 +50,7 @@ DefaultAssistInterface::DefaultAssistInterface(QTextDocument *textDocument,
DefaultAssistInterface::~DefaultAssistInterface()
{
- if (m_detached)
+ if (m_isAsync)
delete m_textDocument;
}
@@ -64,11 +64,17 @@ QString DefaultAssistInterface::textAt(int pos, int length) const
return Convenience::textAt(QTextCursor(m_textDocument), pos, length);
}
-void DefaultAssistInterface::detach(QThread *destination)
+void DefaultAssistInterface::prepareForAsyncUse()
{
- m_textDocument = m_textDocument->clone();
- m_textDocument->moveToThread(destination);
- m_detached = true;
+ m_text = m_textDocument->toPlainText();
+ m_textDocument = 0;
+ m_isAsync = true;
+}
+
+void DefaultAssistInterface::recreateTextDocument()
+{
+ m_textDocument = new QTextDocument(m_text);
+ m_text = QString();
}
AssistReason DefaultAssistInterface::reason() const
diff --git a/src/plugins/texteditor/codeassist/defaultassistinterface.h b/src/plugins/texteditor/codeassist/defaultassistinterface.h
index 27e72ac3ba4..68ef4b7b515 100644
--- a/src/plugins/texteditor/codeassist/defaultassistinterface.h
+++ b/src/plugins/texteditor/codeassist/defaultassistinterface.h
@@ -48,15 +48,17 @@ public:
virtual QString textAt(int position, int length) const;
virtual const Core::IDocument *document() const { return m_document; }
virtual QTextDocument *textDocument() const { return m_textDocument; }
- virtual void detach(QThread *destination);
+ virtual void prepareForAsyncUse();
+ virtual void recreateTextDocument();
virtual AssistReason reason() const;
private:
QTextDocument *m_textDocument;
- bool m_detached;
+ bool m_isAsync;
int m_position;
Core::IDocument *m_document;
AssistReason m_reason;
+ QString m_text;
};
} // TextEditor
diff --git a/src/plugins/texteditor/codeassist/iassistinterface.h b/src/plugins/texteditor/codeassist/iassistinterface.h
index 50fdf0ab70e..17d91681ac0 100644
--- a/src/plugins/texteditor/codeassist/iassistinterface.h
+++ b/src/plugins/texteditor/codeassist/iassistinterface.h
@@ -58,7 +58,8 @@ public:
virtual QString textAt(int position, int length) const = 0;
virtual const Core::IDocument *document() const = 0;
virtual QTextDocument *textDocument() const = 0;
- virtual void detach(QThread *destination) = 0;
+ virtual void prepareForAsyncUse() = 0;
+ virtual void recreateTextDocument() = 0;
virtual AssistReason reason() const = 0;
};
diff --git a/src/plugins/texteditor/codeassist/runner.cpp b/src/plugins/texteditor/codeassist/runner.cpp
index 494244eb972..b8d9dbfa4a9 100644
--- a/src/plugins/texteditor/codeassist/runner.cpp
+++ b/src/plugins/texteditor/codeassist/runner.cpp
@@ -60,6 +60,7 @@ void ProcessorRunner::setProcessor(IAssistProcessor *computer)
void ProcessorRunner::run()
{
+ m_interface->recreateTextDocument();
m_proposal = m_processor->perform(m_interface);
}
diff --git a/src/plugins/texteditor/fontsettingspage.cpp b/src/plugins/texteditor/fontsettingspage.cpp
index c36d39bd25c..090d6f72baa 100644
--- a/src/plugins/texteditor/fontsettingspage.cpp
+++ b/src/plugins/texteditor/fontsettingspage.cpp
@@ -238,8 +238,8 @@ FormatDescription::FormatDescription(TextStyle id, const QString &displayName, c
FormatDescription::FormatDescription(TextStyle id, const QString &displayName, const QString &tooltipText, const Format &format) :
m_id(id),
- m_displayName(displayName),
m_format(format),
+ m_displayName(displayName),
m_tooltipText(tooltipText)
{
}
diff --git a/src/plugins/texteditor/fontsettingspage.h b/src/plugins/texteditor/fontsettingspage.h
index 5cbf09d1441..3870904cd27 100644
--- a/src/plugins/texteditor/fontsettingspage.h
+++ b/src/plugins/texteditor/fontsettingspage.h
@@ -76,8 +76,8 @@ public:
private:
TextStyle m_id; // Name of the category
- QString m_displayName; // Displayed name of the category
Format m_format; // Default format
+ QString m_displayName; // Displayed name of the category
QString m_tooltipText; // Description text for category
};
diff --git a/src/plugins/texteditor/generichighlighter/highlightdefinition.cpp b/src/plugins/texteditor/generichighlighter/highlightdefinition.cpp
index 1807a42979f..69d143786ad 100644
--- a/src/plugins/texteditor/generichighlighter/highlightdefinition.cpp
+++ b/src/plugins/texteditor/generichighlighter/highlightdefinition.cpp
@@ -40,8 +40,8 @@ using namespace TextEditor;
using namespace Internal;
HighlightDefinition::HighlightDefinition() :
- m_singleLineCommentAfterWhiteSpaces(false),
m_keywordCaseSensitivity(Qt::CaseSensitive),
+ m_singleLineCommentAfterWhiteSpaces(false),
m_indentationBasedFolding(false)
{
QString s(QLatin1String(".():!+,-<=>%&/;?[]^{|}~\\*, \t"));
diff --git a/src/plugins/texteditor/generichighlighter/highlightdefinition.h b/src/plugins/texteditor/generichighlighter/highlightdefinition.h
index e294ee03162..2d45de7006b 100644
--- a/src/plugins/texteditor/generichighlighter/highlightdefinition.h
+++ b/src/plugins/texteditor/generichighlighter/highlightdefinition.h
@@ -106,7 +106,6 @@ private:
QString m_initialContext;
QString m_singleLineComment;
- bool m_singleLineCommentAfterWhiteSpaces;
QString m_multiLineCommentStart;
QString m_multiLineCommentEnd;
@@ -114,6 +113,7 @@ private:
Qt::CaseSensitivity m_keywordCaseSensitivity;
+ bool m_singleLineCommentAfterWhiteSpaces;
bool m_indentationBasedFolding;
QSet<QChar> m_delimiters;
diff --git a/src/plugins/texteditor/itextmark.h b/src/plugins/texteditor/itextmark.h
index 3f5693bb4f7..eb5a8b81c09 100644
--- a/src/plugins/texteditor/itextmark.h
+++ b/src/plugins/texteditor/itextmark.h
@@ -56,8 +56,8 @@ public:
: m_markableInterface(0),
m_lineNumber(line),
m_priority(NormalPriority),
- m_widthFactor(1.0),
- m_visible(true)
+ m_visible(true),
+ m_widthFactor(1.0)
{}
virtual ~ITextMark();
@@ -95,10 +95,10 @@ private:
Q_DISABLE_COPY(ITextMark)
ITextMarkable *m_markableInterface;
int m_lineNumber;
- QIcon m_icon;
Priority m_priority;
- double m_widthFactor;
bool m_visible;
+ QIcon m_icon;
+ double m_widthFactor;
};
typedef QList<ITextMark *> TextMarks;
diff --git a/src/plugins/texteditor/semantichighlighter.cpp b/src/plugins/texteditor/semantichighlighter.cpp
index 75dfcd3adc1..14c869c88c8 100644
--- a/src/plugins/texteditor/semantichighlighter.cpp
+++ b/src/plugins/texteditor/semantichighlighter.cpp
@@ -76,13 +76,15 @@ void TextEditor::SemanticHighlighter::incrementalApplyExtraAdditionalFormats(
// clear formats of blocks until blockNumber
while (currentBlockNumber < blockNumber) {
- highlighter->setExtraAdditionalFormats(b, QList<QTextLayout::FormatRange>());
+ QList<QTextLayout::FormatRange> noFormats;
+ highlighter->setExtraAdditionalFormats(b, noFormats);
b = b.next();
++currentBlockNumber;
}
// collect all the formats for the current line
QList<QTextLayout::FormatRange> formats;
+ formats.reserve(to - from);
forever {
QTextLayout::FormatRange formatRange;
@@ -131,7 +133,8 @@ void TextEditor::SemanticHighlighter::clearExtraAdditionalFormatsUntilEnd(
QTextBlock b = doc->findBlockByNumber(firstBlockToClear);
while (b.isValid()) {
- highlighter->setExtraAdditionalFormats(b, QList<QTextLayout::FormatRange>());
+ QList<QTextLayout::FormatRange> noFormats;
+ highlighter->setExtraAdditionalFormats(b, noFormats);
b = b.next();
}
}
diff --git a/src/plugins/texteditor/syntaxhighlighter.cpp b/src/plugins/texteditor/syntaxhighlighter.cpp
index 90f2e272e09..1a2776dc76e 100644
--- a/src/plugins/texteditor/syntaxhighlighter.cpp
+++ b/src/plugins/texteditor/syntaxhighlighter.cpp
@@ -694,8 +694,10 @@ static bool byStartOfRange(const QTextLayout::FormatRange &range, const QTextLay
return range.start < other.start;
}
+// The formats is passed in by reference in order to prevent unnecessary copying of its items.
+// After this method returns, the list is modified, and should be considered invalidated!
void SyntaxHighlighter::setExtraAdditionalFormats(const QTextBlock& block,
- const QList<QTextLayout::FormatRange> &fmts)
+ QList<QTextLayout::FormatRange> &formats)
{
// qDebug() << "setAdditionalFormats() on block" << block.blockNumber();
// qDebug() << " is valid:" << (block.isValid() ? "Yes" : "No");
@@ -708,21 +710,21 @@ void SyntaxHighlighter::setExtraAdditionalFormats(const QTextBlock& block,
// << "color:" << overrides.at(i).format.foreground().color();
Q_D(SyntaxHighlighter);
- if (block.layout() == 0 || block.text().isEmpty())
+ const int blockLength = block.length();
+ if (block.layout() == 0 || blockLength == 0)
return;
- QList<QTextLayout::FormatRange> formats;
- formats.reserve(fmts.size());
- foreach (QTextLayout::FormatRange r, fmts) {
- r.format.setProperty(QTextFormat::UserProperty, true);
- formats.append(r);
- }
qSort(formats.begin(), formats.end(), byStartOfRange);
+ const QList<QTextLayout::FormatRange> all = block.layout()->additionalFormats();
QList<QTextLayout::FormatRange> previousSemanticFormats;
QList<QTextLayout::FormatRange> formatsToApply;
+ previousSemanticFormats.reserve(all.size());
+ formatsToApply.reserve(all.size() + formats.size());
+
+ for (int i = 0, ei = formats.size(); i < ei; ++i)
+ formats[i].format.setProperty(QTextFormat::UserProperty, true);
- const QList<QTextLayout::FormatRange> all = block.layout()->additionalFormats();
foreach (const QTextLayout::FormatRange &r, all) {
if (r.format.hasProperty(QTextFormat::UserProperty))
previousSemanticFormats.append(r);
@@ -753,7 +755,7 @@ void SyntaxHighlighter::setExtraAdditionalFormats(const QTextBlock& block,
bool wasInReformatBlocks = d->inReformatBlocks;
d->inReformatBlocks = true;
block.layout()->setAdditionalFormats(formatsToApply);
- document()->markContentsDirty(block.position(), block.length()-1);
+ document()->markContentsDirty(block.position(), blockLength - 1);
d->inReformatBlocks = wasInReformatBlocks;
}
diff --git a/src/plugins/texteditor/syntaxhighlighter.h b/src/plugins/texteditor/syntaxhighlighter.h
index 2f3ad075ae8..8cee09a209e 100644
--- a/src/plugins/texteditor/syntaxhighlighter.h
+++ b/src/plugins/texteditor/syntaxhighlighter.h
@@ -64,7 +64,7 @@ public:
void setDocument(QTextDocument *doc);
QTextDocument *document() const;
- void setExtraAdditionalFormats(const QTextBlock& block, const QList<QTextLayout::FormatRange> &formats);
+ void setExtraAdditionalFormats(const QTextBlock& block, QList<QTextLayout::FormatRange> &formats);
static QList<QColor> generateColors(int n, const QColor &background);
diff --git a/src/plugins/texteditor/texteditoroverlay.cpp b/src/plugins/texteditor/texteditoroverlay.cpp
index 354cb8c852d..a20376364aa 100644
--- a/src/plugins/texteditor/texteditoroverlay.cpp
+++ b/src/plugins/texteditor/texteditoroverlay.cpp
@@ -41,9 +41,9 @@ using namespace TextEditor::Internal;
TextEditorOverlay::TextEditorOverlay(BaseTextEditorWidget *editor) :
QObject(editor),
m_visible(false),
+ m_alpha(true),
m_borderWidth(1),
m_dropShadowWidth(2),
- m_alpha(true),
m_firstSelectionOriginalBegin(-1),
m_editor(editor),
m_viewport(editor->viewport())
diff --git a/src/plugins/texteditor/texteditoroverlay.h b/src/plugins/texteditor/texteditoroverlay.h
index 4d65a23893b..05a8163038c 100644
--- a/src/plugins/texteditor/texteditoroverlay.h
+++ b/src/plugins/texteditor/texteditoroverlay.h
@@ -112,9 +112,9 @@ private:
QTextCursor assembleCursorForSelection(int selectionIndex) const;
bool m_visible;
+ bool m_alpha;
int m_borderWidth;
int m_dropShadowWidth;
- bool m_alpha;
int m_firstSelectionOriginalBegin;
BaseTextEditorWidget *m_editor;
QWidget *m_viewport;
diff --git a/src/plugins/valgrind/callgrind/callgrindparsedata.cpp b/src/plugins/valgrind/callgrind/callgrindparsedata.cpp
index fb3a3129437..f7c69dcf647 100644
--- a/src/plugins/valgrind/callgrind/callgrindparsedata.cpp
+++ b/src/plugins/valgrind/callgrind/callgrindparsedata.cpp
@@ -49,8 +49,8 @@ class ParseData::Private {
Q_DECLARE_TR_FUNCTIONS(Valgrind::Callgrind::ParseData)
public:
Private(ParseData *q)
- : m_lineNumberPositionIndex(-1)
- , m_pid(0)
+ : m_pid(0)
+ , m_lineNumberPositionIndex(-1)
, m_part(0)
, m_version(0)
, m_cycleCacheValid(false)
@@ -62,14 +62,15 @@ public:
QStringList m_events;
QStringList m_positions;
- int m_lineNumberPositionIndex;
QVector<quint64> m_totalCosts;
QVector<const Function *> m_functions;
QString m_command;
quint64 m_pid;
+ int m_lineNumberPositionIndex;
uint m_part;
- QStringList m_descriptions;
int m_version;
+ bool m_cycleCacheValid;
+ QStringList m_descriptions;
QString m_creator;
QHash<qint64, QHash<qint64, QVector<Function *> > > functionLookup;
@@ -84,7 +85,6 @@ public:
void cycleDetection();
void cleanupFunctionCycles();
- bool m_cycleCacheValid;
QVector<const Function *> m_cycleCache;
ParseData *m_q;
diff --git a/src/shared/qtsingleapplication/qtlocalpeer.cpp b/src/shared/qtsingleapplication/qtlocalpeer.cpp
index 824a2062b59..6410db3195a 100644
--- a/src/shared/qtsingleapplication/qtlocalpeer.cpp
+++ b/src/shared/qtsingleapplication/qtlocalpeer.cpp
@@ -139,8 +139,11 @@ void QtLocalPeer::receiveConnection()
return;
// Why doesn't Qt have a blocking stream that takes care of this shait???
- while (socket->bytesAvailable() < static_cast<int>(sizeof(quint32)))
- socket->waitForReadyRead();
+ while (socket->bytesAvailable() < static_cast<int>(sizeof(quint32))) {
+ if (!socket->isValid()) // stale request
+ return;
+ socket->waitForReadyRead(1000);
+ }
QDataStream ds(socket);
QByteArray uMsg;
quint32 remaining;
diff --git a/src/tools/sdktool/addkeysoperation.cpp b/src/tools/sdktool/addkeysoperation.cpp
index 31559a082da..eea188db9a9 100644
--- a/src/tools/sdktool/addkeysoperation.cpp
+++ b/src/tools/sdktool/addkeysoperation.cpp
@@ -81,12 +81,12 @@ int AddKeysOperation::execute() const
QVariantMap map = load(m_file);
- map = addKeys(map, m_data);
- if (map.isEmpty())
+ QVariantMap result = addKeys(map, m_data);
+ if (map.isEmpty() || map == result)
return -4;
// Write data again:
- return save(map, m_file) ? 0 : -5;
+ return save(result, m_file) ? 0 : -5;
}
#ifdef WITH_TESTS
diff --git a/src/tools/sdktool/addkitoperation.cpp b/src/tools/sdktool/addkitoperation.cpp
index 499f2280f5c..33486f3981d 100644
--- a/src/tools/sdktool/addkitoperation.cpp
+++ b/src/tools/sdktool/addkitoperation.cpp
@@ -50,6 +50,7 @@ static char ID[] = "PE.Profile.Id";
static char DISPLAYNAME[] = "PE.Profile.Name";
static char ICON[] = "PE.Profile.Icon";
static char AUTODETECTED[] = "PE.Profile.Autodetected";
+static char SDK[] = "PE.Profile.SDK";
static char DATA[] = "PE.Profile.Data";
// Standard KitInformation:
@@ -214,13 +215,13 @@ int AddKitOperation::execute() const
if (map.isEmpty())
map = initializeKits();
- map = addKit(map, m_id, m_displayName, m_icon, m_debuggerEngine, m_debugger,
- m_deviceType.toUtf8(), m_sysRoot, m_tc, m_qt, m_mkspec, m_extra);
+ QVariantMap result = addKit(map, m_id, m_displayName, m_icon, m_debuggerEngine, m_debugger,
+ m_deviceType.toUtf8(), m_sysRoot, m_tc, m_qt, m_mkspec, m_extra);
- if (map.isEmpty())
+ if (map.isEmpty() || map == result)
return -2;
- return save(map, QLatin1String("profiles")) ? 0 : -3;
+ return save(result, QLatin1String("profiles")) ? 0 : -3;
}
#ifdef WITH_TESTS
@@ -260,6 +261,7 @@ bool AddKitOperation::test() const
|| !profile0.contains(QLatin1String(DISPLAYNAME))
|| profile0.value(QLatin1String(DISPLAYNAME)).toString() != QLatin1String("Test Kit")
|| !profile0.contains(QLatin1String(AUTODETECTED))
+ || !profile0.contains(QLatin1String(SDK))
|| profile0.value(QLatin1String(AUTODETECTED)).toBool() != true)
return false;
@@ -298,6 +300,7 @@ bool AddKitOperation::test() const
|| !profile1.contains(QLatin1String(DISPLAYNAME))
|| profile1.value(QLatin1String(DISPLAYNAME)).toString() != QLatin1String("Test Kit2")
|| !profile1.contains(QLatin1String(AUTODETECTED))
+ || !profile1.contains(QLatin1String(SDK))
|| profile1.value(QLatin1String(AUTODETECTED)).toBool() != true)
return false;
@@ -366,6 +369,7 @@ QVariantMap AddKitOperation::addKit(const QVariantMap &map,
data << KeyValuePair(QStringList() << kit << QLatin1String(DISPLAYNAME), QVariant(uniqueName));
data << KeyValuePair(QStringList() << kit << QLatin1String(ICON), QVariant(icon));
data << KeyValuePair(QStringList() << kit << QLatin1String(AUTODETECTED), QVariant(true));
+ data << KeyValuePair(QStringList() << kit << QLatin1String(SDK), QVariant(true));
data << KeyValuePair(QStringList() << kit << QLatin1String(DATA)
<< QLatin1String(DEBUGGER) << QLatin1String(DEBUGGER_ENGINE), QVariant(debuggerType));
diff --git a/src/tools/sdktool/addqtoperation.cpp b/src/tools/sdktool/addqtoperation.cpp
index 1ab4b56c71d..5fa0b472988 100644
--- a/src/tools/sdktool/addqtoperation.cpp
+++ b/src/tools/sdktool/addqtoperation.cpp
@@ -152,12 +152,12 @@ int AddQtOperation::execute() const
if (map.isEmpty())
map = initializeQtVersions();
- map = addQt(map, m_id, m_displayName, m_type, m_qmake, m_extra);
+ QVariantMap result = addQt(map, m_id, m_displayName, m_type, m_qmake, m_extra);
- if (map.isEmpty())
+ if (map.isEmpty() || result == map)
return -2;
- return save(map, QLatin1String("qtversions")) ? 0 : -3;
+ return save(result, QLatin1String("qtversions")) ? 0 : -3;
}
#ifdef WITH_TESTS
diff --git a/src/tools/sdktool/addtoolchainoperation.cpp b/src/tools/sdktool/addtoolchainoperation.cpp
index 45351ae392f..0eeeb8dfdea 100644
--- a/src/tools/sdktool/addtoolchainoperation.cpp
+++ b/src/tools/sdktool/addtoolchainoperation.cpp
@@ -149,11 +149,11 @@ int AddToolChainOperation::execute() const
if (map.isEmpty())
map = initializeToolChains();
- map = addToolChain(map, m_id, m_displayName, m_path, m_targetAbi, m_supportedAbis, m_extra);
- if (map.isEmpty())
+ QVariantMap result = addToolChain(map, m_id, m_displayName, m_path, m_targetAbi, m_supportedAbis, m_extra);
+ if (map.isEmpty() || map == result)
return -2;
- return save(map, QLatin1String("toolchains")) ? 0 : -3;
+ return save(result, QLatin1String("toolchains")) ? 0 : -3;
}
#ifdef WITH_TESTS
diff --git a/src/tools/sdktool/rmkeysoperation.cpp b/src/tools/sdktool/rmkeysoperation.cpp
index 858e5a2f4e5..bd49b4df5bf 100644
--- a/src/tools/sdktool/rmkeysoperation.cpp
+++ b/src/tools/sdktool/rmkeysoperation.cpp
@@ -72,7 +72,7 @@ int RmKeysOperation::execute() const
return 1;
// Write data again:
- return save(map, m_file) ? 0 : 2;
+ return save(result, m_file) ? 0 : 2;
}
#ifdef WITH_TESTS
diff --git a/src/tools/sdktool/rmkitoperation.cpp b/src/tools/sdktool/rmkitoperation.cpp
index 9e58155edf4..31d95373328 100644
--- a/src/tools/sdktool/rmkitoperation.cpp
+++ b/src/tools/sdktool/rmkitoperation.cpp
@@ -87,12 +87,12 @@ int RmKitOperation::execute() const
if (map.isEmpty())
map = AddKitOperation::initializeKits();
- map = rmKit(map, m_id);
+ QVariantMap result = rmKit(map, m_id);
- if (map.isEmpty())
+ if (result.isEmpty() || result == map)
return -2;
- return save(map, QLatin1String("profiles")) ? 0 : -3;
+ return save(result, QLatin1String("profiles")) ? 0 : -3;
}
#ifdef WITH_TESTS
@@ -164,7 +164,7 @@ QVariantMap RmKitOperation::rmKit(const QVariantMap &map, const QString &id)
bool ok;
int count = GetOperation::get(map, QLatin1String(COUNT)).toInt(&ok);
if (!ok) {
- std::cerr << "Error: The count found in map is not an integer.";
+ std::cerr << "Error: The count found in map is not an integer." << std::endl;
return map;
}
@@ -179,13 +179,13 @@ QVariantMap RmKitOperation::rmKit(const QVariantMap &map, const QString &id)
profileList << profile;
}
if (profileList.count() == map.count() - 3) {
- std::cerr << "Error: Id was not found.";
+ std::cerr << "Error: Id was not found." << std::endl;
return map;
}
int defaultKit = GetOperation::get(map, QLatin1String(DEFAULT)).toInt(&ok);
if (!ok) {
- std::cerr << "Error: Could not find the default kit.";
+ std::cerr << "Error: Could not find the default kit." << std::endl;
defaultKit = -1;
}
diff --git a/src/tools/sdktool/rmtoolchainoperation.cpp b/src/tools/sdktool/rmtoolchainoperation.cpp
index 9d6a96b8cea..0224e94f550 100644
--- a/src/tools/sdktool/rmtoolchainoperation.cpp
+++ b/src/tools/sdktool/rmtoolchainoperation.cpp
@@ -93,7 +93,7 @@ int RmToolChainOperation::execute() const
if (result == map)
return -2;
- return save(map, QLatin1String("toolchains")) ? 0 : -3;
+ return save(result, QLatin1String("toolchains")) ? 0 : -3;
}
#ifdef WITH_TESTS
diff --git a/tests/auto/cplusplus/cplusplus.pro b/tests/auto/cplusplus/cplusplus.pro
index f5d49f3b2d7..c8258f90959 100644
--- a/tests/auto/cplusplus/cplusplus.pro
+++ b/tests/auto/cplusplus/cplusplus.pro
@@ -12,4 +12,5 @@ SUBDIRS = \
simplifytypes \
misc \
cxx11 \
- checksymbols
+ checksymbols \
+ lexer
diff --git a/tests/auto/cplusplus/lexer/lexer.pro b/tests/auto/cplusplus/lexer/lexer.pro
new file mode 100644
index 00000000000..3dfc7953255
--- /dev/null
+++ b/tests/auto/cplusplus/lexer/lexer.pro
@@ -0,0 +1,4 @@
+include(../../qttest.pri)
+include(../shared/shared.pri)
+SOURCES += tst_lexer.cpp
+
diff --git a/tests/auto/cplusplus/lexer/tst_lexer.cpp b/tests/auto/cplusplus/lexer/tst_lexer.cpp
new file mode 100644
index 00000000000..1f956337a57
--- /dev/null
+++ b/tests/auto/cplusplus/lexer/tst_lexer.cpp
@@ -0,0 +1,109 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 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.
+**
+****************************************************************************/
+
+#include <QtTest>
+#include <QDebug>
+
+#include <Token.h>
+#include <SimpleLexer.h>
+
+//TESTED_COMPONENT=src/libs/cplusplus
+using namespace CPlusPlus;
+
+class tst_SimpleLexer: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void doxygen_comments();
+ void doxygen_comments_data();
+};
+
+void tst_SimpleLexer::doxygen_comments()
+{
+ QFETCH(QByteArray, source);
+ QFETCH(QList<unsigned>, expectedTokenKindList);
+
+ SimpleLexer lexer;
+ const QList<Token> tokenList = lexer(source);
+
+ int i = 0;
+ for (; i < tokenList.size(); ++i) {
+ QVERIFY2(i < expectedTokenKindList.size(), "More tokens than expected.");
+
+ // Compare spelled tokens to have it more readable
+ const Token token = tokenList.at(i);
+ const unsigned expectedTokenKind = expectedTokenKindList.at(i);
+ Token expectedToken; // Create a Token in order to spell the token kind
+ expectedToken.f.kind = expectedTokenKind;
+// qDebug("Comparing (i=%d): \"%s\" \"%s\"", i, token.spell(), expectedToken.spell());
+ QCOMPARE(token.spell(), expectedToken.spell());
+ }
+ QVERIFY2(i == expectedTokenKindList.size(), "Less tokens than expected.");
+}
+
+void tst_SimpleLexer::doxygen_comments_data()
+{
+ QTest::addColumn<QByteArray>("source");
+ QTest::addColumn<QList<unsigned> >("expectedTokenKindList");
+
+ QByteArray source;
+ QList<unsigned> expectedTokenKindList;
+
+ source = "// comment";
+ expectedTokenKindList = QList<unsigned>() << T_CPP_COMMENT;
+ QTest::newRow(source) << source << expectedTokenKindList;
+
+ source = "//// comment";
+ expectedTokenKindList = QList<unsigned>() << T_CPP_COMMENT;
+ QTest::newRow(source) << source << expectedTokenKindList;
+
+ source = "/// comment";
+ expectedTokenKindList = QList<unsigned>() << T_CPP_DOXY_COMMENT;
+ QTest::newRow(source) << source << expectedTokenKindList;
+
+ source = "///< comment";
+ expectedTokenKindList = QList<unsigned>() << T_CPP_DOXY_COMMENT;
+ QTest::newRow(source) << source << expectedTokenKindList;
+
+ source = "//! comment";
+ expectedTokenKindList = QList<unsigned>() << T_CPP_DOXY_COMMENT;
+ QTest::newRow(source) << source << expectedTokenKindList;
+
+ source = "//!< comment";
+ expectedTokenKindList = QList<unsigned>() << T_CPP_DOXY_COMMENT;
+ QTest::newRow(source) << source << expectedTokenKindList;
+
+ source = "///\n";
+ expectedTokenKindList = QList<unsigned>() << T_CPP_DOXY_COMMENT;
+ QTest::newRow(source) << source << expectedTokenKindList;
+}
+
+QTEST_APPLESS_MAIN(tst_SimpleLexer)
+#include "tst_lexer.moc"
diff --git a/tests/manual/fakevim/main.cpp b/tests/manual/fakevim/main.cpp
index 655d6aa7a49..59ad34523b4 100644
--- a/tests/manual/fakevim/main.cpp
+++ b/tests/manual/fakevim/main.cpp
@@ -73,13 +73,13 @@ public slots:
void changeExtraInformation(const QString &info)
{
- QMessageBox::information(m_widget, "Information", info);
+ QMessageBox::information(m_widget, tr("Information"), info);
}
void updateStatusBar()
{
int slack = 80 - m_statusMessage.size() - m_statusData.size();
- QString msg = m_statusMessage + QString(slack, QChar(' ')) + m_statusData;
+ QString msg = m_statusMessage + QString(slack, QLatin1Char(' ')) + m_statusData;
m_mainWindow->statusBar()->showMessage(msg);
}
@@ -103,15 +103,15 @@ int main(int argc, char *argv[])
if (usePlainTextEdit) {
QPlainTextEdit *w = new QPlainTextEdit;
w->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- title = "PlainTextEdit";
+ title = QLatin1String("PlainTextEdit");
widget = w;
} else {
QTextEdit *w = new QTextEdit;
w->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- title = "TextEdit";
+ title = QLatin1String("TextEdit");
widget = w;
}
- widget->setObjectName("Editor");
+ widget->setObjectName(QLatin1String("Editor"));
//widget->resize(450, 350);
widget->setFocus();
@@ -120,7 +120,7 @@ int main(int argc, char *argv[])
FakeVimHandler handler(widget, 0);
- mw.setWindowTitle("Fakevim (" + title + ")");
+ mw.setWindowTitle(QLatin1String("Fakevim (") + title + QLatin1Char(')'));
mw.setCentralWidget(widget);
mw.resize(600, 650);
mw.move(0, 0);
@@ -129,7 +129,7 @@ int main(int argc, char *argv[])
QFont font = widget->font();
//: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
//font.setFamily("Misc");
- font.setFamily("Monospace");
+ font.setFamily(QLatin1String("Monospace"));
//font.setStretch(QFont::SemiCondensed);
widget->setFont(font);
@@ -151,12 +151,12 @@ int main(int argc, char *argv[])
theFakeVimSetting(ConfigShiftWidth)->setValue(8);
theFakeVimSetting(ConfigTabStop)->setValue(8);
theFakeVimSetting(ConfigAutoIndent)->setValue(true);
- theFakeVimSetting(ConfigIsKeyword)->setValue("@,48-57,_,192-255,a-z,A-Z");
+ theFakeVimSetting(ConfigIsKeyword)->setValue(QLatin1String("@,48-57,_,192-255,a-z,A-Z"));
handler.installEventFilter();
handler.setupWidget();
if (args.size() >= 1)
- handler.handleCommand("r " + args.at(0));
+ handler.handleCommand(QLatin1String("r ") + args.at(0));
return app.exec();
}
diff --git a/tests/manual/utils/tcpportsgatherer/main.cpp b/tests/manual/utils/tcpportsgatherer/main.cpp
index df553b63bfa..f20756616c8 100644
--- a/tests/manual/utils/tcpportsgatherer/main.cpp
+++ b/tests/manual/utils/tcpportsgatherer/main.cpp
@@ -20,7 +20,7 @@ int main()
qDebug() << ipPorts.usedPorts().toString();
qDebug() << "Getting a few ports ...";
- PortList portList = PortList::fromString("10000-10100");
+ PortList portList = PortList::fromString(QLatin1String("10000-10100"));
QStringList ports;
for (int i = 0; i < 10; ++i) {
quint16 port = ipPorts.getNextFreePort(&portList);
@@ -31,6 +31,6 @@ int main()
Q_ASSERT(!ports.contains(portStr));
ports.append(QString::number(port));
}
- qDebug() << ports.join(", ");
+ qDebug() << ports.join(QLatin1String(", "));
return 0;
}
diff --git a/tests/system/shared/debugger.py b/tests/system/shared/debugger.py
index db78d54db7b..8737cfd479c 100644
--- a/tests/system/shared/debugger.py
+++ b/tests/system/shared/debugger.py
@@ -30,8 +30,7 @@ def takeDebuggerLog():
debuggerLogWindow = waitForObject("{container=':DebugModeWidget.Debugger Log_QDockWidget' type='Debugger::Internal::CombinedPane' unnamed='1' visible='1'}")
debuggerLog = str(debuggerLogWindow.plainText)
mouseClick(debuggerLogWindow, 5, 5, 0, Qt.LeftButton)
- activateItem(waitForObjectItem(openContextMenuOnTextCursorPosition(debuggerLogWindow),
- "Clear Contents"))
+ invokeContextMenuItem(debuggerLogWindow, "Clear Contents")
waitFor("str(debuggerLogWindow.plainText)==''", 5000)
invokeMenuItem("Window", "Views", "Debugger Log")
return debuggerLog
diff --git a/tests/system/shared/editor_utils.py b/tests/system/shared/editor_utils.py
index 0e7afe73611..431c6087aed 100644
--- a/tests/system/shared/editor_utils.py
+++ b/tests/system/shared/editor_utils.py
@@ -274,7 +274,8 @@ def invokeContextMenuItem(editorArea, command1, command2 = None):
ctxtMenu = openContextMenuOnTextCursorPosition(editorArea)
activateItem(waitForObjectItem(objectMap.realName(ctxtMenu), command1, 2000))
if command2:
- activateItem(waitForObjectItem(objectMap.realName(ctxtMenu), command2, 2000))
+ activateItem(waitForObjectItem("{type='QMenu' visible='1' window=%s}"
+ % objectMap.realName(ctxtMenu), command2, 2000))
# this function invokes the "Find Usages" item from context menu
# param editor an editor object
diff --git a/tests/system/shared/hook_utils.py b/tests/system/shared/hook_utils.py
index 736c21fb952..7221be65866 100644
--- a/tests/system/shared/hook_utils.py
+++ b/tests/system/shared/hook_utils.py
@@ -286,7 +286,7 @@ def deleteAppFromWinFW(workingDir, projectName, isReleaseBuild=True):
if result == 0:
test.log("Deleted %s from firewall" % projectName)
else:
- test.fatal("Could not delete %s as allowed program from win firewall" % (mode, projectName))
+ test.fatal("Could not delete %s as allowed program from win firewall" % (projectName))
# helper that can modify the win firewall to allow a program to communicate through it or delete it
# param addToFW defines whether to add (True) or delete (False) this programm to/from the firewall
diff --git a/tests/system/shared/project.py b/tests/system/shared/project.py
index a736e7827b3..7cfc3c145e7 100644
--- a/tests/system/shared/project.py
+++ b/tests/system/shared/project.py
@@ -316,8 +316,8 @@ def runAndCloseApp(withHookInto=False, executable=None, port=None, function=None
global processStarted, processExited
processStarted = processExited = False
overrideInstallLazySignalHandler()
- installLazySignalHandler("{type='ProjectExplorer::ApplicationLaucher'}", "processStarted()", "__handleProcessStarted__")
- installLazySignalHandler("{type='ProjectExplorer::ApplicationLaucher'}", "processExited(int)", "__handleProcessExited__")
+ installLazySignalHandler("{type='ProjectExplorer::ApplicationLauncher'}", "processStarted()", "__handleProcessStarted__")
+ installLazySignalHandler("{type='ProjectExplorer::ApplicationLauncher'}", "processExited(int)", "__handleProcessExited__")
runButton = waitForObject("{type='Core::Internal::FancyToolButton' text='Run' visible='1'}")
clickButton(runButton)
if sType != SubprocessType.QT_QUICK_UI:
diff --git a/tests/system/shared/qtcreator.py b/tests/system/shared/qtcreator.py
index d7839acaf5b..3f761f855d6 100644
--- a/tests/system/shared/qtcreator.py
+++ b/tests/system/shared/qtcreator.py
@@ -42,6 +42,21 @@ def overrideStartApplication():
test.log("Using workaround for MacOS (different AUT name)")
return __origStartApplication__(*args)
+def startedWithoutPluginError():
+ try:
+ loaderErrorWidgetName = ("{name='ExtensionSystem__Internal__PluginErrorOverview' "
+ "type='ExtensionSystem::PluginErrorOverview' visible='1' "
+ "windowTitle='Qt Creator - Plugin loader messages'}")
+ loaderError = waitForObject(loaderErrorWidgetName, 1000)
+ test.fatal("Could not perform clean start of Qt Creator - Plugin error occurred.",
+ waitForObject("{name='pluginError' type='QTextEdit' visible='1' window=%s}"
+ % loaderErrorWidgetName, 1000).plainText)
+ clickButton("{text~='(Next.*|Continue)' type='QPushButton' visible='1'}")
+ invokeMenuItem("File", "Exit")
+ return False
+ except:
+ return True
+
def waitForCleanShutdown(timeOut=10):
appCtxt = currentApplicationContext()
shutdownDone = (str(appCtxt)=="")
diff --git a/tests/system/suite_APTW/tst_APTW01/test.py b/tests/system/suite_APTW/tst_APTW01/test.py
index 0b83ffe7bfa..3d89518f2f7 100644
--- a/tests/system/suite_APTW/tst_APTW01/test.py
+++ b/tests/system/suite_APTW/tst_APTW01/test.py
@@ -5,6 +5,8 @@ source("../shared/aptw.py")
# test New Qt Gui Application build and run for release and debug option
def main():
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
checkedTargets = createProject_Qt_GUI(tempDir(), "SampleApp")
# run project for debug and release and verify results
runVerify(checkedTargets)
diff --git a/tests/system/suite_APTW/tst_APTW02/test.py b/tests/system/suite_APTW/tst_APTW02/test.py
index 87899869989..f03329a5eff 100644
--- a/tests/system/suite_APTW/tst_APTW02/test.py
+++ b/tests/system/suite_APTW/tst_APTW02/test.py
@@ -5,6 +5,8 @@ source("../shared/aptw.py")
# test New Qt Quick Application build and run for release and debug option
def main():
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
checkedTargets, projectName = createNewQtQuickApplication(tempDir(), "SampleApp")
# run project for debug and release and verify results
runVerify(checkedTargets)
diff --git a/tests/system/suite_CCOM/tst_CCOM01/test.py b/tests/system/suite_CCOM/tst_CCOM01/test.py
index 7924e8c6b14..e8e4f7428d3 100755
--- a/tests/system/suite_CCOM/tst_CCOM01/test.py
+++ b/tests/system/suite_CCOM/tst_CCOM01/test.py
@@ -12,6 +12,8 @@ def main():
templateDir = prepareTemplate(sourceExample)
examplePath = os.path.join(templateDir, proFile)
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
# open example project
checkedTargets = openQmakeProject(examplePath)
# build and wait until finished - on all build configurations
diff --git a/tests/system/suite_CCOM/tst_CCOM02/test.py b/tests/system/suite_CCOM/tst_CCOM02/test.py
index 02b3e93df3c..50119d1602a 100755
--- a/tests/system/suite_CCOM/tst_CCOM02/test.py
+++ b/tests/system/suite_CCOM/tst_CCOM02/test.py
@@ -12,6 +12,8 @@ def main():
templateDir = prepareTemplate(sourceExample)
examplePath = os.path.join(templateDir, proFile)
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
# open example project
openQmakeProject(examplePath)
# create syntax error
diff --git a/tests/system/suite_CSUP/tst_CSUP01/test.py b/tests/system/suite_CSUP/tst_CSUP01/test.py
index a6e15cbee2c..4fd2a0db1eb 100644
--- a/tests/system/suite_CSUP/tst_CSUP01/test.py
+++ b/tests/system/suite_CSUP/tst_CSUP01/test.py
@@ -4,6 +4,8 @@ source("../../shared/qtcreator.py")
# entry of test
def main():
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
# create qt quick application
# Step 1: Open test .pro project.
createNewQtQuickApplication(tempDir(), "SampleApp")
diff --git a/tests/system/suite_CSUP/tst_CSUP02/test.py b/tests/system/suite_CSUP/tst_CSUP02/test.py
index 461a20ec8c4..f57d6d80e07 100644
--- a/tests/system/suite_CSUP/tst_CSUP02/test.py
+++ b/tests/system/suite_CSUP/tst_CSUP02/test.py
@@ -4,6 +4,8 @@ source("../../shared/qtcreator.py")
# entry of test
def main():
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
# create qt quick application
# Step 1: Open test .pro project.
createNewQtQuickApplication(tempDir(), "SampleApp")
diff --git a/tests/system/suite_CSUP/tst_CSUP04/test.py b/tests/system/suite_CSUP/tst_CSUP04/test.py
index e60c2ba3624..405c5955181 100644
--- a/tests/system/suite_CSUP/tst_CSUP04/test.py
+++ b/tests/system/suite_CSUP/tst_CSUP04/test.py
@@ -13,6 +13,8 @@ def main():
templateDir = prepareTemplate(sourceExample)
examplePath = os.path.join(templateDir, proFile)
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
# open example project
openQmakeProject(examplePath)
installLazySignalHandler("{type='Core::FutureProgress' unnamed='1'}", "finished()", "__handleFutureProgress__")
diff --git a/tests/system/suite_CSUP/tst_CSUP05/test.py b/tests/system/suite_CSUP/tst_CSUP05/test.py
index 9db59aec2e9..97dec22d1e3 100644
--- a/tests/system/suite_CSUP/tst_CSUP05/test.py
+++ b/tests/system/suite_CSUP/tst_CSUP05/test.py
@@ -12,6 +12,8 @@ def main():
templateDir = prepareTemplate(sourceExample)
examplePath = os.path.join(templateDir, proFile)
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
# open example project
openQmakeProject(examplePath)
# wait for parsing to complete
diff --git a/tests/system/suite_HELP/tst_HELP02/test.py b/tests/system/suite_HELP/tst_HELP02/test.py
index eb6a15fae73..4133724fb82 100755
--- a/tests/system/suite_HELP/tst_HELP02/test.py
+++ b/tests/system/suite_HELP/tst_HELP02/test.py
@@ -33,6 +33,8 @@ def main():
test.fatal("Can't find version from file.")
return
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
if platform.system() == "Darwin":
invokeMenuItem("Help", "About Qt Creator")
else:
diff --git a/tests/system/suite_HELP/tst_HELP04/test.py b/tests/system/suite_HELP/tst_HELP04/test.py
index caca5f3fb90..25383a9255d 100755
--- a/tests/system/suite_HELP/tst_HELP04/test.py
+++ b/tests/system/suite_HELP/tst_HELP04/test.py
@@ -43,6 +43,8 @@ def main():
global textHasChanged
noMatch = "Your search did not match any documents."
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
installLazySignalHandler(":Qt Creator_Help::Internal::HelpViewer", "textChanged()", "__handleTextChanged__")
addHelpDocumentationFromSDK()
# switch to help mode
diff --git a/tests/system/suite_HELP/tst_HELP05/test.py b/tests/system/suite_HELP/tst_HELP05/test.py
index 805dd5133f1..981631c5f9c 100755
--- a/tests/system/suite_HELP/tst_HELP05/test.py
+++ b/tests/system/suite_HELP/tst_HELP05/test.py
@@ -20,6 +20,8 @@ def verifyInteractiveQMLHelp(lineText, helpText):
def main():
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
addHelpDocumentationFromSDK()
# create qt quick application
createNewQtQuickApplication(tempDir(), "SampleApp")
diff --git a/tests/system/suite_HELP/tst_HELP06/test.py b/tests/system/suite_HELP/tst_HELP06/test.py
index cb7050e850a..9a5e6ae2c0a 100755
--- a/tests/system/suite_HELP/tst_HELP06/test.py
+++ b/tests/system/suite_HELP/tst_HELP06/test.py
@@ -18,6 +18,8 @@ def getQModelIndexStr(textProperty, container):
def main():
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
# goto help mode and click on topic
switchViewTo(ViewConstants.HELP)
manualQModelIndex = getQModelIndexStr("text?='Qt Creator Manual *'",
diff --git a/tests/system/suite_QMLS/shared/qmls.py b/tests/system/suite_QMLS/shared/qmls.py
index 1792c98ff44..82b0cc40bfd 100644
--- a/tests/system/suite_QMLS/shared/qmls.py
+++ b/tests/system/suite_QMLS/shared/qmls.py
@@ -3,6 +3,8 @@ source("../../shared/suites_qtta.py")
def startQtCreatorWithNewAppAtQMLEditor(projectDir, projectName, line = None):
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return None
# create qt quick application
createNewQtQuickApplication(projectDir, projectName)
# open qml file
diff --git a/tests/system/suite_QMLS/tst_QMLS02/test.py b/tests/system/suite_QMLS/tst_QMLS02/test.py
index e238bbde13d..4021f29edc1 100644
--- a/tests/system/suite_QMLS/tst_QMLS02/test.py
+++ b/tests/system/suite_QMLS/tst_QMLS02/test.py
@@ -12,7 +12,7 @@ def main():
invokeMenuItem("Tools", "QML/JS", "Run Checks")
# verify that error properly reported
issuesView = waitForObject(":Qt Creator.Issues_QListView")
- test.verify(checkSyntaxError(issuesView, ["invalid property name 'Color'"], True),
+ test.verify(checkSyntaxError(issuesView, ["Invalid property name 'Color'. (M16)"], True),
"Verifying if error is properly reported")
# repair error - go to written line
placeCursorToLine(editorArea, testingCodeLine)
diff --git a/tests/system/suite_QMLS/tst_QMLS03/test.py b/tests/system/suite_QMLS/tst_QMLS03/test.py
index abb3ab3a5a8..61166930772 100644
--- a/tests/system/suite_QMLS/tst_QMLS03/test.py
+++ b/tests/system/suite_QMLS/tst_QMLS03/test.py
@@ -47,6 +47,8 @@ def main():
templateDir = prepareTemplate(sourceExample)
examplePath = os.path.join(templateDir, proFile)
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
# open example project
openQmakeProject(examplePath)
# open qml file
@@ -60,8 +62,7 @@ def main():
return
for i in range(5):
type(editorArea, "<Left>")
- ctxtMenu = openContextMenuOnTextCursorPosition(editorArea)
- activateItem(waitForObjectItem(objectMap.realName(ctxtMenu), "Find Usages"))
+ invokeContextMenuItem(editorArea, "Find Usages")
# check if usage was properly found
expectedResults = [ExpectedResult("color-animation.qml", 49, "Rectangle {"),
ExpectedResult("color-animation.qml", 96, "Rectangle {"),
diff --git a/tests/system/suite_QMLS/tst_QMLS04/test.py b/tests/system/suite_QMLS/tst_QMLS04/test.py
index 8b88e610fbc..e807c7f88ba 100644
--- a/tests/system/suite_QMLS/tst_QMLS04/test.py
+++ b/tests/system/suite_QMLS/tst_QMLS04/test.py
@@ -8,9 +8,7 @@ def main():
for i in range(5):
type(editorArea, "<Left>")
# invoke Refactoring - Move Component into separate file
- ctxtMenu = openContextMenuOnTextCursorPosition(editorArea)
- activateItem(waitForObjectItem(objectMap.realName(ctxtMenu), "Refactoring"))
- activateItem(waitForObjectItem(objectMap.realName(ctxtMenu), "Move Component into Separate File"))
+ invokeContextMenuItem(editorArea, "Refactoring", "Move Component into Separate File")
# give component name and proceed
replaceEditorContent(waitForObject(":Dialog.componentNameEdit_QLineEdit"), "MyComponent")
clickButton(waitForObject(":Dialog.OK_QPushButton"))
diff --git a/tests/system/suite_QMLS/tst_QMLS05/test.py b/tests/system/suite_QMLS/tst_QMLS05/test.py
index c036438299c..76f93bcb324 100644
--- a/tests/system/suite_QMLS/tst_QMLS05/test.py
+++ b/tests/system/suite_QMLS/tst_QMLS05/test.py
@@ -18,9 +18,7 @@ def main():
invokeMenuItem("File", "Save All")
# activate menu and apply 'Refactoring - Split initializer'
numLinesExpected = len(str(editorArea.plainText).splitlines()) + 4
- ctxtMenu = openContextMenuOnTextCursorPosition(editorArea)
- activateItem(waitForObjectItem(objectMap.realName(ctxtMenu), "Refactoring"))
- activateItem(waitForObjectItem(objectMap.realName(ctxtMenu), "Split Initializer"))
+ invokeContextMenuItem(editorArea, "Refactoring", "Split Initializer")
# wait until refactoring ended
waitFor("len(str(editorArea.plainText).splitlines()) == numLinesExpected", 5000)
# verify if refactoring was properly applied - each part on separate line
diff --git a/tests/system/suite_QMLS/tst_QMLS06/test.py b/tests/system/suite_QMLS/tst_QMLS06/test.py
index 61cc9165191..7c15748cd07 100644
--- a/tests/system/suite_QMLS/tst_QMLS06/test.py
+++ b/tests/system/suite_QMLS/tst_QMLS06/test.py
@@ -12,9 +12,7 @@ def main():
invokeMenuItem("File", "Save All")
# invoke Refactoring - Wrap Component in Loader
numLinesExpected = len(str(editorArea.plainText).splitlines()) + 10
- ctxtMenu = openContextMenuOnTextCursorPosition(editorArea)
- activateItem(waitForObjectItem(objectMap.realName(ctxtMenu), "Refactoring"))
- activateItem(waitForObjectItem(objectMap.realName(ctxtMenu), "Wrap Component in Loader"))
+ invokeContextMenuItem(editorArea, "Refactoring", "Wrap Component in Loader")
# wait until refactoring ended
waitFor("len(str(editorArea.plainText).splitlines()) >= numLinesExpected", 5000)
# verify if refactoring was properly applied
diff --git a/tests/system/suite_QMLS/tst_QMLS07/test.py b/tests/system/suite_QMLS/tst_QMLS07/test.py
index f8502c7af45..dc6678314c1 100644
--- a/tests/system/suite_QMLS/tst_QMLS07/test.py
+++ b/tests/system/suite_QMLS/tst_QMLS07/test.py
@@ -11,9 +11,7 @@ def main():
invokeMenuItem("File", "Save All")
# invoke Refactoring - Add a message suppression comment.
numLinesExpected = len(str(editorArea.plainText).splitlines()) + 1
- ctxtMenu = openContextMenuOnTextCursorPosition(editorArea)
- activateItem(waitForObjectItem(objectMap.realName(ctxtMenu), "Refactoring"))
- activateItem(waitForObjectItem(objectMap.realName(ctxtMenu), "Add a Comment to Suppress This Message"))
+ invokeContextMenuItem(editorArea, "Refactoring", "Add a Comment to Suppress This Message")
# wait until refactoring ended
waitFor("len(str(editorArea.plainText).splitlines()) >= numLinesExpected", 5000)
# verify if refactoring was properly applied
diff --git a/tests/system/suite_SCOM/tst_SCOM01/test.py b/tests/system/suite_SCOM/tst_SCOM01/test.py
index b279fc55257..f9281a5824a 100644
--- a/tests/system/suite_SCOM/tst_SCOM01/test.py
+++ b/tests/system/suite_SCOM/tst_SCOM01/test.py
@@ -4,6 +4,8 @@ source("../../shared/suites_qtta.py")
# entry of test
def main():
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
# create qt quick application
checkedTargets, projectName = createNewQtQuickApplication(tempDir(), "SampleApp")
# build it - on all build configurations
diff --git a/tests/system/suite_SCOM/tst_SCOM02/test.py b/tests/system/suite_SCOM/tst_SCOM02/test.py
index 517217dabdd..a08d85d70d8 100644
--- a/tests/system/suite_SCOM/tst_SCOM02/test.py
+++ b/tests/system/suite_SCOM/tst_SCOM02/test.py
@@ -4,6 +4,8 @@ source("../../shared/suites_qtta.py")
# entry of test
def main():
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
# create qt quick application
createNewQtQuickApplication(tempDir(), "SampleApp")
# create syntax error in qml file
diff --git a/tests/system/suite_SCOM/tst_SCOM04/test.py b/tests/system/suite_SCOM/tst_SCOM04/test.py
index be20b1fd368..d8b649d5791 100644
--- a/tests/system/suite_SCOM/tst_SCOM04/test.py
+++ b/tests/system/suite_SCOM/tst_SCOM04/test.py
@@ -7,6 +7,8 @@ def main():
expectedErrorAlternatives = ["'SyntaxError' was not declared in this scope",
"'SyntaxError' : undeclared identifier"]
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
# create qt quick application
checkedTargets, projectName = createNewQtQuickApplication(tempDir(), "SampleApp")
# create syntax error in cpp file
diff --git a/tests/system/suite_SCOM/tst_SCOM05/test.py b/tests/system/suite_SCOM/tst_SCOM05/test.py
index b0ed04a73c5..5d7ceb71550 100644
--- a/tests/system/suite_SCOM/tst_SCOM05/test.py
+++ b/tests/system/suite_SCOM/tst_SCOM05/test.py
@@ -26,6 +26,8 @@ def main():
projectName1 = "SampleApp1"
projectName2 = "SampleApp2"
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
# create qt quick application 1
createNewQtQuickApplication(tempDir(), projectName1)
# create qt quick application 2
diff --git a/tests/system/suite_WELP/tst_WELP01/test.py b/tests/system/suite_WELP/tst_WELP01/test.py
index c84ecf60748..6ae0d43859a 100755
--- a/tests/system/suite_WELP/tst_WELP01/test.py
+++ b/tests/system/suite_WELP/tst_WELP01/test.py
@@ -28,6 +28,8 @@ def main():
global webPageContentLoadedValue, gettingStartedText
# open Qt Creator
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
installLazySignalHandler(":QWebPage","loadFinished(bool)", "webPageContentLoaded")
installLazySignalHandler(":*Qt Creator_Help::Internal::HelpViewer", "loadFinished(bool)",
"webPageContentLoaded")
diff --git a/tests/system/suite_WELP/tst_WELP02/test.py b/tests/system/suite_WELP/tst_WELP02/test.py
index 1dfa303b4d3..a68f7554866 100644
--- a/tests/system/suite_WELP/tst_WELP02/test.py
+++ b/tests/system/suite_WELP/tst_WELP02/test.py
@@ -9,6 +9,8 @@ def main():
return
# open Qt Creator
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
if not test.verify(checkIfObjectExists(getQmlItem("Text", ":Qt Creator_QDeclarativeView", False,
"text='Getting Started'")),
"Verifying: Qt Creator displays Welcome Page with Getting Started."):
diff --git a/tests/system/suite_WELP/tst_WELP03/test.py b/tests/system/suite_WELP/tst_WELP03/test.py
index 7eea26b0912..d86ba5440d7 100644
--- a/tests/system/suite_WELP/tst_WELP03/test.py
+++ b/tests/system/suite_WELP/tst_WELP03/test.py
@@ -37,6 +37,8 @@ def main():
return
# open Qt Creator
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
installLazySignalHandler(":QWebPage","loadFinished(bool)", "webPageContentLoaded")
installLazySignalHandler(":*Qt Creator_Help::Internal::HelpViewer", "loadFinished(bool)",
"webPageContentLoaded")
diff --git a/tests/system/suite_WELP/tst_WELP04/test.py b/tests/system/suite_WELP/tst_WELP04/test.py
index 4a440d69f78..4e43d164e13 100644
--- a/tests/system/suite_WELP/tst_WELP04/test.py
+++ b/tests/system/suite_WELP/tst_WELP04/test.py
@@ -4,6 +4,8 @@ source("../../shared/suites_qtta.py")
def main():
# open Qt Creator
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
if not test.verify(checkIfObjectExists(getQmlItem("Text", ":Qt Creator_QDeclarativeView", False,
"text='Getting Started'")),
"Verifying: Qt Creator displays Welcome Page with Getting Started."):
diff --git a/tests/system/suite_debugger/tst_build_new_project/test.py b/tests/system/suite_debugger/tst_build_new_project/test.py
index 3cc454d1409..f0bdeb31632 100644
--- a/tests/system/suite_debugger/tst_build_new_project/test.py
+++ b/tests/system/suite_debugger/tst_build_new_project/test.py
@@ -4,6 +4,8 @@ project = "SquishProject"
def main():
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
checkedTargets = createProject_Qt_Console(tempDir(), project)
availableConfigs = iterateBuildConfigs(len(checkedTargets))
if not availableConfigs:
diff --git a/tests/system/suite_debugger/tst_cli_output_console/test.py b/tests/system/suite_debugger/tst_cli_output_console/test.py
index 93b0afb4d88..cabfa2aebb3 100644
--- a/tests/system/suite_debugger/tst_cli_output_console/test.py
+++ b/tests/system/suite_debugger/tst_cli_output_console/test.py
@@ -15,6 +15,8 @@ def main():
outputStdOut = "Output from std::cout."
outputStdErr = "Output from std::cerr."
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
installLazySignalHandler("{type='ProjectExplorer::Internal::ProjectExplorerPlugin' unnamed='1'}",
"runControlFinished(ProjectExplorer::RunControl*)", "__handlerunControlFinished__")
checkedTargets = createProject_Qt_Console(tempDir(), project)
diff --git a/tests/system/suite_debugger/tst_simple_debug/test.py b/tests/system/suite_debugger/tst_simple_debug/test.py
index 2a11fbe1df5..95c4a49135a 100644
--- a/tests/system/suite_debugger/tst_simple_debug/test.py
+++ b/tests/system/suite_debugger/tst_simple_debug/test.py
@@ -5,6 +5,8 @@ workingDir = None
def main():
global workingDir
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
targets = [QtQuickConstants.Targets.DESKTOP_474_GCC]
if platform.system() in ('Windows', 'Microsoft'):
targets.append(QtQuickConstants.Targets.DESKTOP_474_MSVC2008)
diff --git a/tests/system/suite_editors/tst_basic_cpp_support/test.py b/tests/system/suite_editors/tst_basic_cpp_support/test.py
index bf27d2c6ec5..14cf127eae2 100644
--- a/tests/system/suite_editors/tst_basic_cpp_support/test.py
+++ b/tests/system/suite_editors/tst_basic_cpp_support/test.py
@@ -14,6 +14,8 @@ def main():
cleanUpUserFiles(proFile)
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
overrideInstallLazySignalHandler()
installLazySignalHandler(":Qt Creator_CppEditor::Internal::CPPEditorWidget", "textChanged()",
"__handleTextChanged__")
diff --git a/tests/system/suite_editors/tst_delete_externally/test.py b/tests/system/suite_editors/tst_delete_externally/test.py
index 7dce3cce51f..abbd7d7ca1a 100644
--- a/tests/system/suite_editors/tst_delete_externally/test.py
+++ b/tests/system/suite_editors/tst_delete_externally/test.py
@@ -26,6 +26,8 @@ def main():
files = map(copyToTemplateDir, files)
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
for currentFile in files:
test.log("Opening file %s" % currentFile)
invokeMenuItem("File", "Open File or Project...")
diff --git a/tests/system/suite_editors/tst_memberoperator/test.py b/tests/system/suite_editors/tst_memberoperator/test.py
index 7e329ba900f..ea69df7761a 100644
--- a/tests/system/suite_editors/tst_memberoperator/test.py
+++ b/tests/system/suite_editors/tst_memberoperator/test.py
@@ -2,6 +2,8 @@ source("../../shared/qtcreator.py")
def main():
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
createProject_Qt_Console(tempDir(), "SquishProject")
selectFromLocator("main.cpp")
cppwindow = waitForObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget")
diff --git a/tests/system/suite_editors/tst_modify_readonly/test.py b/tests/system/suite_editors/tst_modify_readonly/test.py
index 338ad2c1127..ddbb8760919 100644
--- a/tests/system/suite_editors/tst_modify_readonly/test.py
+++ b/tests/system/suite_editors/tst_modify_readonly/test.py
@@ -12,6 +12,8 @@ def main():
if not changeFilePermissions(testFolder, True, False, "testfiles.pro"):
test.fatal("Could not set permissions for files to read-only - test will likely fail.")
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
openQmakeProject(os.path.join(testFolder, "testfiles.pro"))
modifiedUnsaved = []
readOnlyFiles = []
diff --git a/tests/system/suite_editors/tst_qml_editor/test.py b/tests/system/suite_editors/tst_qml_editor/test.py
index 975d673ad89..b2d07d4c86a 100644
--- a/tests/system/suite_editors/tst_qml_editor/test.py
+++ b/tests/system/suite_editors/tst_qml_editor/test.py
@@ -10,6 +10,8 @@ def main():
if not neededFilePresent(os.path.join(sourceExample, qmlFile)):
return
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
# add docs to have the correct tool tips
addHelpDocumentationFromSDK()
templateDir = prepareTemplate(sourceExample)
@@ -52,8 +54,7 @@ def testRenameId():
return False
type(editor, "<Down>")
searchFinished = False
- ctxtMenu = openContextMenuOnTextCursorPosition(editor)
- activateItem(waitForObjectItem(objectMap.realName(ctxtMenu), "Rename Symbol Under Cursor"))
+ invokeContextMenuItem(editor, "Rename Symbol Under Cursor")
waitFor("searchFinished")
type(waitForObject("{leftWidget={text='Replace with:' type='QLabel' unnamed='1' visible='1'} "
"type='Find::Internal::WideEnoughLineEdit' unnamed='1' visible='1' "
diff --git a/tests/system/suite_editors/tst_qml_indent/test.py b/tests/system/suite_editors/tst_qml_indent/test.py
index 9cdebd21747..d61e4cca8c4 100644
--- a/tests/system/suite_editors/tst_qml_indent/test.py
+++ b/tests/system/suite_editors/tst_qml_indent/test.py
@@ -2,6 +2,8 @@ source("../../shared/qtcreator.py")
def main():
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
# using a temporary directory won't mess up a potentially exisiting
createNewQtQuickApplication(tempDir(), "untitled")
if not prepareQmlFile():
diff --git a/tests/system/suite_editors/tst_rename_macros/test.py b/tests/system/suite_editors/tst_rename_macros/test.py
index bdd71e118ba..f739b99aa8d 100644
--- a/tests/system/suite_editors/tst_rename_macros/test.py
+++ b/tests/system/suite_editors/tst_rename_macros/test.py
@@ -11,6 +11,8 @@ def main():
return
proFile = os.path.join(folder, "testfiles.pro")
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
openQmakeProject(proFile)
if not testRenameMacroAfterSourceModification():
return
diff --git a/tests/system/suite_editors/tst_revert_changes/test.py b/tests/system/suite_editors/tst_revert_changes/test.py
index afe11dde788..2361086c476 100644
--- a/tests/system/suite_editors/tst_revert_changes/test.py
+++ b/tests/system/suite_editors/tst_revert_changes/test.py
@@ -21,6 +21,8 @@ def main():
return
proFile = os.path.join(folder, "testfiles.pro")
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
openQmakeProject(proFile)
fileModifications = {"testfiles.testfiles\\.pro":__modifyProFile__,
"testfiles.Headers.testfile\\.h":__modifyHeader__,
diff --git a/tests/system/suite_editors/tst_select_all/test.py b/tests/system/suite_editors/tst_select_all/test.py
index 2705df72c5d..b1f29259e07 100644
--- a/tests/system/suite_editors/tst_select_all/test.py
+++ b/tests/system/suite_editors/tst_select_all/test.py
@@ -17,6 +17,8 @@ def main():
return
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
for currentFile in files:
test.log("Opening file %s" % currentFile)
size = charactersInFile(currentFile)
@@ -32,12 +34,15 @@ def main():
for key in ["<Up>", "<Down>", "<Left>", "<Right>"]:
test.log("Selecting everything")
invokeMenuItem("Edit", "Select All")
- waitFor("editor.textCursor().hasSelection()", 1000)
+ test.verify(waitFor("editor.textCursor().hasSelection()", 500),
+ "verify selecting")
test.compare(editor.textCursor().selectionStart(), 0)
test.compare(editor.textCursor().selectionEnd(), size)
test.compare(editor.textCursor().position(), size)
test.log("Pressing key: %s" % key.replace("<", "").replace(">", ""))
type(editor, key)
+ test.verify(waitFor("not editor.textCursor().hasSelection()", 500),
+ "verify deselecting")
if key == "<Up>":
test.compare(editor.textCursor().selectionStart(), editor.textCursor().selectionEnd())
else:
diff --git a/tests/system/suite_general/tst_build_speedcrunch/test.py b/tests/system/suite_general/tst_build_speedcrunch/test.py
index 470e9389c18..0412c20e486 100644
--- a/tests/system/suite_general/tst_build_speedcrunch/test.py
+++ b/tests/system/suite_general/tst_build_speedcrunch/test.py
@@ -15,6 +15,8 @@ def main():
if not neededFilePresent(SpeedCrunchPath):
return
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
checkedTargets = openQmakeProject(SpeedCrunchPath)
waitForSignal("{type='CppTools::Internal::CppModelManager' unnamed='1'}", "sourceFilesRefreshed(QStringList)")
diff --git a/tests/system/suite_general/tst_cmake_speedcrunch/test.py b/tests/system/suite_general/tst_cmake_speedcrunch/test.py
index 810a8c607f6..feac26c9e3b 100644
--- a/tests/system/suite_general/tst_cmake_speedcrunch/test.py
+++ b/tests/system/suite_general/tst_cmake_speedcrunch/test.py
@@ -14,7 +14,8 @@ def main():
return
startApplication("qtcreator" + SettingsPath)
-
+ if not startedWithoutPluginError():
+ return
result = openCmakeProject(SpeedCrunchPath, BuildPath)
if not result:
test.fatal("Could not open/create cmake project - leaving test")
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 c752c3f1df7..0659d05e047 100644
--- a/tests/system/suite_general/tst_create_proj_wizard/test.py
+++ b/tests/system/suite_general/tst_create_proj_wizard/test.py
@@ -10,6 +10,8 @@ def main():
return
templateDir = prepareTemplate(sourceExample)
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
overrideInstallLazySignalHandler()
installLazySignalHandler(":frame.templateDescription_QTextBrowser",
"textChanged()","__handleTextChanged__")
diff --git a/tests/system/suite_general/tst_default_settings/test.py b/tests/system/suite_general/tst_default_settings/test.py
index c7523eba2c8..9140145f774 100644
--- a/tests/system/suite_general/tst_default_settings/test.py
+++ b/tests/system/suite_general/tst_default_settings/test.py
@@ -12,6 +12,8 @@ def main():
__createMinimumIni__(emptySettings)
SettingsPath = ' -settingspath "%s"' % emptySettings
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
invokeMenuItem("Tools", "Options...")
__checkBuildAndRun__()
clickButton(waitForObject(":Options.Cancel_QPushButton"))
diff --git a/tests/system/suite_general/tst_installed_languages/test.py b/tests/system/suite_general/tst_installed_languages/test.py
index 46ec46bf8fa..9a1aa7ca518 100644
--- a/tests/system/suite_general/tst_installed_languages/test.py
+++ b/tests/system/suite_general/tst_installed_languages/test.py
@@ -4,6 +4,8 @@ def main():
for lang in testData.dataset("languages.tsv"):
overrideStartApplication()
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
invokeMenuItem("Tools", "Options...")
waitForObjectItem(":Options_QListView", "Environment")
clickItem(":Options_QListView", "Environment", 14, 15, 0, Qt.LeftButton)
diff --git a/tests/system/suite_general/tst_openqt_creator/test.py b/tests/system/suite_general/tst_openqt_creator/test.py
index 6708d2c0a70..7993d4b30eb 100644
--- a/tests/system/suite_general/tst_openqt_creator/test.py
+++ b/tests/system/suite_general/tst_openqt_creator/test.py
@@ -7,6 +7,8 @@ def main():
return
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
openQmakeProject(pathSpeedcrunch)
# Wait for parsing to complete
diff --git a/tests/system/suite_qtquick/tst_qml_outline/test.py b/tests/system/suite_qtquick/tst_qml_outline/test.py
index 56155824f63..1c4556a950c 100644
--- a/tests/system/suite_qtquick/tst_qml_outline/test.py
+++ b/tests/system/suite_qtquick/tst_qml_outline/test.py
@@ -11,6 +11,8 @@ def main():
return
templateDir = prepareTemplate(sourceExample)
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
openQmakeProject(os.path.join(templateDir, proFile))
qmlFiles = ["focus.QML.qml.focus\\.qml", "focus.QML.qml.Core.ListMenu\\.qml"]
checkOutlineFor(qmlFiles)
diff --git a/tests/system/suite_qtquick/tst_qtquick_creation/test.py b/tests/system/suite_qtquick/tst_qtquick_creation/test.py
index 207b8f52afd..3557489e720 100644
--- a/tests/system/suite_qtquick/tst_qtquick_creation/test.py
+++ b/tests/system/suite_qtquick/tst_qtquick_creation/test.py
@@ -2,6 +2,8 @@ source("../../shared/qtcreator.py")
def main():
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
# using a temporary directory won't mess up a potentially existing
workingDir = tempDir()
checkedTargets, projectName = createNewQtQuickApplication(workingDir,
diff --git a/tests/system/suite_qtquick/tst_qtquick_creation2/test.py b/tests/system/suite_qtquick/tst_qtquick_creation2/test.py
index b7ac6881fce..272da7d5f95 100644
--- a/tests/system/suite_qtquick/tst_qtquick_creation2/test.py
+++ b/tests/system/suite_qtquick/tst_qtquick_creation2/test.py
@@ -6,6 +6,8 @@ def main():
if not neededFilePresent(os.path.join(sourceExample, qmlFile)):
return
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
# using a temporary directory won't mess up a potentially existing
workingDir = tempDir()
checkedTargets, projectName = createNewQtQuickApplication(workingDir, None,
diff --git a/tests/system/suite_qtquick/tst_qtquick_creation3/test.py b/tests/system/suite_qtquick/tst_qtquick_creation3/test.py
index 300cc4da504..1ff2ef3d360 100644
--- a/tests/system/suite_qtquick/tst_qtquick_creation3/test.py
+++ b/tests/system/suite_qtquick/tst_qtquick_creation3/test.py
@@ -2,6 +2,8 @@ source("../../shared/qtcreator.py")
def main():
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
# using a temporary directory won't mess up a potentially existing
workingDir = tempDir()
projectName = createNewQtQuickUI(workingDir)
diff --git a/tests/system/suite_qtquick/tst_qtquick_creation4/test.py b/tests/system/suite_qtquick/tst_qtquick_creation4/test.py
index e77ff68fc30..3908ec9c423 100644
--- a/tests/system/suite_qtquick/tst_qtquick_creation4/test.py
+++ b/tests/system/suite_qtquick/tst_qtquick_creation4/test.py
@@ -2,6 +2,8 @@ source("../../shared/qtcreator.py")
def main():
startApplication("qtcreator" + SettingsPath)
+ if not startedWithoutPluginError():
+ return
# using a temporary directory won't mess up a potentially existing
createNewQmlExtension(tempDir())
# wait for parsing to complete