diff --git a/doc/images/qtcreator-android-manifest-editor.png b/doc/images/qtcreator-android-manifest-editor.png index 1f9e581de1d..42477a6d1c6 100644 Binary files a/doc/images/qtcreator-android-manifest-editor.png and b/doc/images/qtcreator-android-manifest-editor.png differ diff --git a/doc/images/qtcreator-build-steps.png b/doc/images/qtcreator-build-steps.png index 5a44ac1d015..74822377d4a 100644 Binary files a/doc/images/qtcreator-build-steps.png and b/doc/images/qtcreator-build-steps.png differ diff --git a/doc/images/qtcreator-cmakeexecutable.png b/doc/images/qtcreator-cmakeexecutable.png index b63fd2aeda0..711c2f708ce 100644 Binary files a/doc/images/qtcreator-cmakeexecutable.png and b/doc/images/qtcreator-cmakeexecutable.png differ diff --git a/doc/images/qtcreator-editor-settings.png b/doc/images/qtcreator-editor-settings.png index db551f77e67..9766b153f3f 100644 Binary files a/doc/images/qtcreator-editor-settings.png and b/doc/images/qtcreator-editor-settings.png differ diff --git a/doc/images/qtcreator-kits.png b/doc/images/qtcreator-kits.png index 15243c74a4f..13bc784a763 100644 Binary files a/doc/images/qtcreator-kits.png and b/doc/images/qtcreator-kits.png differ diff --git a/doc/images/qtcreator-options-qbs.png b/doc/images/qtcreator-options-qbs.png index 48065a1ae8c..e1d758035f5 100644 Binary files a/doc/images/qtcreator-options-qbs.png and b/doc/images/qtcreator-options-qbs.png differ diff --git a/doc/src/analyze/creator-clang-static-analyzer.qdoc b/doc/src/analyze/creator-clang-static-analyzer.qdoc index beb3e03463a..69ec1abc77b 100644 --- a/doc/src/analyze/creator-clang-static-analyzer.qdoc +++ b/doc/src/analyze/creator-clang-static-analyzer.qdoc @@ -44,7 +44,9 @@ \l{http://clang-analyzer.llvm.org/available_checks.html}{Available Checkers}. To suppress diagnostics, select \uicontrol {Suppress This Diagnostic} in the - context menu. + context menu. To view the suppression list for a project and to remove + diagnostics from it, select \uicontrol {Clang Static Analyzer Settings} in + the \uicontrol Projects mode. \section1 Setting Up Clang Static Analyzer diff --git a/doc/src/android/androiddev.qdoc b/doc/src/android/androiddev.qdoc index 6cf6cc12c36..ae60b312e6a 100644 --- a/doc/src/android/androiddev.qdoc +++ b/doc/src/android/androiddev.qdoc @@ -67,6 +67,8 @@ \l{http://developer.android.com/tools/sdk/ndk/index.html} {Android NDK} from Google. + \note Android Studio is currently not supported by \QC. + \li On Windows, you also need the following: \list diff --git a/doc/src/android/deploying-android.qdoc b/doc/src/android/deploying-android.qdoc index eba54183984..35e3beda58c 100644 --- a/doc/src/android/deploying-android.qdoc +++ b/doc/src/android/deploying-android.qdoc @@ -291,6 +291,7 @@ \li In the \uicontrol Application group, you can give the application a name and select an icon for it. The three icon fields can contain different versions of the icon with low, medium, and high DPI values, from left to right. + You can also give an activity a name and select the activity to run. \li In the \uicontrol Permissions field, you can specify the permissions that your application needs. Users are asked to grant the permissions when they diff --git a/doc/src/howto/creator-sessions.qdoc b/doc/src/howto/creator-sessions.qdoc index 694843ea9cc..76b035a358a 100644 --- a/doc/src/howto/creator-sessions.qdoc +++ b/doc/src/howto/creator-sessions.qdoc @@ -55,20 +55,22 @@ developers working on the same projects. For example, if you work on a project and need to switch to another project - for a while, you can save your workspace as a session and then close the - project and all the files in it. Everything that you open after saving the - session becomes a part of a new session. When you want to return to working - on the first project, open the saved session. \QC opens the projects and - files that belong to the session. + for a while, you can clone the current session to save it under a name and + create a new session for the other project. Everything that you open after + switching to the new session becomes a part of it. When you want to return + to working on the first project, switch to the saved session. \QC opens the + projects and files that belong to the session. - To create a new session or remove existing sessions, select \uicontrol File > - \uicontrol{Session Manager}. + To save a session under a new name, select \uicontrol File > + \uicontrol {Session Manager} > \uicontrol Clone. + + To create a new session, select \uicontrol File > + \uicontrol {Session Manager} > \uicontrol New. \image qtcreator-session-manager.png - To switch between sessions, choose \uicontrol {File > Session Manager}. If you do - not create or select a session, \QC always uses the default session, which - was created the last time you exited \QC. + To switch between sessions, choose \uicontrol {File > Session Manager} > + \uicontrol {Switch to}. When you launch \QC, a list of existing sessions is displayed in the \uicontrol Welcome mode. diff --git a/doc/src/howto/creator-ui.qdoc b/doc/src/howto/creator-ui.qdoc index f9abf918a08..c0c5c1ecb02 100644 --- a/doc/src/howto/creator-ui.qdoc +++ b/doc/src/howto/creator-ui.qdoc @@ -486,6 +486,11 @@ To determine whether the keywords in the whole project or in the current file are displayed by default, select \uicontrol {Scanning scope}. + To exclude files from scanning, select \uicontrol {To-Do Settings} in the + \uicontrol Projects mode. Select \uicontrol Add and enter a regular + expression that matches the path to files to exclude. Use a forward slash + (/) as a separator in the path also on Windows. + The Todo plugin is disabled by default. To enable the plugin, select \uicontrol Help > \uicontrol {About Plugins} > \uicontrol Utilities > \uicontrol Todo and restart diff --git a/doc/src/howto/creator-vcs.qdoc b/doc/src/howto/creator-vcs.qdoc index 1111319b900..a630b9ad6aa 100644 --- a/doc/src/howto/creator-vcs.qdoc +++ b/doc/src/howto/creator-vcs.qdoc @@ -722,6 +722,12 @@ deselect the \uicontrol Load check box for the \uicontrol Perforce plugin in the \uicontrol {Version Control} group. + In the Perforce options, you can specify workspace details: + \uicontrol {P4 user}, \uicontrol {P4 client}, and \uicontrol {P4 port}. To + specify the details individually for several projects, use configuration + files instead. Create a \c {p4config.txt} configuration file for each + project in the top level project directory. + The \uicontrol Perforce submenu contains the following additional items: \table diff --git a/doc/src/projects/creator-projects-cmake.qdoc b/doc/src/projects/creator-projects-cmake.qdoc index 80fbbddd91c..4561f3f6b3a 100644 --- a/doc/src/projects/creator-projects-cmake.qdoc +++ b/doc/src/projects/creator-projects-cmake.qdoc @@ -39,13 +39,20 @@ Since \QC 1.1, CMake configuration files are supported. Since \QC 1.3, the Microsoft tool chain is supported if the CMake version is at least 2.8. - \section1 Setting the Path for CMake + \QC automatically detects the CMake executable specified in the \c PATH. + You can add paths to other CMake executables and use them in different + build and run \l{glossary-buildandrun-kit}{kits}. - You can set the path for the CMake executable in \uicontrol Tools > - \uicontrol Options > \uicontrol {Build & Run} > \uicontrol CMake. + \section1 Adding CMake Tools + + To specify paths to CMake executables, select \uicontrol Tools > + \uicontrol Options > \uicontrol {Build & Run} > \uicontrol CMake > + \uicontrol Add. \image qtcreator-cmakeexecutable.png + \section1 Opening CMake Projects + \note Before you open a CMake project, you must modify the \c {PATH} environment variable to include the bin folders of \c mingw and Qt. @@ -60,8 +67,6 @@ C:\Qt\Tools\QtCreator\qtcreator.exe \endcode - \section1 Opening CMake Projects - To open a CMake project: \list 1 @@ -103,6 +108,9 @@ \QC supports multiple build configurations. You can change the build directory after the initial import. + The build and run kit that you select determines which CMake tool is used + for building. For more information, see \l {Adding Kits}. + \section1 Running CMake Projects \QC automatically adds \uicontrol {Run Configurations} for all targets diff --git a/doc/src/projects/creator-projects-qbs.qdoc b/doc/src/projects/creator-projects-qbs.qdoc index fa03e92064a..26fbac4160d 100644 --- a/doc/src/projects/creator-projects-qbs.qdoc +++ b/doc/src/projects/creator-projects-qbs.qdoc @@ -155,8 +155,8 @@ \image qtcreator-options-qbs.png - To add keys and values to a build profile that is associated with a build - and run kit: + You can modify a build profile that is associated with a build and run kit + by editing the values of the keys generated by \QC and by adding new values: \list 1 @@ -166,12 +166,21 @@ \li Select \uicontrol Edit to edit the profile associated with the kit. - \li Select \uicontrol Add to add keys and values to the profile. - Spefify keys as: \c .. Specify the - values as JSON literals. + \li Select \uicontrol Add to add keys and values to the profile or to + modify existing values. + + \li In the \uicontrol Key column, spefify the key to add or modify as: + \c .. + + \li In the \uicontrol Value column, specify a value as a JSON literal. + + \li Click \uicontrol OK. \endlist + The values that you have modified are displayed in red in the + \uicontrol {Profile properties} field. + For a list of available keys and values, see the \l{http://doc.qt.io/qbs/list-of-modules.html}{List of Modules} in the Qbs Manual. diff --git a/doc/src/projects/creator-projects-settings-build.qdoc b/doc/src/projects/creator-projects-settings-build.qdoc index 4c84c2c7f9b..7d0612f05ac 100644 --- a/doc/src/projects/creator-projects-settings-build.qdoc +++ b/doc/src/projects/creator-projects-settings-build.qdoc @@ -114,6 +114,10 @@ the build step and add a custom build step that specifies another shell command. + To generate debug symbols also for applications compiled in release mode, + select the \uicontrol {Generate separate debug info} check box. For more + information, see \l{Using the CPU Usage Analyzer}. + \QC is integrated to \l{http://doc.qt.io/QtQuickCompiler/} {Qt Quick Compiler} (commercial only) that enables you to compile QML source code into the final binary. This diff --git a/doc/src/projects/creator-projects-settings-overview.qdoc b/doc/src/projects/creator-projects-settings-overview.qdoc index 2e76e974e5b..529a8f0a343 100644 --- a/doc/src/projects/creator-projects-settings-overview.qdoc +++ b/doc/src/projects/creator-projects-settings-overview.qdoc @@ -88,6 +88,11 @@ \li \l{Specifying Dependencies}{Dependencies} + \li \l{Using Clang Static Analyzer}{Clang Static Analyzer Settings} + (commercial only) + + \li \l{To-Do List}{To-Do Settings} (experimental) + \endlist Use the \uicontrol Build and \uicontrol Run buttons to switch between the build and diff --git a/doc/src/projects/creator-projects-targets.qdoc b/doc/src/projects/creator-projects-targets.qdoc index 4d0aec00c56..a9379ba6b9a 100644 --- a/doc/src/projects/creator-projects-targets.qdoc +++ b/doc/src/projects/creator-projects-targets.qdoc @@ -114,6 +114,11 @@ configuration that should be used by qmake. If you leave this field empty, the default mkspec of the selected Qt version is used. + \li In the \uicontrol {CMake Tool} field, select the CMake tool to use + for building the project. Select \uicontrol Manage to add installed + CMake tools to the list. For more information, see + \l{Adding CMake Tools}. + \endlist */ diff --git a/doc/src/qtquick/qtquick-designer.qdoc b/doc/src/qtquick/qtquick-designer.qdoc index 52db1901c8f..ca7289e775c 100644 --- a/doc/src/qtquick/qtquick-designer.qdoc +++ b/doc/src/qtquick/qtquick-designer.qdoc @@ -469,7 +469,7 @@ \section2 Previewing Component Size The width and height of the root item in a QML file determine the size of - the component. You can reuse component, such as buttons, in different + the component. You can reuse components, such as buttons, in different sizes in other QML files and design screens for use with different device profiles, screen resolution, or screen orientation. The component size might also be zero (0,0) if its final size is determined by property diff --git a/doc/src/qtquick/qtquick-exporting-qml.qdoc b/doc/src/qtquick/qtquick-exporting-qml.qdoc index 5172e2a9502..8a7957713bf 100644 --- a/doc/src/qtquick/qtquick-exporting-qml.qdoc +++ b/doc/src/qtquick/qtquick-exporting-qml.qdoc @@ -39,7 +39,12 @@ \note GIMP does not support grouping, and therefore, each layer is exported as an item in GIMP. - You can open the QML file in \QC for editing. If you edit the file in Adobe + You can open the QML file in \QC for editing. By default, the export scripts + generate Qt Quick 1 files. To edit the files in \QMLD, change the import + statements in the export scripts to import Qt Quick 2. Or, you can change + the import statement in each file after generating the files. + + If you edit the file in Adobe Photoshop and export it to the same directory again, any changes you made in \QC are overwritten. However, you can re-export graphical assets without recreating the QML code. @@ -114,13 +119,21 @@ \list 1 - \li Download the export script, \e{Export QML.jx}, from - \l{https://code.qt.io/cgit/qt-labs/photoshop-qmlexporter.git/} - {code.qt.io}. + \li Clone the repository that contains the export script, + \e{Export QML.jx}, from + \l{https://codereview.qt-project.org/#/admin/projects/qt-labs/photoshop-qmlexporter} + {Qt Code Review}. \note Read the README.txt file in the repository for latest information about the script. + \li To generate QML files that you can edit in \QMLD, edit the import + statement in \e {Export QML.jx}. For example: + + \code + qmlfile.write("import QtQuick 2.5\n"); + \endcode + \li Double-click the export script to add the export command to the \uicontrol Scripts menu. You can also copy the script file to the Adobe Photoshop scripts directory (typically, \c{\Presets\Scripts} in the @@ -160,21 +173,12 @@ The script has been tested to work on GIMP 2. You can download GIMP 2 from \l{http://www.gimp.org/downloads/}{GIMP Downloads}. - To use the export script on Microsoft Windows, you also need to install the - GIMP Python extension (Python, PyCairo, PyGobject, PyGTK). However, GIMP is - not officially supported on Windows, so we cannot guarantee that this will - work. - \list 1 - \li On Microsoft Windows, you must first add Python support to your GIMP - installation, as instructed in - \l {http://www.gimpusers.com/tutorials/install-python-for-gimp-2-6-windows} - {Tutorial: Installing Python for GIMP 2.6 (Windows)}. - - \li Download the export script, \e qmlexporter.py, from - \l{https://code.qt.io/cgit/qt-labs/gimp-qmlexporter.git/} - {code.qt.io}. + \li Clone the repository that contains the export script, + \e qmlexporter.py, from + \l{https://codereview.qt-project.org/#/admin/projects/qt-labs/gimp-qmlexporter} + {Qt Code Review}. \note Read the INSTALL.txt in the repository for latest information about the script. @@ -186,6 +190,13 @@ On Linux, run the following command: \c {chmod u+rx} + \li To generate QML files that you can edit in \QMLD, edit the import + statement in \e qmlexporter.py. For example: + + \code + f.write('import QtQuick 2.5\n') + \endcode + \li Restart GIMP to have the export command added to the \uicontrol File menu. \li Choose \uicontrol {File > Export to QML} to export the design to a QML diff --git a/qbs/imports/QtcClangInstallation/functions.js b/qbs/imports/QtcClangInstallation/functions.js index 682211a06f2..f00b109a63c 100644 --- a/qbs/imports/QtcClangInstallation/functions.js +++ b/qbs/imports/QtcClangInstallation/functions.js @@ -1,4 +1,17 @@ -function llvmConfig(qbs) +var File = loadExtension("qbs.File") +var MinimumLLVMVersion = "3.6.0" + +function isSuitableLLVMConfig(llvmConfigCandidate, qtcFunctions, processOutputReader) +{ + if (File.exists(llvmConfigCandidate)) { + var candidateVersion = version(llvmConfigCandidate, processOutputReader); + if (candidateVersion && candidateVersion.length) + return qtcFunctions.versionIsAtLeast(candidateVersion, MinimumLLVMVersion) + } + return false; +} + +function llvmConfig(qbs, qtcFunctions, processOutputReader) { var llvmInstallDirFromEnv = qbs.getEnv("LLVM_INSTALL_DIR") var llvmConfigVariants = [ @@ -10,7 +23,7 @@ function llvmConfig(qbs) if (llvmInstallDirFromEnv) { for (var i = 0; i < llvmConfigVariants.length; ++i) { var variant = llvmInstallDirFromEnv + "/bin/" + llvmConfigVariants[i]; - if (File.exists(variant)) + if (isSuitableLLVMConfig(variant, qtcFunctions, processOutputReader)) return variant; } } @@ -22,7 +35,7 @@ function llvmConfig(qbs) for (var i = 0; i < llvmConfigVariants.length; ++i) { for (var j = 0; j < pathList.length; ++j) { var variant = pathList[j] + "/" + llvmConfigVariants[i]; - if (File.exists(variant)) + if (isSuitableLLVMConfig(variant, qtcFunctions, processOutputReader)) return variant; } } diff --git a/qtcreator.qbs b/qtcreator.qbs index 824935b2ba1..85d0caff587 100644 --- a/qtcreator.qbs +++ b/qtcreator.qbs @@ -58,7 +58,6 @@ Project { "QT_NO_CAST_FROM_ASCII" ].concat(testsEnabled ? ["WITH_TESTS"] : []) qbsSearchPaths: "qbs" - property bool enableQbsJavaSupport: false references: [ "src/src.qbs", diff --git a/share/qtcreator/cplusplus/qt5-qobjectdefs-injected.h b/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore/qobjectdefs.h similarity index 60% rename from share/qtcreator/cplusplus/qt5-qobjectdefs-injected.h rename to share/qtcreator/cplusplus/wrappedQtHeaders/QtCore/qobjectdefs.h index cc7ca503bd7..2580ff1b424 100644 --- a/share/qtcreator/cplusplus/qt5-qobjectdefs-injected.h +++ b/share/qtcreator/cplusplus/wrappedQtHeaders/QtCore/qobjectdefs.h @@ -28,44 +28,35 @@ ** ****************************************************************************/ -#define QT_NO_META_MACROS +// Include qobjectdefs.h from Qt ... +#include_next -#if defined(QT_NO_KEYWORDS) -# define QT_NO_EMIT -#else -# ifndef QT_NO_SIGNALS_SLOTS_KEYWORDS -# define signals public __attribute__((annotate("qt_signal"))) -# define slots __attribute__((annotate("qt_slot"))) -# endif +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wmacro-redefined" + +// ...and redefine macros for tagging signals/slots +#ifdef signals +# define signals public __attribute__((annotate("qt_signal"))) +#endif + +#ifdef slots +# define slots __attribute__((annotate("qt_slot"))) +#endif + +#ifdef Q_SIGNALS +# define Q_SIGNALS public __attribute__((annotate("qt_signal"))) +#endif + +#ifdef Q_SLOTS +# define Q_SLOTS slots __attribute__((annotate("qt_slot"))) #endif -#define Q_SIGNALS public __attribute__((annotate("qt_signal"))) -#define Q_SLOTS slots __attribute__((annotate("qt_slot"))) -#define Q_SIGNAL __attribute__((annotate("qt_signal"))) -#define Q_SLOT __attribute__((annotate("qt_slot"))) -#define Q_PRIVATE_SLOT(d, signature) -#define Q_EMIT -#ifndef QT_NO_EMIT -# define emit +#ifdef Q_SIGNAL +# define Q_SIGNAL __attribute__((annotate("qt_signal"))) #endif -#define Q_CLASSINFO(name, value) -#define Q_PLUGIN_METADATA(x) -#define Q_INTERFACES(x) -#define Q_PROPERTY(text) -#define Q_PRIVATE_PROPERTY(d, text) -#define Q_REVISION(v) -#define Q_OVERRIDE(text) -#define Q_ENUMS(x) -#define Q_FLAGS(x) -#define Q_ENUM(x) -#define Q_FLAG(x) -#define Q_SCRIPTABLE -#define Q_INVOKABLE -#define Q_GADGET \ -public: \ - static const QMetaObject staticMetaObject; \ -private: +#ifdef Q_SLOT +# define Q_SLOT __attribute__((annotate("qt_slot"))) +#endif -#define SIGNAL(a) #a -#define SLOT(a) #a +#pragma clang diagnostic pop diff --git a/share/qtcreator/debugger/boosttypes.py b/share/qtcreator/debugger/boosttypes.py index 4f12d8c2173..9c0c29158d9 100644 --- a/share/qtcreator/debugger/boosttypes.py +++ b/share/qtcreator/debugger/boosttypes.py @@ -41,7 +41,7 @@ def qdump__boost__bimaps__bimap(d, value): def qdump__boost__optional(d, value): if int(value["m_initialized"]) == 0: - d.putValue("") + d.putSpecialValue(SpecialUninitializedValue) d.putNumChild(0) else: type = d.templateArgument(value.type, 0) diff --git a/share/qtcreator/debugger/creatortypes.py b/share/qtcreator/debugger/creatortypes.py index 9c008d5ca9e..b1f9a834e6e 100644 --- a/share/qtcreator/debugger/creatortypes.py +++ b/share/qtcreator/debugger/creatortypes.py @@ -46,8 +46,11 @@ def extractPointerType(d, value): try: return readLiteral(d, value["_name"]) + postfix except: - if str(value.type.unqualified().target()) == "CPlusPlus::IntegerType": + typeName = str(value.type.unqualified().target()) + if typeName == "CPlusPlus::IntegerType": return "int" + postfix + elif typeName == "CPlusPlus::VoidType": + return "void" + postfix return "" def readTemplateName(d, value): diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index 16682a47c78..ec8d7a39eff 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -129,8 +129,18 @@ Hex2EncodedFloat8, \ IPv6AddressAndHexScopeId, \ Hex2EncodedUtf8WithoutQuotes, \ -DateTimeInternal \ - = range(30) +DateTimeInternal, \ +SpecialEmptyValue, \ +SpecialUninitializedValue, \ +SpecialInvalidValue, \ +SpecialNotAccessibleValue, \ +SpecialItemCountValue, \ +SpecialMinimumItemCountValue, \ +SpecialNotCallableValue, \ +SpecialNullReferenceValue, \ +SpecialOptimizedOutValue, \ +SpecialEmptyStructureValue, \ + = range(40) # Display modes. Keep that synchronized with DebuggerDisplay in watchutils.h StopDisplay, \ @@ -292,7 +302,7 @@ def __exit__(self, exType, exValue, exTraceBack): if self.d.passExceptions: showException("CHILDREN", exType, exValue, exTraceBack) self.d.putNumChild(0) - self.d.putValue("") + self.d.putSpecialValue(SpecialNotAccessibleValue) if not self.d.currentMaxNumChild is None: if self.d.currentMaxNumChild < self.d.currentNumChild: self.d.put('{name="",value="",type="",numchild="0"},') @@ -692,7 +702,7 @@ def putCallItem(self, name, value, func, *args): self.putItem(result) except: with SubItem(self, name): - self.putValue("") + self.putSpecialValue(SpecialNotCallableValue); self.putNumChild(0) def call(self, value, func, *args): @@ -816,9 +826,9 @@ def encodeCArray(self, p, tsize, limit): def putItemCount(self, count, maximum = 1000000000): # This needs to override the default value, so don't use 'put' directly. if count > maximum: - self.putValue('<>%s items>' % maximum) + self.putSpeciaValue(SpecialMinimumItemCountValue, maximum) else: - self.putValue('<%s items>' % count) + self.putSpecialValue(SpecialItemCountValue, count) self.putNumChild(count) def putField(self, name, value): @@ -837,6 +847,9 @@ def putValue(self, value, encoding = None, priority = 0, elided = None): if priority >= self.currentValue.priority: self.currentValue = ReportItem(value, encoding, priority, elided) + def putSpecialValue(self, encoding, value = ""): + self.putValue(value, encoding) + def putEmptyValue(self, priority = -10): if priority >= self.currentValue.priority: self.currentValue = ReportItem("", None, priority, None) @@ -896,21 +909,28 @@ def putCStyleArray(self, value): p = None displayFormat = self.currentItemFormat() - n = int(arrayType.sizeof / ts) - + arrayByteSize = arrayType.sizeof + if arrayByteSize == 0: + # This should not happen. But it does, see QTCREATORBUG-14755. + # GDB/GCC produce sizeof == 0 for QProcess arr[3] + s = str(value.type) + arrayByteSize = int(s[s.find('[')+1:s.find(']')]) * ts; + + n = int(arrayByteSize / ts) if displayFormat != RawFormat: if innerTypeName == "char": # Use Latin1 as default for char []. - blob = self.readMemory(self.addressOf(value), arrayType.sizeof) + blob = self.readMemory(self.addressOf(value), arrayByteSize) self.putValue(blob, Hex2EncodedLatin1) elif innerTypeName == "wchar_t": - blob = self.readMemory(self.addressOf(value), arrayType.sizeof) + blob = self.readMemory(self.addressOf(value), arrayByteSize) if innerType.sizeof == 2: self.putValue(blob, Hex4EncodedLittleEndian) else: self.putValue(blob, Hex8EncodedLittleEndian) elif p: - self.tryPutSimpleFormattedPointer(p, arrayType, innerTypeName, displayFormat, arrayType.sizeof) + self.tryPutSimpleFormattedPointer(p, arrayType, innerTypeName, + displayFormat, arrayByteSize) self.putNumChild(n) if self.isExpanded(): @@ -1413,7 +1433,7 @@ def putQObjectConnections(self, qobject): else: connections = connections.dereference() connections = connections.cast(self.directBaseClass(connections.type)) - self.putValue('<>0 items>') + self.putSpecialValue(SpecialMinimumItemCountValue, 0) self.putNumChild(1) if self.isExpanded(): pp = 0 diff --git a/share/qtcreator/debugger/gdbbridge.py b/share/qtcreator/debugger/gdbbridge.py index 088a618b0ca..b2047d867bf 100644 --- a/share/qtcreator/debugger/gdbbridge.py +++ b/share/qtcreator/debugger/gdbbridge.py @@ -465,7 +465,7 @@ def exitSubItem(self, item, exType, exValue, exTraceBack): if self.passExceptions: showException("SUBITEM", exType, exValue, exTraceBack) self.putNumChild(0) - self.putValue("") + self.putSpecialValue(SpecialNotAccessibleValue) try: if self.currentType.value: typeName = self.stripClassTag(self.currentType.value) @@ -473,7 +473,8 @@ def exitSubItem(self, item, exType, exValue, exTraceBack): self.put('type="%s",' % typeName) # str(type.unqualified()) ? if self.currentValue.value is None: - self.put('value="",numchild="0",') + self.put('value="",encoding="%d","numchild="0",' + % SpecialNotAccessibleValue) else: if not self.currentValue.encoding is None: self.put('valueencoded="%d",' % self.currentValue.encoding) @@ -930,7 +931,7 @@ def putItem(self, value, tryDynamic=True): if value is None: # Happens for non-available watchers in gdb versions that # need to use gdb.execute instead of gdb.parse_and_eval - self.putValue("") + self.putSpecialValue(SpecialNotAvailableValue) self.putType("") self.putNumChild(0) return @@ -939,7 +940,7 @@ def putItem(self, value, tryDynamic=True): typeName = str(typeobj) if value.is_optimized_out: - self.putValue("") + self.putSpecialValue(SpecialOptimizedOutValue) self.putType(typeName) self.putNumChild(0) return @@ -960,7 +961,7 @@ def putItem(self, value, tryDynamic=True): try: # Try to recognize null references explicitly. if toInteger(value.address) == 0: - self.putValue("") + self.putSpecialValue(SpecialNullReferenceValue) self.putType(typeName) self.putNumChild(0) return @@ -988,7 +989,7 @@ def putItem(self, value, tryDynamic=True): self.putBetterType("%s &" % self.currentType.value) return except RuntimeError: - self.putValue("") + self.putSpecialValue(SpecialOptimizedOutValue) self.putType(typeName) self.putNumChild(0) return @@ -1069,7 +1070,7 @@ def putItem(self, value, tryDynamic=True): # Anonymous union. We need a dummy name to distinguish # multiple anonymous unions in the struct. self.putType(typeobj) - self.putValue("{...}") + self.putSpecialValue(SpecialEmptyStructureValue) self.anonNumber += 1 with Children(self, 1): self.listAnonymous(value, "#%d" % self.anonNumber, typeobj) @@ -1155,7 +1156,13 @@ def readCString(self, base): def putFields(self, value, dumpBase = True): fields = value.type.fields() if self.sortStructMembers: - fields.sort(key = lambda field: "%d%s" % (not field.is_base_class, field.name)) + def sortOrder(field): + if field.is_base_class: + return 0 + if field.name and field.name.startswith("_vptr."): + return 1 + return 2 + fields.sort(key = lambda field: "%d%s" % (sortOrder(field), field.name)) #warn("TYPE: %s" % value.type) #warn("FIELDS: %s" % fields) @@ -1706,7 +1713,7 @@ def exitSubItem(self, item, exType, exValue, exTraceBack): if self.passExceptions: showException("SUBITEM", exType, exValue, exTraceBack) self.putNumChild(0) - self.putValue("") + self.putSpecialValue(SpecialNotAccessibleValue) try: if self.currentType.value: typeName = self.stripClassTag(self.currentType.value) diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index 2ea011f7340..f9befc4c3c9 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -266,14 +266,15 @@ def exitSubItem(self, item, exType, exValue, exTraceBack): if self.passExceptions: showException("SUBITEM", exType, exValue, exTraceBack) self.putNumChild(0) - self.putValue("") + self.putSpecialValue(SpecialNotAccessibleValue) try: if self.currentType.value: typeName = self.currentType.value if len(typeName) > 0 and typeName != self.currentChildType: self.put('type="%s",' % typeName) # str(type.unqualified()) ? if self.currentValue.value is None: - self.put('value="",numchild="0",') + self.put('value="",encoding="%d",numchild="0",' + % SpecialNotAccessibleValue) else: if not self.currentValue.encoding is None: self.put('valueencoded="%s",' % self.currentValue.encoding) diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py index 90a256f4842..62c188c736b 100644 --- a/share/qtcreator/debugger/qttypes.py +++ b/share/qtcreator/debugger/qttypes.py @@ -58,6 +58,7 @@ def qform__QByteArray(): def qdump__QByteArray(d, value): data, size, alloc = d.byteArrayData(value) + d.check(0 <= size and size <= alloc and alloc <= 1000 * 1000 * 100) d.putNumChild(size) elided, p = d.encodeByteArrayHelper(d.extractPointer(value), d.displayStringLimit) displayFormat = d.currentItemFormat() @@ -78,6 +79,7 @@ def qdump__QByteArray(d, value): def qdump__QByteArrayData(d, value): data, size, alloc = d.byteArrayDataHelper(d.addressOf(value)) + d.check(0 <= size and size <= alloc and alloc <= 1000 * 1000 * 100) d.putValue(d.readMemory(data, size), Hex2EncodedLatin1) d.putNumChild(1) if d.isExpanded(): @@ -1552,7 +1554,7 @@ def qdump__QRegExp(d, value): def qdump__QRegion(d, value): p = value["d"].dereference()["qt_rgn"] if d.isNull(p): - d.putValue("") + d.putSpecialValue(SpecialEmptyValue) d.putNumChild(0) else: # struct QRegionPrivate: diff --git a/share/qtcreator/qmldesigner/common/DesignerScrollViewStyle.qml b/share/qtcreator/qmldesigner/common/DesignerScrollViewStyle.qml index 5bfd2c61831..31d2542bd5e 100644 --- a/share/qtcreator/qmldesigner/common/DesignerScrollViewStyle.qml +++ b/share/qtcreator/qmldesigner/common/DesignerScrollViewStyle.qml @@ -60,4 +60,8 @@ ScrollViewStyle { decrementControl: Item {} incrementControl: Item {} corner: Item {} + + //Even if the platform style reports touch support a scrollview should not be flickable. + Component.onCompleted: control.flickableItem.interactive = false + transientScrollBars: false } diff --git a/share/qtcreator/translations/qtcreator_pl.ts b/share/qtcreator/translations/qtcreator_pl.ts index c24ba8b197f..5854ec22950 100644 --- a/share/qtcreator/translations/qtcreator_pl.ts +++ b/share/qtcreator/translations/qtcreator_pl.ts @@ -73,6 +73,10 @@ Do not &ask again Nie &pytaj ponownie + + Do not &show again + Nie po&kazuj ponownie + Utils::WizardPage @@ -107,18 +111,6 @@ Invalid form file name: "%1" Niepoprawna nazwa pliku z formularzem: "%1" - - Invalid header file name: '%1' - Niepoprawna nazwa pliku nagłówkowego: "%1" - - - Invalid source file name: '%1' - Niepoprawna nazwa piku źródłowego: "%1" - - - Invalid form file name: '%1' - Niepoprawna nazwa pliku z formularzem: "%1" - Inherits QObject Dziedziczy z QObject @@ -202,6 +194,14 @@ A file with that name already exists. Plik o tej samej nazwie już istnieje. + + Invalid character "%1" found. + Niepoprawny znak "%1". + + + Invalid character ".". + Niepoprawny znak ".". + Use as default project location Ustaw jako domyślne położenie projektów @@ -368,7 +368,7 @@ Re-enable warnings that were suppressed by selecting "Do Not Show Again" (for example, missing highlighter). - Przywraca ostrzeżenia, które zostały wyłączone przy użyciu "Nie pokazuj więcej" (np. brak podświetlania). + Przywraca ostrzeżenia, które zostały wyłączone przy użyciu "Nie pokazuj ponownie" (np. brak podświetlania). Theme: @@ -378,6 +378,14 @@ Patch command: Komenda "patch": + + Warn before opening text files greater than + Ostrzegaj przed otwieraniem plików tekstowych większych niż + + + MB + MB + CodePaster::PasteSelectDialog @@ -448,45 +456,6 @@ Gdy zaznaczone, wszystkie pliki powiązane z wrzuconą zmianą zostaną wyświetlone po kliknięciu na numer poprawki w widoku adnotacji (uzyskane zostaną poprzez identyfikator wrzuconej zmiany). W przeciwnym razie, wyświetlony zostanie tylko określony plik. - - Designer::Internal::CppSettingsPageWidget - - Form - Formularz - - - Embedding of the UI Class - Osadzanie klas UI - - - Aggregation as a pointer member - Agregacja poprzez wskaźnik do składnika - - - Aggregation - Agregacja - - - Code Generation - Generowanie kodu - - - Support for changing languages at runtime - Obsługa zmian języków w trakcie wykonywania programu - - - Use Qt module name in #include-directive - Używaj nazwy modułu Qt w dyrektywach #include - - - Multiple inheritance - Dziedziczenie wielokrotne - - - Add Qt version #ifdef for module names - Generuj odpowiednie dyrektywy #include w zależności od wersji Qt - - Designer::Internal::FormClassWizardPage @@ -520,14 +489,6 @@ Checkout branch? Utworzyć kopię roboczą gałęzi? - - Would you like to delete the tag '%1'? - Czy usunąć tag "%1"? - - - Would you like to delete the <b>unmerged</b> branch '%1'? - Czy usunąć <b>niescaloną</b> gałąź "%1"? - Would you like to delete the tag "%1"? Czy usunąć tag "%1"? @@ -568,10 +529,6 @@ No Fast-Forward - - Would you like to delete the branch '%1'? - Czy usunąć gałąź "%1"? - Re&fresh &Odśwież @@ -629,99 +586,6 @@ Bieżąca gałąź zacznie śledzić zmiany w zaznaczonej gałęzi. - - Gitorious::Internal::GitoriousHostWidget - - ... - ... - - - <New Host> - <Nowy Host> - - - Host - Host - - - Projects - Projekty - - - Description - Opis - - - - Gitorious::Internal::GitoriousProjectWidget - - WizardPage - StronaKreatora - - - ... - ... - - - Keep updating - Odświeżaj - - - Project - Projekt - - - Description - Opis - - - - Gitorious::Internal::GitoriousRepositoryWizardPage - - WizardPage - StronaKreatora - - - Name - Nazwa - - - Owner - Właściciel - - - Description - Opis - - - Repository - Repozytorium - - - Choose a repository of the project '%1'. - Wybierz repozytorium dla projektu "%1". - - - Mainline Repositories - Główne repozytoria - - - Clones - Klony - - - Baseline Repositories - Podstawowe repozytoria - - - Shared Project Repositories - Współdzielone repozytoria - - - Personal Repositories - Osobiste repozytoria - - Git::Internal::GitSubmitPanel @@ -756,10 +620,6 @@ Email: Email: - - By&pass hooks - &Omiń hooki - By&pass hooks: &Omiń hooki: @@ -813,7 +673,7 @@ Log count: - Licznik loga: + Licznik logu: Git needs to find Perl in the environment. @@ -913,7 +773,7 @@ Log count: - Licznik loga: + Licznik logu: P4 command: @@ -1063,10 +923,6 @@ lines linii - - <i>jom</i> is a drop-in replacement for <i>nmake</i> which distributes the compilation process to multiple CPU cores. The latest binary is available at <a href="http://releases.qt-project.org/jom/">http://releases.qt-project.org/jom/</a>. Disable it if you experience problems with your builds. - <i>jom</i> jest zamiennikiem <i>nmake</i>, który dystrybuuje proces kompilacji do wielu rdzeni procesora .Najnowsza wersja jest dostępna tu: <a href="http://releases.qt-project.org/jom/">ftp://ftp.qt.nokia.com/jom/</a>. Zdezaktywuj tę opcję, jeśli zauważysz problemy podczas budowania. - Open Compile Output pane when building Otwieraj "Komunikaty kompilatora" podczas budowania @@ -1092,8 +948,8 @@ Pyta po naciśnięciu przycisku stop w "Komunikatach aplikacji", przed zatrzymaniem aplikacji. - <i>jom</i> is a drop-in replacement for <i>nmake</i> which distributes the compilation process to multiple CPU cores. The latest binary is available at <a href="http://download.qt-project.org/official_releases/jom/">http://download.qt-project.org/official_releases/jom/</a>. Disable it if you experience problems with your builds. - <i>jom</i> jest zamiennikiem <i>nmake</i>, który dystrybuuje proces kompilacji do wielu rdzeni procesora .Najnowsza wersja jest dostępna tu: <a href="http://download.qt-project.org/official_releases/jom/">http://download.qt-project.org/official_releases/jom/</a>. W razie napotkania problemów podczas budowania opcję tę należy wyłączyć. + <i>jom</i> is a drop-in replacement for <i>nmake</i> which distributes the compilation process to multiple CPU cores. The latest binary is available at <a href="http://download.qt.io/official_releases/jom/">http://download.qt.io/official_releases/jom/</a>. Disable it if you experience problems with your builds. + <i>jom</i> jest zamiennikiem <i>nmake</i>, który dystrybuuje proces kompilacji do wielu rdzeni procesora .Najnowsza wersja jest dostępna tu: <a href="http://download.qt.io/official_releases/jom/">http://download.qt.io/official_releases/jom/</a>. W razie napotkania problemów podczas budowania opcję tę należy wyłączyć. @@ -1149,14 +1005,6 @@ &Switch to &Przełącz sesję - - New session name - Nazwa nowej sesji - - - Rename session - Zmień nazwę sesji - <a href="qthelp://org.qt-project.qtcreator/doc/creator-project-managing-sessions.html">What is a Session?</a> <a href="qthelp://org.qt-project.qtcreator/doc/creator-project-managing-sessions.html">Co to jest sesja?</a> @@ -1382,10 +1230,6 @@ building in <b>%1</b> budowanie w <b>%1</b> - - The Qt version %1 does not support shadow builds, building might fail. - Qt w wersji %1 nie obsługuje budowania poza drzewem źródłowym, budowa może się nie powieść. - Warning: Ostrzeżenie: @@ -1448,7 +1292,7 @@ Log count: - Licznik loga: + Licznik logu: Subversion command: @@ -1628,6 +1472,10 @@ Alias: Alias: + + Remove Missing Files + Usuń brakujące pliki + Application @@ -1648,11 +1496,11 @@ Nie można odnaleźć wtyczki "Core" w %1 - Could not find 'Core.pluginspec' in %1 - Nie można odnaleźć "Core.pluginspec" w %1 + Core plugin is disabled. + Wtyczka "Core" wyłączona. - No valid theme '%1' + No valid theme "%1" Brak poprawnego motywu "%1" @@ -1676,14 +1524,6 @@ PluginManager - - The plugin '%1' is specified twice for testing. - Wtyczka "%1" występuje dwukrotnie w testach. - - - The plugin '%1' does not exist. - Wtyczka "%1" nie istnieje. - The plugin "%1" is specified twice for testing. Wtyczka "%1" występuje dwukrotnie w testach. @@ -1795,14 +1635,6 @@ Przyczyna: %3 ExtensionSystem::Internal::PluginSpecPrivate - - Cannot open file %1 for reading: %2 - Nie można otworzyć pliku %1 do odczytu: %2 - - - Error parsing file %1: %2, at line %3, column %4 - Błąd parsowania pliku %1: %2, w linii %3, w kolumnie %4 - Plugin meta data not found Brak danych o wtyczce @@ -1830,30 +1662,6 @@ Przyczyna: %3 PluginSpec - - '%1' misses attribute '%2' - Brak atrybutu "%2" w "%1" - - - '%1' has invalid format - "%1" posiada niepoprawny format - - - Invalid element '%1' - Niepoprawny element "%1" - - - Unexpected closing element '%1' - Nieoczekiwany element domykający "%1" - - - Unexpected token - Nieoczekiwany znak - - - Expected element '%1' as top level element - Oczekiwano elementu "%1" jako elementu głównego - "%1" is missing Brak "%1" @@ -1987,22 +1795,10 @@ Przyczyna: %3 Cannot execute "%1": %2 Nie można uruchomić "%1": %2 - - Cannot create temporary directory '%1': %2 - Nie można utworzyć tymczasowego katalogu "%1": %2 - Unexpected output from helper program (%1). Nieoczekiwany komunikat od programu pomocniczego (%1). - - Cannot change to working directory '%1': %2 - Nie można zmienić katalogu roboczego na '%1': %2 - - - Cannot execute '%1': %2 - Nie można uruchomić "%1": %2 - Quoting error in command. Błąd w cytacie komendy. @@ -2027,18 +1823,6 @@ Przyczyna: %3 Cannot create socket "%1": %2 Nie można utworzyć gniazda "%1": %2 - - Cannot start the terminal emulator '%1', change the setting in the Environment options. - Nie można uruchomić emulatora terminala "%1", zmień ustawienie w opcjach środowiska. - - - Cannot create socket '%1': %2 - Nie można utworzyć gniazda "%1": %2 - - - The process '%1' could not be started: %2 - Proces "%1" nie może zostać rozpoczęty: %2 - The process "%1" could not be started: %2 Nie można uruchomić procesu "%1": %2 @@ -2069,14 +1853,6 @@ Przyczyna: %3 Name contains white space. Nazwa zawiera spację. - - Invalid character '%1'. - Niepoprawny znak: "%1". - - - Invalid characters '%1'. - Niepoprawne znaki: "%1". - Invalid character "%1". Niepoprawny znak: "%1". @@ -2159,22 +1935,6 @@ Przyczyna: %3 Cannot execute "%1". Nie można uruchomić "%1". - - The path '%1' expanded to an empty string. - Ścieżka "%1" rozwinięta do pustej nazwy. - - - The path '%1' is not a directory. - Ścieżka "%1" nie wskazuje na katalog. - - - The directory '%1' does not exist. - Katalog "%1" nie istnieje. - - - Cannot execute '%1'. - Nie można uruchomić "%1". - The path <b>%1</b> is not an executable file. Ścieżka <b>%1</b> nie wskazuje na plik wykonywalny. @@ -2187,10 +1947,6 @@ Przyczyna: %3 The path must not be empty. Ścieżka nie może być pusta. - - The path '%1' does not exist. - Ścieżka "%1" nie istnieje. - The path <b>%1</b> is not a directory. Ścieżka <b>%1</b> nie wskazuje na katalog. @@ -2210,10 +1966,6 @@ Przyczyna: %3 Insert... Wstaw... - - Add... - Dodaj... - Delete Line Usuń linię @@ -2222,25 +1974,6 @@ Przyczyna: %3 Clear Wyczyść - - From "%1" - Z "%1" - - - - Utils::ProjectNameValidatingLineEdit - - Invalid character '%1' found! - Niepoprawny znak: "%1". - - - Invalid character "%1" found. - Niepoprawny znak: "%1". - - - Invalid character '.'. - Niepoprawny znak: "." (kropka). - Utils::reloadPrompt @@ -2257,17 +1990,6 @@ Przyczyna: %3 Plik <i>%1</i> został zmieniony na zewnątrz Qt Creatora. Czy ponownie go załadować? - - BINEditor::Internal::BinEditorPlugin - - &Undo - &Cofnij - - - &Redo - &Przywróć - - Bookmarks::Internal::BookmarkView @@ -2282,10 +2004,6 @@ Przyczyna: %3 Move Down Przenieś na dół - - Edit Note - Zmodyfikuj notatkę - &Edit &Edycja @@ -2361,10 +2079,6 @@ Przyczyna: %3 Edit Bookmark Zmodyfikuj zakładkę - - Edit Bookmark Note - Zmodyfikuj notatkę zakładki - CMakeProjectManager::Internal::CMakeOpenProjectWizard @@ -2450,8 +2164,8 @@ Przyczyna: %3 Nie zaznaczono generatora. - No valid CMake executable specified. - Brak poprawnego pliku wykonywalnego CMake. + Selected Kit has no valid CMake executable specified. + Brak poprawnego pliku wykonywalnego CMake w wybranym zestawie. CMake exited with errors. Please check CMake output. @@ -2472,10 +2186,6 @@ Przyczyna: %3 CMakeProjectManager::Internal::CMakeBuildSettingsWidget - - Run cmake - Uruchom cmake - Run CMake... Uruchom CMake... @@ -2503,37 +2213,21 @@ Przyczyna: %3 CMake CMake - - Executable: - Plik wykonywalny: - - - Prefer Ninja generator (CMake 2.8.9 or higher required) - Preferuj generator Ninja (wymagany CMake 2.8.9 lub nowszy) - CMakeProjectManager::Internal::CMakeRunConfigurationWidget - - Arguments: - Argumenty: - Select Working Directory Wybierz katalog roboczy - Reset to default. - Przywróć domyślny. + Reset to Default + Przywróć domyślny Working directory: Katalog roboczy: - - Run in Terminal - Uruchom w terminalu - CMakeProjectManager::Internal::MakeStepConfigWidget @@ -2563,40 +2257,11 @@ Przyczyna: %3 Core::BaseFileWizard File Generation Failure - Błąd w trakcie generowania pliku + Błąd w trakcie generowania pliku Existing files - Istniejące pliki - - - Failed to open an editor for '%1'. - Nie można otworzyć edytora dla "%1". - - - [read only] - [tylko do odczytu] - - - [folder] - [katalog] - - - [symbolic link] - [dowiązanie symboliczne] - - - The project directory %1 contains files which cannot be overwritten: -%2. - Katalog projektu %1 zawiera pliki, które nie moga być nadpisane: -%2. - - - - Core::StandardFileWizard - - New %1 - Nowy %1 + Istniejące pliki @@ -2652,10 +2317,6 @@ Przyczyna: %3 Core::Internal::OpenWithDialog - - Open file '%1' with: - Otwórz plik "%1" przy pomocy: - Open File With... Otwórz plik przy pomocy... @@ -2717,34 +2378,6 @@ Przyczyna: %3 Keyboard Klawisze - - Keyboard Shortcuts - Skróty klawiszowe - - - Key sequence: - Sekwencja klawiszy: - - - Shortcut - Skrót - - - Type to set shortcut - Naciśnij aby ustawić skrót - - - Import Keyboard Mapping Scheme - Zaimportuj schemat mapowania klawiatury - - - Keyboard Mapping Scheme (*.kms) - Schemat mapowania klawiatury (*.kms) - - - Export Keyboard Mapping Scheme - Wyeksportuj schemat mapowania klawiatury - Core::Internal::EditMode @@ -2788,28 +2421,32 @@ Przyczyna: %3 W przód - Copy Full Path to Clipboard - Skopiuj pełną ścieżkę do schowka + Copy Full Path + Skopiuj pełną ścieżkę - Copy File Name to Clipboard - Skopiuj nazwę pliku do schowka + Copy Path and Line Number + Skopiuj ścieżkę i numer linii - Open With - Otwórz przy pomocy + Copy File Name + Skopiuj nazwę pliku - Revert File to Saved - Odwróć zmiany w pliku + Continue Opening Huge Text File? + Kontynuować otwieranie wielkiego pliku tekstowego? - Ctrl+F4 - Ctrl+F4 + The text file "%1" has the size %2MB and might take more memory to open and process than available. + +Continue? + Plik tekstowy "%1" o rozmiarze %2MB może zająć więcej pamięci niż wynosi ilość wolnej pamięci. + +Kontynuować? - Ctrl+W - Ctrl+W + Open With + Otwórz przy pomocy &Save @@ -2819,126 +2456,10 @@ Przyczyna: %3 Save &As... Zachowaj j&ako... - - Ctrl+Shift+W - Ctrl+Shift+W - - - Alt+Tab - Alt+Tab - - - Ctrl+Tab - Ctrl+Tab - - - Alt+Shift+Tab - Alt+Shift+Tab - - - Ctrl+Shift+Tab - Ctrl+Shift+Tab - - - Ctrl+Alt+Left - Ctrl+Alt+Left - - - Alt+Left - Alt+Left - - - Ctrl+Alt+Right - Ctrl+Alt+Right - - - Alt+Right - Alt+Right - - - Split - Podziel - - - Split Side by Side - Podziel sąsiadująco - - - Open in New Window - Otwórz w nowym oknie - - - Meta+E,4 - Meta+E,4 - - - Ctrl+E,4 - Ctrl+E,4 - - - Remove Current Split - Usuń bieżący podział - - - Remove All Splits - Usuń wszystkie podziały - - - Meta+E,2 - Meta+E,2 - Close All Except Visible Zamknij wszystko z wyjątkiem widocznych - - Ctrl+E,2 - Ctrl+E,2 - - - Meta+E,3 - Meta+E,3 - - - Ctrl+E,3 - Ctrl+E,3 - - - Meta+E,0 - Meta+E,0 - - - Ctrl+E,0 - Ctrl+E,0 - - - Meta+E,1 - Meta+E,1 - - - Ctrl+E,1 - Ctrl+E,1 - - - Meta+E,o - Meta+E,o - - - Ctrl+E,o - Ctrl+E,o - - - Ad&vanced - Zaa&wansowane - - - X-coordinate of the current editor's upper left corner, relative to screen. - Współrzędna X lewego górnego rogu bieżącego edytora, względem ekranu. - - - Y-coordinate of the current editor's upper left corner, relative to screen. - Współrzędna Y lewego górnego rogu bieżącego edytora, względem ekranu. - Close "%1" Zamknij "%1" @@ -2959,82 +2480,10 @@ Przyczyna: %3 File Error Błąd pliku - - Cannot Open File - Nie można otworzyć pliku - - - Cannot open the file for editing with VCS. - Nie można otworzyć pliku do edycji przy pomocy VCS. - - - <b>Warning:</b> This file was not opened in %1 yet. - <b>Ostrzeżenie:</b> Ten plik nie był jeszcze otwarty w %1. - - - Open - Otwórz - - - Make Writable - Uczyń plik zapisywalnym - - - Save %1 &As... - Zachowaj %1 j&ako... - Opening File Otwieranie pliku - - Go to Next Split or Window - Przejdź do kolejnego podzielonego okna - - - Current document - Bieżący dokument - - - Qt Creator - Qt Creator - - - <b>Warning:</b> You are changing a read-only file. - <b>Ostrzeżenie:</b> Zmieniasz plik, który jest tylko do odczytu. - - - &Save %1 - &Zachowaj %1 - - - Revert %1 to Saved - Odwróć zmiany w %1 - - - Reload %1 - Przeładuj %1 - - - Close %1 - Zamknij %1 - - - Close All Except %1 - Zamknij wszystko z wyjątkiem %1 - - - You will lose your current changes if you proceed reverting %1. - Utracisz swoje bieżące zmiany w %1 jeśli potwierdzisz wykonanie tego polecenia. - - - Proceed - Wykonaj - - - Cancel - Anuluj - Core::Internal::OpenEditorsWidget @@ -3056,14 +2505,6 @@ Przyczyna: %3 Qt Creator Qt Creator - - Exit Full Screen - Wyłącz tryb pełnoekranowy - - - Enter Full Screen - Włącz tryb pełnoekranowy - &File &Plik @@ -3092,6 +2533,11 @@ Przyczyna: %3 &New File or Project... &Nowy plik lub projekt... + + New File or Project + Title of dialog + Nowy plik lub projekt + &Open File or Project... &Otwórz plik lub projekt... @@ -3184,10 +2630,6 @@ Przyczyna: %3 &Options... &Opcje... - - Ctrl+, - Ctrl+, - Minimize Zminimalizuj @@ -3200,10 +2642,6 @@ Przyczyna: %3 Zoom Powiększ - - Show Sidebar - Pokazuj boczny pasek - Ctrl+0 Ctrl+0 @@ -3252,11 +2690,6 @@ Przyczyna: %3 About &Plugins... Informacje o w&tyczkach... - - New - Title of dialog - Nowy - Settings... Ustawienia... @@ -3390,7 +2823,11 @@ Przyczyna: %3 Informacje o Qt Creatorze - <h3>%1</h3>%2<br/><br/>Built on %3 at %4<br /><br/>%5<br/>Copyright 2008-%6 %7. All rights reserved.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/> + Built on %1 %2<br/> + Wersja z %1 %2<br/> + + + <h3>%1</h3>%2<br/><br/>%3<br/>%4<br/>Copyright 2008-%5 %6. All rights reserved.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/> @@ -3417,10 +2854,6 @@ Przyczyna: %3 Meta+C,Meta+P Meta+C,Meta+P - - Paste Clipboard... - Wklej zawartość schowka... - Fetch Snippet... Pobierz urywek... @@ -3450,35 +2883,6 @@ Przyczyna: %3 Otrzymano pusty urywek dla "%1". - - CppEditor::Internal::ClassNamePage - - Enter Class Name - Wprowadź nazwę klasy - - - The header and source file names will be derived from the class name - Nazwy pliku nagłówkowego i źródłowego będą zaproponowane na podstawie nazwy klasy - - - - CppEditor::Internal::CppClassWizardDialog - - C++ Class Wizard - Kreator klasy C++ - - - Details - Szczegóły - - - - CppEditor::Internal::CppClassWizard - - Error while generating file contents. - Błąd podczas generowania zawartości. - - CppTools::Internal::CompletionSettingsPage @@ -3573,10 +2977,6 @@ Przyczyna: %3 Automatically creates a Doxygen comment upon pressing enter after a '/**', '/*!', '//!' or '///'. Automatycznie wstawia komentarz Doxygen po naciśnięciu entera następującego po "/**", "/*!", "//!" lub "///". - - Adds leading asterisks when continuing Qt '/*!' and Java '/**' style comments on new lines. - Dodaje wiodące gwiazdki, gdy komentarze Qt "/*!" i Java "/**" przechodzą do nowych linii. - Automatically split strings Automatycznie dziel ciągi tekstowe po naciśnięciu klawisza Enter @@ -3585,6 +2985,18 @@ Przyczyna: %3 Adds leading asterisks when continuing C/C++ "/*", Qt "/*!" and Java "/**" style comments on new lines. Dodaje wiodące gwiazdki, gdy komentarze C/C++ "/*", Qt "/*!" i Java "/**" przechodzą do nowych linii. + + Splits a string into two lines by adding an end quote at the cursor position when you press Enter and a start quote to the next line, before the rest of the string. + +In addition, Shift+Enter inserts an escape character at the cursor position and moves the rest of the string to the next line. + Naciśnięcie klawisza "Enter" dzieli ciąg tekstowy na dwa, umieszcza drugi w nowej linii i dodaje znaki końca i początku ciągu w miejscu podziału. + +Ponadto, naciśnięcie kombinacji "Shift+Enter" powoduje wstawienie znaku ucieczki w pozycji kursora i przeniesienie reszty ciągu do następnej linii. + + + Timeout in ms: + Czas oczekiwania w ms: + CppTools::Internal::CppCurrentDocumentFilter @@ -3628,11 +3040,7 @@ Przyczyna: %3 Searching for Usages - Wyszukiwanie użyć - - - Searching - Przeszukiwanie + Wyszukiwanie użyć C++ Macro Usages: @@ -3646,17 +3054,6 @@ Przyczyna: %3 Funkcje C++ - - CppPreprocessor - - %1: No such file or directory - %1: Brak pliku lub katalogu - - - %1: Could not get file contents - %1: Nie można odczytać zawartości pliku - - CppTools @@ -3723,46 +3120,8 @@ Przyczyna: %3 Ścieżka do szablonu z licencją - - Cvs::Internal::CheckoutWizard - - Checks out a CVS repository and tries to load the contained project. - Wyciąga repozytorium CVS i próbuje załadować zawarty projekt. - - - CVS Checkout - Kopia robocza CVS - - - - Cvs::Internal::CheckoutWizardPage - - Location - Położenie - - - Specify repository and path. - Podaj repozytorium i ścieżkę. - - - Repository: - Repozytorium: - - Cvs::Internal::CvsPlugin - - Parsing of the log output failed - Nie można przetworzyć komunikatów loga - - - Checks out a CVS repository and tries to load the contained project. - Wyciąga repozytorium CVS i próbuje załadować zawarty projekt. - - - CVS Checkout - Kopia robocza CVS - &CVS &CVS @@ -3787,10 +3146,6 @@ Przyczyna: %3 Diff Current File Pokaż różnice w bieżącym pliku - - Cannot find repository for "%1" - Nie można odnaleźć repozytorium dla "%1" - Diff "%1" Porównaj "%1" @@ -3807,6 +3162,14 @@ Przyczyna: %3 Commit Current File Wrzuć bieżący plik + + Cannot find repository for "%1". + Nie można odnaleźć repozytorium dla "%1". + + + Parsing of the log output failed. + Nie można przetworzyć komunikatów logu. + Commit "%1" Wrzuć "%1" @@ -3819,10 +3182,6 @@ Przyczyna: %3 Filelog Current File Log bieżącego pliku - - Cannot find repository for '%1' - Nie można odnaleźć repozytorium dla "%1" - Meta+C,Meta+D Meta+C,Meta+D @@ -3919,6 +3278,22 @@ Przyczyna: %3 Commit Project "%1" Wrzuć projekt "%1" + + Update Directory + Uaktualnij katalog + + + Update Directory "%1" + Uaktualnij katalog "%1" + + + Commit Directory + + + + Commit Directory "%1" + + Diff Repository Pokaż różnice w repozytorium @@ -3968,8 +3343,12 @@ Przyczyna: %3 Błąd podczas sprawdzania opisu wrzucanych zmian. Czy wrzucić zmianę? - Revert repository - Odwróć zmiany w repozytorium + Revert Repository + + + + No CVS executable specified. + Revert all pending changes to the repository? @@ -4003,18 +3382,6 @@ Przyczyna: %3 Could not find commits of id "%1" on %2. Nie można odnaleźć wrzuconych zmian o identyfikatorze "%1" dokonanych w dniu %2. - - No cvs executable specified. - Nie podano ścieżki do programu cvs. - - - Would you like to discard your changes to the repository '%1'? - Czy porzucić zmiany w repozytorium "%1"? - - - Would you like to discard your changes to the file '%1'? - Czy porzucić zmiany w pliku "%1"? - Project status Stan projektu @@ -4027,14 +3394,6 @@ Przyczyna: %3 The initial revision %1 cannot be described. Początkowa poprawka %1 nie może być opisana. - - Could not find commits of id '%1' on %2. - Nie można odnaleźć wrzuconych zmian o identyfikatorze "%1" dokonanych w dniu %2. - - - No cvs executable specified! - Nie podano ścieżki do programu cvs! - Cvs::Internal::CvsSubmitEditor @@ -4289,6 +3648,46 @@ Przyczyna: %3 Breakpoint will only be hit after being ignored so many times. Program przerwie działanie w pułapce po tym, jak zostanie ona zignorowana podaną ilość razy. + + Data breakpoint %1 (%2) at %3 triggered. + Osiągnięto pułapkę warunkową %1 (%2) przy %3. + + + Internal data breakpoint %1 at %2 triggered. + Osiągnięto wewnętrzną pułapkę warunkową %1 przy %2. + + + Data breakpoint %1 (%2) at %3 in thread %4 triggered. + Osiągnięto pułapkę warunkową %1 (%2) przy %3 w wątku %4. + + + Internal data breakpoint %1 at %2 in thread %3 triggered. + Osiągnięto wewnętrzna pułapka warunkowa %1 przy %2 w wątku %3. + + + Data breakpoint %1 (%2) at 0x%3 triggered. + Osiągnięto pułapkę warunkową %1 (%2) pod 0x%3. + + + Internal data breakpoint %1 at 0x%2 triggered. + Osiągnięto wewnętrzną pułapkę warunkową %1 pod 0x%2. + + + Data breakpoint %1 (%2) at 0x%3 in thread %4 triggered. + Osiągnięto pułapkę warunkową %1 (%2) pod 0x%3 w wątku %4. + + + Internal data breakpoint %1 at 0x%2 in thread %3 triggered. + Osiągnięto wewnętrzną pułapkę warunkową %1 pod 0x%2 w wątku %3. + + + Stopped at breakpoint %1 (%2) in thread %3. + Zatrzymano w pułapce %1 (%2) w wątku %3. + + + Stopped at internal breakpoint %1 in thread %2. + Zatrzymano w wewnętrznej pułapce %1 w wątku %2. + (all) (wszystko) @@ -4298,13 +3697,6 @@ Przyczyna: %3 Program przerwie działanie w pułapce tylko we wskazanych wątkach. - - Debugger::Internal::BreakWindow - - Breakpoints - Pułapki - - Debugger::Internal::CdbOptionsPageWidget @@ -4352,32 +3744,32 @@ Przyczyna: %3 Debugger::Internal::CdbSymbolPathListEditor - Symbol Server... - Serwer z symbolami... + Insert Symbol Server... + Dodaj serwer z symbolami... - Adds the Microsoft symbol server providing symbols for operating system libraries.Requires specifying a local cache directory. - Dodaje serwer z symbolami Microsoft dostarczający symboli dla bibliotek systemu operacyjnego. Wymaga podania katalogu dla lokalnego cache. + Adds the Microsoft symbol server providing symbols for operating system libraries. Requires specifying a local cache directory. + - Symbol Cache... - Cache z symbolami... + Insert Symbol Cache... + Uses a directory to cache symbols used by the debugger. Używa katalogu do cache'owania symboli użytych przez debuggera. - - - Debugger::Internal::DebuggerSettings - This switches the debugger to instruction-wise operation mode. In this mode, stepping operates on single instructions and the source location view also shows the disassembled instructions. - Przestawia debugger do trybu operowania na instrukcjach. W tym trybie kroczenie działa dla pojedynczych instrukcji i widok źródeł pokazuje również zdezasemblowane instrukcje. + Setup Symbol Paths... + - Always Adjust Column Widths to Contents - Zawsze wyrównuj szerokości kolumn do ich zawartości + Configure Symbol paths that are used to locate debug symbol files. + + + + Debugger::Internal::DebuggerSettings Use Alternating Row Colors Używaj alternatywnych kolorów wierszy @@ -4398,37 +3790,94 @@ Przyczyna: %3 Operate by Instruction Operuj na instrukcjach + + <p>This switches the debugger to instruction-wise operation mode. In this mode, stepping operates on single instructions and the source location view also shows the disassembled instructions. + <p>Przestawia debugger do trybu operowania na instrukcjach. W tym trybie kroczenie działa dla pojedynczych instrukcji i widok źródeł pokazuje również zdezasemblowane instrukcje. + + + Native Mixed Mode + + + + <p>This switches the debugger to native-mixed operation mode. In this mode, stepping and data display will be handled by the native debugger backend (GDB, LLDB or CDB) for C++, QML and JS sources. + + Dereference Pointers Automatically Wyłuskuj wskaźniki automatycznie + + <p>This switches the Locals&&Watchers view to automatically dereference pointers. This saves a level in the tree view, but also loses data for the now-missing intermediate level. + <p>Włącza automatyczne wyłuskiwanie wskaźników w widoku ze zmiennymi lokalnymi i obserwowanymi. Brak jednego poziomu w widoku upraszcza go, ale jednocześnie powoduje utratę danych w brakującym poziomie pośrednim. + Show "std::" Namespace in Types Pokazuj przestrzeń nazw "std::" w widoku typów + + Show "std::" namespace in types + Pokazuj przestrzeń nazw "std::" w widoku typów + + + <p>Shows "std::" prefix for types from the standard library. + <p>Pokazuje przedrostek "std::" dla typów z biblioteki standardowej. + Show Qt's Namespace in Types Pokazuj przestrzeń nazw Qt w widoku typów + + Show Qt's namespace in types + Pokazuj przestrzeń nazw Qt w widoku typów + + + <p>Shows Qt namespace prefix for Qt types. This is only relevant if Qt was configured with "-qtnamespace". + <p>Pokazuje przestrzeń nazw Qt dla typów Qt. To ma zastosowanie jedynie dla Qt skonfigurowanego z "-qtnamespace". + Sort Members of Classes and Structs Alphabetically Sortuj alfabetycznie składniki klas i struktur + + Sort members of classes and structs alphabetically + Sortuj alfabetycznie składniki klas i struktur + Use Debugging Helpers Używaj asystenta debuggera - Use Code Model - Używaj modelu kodu + <p>Not all source code lines generate executable code. Putting a breakpoint on such a line acts as if the breakpoint was set on the next line that generated code. Selecting 'Adjust Breakpoint Locations' shifts the red breakpoint markers in such cases to the location of the true breakpoint. + <p>Nie wszystkie linie kodu źródłowego generują kod wykonywalny. Ustawienie pułapki w takiej linii spowoduje, że zostanie ona ustawiona de facto w najbliższej kolejnej linii generującej kod wykonywalny. +"Poprawiaj położenie pułapek" przesuwa czerwone znaczniki pułapek w miejsca prawdziwych pułapek w takich przypadkach. + + + <p>Checking this will enable tooltips for variable values during debugging. Since this can slow down debugging and does not provide reliable information as it does not use scope information, it is switched off by default. + <p>Zaznaczenie tej opcji uaktywni podpowiedzi dla wartości zmiennych podczas debugowania. Domyślnie jest to wyłączone, ponieważ może to spowalniać debugowanie i ponadto może dostarczać nieprawidłowych informacji, jako że dane o zakresach nie są uwzględniane. + + + <p>Checking this will enable tooltips in the breakpoints view during debugging. + <p>Zaznaczenie tej opcji uaktywni podpowiedzi w widoku z pułapkami podczas debugowania. + + + <p>Checking this will enable tooltips in the stack view during debugging. + <p>Zaznaczenie tej opcji uaktywni podpowiedzi w widoku stosu podczas debugowania. + + + <p>Checking this will show a column with address information in the breakpoint view during debugging. + <p>Zaznaczenie tej opcji spowoduje pokazanie kolumny z adresami w widoku z pułapkami podczas debugowania. + + + <p>Checking this will show a column with address information in the stack view during debugging. + <p>Zaznaczenie tej opcji spowoduje pokazanie kolumny z adresami w widoku stosu podczas debugowania. - Selecting this causes the C++ Code Model being asked for variable scope information. This might result in slightly faster debugger operation but may fail for optimized code. - Wybranie tej opcji spowoduje pobieranie informacji o zakresie zmiennych z modelu kodu C++. Może to przyspieszyć działanie debuggera, lecz również może to spowodować niepoprawne działanie dla zoptymalizowanego kodu. + <p>The maximum length of string entries in the Locals and Expressions pane. Longer than that are cut off and displayed with an ellipsis attached. + <p>Maksymalna długość ciągów znakowych w widoku "Zmienne lokalne i wyrażenia". Dłuższe ciągi będą odcinane i zakańczane wielokropkiem. - This switches the Locals&&Watchers view to automatically dereference pointers. This saves a level in the tree view, but also loses data for the now-missing intermediate level. - Włącza automatyczne wyłuskiwanie wskaźników w widoku ze zmiennymi lokalnymi i obserwowanymi. Brak jednego poziomu w widoku upraszcza go, ale jednocześnie powoduje utratę danych w brakującym poziomie pośrednim. + <p>The maximum length for strings in separated windows. Longer strings are cut off and displayed with an ellipsis attached. + <p>Maksymalna długość ciągów znakowych w oddzielnych oknach. Dłuższe ciągi będą odcinane i zakańczane wielokropkiem. Configure Debugger... @@ -4440,12 +3889,28 @@ Przyczyna: %3 Keep Editor Stationary When Stepping - + Wyłącz centrowanie bieżącej linii podczas kroczenia Debugger Font Size Follows Main Editor Rozmiar czcionki debuggera wzięty z głównego edytora + + Use code model + Używaj modelu kodu + + + <p>Selecting this causes the C++ Code Model being asked for variable scope information. This might result in slightly faster debugger operation but may fail for optimized code. + <p>Wybranie tej opcji spowoduje pobieranie informacji o zakresie zmiennych z modelu kodu C++. Może to przyspieszyć działanie debuggera, lecz również może to spowodować niepoprawne działanie dla zoptymalizowanego kodu. + + + <p>Displays names of QThread based threads. + <p>Wyświetla nazwy wątków dziedziczących z QThread. + + + Display thread names + Wyświetlaj nazwy wątków + Synchronize Breakpoints Zsynchronizuj pułapki @@ -4454,11 +3919,6 @@ Przyczyna: %3 Adjust Breakpoint Locations Poprawiaj położenia pułapek - - Not all source code lines generate executable code. Putting a breakpoint on such a line acts as if the breakpoint was set on the next line that generated code. Selecting 'Adjust Breakpoint Locations' shifts the red breakpoint markers in such cases to the location of the true breakpoint. - Nie wszystkie linie kodu źródłowego generują kod wykonywalny. Ustawienie pułapki w takiej linii spowoduje, że zostanie ona ustawiona de facto w najbliższej kolejnej linii generującej kod wykonywalny. -"Poprawiaj położenie pułapek" przesuwa czerwone znaczniki pułapek w miejsca prawdziwych pułapek w takich przypadkach. - Break on "throw" Przerwij w "throw" @@ -4491,18 +3951,10 @@ Przyczyna: %3 Use tooltips in main editor when debugging Używaj podpowiedzi w głównym edytorze podczas debugowania - - Checking this will enable tooltips for variable values during debugging. Since this can slow down debugging and does not provide reliable information as it does not use scope information, it is switched off by default. - Zaznaczenie tej opcji uaktywni podpowiedzi dla wartości zmiennych podczas debugowania. Domyślnie jest to wyłączone, ponieważ może to spowalniać debugowanie i ponadto może dostarczać nieprawidłowych informacji, jako że dane o zakresach nie są uwzględniane. - Use Tooltips in Stack View when Debugging Używaj podpowiedzi w widoku stosu podczas debugowania - - Checking this will enable tooltips in the stack view during debugging. - Zaznaczenie tej opcji uaktywni podpowiedzi w widoku stosu podczas debugowania. - List Source Files Pokaż listę plików @@ -4519,14 +3971,6 @@ Przyczyna: %3 Register For Post-Mortem Debugging Zarejestruj do pośmiertnego debugowania - - The maximum length of string entries in the Locals and Expressions pane. Longer than that are cut off and displayed with an ellipsis attached. - Maksymalna długość ciągów znakowych w widoku "Zmienne lokalne i wyrażenia". Dłuższe ciągi będą odcinane i zakańczane wielokropkiem. - - - The maximum length for strings in separated windows. Longer strings are cut off and displayed with an ellipsis attached. - Maksymalna długość ciągów znakowych w oddzielnych oknach. Dłuższe ciągi będą odcinane i zakańczane wielokropkiem. - Reload Full Stack Przeładuj cały stos @@ -4535,38 +3979,26 @@ Przyczyna: %3 Create Full Backtrace Utwórz pełny zrzut stosu - - Checking this will enable tooltips in the locals view during debugging. - Zaznaczenie tej opcji uaktywni podpowiedzi w widoku ze zmiennymi lokalnymi podczas debugowania. - Use Tooltips in Locals View when Debugging Używaj podpowiedzi w widoku ze zmiennymi lokalnymi podczas debugowania - Use Tooltips in Breakpoints View when Debugging - Używaj podpowiedzi w widoku z pułapkami podczas debugowania + <p>Checking this will enable tooltips in the locals view during debugging. + <p>Zaznaczenie tej opcji uaktywni podpowiedzi w widoku ze zmiennymi lokalnymi podczas debugowania. - Checking this will enable tooltips in the breakpoints view during debugging. - Zaznaczenie tej opcji uaktywni podpowiedzi w widoku z pułapkami podczas debugowania. + Use Tooltips in Breakpoints View when Debugging + Używaj podpowiedzi w widoku z pułapkami podczas debugowania Show Address Data in Breakpoints View when Debugging Pokazuj adresy w widoku z pułapkami podczas debugowania - - Checking this will show a column with address information in the breakpoint view during debugging. - Zaznaczenie tej opcji spowoduje pokazanie kolumny z adresami w widoku z pułapkami podczas debugowania. - Show Address Data in Stack View when Debugging Pokazuj adresy w widoku stosu podczas debugowania - - Checking this will show a column with address information in the stack view during debugging. - Zaznaczenie tej opcji spowoduje pokazanie kolumny z adresami w widoku stosu podczas debugowania. - Debugger @@ -4598,10 +4030,6 @@ Przyczyna: %3 Load Core File Załaduj plik zrzutu - - Browse... - Przeglądaj... - Use local core file: Użyj lokalnego plik zrzutu: @@ -4714,18 +4142,6 @@ Spróbuj: %2 Cannot jump. Stopped Nie można przeskoczyć. Zatrzymano - - Raw structure - Surowa struktura - - - Normal - Normalny - - - Displayed - Wyświetlony - Cannot continue debugged process: Nie można kontynuować debugowanego procesu: @@ -4828,14 +4244,6 @@ Spróbuj: %2 Finished retrieving data Zakończono pobieranie danych - - The gdb process terminated. - Proces gdb zakończył pracę. - - - The gdb process terminated unexpectedly (code %1) - Proces gdb nieoczekiwanie zakończył pracę (kod %1) - Adapter start failed Nie można uruchomić adaptera @@ -4954,10 +4362,6 @@ Spróbuj: %2 Value changed from %1 to %2. Wartość zmieniona z %1 na %2. - - There is no GDB binary available for binaries in format '%1' - Brak dostępnego pliku binarnego GDB dla plików binarnych w formacie "%1" - Cannot Read Symbols Nie można odczytać symboli @@ -4986,10 +4390,6 @@ Spróbuj: %2 Could not find a widget. Nie można odnaleźć widżetu. - - Unexpected GDB Exit - Nieoczekiwanie zakończenie GDB - Setting up inferior... Ustawianie podprocesu... @@ -4998,10 +4398,6 @@ Spróbuj: %2 Failed to start application Nie można uruchomić aplikacji - - The debugger settings point to a script file at '%1' which is not accessible. If a script file is not needed, consider clearing that entry to avoid this warning. - Ustawienia debuggera pokazują na skrypt "%1", który nie jest dostępny. Jeśli plik ze skryptem nie jest potrzebny, rozważ usunięcie go z ustawień w celu uniknięcia tego ostrzeżenia. - GDB I/O Error Błąd wejścia / wyjścia GDB @@ -5205,13 +4601,6 @@ receives a signal like SIGSEGV during debugging. GDB - - Debugger::Internal::ModulesWindow - - Modules - Moduły - - Debugger::Internal::OutputCollector @@ -5230,26 +4619,40 @@ receives a signal like SIGSEGV during debugging. Debugger::Internal::RegisterHandler - Name - Nazwa + Content as ASCII Characters + Zawartość jako znaki ASCII - Value (Base %1) - Wartość (Baza %1) + Content as %1-bit Signed Decimal Values + Zawartość jako %1-bitowe wartości całkowite ze znakiem - - - Debugger::Internal::RegisterWindow - Registers - Rejestry + Content as %1-bit Unsigned Decimal Values + Zawartość jako %1-bitowe wartości całkowite bez znaku - - - Debugger::Internal::SourceFilesWindow - Source Files - Pliki źródłowe + Content as %1-bit Hexadecimal Values + Zawartość jako %1-bitowe wartości szesnastkowe + + + Content as %1-bit Octal Values + Zawartość jako %1-bitowe wartości ósemkowe + + + Content as %1-bit Binary Values + Zawartość jako %1-bitowe wartości binarne + + + Contents as %1-bit Floating Point Values + Zawartość jako %1-bitowe liczby zmiennoprzecinkowe + + + Name + Nazwa + + + Value + Wartość @@ -5402,20 +4805,6 @@ receives a signal like SIGSEGV during debugging. Nazwa - - Debugger::Internal::StackWindow - - Stack - Stos - - - - Debugger::Internal::ThreadsWindow - - Threads - Wątki - - Debugger::Internal::WatchData @@ -5500,13 +4889,25 @@ receives a signal like SIGSEGV during debugging. <niedostępny> - <more than %n items> - - <więcej niż %n element> - <więcej niż %n elementy> - <więcej niż %n elementów> + <at least %n items> + + + + + + <not callable> + + + + <null reference> + + + + <optimized out> + + <%n items> @@ -5516,24 +4917,16 @@ receives a signal like SIGSEGV during debugging. - %1 Object at %2 - Obiekt %1 pod adresem %2 - - - %1 Object at Unknown Address - Obiekt %1 pod nieznanym adresem + Remove All Expression Evaluators + - <Edit> - <Zmodyfikuj> + Are you sure you want to remove all expression evaluators? + Debugger::Internal::WatchModel - - <Edit> - <Zmodyfikuj> - returned value zwrócona wartość @@ -5546,54 +4939,10 @@ receives a signal like SIGSEGV during debugging. Tablica licząca %n elementów - - Raw pointer - Wskaźnik - - - Latin1 string - Ciąg Latin1 - - - UTF8 string - Ciąg UTF-8 - - - Local 8bit string - Lokalny ciąg 8-bitowy - - - UTF16 string - Ciąg UTF-16 - - - UCS4 string - Ciąg UCS4 - - - Decimal - Dziesiętny - - - Hexadecimal - Szesnastkowy - - - Binary - Binarny - - - Octal - Ósemkowy - Name Nazwa - - Root - Korzeń - Locals Zmienne lokalne @@ -5622,10 +4971,18 @@ receives a signal like SIGSEGV during debugging. Type Typ + + Automatic + Automatyczny + Raw Data Surowe dane + + Enhanced + + Latin1 String Ciąg Latin1 @@ -5654,6 +5011,30 @@ receives a signal like SIGSEGV during debugging. UTF-8 String in Separate Window Ciąg UTF-8 w oddzielnym oknie + + Plot in Separate Window + + + + Display Keys and Values Side by Side + + + + Force Display as Direct Storage Form + + + + Force Display as Indirect Storage Form + + + + Display Boolean Values as True or False + Wyświetla wartości boolowskie jako "Prawda" albo "Fałsz" + + + Display Boolean Values as 1 or 0 + Wyświetla wartości boolowskie jako 1 albo 0 + Decimal Integer Liczba dziesiętna @@ -5678,6 +5059,14 @@ receives a signal like SIGSEGV during debugging. Scientific Float Liczba zmiennoprzecinkowa w postaci wykładniczej + + %1 Object at %2 + Obiekt %1 pod adresem %2 + + + %1 Object at Unknown Address + Obiekt %1 pod nieznanym adresem + QtDumperHelper @@ -5716,27 +5105,12 @@ Więcej szczegółów w /etc/sysctl.d/10-ptrace.conf - - Debugger::Internal::WatchWindow - - Locals and Expressions - Zmienne lokalne i wyrażenia - - Designer::Internal::FormClassWizardDialog Qt Designer Form Class Klasa formularza Qt Designer - - Form Template - Szablon formularza - - - Class Details - Szczegóły klasy - Designer @@ -5744,26 +5118,10 @@ Więcej szczegółów w /etc/sysctl.d/10-ptrace.conf Designer Designer - - Class Generation - Generowanie klasy - Form Editor Edytor formularzy - - The generated header of the form '%1' could not be found. -Rebuilding the project might help. - Nie można odnaleźć wygenerowanego pliku nagłówkowego dla formularza "%1". -Spróbuj ponownie przebudować projekt. - - - The generated header '%1' could not be found in the code model. -Rebuilding the project might help. - Nie można odnaleźć wygenerowanego pliku nagłówkowego "%1" w modelu kodu. -Spróbuj ponownie przebudować projekt. - The generated header of the form "%1" could not be found. Rebuilding the project might help. @@ -5791,14 +5149,6 @@ Spróbuj ponownie przebudować projekt. Shift+F4 Shift+F4 - - Qt Designer Form - Formularz Qt Designer - - - Creates a Qt Designer form that you can add to a Qt Widget Project. This is useful if you already have an existing class for the UI business logic. - Tworzy formularz Qt Designera, który można dodać do projektu Qt Widget. Jest to przydatne, gdy istnieje już klasa implementująca logikę UI. - Creates a Qt Designer form along with a matching class (C++ header and source file) for implementation purposes. You can add the form and class to an existing Qt Widget Project. Tworzy formularz Qt Designera wraz z klasą implementującą (plik nagłówkowy i źródłowy C++). Utworzony formularz i klasę można dodać do istniejącego projektu Qt Widget. @@ -5808,109 +5158,6 @@ Spróbuj ponownie przebudować projekt. Klasa formularza Qt Designer - - Designer::Internal::FormEditorW - - Widget Box - Panel widżetów - - - Object Inspector - Hierarchia obiektów - - - Property Editor - Edytor właściwości - - - Action Editor - Edytor akcji - - - F3 - F3 - - - F4 - F4 - - - Ctrl+H - Ctrl+H - - - Meta+L - Meta+L - - - Ctrl+L - Ctrl+L - - - Ctrl+G - Ctrl+G - - - Meta+J - Meta+J - - - Ctrl+J - Ctrl+J - - - Alt+Shift+R - Alt+Shift+R - - - About Qt Designer Plugins... - Informacje o wtyczkach Qt Designera... - - - Signals && Slots Editor - Edytor sygnałów / slotów - - - Widget box - Panel widżetów - - - Edit Widgets - Modyfikuj widżety - - - Edit Signals/Slots - Modyfikuj sygnały / sloty - - - Edit Buddies - Modyfikuj skojarzone etykiety - - - Edit Tab Order - Modyfikuj kolejność tabulacji - - - Meta+Shift+H - Meta+Shift+H - - - Meta+Shift+G - Meta+Shift+G - - - Preview in - Podgląd w stylu - - - Designer - Designer - - - The image could not be created: %1 - Nie można utworzyć pliku graficznego: %1 - - Designer::Internal::FormTemplateWizardPage @@ -5926,25 +5173,8 @@ Spróbuj ponownie przebudować projekt. %1 - Błąd - - Designer::Internal::FormWizardDialog - - Qt Designer Form - Formularz Qt Designer - - - Form Template - Szablon formularza - - Designer::Internal::QtCreatorIntegration - - The class containing '%1' could not be found in %2. -Please verify the #include-directives. - Nie można odnaleźć klasy zawierającej "%1" w %2. -Sprawdź dyrektywy #include. - The class containing "%1" could not be found in %2. Please verify the #include-directives. @@ -5959,12 +5189,6 @@ Sprawdź dyrektywy #include. No documents matching "%1" could be found. Rebuilding the project might help. Brak dokumentów dołączających "%1". -Przebudowanie projektu może pomóc w ich odnalezieniu. - - - No documents matching '%1' could be found. -Rebuilding the project might help. - Brak dokumentów dołączających "%1". Przebudowanie projektu może pomóc w ich odnalezieniu. @@ -5972,146 +5196,8 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Nie można dodać definicji metody. - - FakeVim::Internal - - Use Vim-style Editing - Włącz edycję w stylu vim - - - Read .vimrc - Odczytuj .vimrc - - - Path to .vimrc - Ścieżka do .vimrc - - - - FakeVim::Internal::FakeVimHandler - - %1%2% - %1%2% - - - %1All - %1Wszystkie - - - "%1" %2 %3L, %4C written - "%1" %2 zapisano: %3 linii, %4 znaków - - - "%1" %2L, %3C - "%1" %2L, %3C - - - Mark '%1' not set. - Znacznik "%1" nie jest ustawiony. - - - Not implemented in FakeVim. - Nieobsługiwane w FakeVim. - - - %n lines moved. - - %n linia przesunięta. - %n linie przesunięte. - %n linii przesuniętych. - - - - File "%1" exists (add ! to override) - Plik "%1" istnieje (dodaj ! aby go zastąpić) - - - Cannot open file "%1" for writing - Nie można otworzyć pliku "%1" do zapisu - - - "%1" %2 %3L, %4C written. - "%1" %2 zapisano: %3 linii, %4 znaków. - - - Cannot open file "%1" for reading - Nie można otworzyć pliku "%1" do odczytu - - - %n lines filtered. - - Przefiltrowano %n linię. - Przefiltrowano %n linie. - Przefiltrowano %n linii. - - - - Search hit BOTTOM, continuing at TOP. - Przeszukano do KOŃCA, wznowiono od POCZĄTKU. - - - Search hit TOP, continuing at BOTTOM. - Przeszukano do POCZĄTKU, wznowiono od KOŃCA. - - - Search hit BOTTOM without match for: %1 - Przeszukano do KOŃCA, brak wyników pasujących do: %1 - - - Search hit TOP without match for: %1 - Przeszukano do POCZĄTKU, brak wyników pasujących do: %1 - - - %n lines indented. - - Wyrównano %n linię. - Wyrównano %n linie. - Wyrównano %n linii. - - - - Cannot open file %1 - Nie można otworzyć pliku %1 - - - Unknown option: - Nieznana opcja: - - - Invalid argument: - Niepoprawny argument: - - - Trailing characters: - Białe znaki na końcu linii: - - - Pattern not found: %1 - Brak dopasowań do wzorca: %1 - - - Invalid regular expression: %1 - Niepoprawne wyrażenie regularne: %1 - - - Unknown option: %1 - Nieznana opcja: %1 - - - Argument must be positive: %1=%2 - Argument musi być dodatni: %1=%2 - - FakeVim::Internal::FakeVimOptionPage - - General - Ogólne - - - FakeVim - FakeVim - Use FakeVim Używaj FakeVim @@ -6216,10 +5302,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Read .vimrc from location: Wczytuj z położenia: - - Keep empty to use the default path, i.e. %USERPROFILE%\_vimrc on Windows, ~/.vimrc otherwise. - Pozostaw pustym aby użyć domyślnej ścieżki, tzn.%USERPROFILE%\_vimrc na Windows i ~/.vimrc w pozostałych przypadkach. - Passes key sequences like Ctrl-S to Qt Creator core instead of interpreting them in FakeVim. This gives easier access to Qt Creator core functionality at the price of losing some features of FakeVim. Wybranie tej opcji spowoduje przekazywanie do Creatora sekwencji klawiszy takich jak Ctrl-S zamiast interpretowania ich w FakeVimie. Daje to łatwiejszy dostęp do funkcjonalności Creatora w zamian za utratę pewnych cech FakeVima. @@ -6241,49 +5323,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Opcja "tabstop" vima. - - FakeVim::Internal::FakeVimPluginPrivate - - Meta+V,Meta+V - Meta+V,Meta+V - - - Alt+V,Alt+V - Alt+V,Alt+V - - - Execute User Action #%1 - Wykonaj akcję użytkownika #%1 - - - Meta+V,%1 - Meta+V,%1 - - - Alt+V,%1 - Alt+V,%1 - - - File not saved - Plik nie został zachowany - - - Saving succeeded - Zachowywanie poprawnie zakończone - - - %n files not saved - - Nie zachowano %n pliku - Nie zachowano %n plików - Nie zachowano %n plików - - - - FakeVim Information - Informacje o FakeVim - - GenericProjectManager::Internal::GenericMakeStepConfigWidget @@ -6341,14 +5380,6 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. File Selection Wybór pliku - - Location - Położenie - - - Files - Pliki - GenericProjectManager::Internal::GenericProjectWizard @@ -6432,54 +5463,8 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. HEAD - - Git::Internal::CloneWizard - - Cloning - Klonowanie - - - Cloning started... - Rozpoczęto klonowanie... - - - Clones a Git repository and tries to load the contained project. - Klonuje repozytorium Git i próbuje załadować zawarty projekt. - - - Git Repository Clone - Klon repozytorium Git - - - - Git::CloneWizardPage - - Location - Położenie - - - Specify repository URL, checkout directory and path. - Podaj URL repozytorium, nazwę katalogu z kopią roboczą i ścieżkę do niego. - - - Clone URL: - URL klonu: - - - Recursive - Rekurencyjnie - - Git::Internal::GitClient - - Waiting for data... - Oczekiwanie na dane... - - - Git Diff - Git Diff - Would you like to create a local branch? Czy utworzyć lokalną gałąź? @@ -6558,27 +5543,7 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Cannot obtain log of "%1": %2 - Nie można otrzymać loga "%1": %2 - - - Cannot add %n file(s) to "%1": %2 - - Nie można dodać %n pliku do "%1": %2 - Nie można dodać %n plików do "%1": %2 - Nie można dodać %n plików do "%1": %2 - - - - Cannot remove %n file(s) from "%1": %2 - - Nie można usunąć %n pliku z "%1": %2 - Nie można usunąć %n plików z "%1": %2 - Nie można usunąć %n plików z "%1": %2 - - - - Cannot move from "%1" to "%2": %3 - Nie można przenieść pliku z "%1" do "%2": %3 + Nie można otrzymać logu "%1": %2 Cannot reset %n file(s) in "%1": %2 @@ -6618,6 +5583,14 @@ Przebudowanie projektu może pomóc w ich odnalezieniu. Detached HEAD Odłączony HEAD + + Reset + + + + All changes in working directory will be discarded. Are you sure? + Wszystkie zmiany w katalogu roboczym zostaną utracone. Czy kontynuować? + Cannot describe revision "%1" in "%2": %3 Nie można opisać poprawki "%1" w "%2": %3 @@ -6753,15 +5726,6 @@ Commit now? No changes found. Brak zmian. - - and %n more - Displayed after the untranslated message "Branches: branch1, branch2 'and %n more'" in git show. - - i jeszcze %n gałąź - i jeszcze %n gałęzie - i jeszcze %n gałęzi - - The repository "%1" is not initialized. Repozytorium %1 nie jest zainicjalizowane. @@ -6823,10 +5787,6 @@ Commit now? The file is not modified. Plik nie jest zmodyfikowany. - - Cannot set tracking branch: %1 - - Conflicts detected with commit %1. Wykryto konflikty w zmianie %1. @@ -6878,54 +5838,6 @@ Commit now? Anuluj %1. - - Gitorious::Internal::Gitorious - - Error parsing reply from '%1': %2 - Błąd przetwarzania odpowiedzi z "%1": %2 - - - Request failed for '%1': %2 - Żądanie zostało błędnie zakończone dla "%1": %2 - - - Open source projects that use Git. - Projekty otwartego oprogramowania używające Git. - - - - Gitorious::Internal::GitoriousCloneWizard - - Clones a Gitorious repository and tries to load the contained project. - Klonuje repozytorium Gitorious i próbuje załadować zawarty projekt. - - - Gitorious Repository Clone - Klon repozytorium Gitorious - - - - Gitorious::Internal::GitoriousHostWizardPage - - Host - Host - - - Select a host. - Wybierz host. - - - - Gitorious::Internal::GitoriousProjectWizardPage - - Project - Projekt - - - Choose a project from '%1' - Wybierz projekt z "%1" - - Git::Internal::GitPlugin @@ -7144,14 +6056,6 @@ Commit now? Branches... Gałęzie... - - Clones a Git repository and tries to load the contained project. - Klonuje repozytorium Git i próbuje załadować zawarty projekt. - - - Git Repository Clone - Klon repozytorium Git - Reflog Reflog @@ -7204,6 +6108,14 @@ Commit now? Stashes... Odłożone zmiany... + + Stash Unstaged Files + + + + Saves the current state of your unstaged files and resets the repository to its staged state. + + &Remote Repository Zdalne &repozytorium @@ -7395,22 +6307,11 @@ Commit now? Git::Internal::GitSettings - - The binary '%1' could not be located in the path '%2' - Nie można odnaleźć pliku binarnego "%1" w ścieżce "%2" - The binary "%1" could not be located in the path "%2" Nie można odnaleźć pliku binarnego "%1" w ścieżce "%2" - - Help::Internal::CentralWidget - - Print Document - Wydruk dokumentu - - Help::Internal::DocSettingsPage @@ -7441,6 +6342,10 @@ Commit now? Unable to register documentation. Nie można zarejestrować dokumentacji. + + %1 (auto-detected) + %1 (automatycznie wykryte) + Add and remove compressed help files, .qch. Dodaje i usuwa skompresowane pliki pomocy .qch. @@ -7573,14 +6478,6 @@ Dodaj, zmodyfikuj lub usuń filtry dokumentów, które determinują zestaw dokum Always Show Side-by-Side Zawsze pokazuj z boku - - Always Start Full Help - Zawsze zaczynaj od pełnej pomocy - - - Always Show Help in External Window - Zawsze pokazuj pomoc w zewnętrznym oknie - On help start: Po uruchomieniu pomocy: @@ -7678,46 +6575,10 @@ Dodaj, zmodyfikuj lub usuń filtry dokumentów, które determinują zestaw dokum Bookmarks Zakładki - - Home - Strona startowa - - - Previous Page - Poprzednia strona - - - Next Page - Następna strona - - - Add Bookmark - Dodaj zakładkę - Context Help Pomoc podręczna - - Activate Index in Help mode - Uaktywnij indeks w trybie pomocy - - - Activate Contents in Help mode - Uaktywnij zawartość w trybie pomocy - - - Increase Font Size - Zwiększ rozmiar czcionki - - - Meta+M - Meta+M - - - Ctrl+M - Ctrl+M - Technical Support Wsparcie techniczne @@ -7730,117 +6591,17 @@ Dodaj, zmodyfikuj lub usuń filtry dokumentów, które determinują zestaw dokum <html><head><title>No Documentation</title></head><body><br/><center><font color="%1"><b>%2</b></font><br/><font color="%3">No documentation available.</font></center></body></html> <html><head><title>Brak dokumentacji</title></head><body><br/><center><font color="%1"><b>%2</b></font><br/><font color="%3">Brak dostępnej dokumentacji.</font></center></body></html> - - Decrease Font Size - Zmniejsz rozmiar czcionki - - - Reset Font Size - Przywróć domyślny rozmiar czcionki - - - Meta+I - Meta+I - - - Ctrl+Shift+I - Ctrl+Shift+I - - - Meta+Shift+C - Meta+Shift+C - - - Ctrl+Shift+C - Ctrl+Shift+C - - - Activate Search in Help mode - Uaktywnij przeszukiwanie w trybie pomocy - - - Meta+/ - Meta+/ - - - Ctrl+Shift+/ - Ctrl+Shift+/ - - - Activate Bookmarks in Help mode - Uaktywnij zakładki w trybie pomocy - - - Meta+B - Meta+B - - - Ctrl+Shift+B - Ctrl+Shift+B - Open Pages Otwarte strony - - Activate Open Pages in Help mode - Uaktywnij otwarte strony w trybie pomocy - - - Meta+O - Meta+O - - - Ctrl+Shift+O - Ctrl+Shift+O - - - Show Sidebar - Pokaż boczny pasek - - - Go to Help Mode - Przejdź do trybu pomocy - - - Previous - Poprzedni - - - Close current page - Zamknij bieżącą stronę - - - Hide Sidebar - Ukryj boczny pasek - - - Next - Następny - Unfiltered Nieprzefiltrowane - - <html><head><title>No Documentation</title></head><body><br/><center><b>%1</b><br/>No documentation available.</center></body></html> - <html><head><title>Brak dokumentacji</title></head><body><br/><center><b>%1</b><br/>Brak dostępnej dokumentacji.</center></body></html> - - - Filtered by: - Przefiltrowane przez: - Help::Internal::SearchWidget - - Indexing - Indeksowanie - - - Indexing Documentation... - Indeksowanie dokumentacji... - Indexing Documentation Indeksowanie dokumentacji @@ -8139,17 +6900,21 @@ Dodaj, zmodyfikuj lub usuń filtry dokumentów, które determinują zestaw dokum p4 filelog %1 p4 filelog %1 + + p4 changelists %1 + p4 changelists %1 + Could not start perforce "%1". Please check your settings in the preferences. Nie można uruchomić perforce "%1". Sprawdź stosowne ustawienia. - The process terminated with exit code %1. - Proces zakończył się kodem wyjściowym %1. + Perforce did not respond within timeout limit (%1 s). + Perforce nie odpowiedział w określonym czasie (%1 s). - [Only %1 MB of output shown] - [Pokazano tylko %1 MB danych wyjściowych] + The process terminated with exit code %1. + Proces zakończył się kodem wyjściowym %1. The commit message check failed. Do you want to submit this change list? @@ -8185,14 +6950,6 @@ Dodaj, zmodyfikuj lub usuń filtry dokumentów, które determinują zestaw dokum Diff &Selected Files Pokaż różnice w &zaznaczonych plikach - - Could not start perforce '%1'. Please check your settings in the preferences. - Nie można uruchomić perforce "%1". Sprawdź stosowne ustawienia. - - - Perforce did not respond within timeout limit (%1 ms). - Perforce nie odpowiedział w określonym czasie (%1 ms). - Unable to write input data to process %1: %2 Nie można wpisać danych wejściowych do procesu %1: %2 @@ -8201,6 +6958,15 @@ Dodaj, zmodyfikuj lub usuń filtry dokumentów, które determinują zestaw dokum Perforce is not correctly configured. Perforce nie jest poprawnie skonfigurowany. + + [Only %n MB of output shown] + %n probably doesn't make sense here + + [Pokazano tylko %n MB danych wyjściowych] + [Pokazano tylko %n MB danych wyjściowych] + [Pokazano tylko %n MB danych wyjściowych] + + p4 diff %1 p4 diff %1 @@ -8326,29 +7092,6 @@ Dodaj, zmodyfikuj lub usuń filtry dokumentów, które determinują zestaw dokum Nie można pobrać komunikatów debuggera. - - ProjectExplorer::Internal::LocalApplicationRunControl - - No executable specified. - Nie podano pliku wykonywalnego. - - - Executable %1 does not exist. - Brak pliku wykonywalnego %1. - - - Starting %1... - Uruchamianie %1... - - - %1 crashed - %1 zakończył pracę błędem - - - %1 exited with code %2 - %1 zakończone kodem %2 - - ProjectExplorer::BuildManager @@ -8394,10 +7137,6 @@ Dodaj, zmodyfikuj lub usuń filtry dokumentów, które determinują zestaw dokum Canceled build/deployment. Anulowano budowanie / instalację. - - When executing step '%1' - Podczas wykonywania kroku "%1" - Running steps for project %1... Uruchamianie kroków budowania dla projektu %1... @@ -8514,10 +7253,6 @@ Dodaj, zmodyfikuj lub usuń filtry dokumentów, które determinują zestaw dokum Project "%1": Projekt "%1": - - Project '%1': - Projekt "%1": - ProjectExplorer::DebuggingHelperLibrary @@ -8843,24 +7578,12 @@ Dodaj, zmodyfikuj lub usuń filtry dokumentów, które determinują zestaw dokum Otwórz przełącznik zestawu budowania i uruchamiania... - Full build path of the current project's active build configuration. - Pełna ścieżka do wersji z aktywną konfiguracją budowania bieżącego projektu. - - - The current project's name. - Nazwa bieżącego projektu. - - - The currently active kit's name. - Nazwa aktywnego zestawu narzędzi. - - - The currently active kit's name in a filesystem friendly version. - Nazwa aktywnego zestawu narzędzi w wersji przyjaznej dla systemu plików. + Current project's main file. + Główny plik bieżącego projektu. - The currently active kit's id. - Identyfikator aktywnego zestawu narzędzi. + Full build path of the current project's active build configuration. + Pełna ścieżka do wersji z aktywną konfiguracją budowania bieżącego projektu. The host address of the device in the currently active kit. @@ -8870,10 +7593,6 @@ Dodaj, zmodyfikuj lub usuń filtry dokumentów, które determinują zestaw dokum The SSH port of the device in the currently active kit. Port SSH urządzenia w aktywnym zestawie narzędzi. - - The user name with which to log into the device in the currently active kit. - Nazwa użytkownika użytego do logowania na urządzeniu w aktywnym zestawie narzędzi. - The private key file with which to authenticate when logging into the device in the currently active kit. Klucz prywatny użyty do autoryzacji podczas logowania na urządzeniu w aktywnym zestawie narzędzi. @@ -8918,6 +7637,10 @@ Dodaj, zmodyfikuj lub usuń filtry dokumentów, które determinują zestaw dokum debug debugowy + + The name of the currently active kit in a filesystem-friendly version. + Nazwa aktywnego zestawu narzędzi w wersji przyjaznej dla systemu plików. + release release'owy @@ -8960,10 +7683,6 @@ Do you want to ignore them? Znaleziono błędy podczas budowania. Czy zignorować je? - - <b>Warning:</b> This file is outside the project directory. - <b>Ostrzeżenie:</b> Ten plik leży poza katalogiem projektu. - Build Build step @@ -8971,23 +7690,19 @@ Czy zignorować je? No project loaded. - Nie załadowano projektu. + Nie załadowano projektu. Currently building the active project. - Trwa budowanie aktywnego projektu. + Trwa budowanie aktywnego projektu. The project %1 is not configured. - Projekt %1 nie jest skonfigurowany. + Projekt %1 nie jest skonfigurowany. Project has no build settings. - Brak ustawień budowania w projekcie. - - - Building '%1' is disabled: %2 - Budowanie "%1" jest nieaktywne: %2 + Brak ustawień budowania w projekcie. Cancel Build && Close @@ -9013,13 +7728,9 @@ Czy zignorować je? No active project. Brak aktywnego projektu. - - Cannot run '%1'. - Nie można uruchomić "%1". - Run %1 - Uruchom %1 + Uruchom %1 New Subproject @@ -9042,6 +7753,18 @@ Czy zignorować je? The file %1 was renamed to %2, but the project file %3 could not be automatically changed. Plik %1 został przemianowany na %2, ale nie można było automatycznie zmienić pliku projektu %3. + + Building "%1" is disabled: %2<br> + Budowanie "%1" jest wyłączone: %2<br> + + + A build is in progress. + Trwa budowanie. + + + Building "%1" is disabled: %2 + Budowanie "%1" jest wyłączone: %2 + The project "%1" is not configured. Projekt %1 nie jest skonfigurowany. @@ -9106,10 +7829,6 @@ Czy zignorować je? Ctrl+T Ctrl+T - - Current project's main file - Główny plik bieżącego projektu - The name of the current project. Nazwa bieżącego projektu. @@ -9118,10 +7837,6 @@ Czy zignorować je? The name of the currently active kit. Nazwa aktywnego zestawu narzędzi. - - The name of the currently active kit in a filesystem friendly version. - Nazwa aktywnego zestawu narzędzi w wersji przyjaznej dla systemu plików. - The id of the currently active kit. Identyfikator aktywnego zestawu narzędzi. @@ -9138,10 +7853,6 @@ Czy zignorować je? Failed to open project. Nie można otworzyć projektu. - - Failed to open project - Nie można otworzyć projektu - All Projects Wszystkie projekty @@ -9151,22 +7862,6 @@ Czy zignorować je? Title of dialog Nowy projekt - - Failed opening project '%1': Project already open. - Nie można otworzyć projektu "%1": projekt jest już otwarty. - - - Failed opening project '%1': Settings could not be restored. - Nie można otworzyć projektu "%1": nie można przywrócić ustawień. - - - Failed opening project '%1': No plugin can open project type '%2'. - Nie można otworzyć projektu "%1": brak wtyczki obsługującej projekt typu "%2". - - - Failed opening project '%1': Unknown project type. - Nie można otworzyć projektu "%1": nieznany typ projektu. - Ignore All Errors? Zignorować wszystkie błędy? @@ -9185,31 +7880,7 @@ Czy zignorować je? The project %1 is not configured, skipping it. - Projekt %1 nie jest skonfigurowany, zostaje pominięty. - - - No project loaded - Nie załadowano projektu - - - Project has no build settings - Brak ustawień budowania w projekcie - - - Building '%1' is disabled: %2<br> - Budowanie "%1" jest nieaktywne: %2<br> - - - A build is in progress - Trwa budowanie - - - The project '%1' has no active kit. - Projekt "%1" nie posiada aktywnego zestawu narzędzi. - - - The kit '%1' for the project '%2' has no active run configuration. - Brak aktywnej konfiguracji uruchamiania w zestawie narzędzi "%1" projektu "%2". + Projekt %1 nie jest skonfigurowany, zostaje pominięty. A build is still in progress. @@ -9242,19 +7913,6 @@ Czy zignorować je? ProjectExplorer::Internal::ProjectFileWizardExtension - - <Implicitly Add> - <Niejawnie dodaj> - - - The files are implicitly added to the projects: - Pliki, które zostały niejawnie dodane do projektów: - - - <None> - No project selected - <Brak> - Open project anyway? Czy otworzyć projekt mimo to? @@ -9275,26 +7933,6 @@ do projektu "%2". Nie można dodać jednego lub więcej plików do projektu "%1" (%2). - - Failed to add subproject '%1' -to project '%2'. - Nie można dodać podprojektu "%1" -do projektu "%2". - - - Failed to add one or more files to project -'%1' (%2). - Nie można dodać jednego lub więcej plików do projektu -"%1" (%2). - - - A version control system repository could not be created in '%1'. - Nie można utworzyć repozytorium systemu kontroli wersji w "%1". - - - Failed to add '%1' to the version control system. - Nie można dodać "%1" do systemu kontroli wersji. - ProjectExplorer::Internal::ProjectTreeWidget @@ -9510,10 +8148,6 @@ do projektu "%2". Loading Session Ładowanie sesji - - Session - Sesja - Error while saving session Błąd podczas zachowywania sesji @@ -9566,14 +8200,6 @@ do projektu "%2". This wizard generates a Qt Designer Custom Widget or a Qt Designer Custom Widget Collection project. Ten kreator generuje projekt własnego widżetu Qt Designera lub projekt kolekcji własnych widżetów Qt4 Designera. - - Custom Widgets - Własne widżety - - - Plugin Details - Szczegóły wtyczki - QmakeProjectManager::Internal::PluginGenerator @@ -9611,18 +8237,10 @@ do projektu "%2". Qt MakeStep display name. Make - - Qt Creator needs a compiler set up to build. Configure a compiler in the kit options. - Do budowy Qt Creator wymaga ustawionego kompilatora. Skonfiguruj go w opcjach zestawu narzędzi. - Cannot find Makefile. Check your build settings. Nie można odnaleźć pliku Makefile. Sprawdź swoje ustawienia budowania. - - Configuration is faulty. Check the Issues view for details. - Błędna konfiguracja. Sprawdź szczegóły w widoku "Problemy budowania". - QmakeProjectManager::MakeStepConfigWidget @@ -9661,10 +8279,6 @@ do projektu "%2". QMakeStep default display name qmake - - Configuration is faulty, please check the Issues view for details. - Konfiguracja jest błędna, sprawdź szczegóły w widoku "Problemy budowania". - Configuration unchanged, skipping qmake step. Konfiguracja niezmieniona, krok qmake opuszczony. @@ -9689,8 +8303,8 @@ do projektu "%2". <b>qmake:</b> %1 %2 - Enable QML debugging: - Uaktywnij debugowanie QML: + Enable QML debugging and profiling: + Włącz debugowanie i profilowanie QML: Might make your application vulnerable. Only use in a safe environment. @@ -9700,6 +8314,10 @@ do projektu "%2". Enable Qt Quick Compiler: Włącz kompilator Qt Quick: + + Disables QML debugging. QML profiling will still work. + Wyłącza debugowanie QML, profilowanie QML pozostawia włączone. + <No Qt version> <Brak wersji Qt> @@ -9714,18 +8332,6 @@ do projektu "%2". QmakeProjectManager::QmakeManager - - Update of Generated Files - Uaktualnienie wygenerowanych plików - - - In project<br><br>%1<br><br>The following files are either outdated or have been modified:<br><br>%2<br><br>Do you want Qt Creator to update the files? Any changes will be lost. - W projekcie<br><br>%1<br><br>Następujące pliki są albo nieaktualne albo zostały zmodyfikowane: <br><br>%2<br><br>Czy odświeżyć te pliki? Jakiekolwiek zmiany zostaną utracone. - - - Failed opening project '%1': Project is not a file - Nie można otworzyć projektu "%1": Ścieżka projektu nie wskazuje na plik - Failed opening project "%1": Project is not a file Nie można otworzyć projektu "%1": Ścieżka projektu nie wskazuje na plik @@ -9889,46 +8495,6 @@ do projektu "%2". Klasy do międzyprocesowej komunikacji z użyciem D-Bus - - QmakeProjectManager::Internal::ConsoleAppWizard - - Qt Console Application - Aplikacja konsolowa Qt - - - Creates a project containing a single main.cpp file with a stub implementation. - -Preselects a desktop Qt for building the application if available. - Tworzy projekt zawierający pojedynczy plik main.cpp z substytutem implementacji. - -Wstępnie wybiera wersję desktopową Qt do budowania aplikacji (jeśli jest dostępna). - - - - QmakeProjectManager::Internal::ConsoleAppWizardDialog - - This wizard generates a Qt Console Application project. The application derives from QCoreApplication and does not provide a GUI. - Ten kreator generuje projekt aplikacji konsolowej Qt. Aplikacja dziedziczy z QCoreApplication i nie używa GUI. - - - - QmakeProjectManager::Internal::EmptyProjectWizard - - Empty Qt Project - Pusty projekt Qt - - - Creates a qmake-based project without any files. This allows you to create an application without any default classes. - Tworzy pusty projekt bazujący na qmake, bez żadnych domyślnych klas. - - - - QmakeProjectManager::Internal::EmptyProjectWizardDialog - - This wizard generates an empty Qt project. Add files to it later on by using the other wizards. - Ten kreator generuje pusty projekt Qt. Skorzystanie z innych kreatorów umożliwi dodanie do niego plików. - - QmakeProjectManager::Internal::FilesPage @@ -9965,10 +8531,6 @@ Wstępnie wybiera wersję desktopową Qt do budowania aplikacji (jeśli jest dos This wizard generates a Qt Widgets Application project. The application derives by default from QApplication and includes an empty widget. Ten kreator generuje projekt aplikacji Qt Widgets. Aplikacja domyślnie dziedziczy z QApplication i zawiera pusty widżet. - - Details - Szczegóły - QmakeProjectManager::Internal::LibraryWizard @@ -10032,14 +8594,6 @@ Wstępnie wybiera wersję desktopową Qt do budowania aplikacji (jeśli jest dos ResourceEditor::Internal::ResourceEditorPlugin - - Creates a Qt Resource file (.qrc) that you can add to a Qt Widget Project. - Tworzy plik z zasobami Qt (.qrc), który można dodać do projektu Qt Widget. - - - Qt Resource file - Plik z zasobami Qt - &Undo &Cofnij @@ -10064,6 +8618,10 @@ Wstępnie wybiera wersję desktopową Qt do budowania aplikacji (jeśli jest dos Remove Prefix... Usuń przedrostek... + + Remove Missing Files + Usuń brakujące pliki + Rename... Zmień nazwę... @@ -10077,8 +8635,8 @@ Wstępnie wybiera wersję desktopową Qt do budowania aplikacji (jeśli jest dos Otwórz w edytorze - Open in Text Editor - Otwórz w edytorze tekstowym + Open With + Otwórz przy pomocy Copy path "%1" @@ -10132,36 +8690,6 @@ Wstępnie wybiera wersję desktopową Qt do budowania aplikacji (jeśli jest dos Skopiuj ścieżkę z zasobami do schowka - - Subversion::Internal::CheckoutWizard - - Checks out a Subversion repository and tries to load the contained project. - Wyciąga repozytorium Subversion i próbuje załadować zawarty projekt. - - - Subversion Checkout - Kopia robocza Subversion - - - - Subversion::Internal::CheckoutWizardPage - - Trust Server Certificate - - - - Location - Położenie - - - Specify repository URL, checkout directory and path. - Podaj URL repozytorium, nazwę katalogu z kopią roboczą i ścieżkę do niego. - - - Repository: - Repozytorium: - - Subversion::Internal::SettingsPageWidget @@ -10267,14 +8795,6 @@ Wstępnie wybiera wersję desktopową Qt do budowania aplikacji (jeśli jest dos Project Status Stan projektu - - Checks out a Subversion repository and tries to load the contained project. - Wyciąga repozytorium Subversion i próbuje załadować zawarty projekt. - - - Subversion Checkout - Kopia robocza Subversion - Meta+S,Meta+D Meta+S,Meta+D @@ -10395,10 +8915,6 @@ Wstępnie wybiera wersję desktopową Qt do budowania aplikacji (jeśli jest dos No subversion executable specified. Nie podano komendy programu subversion. - - No subversion executable specified! - Nie podano komendy programu subversion! - Subversion::Internal::SubversionSubmitEditor @@ -10409,14 +8925,18 @@ Wstępnie wybiera wersję desktopową Qt do budowania aplikacji (jeśli jest dos TextEditor::BaseFileFind - - Search - Wyszukiwanie - Searching Przeszukiwanie + + %n occurrences replaced. + + Zastąpiono %n wystąpienie. + Zastąpiono %n wystąpienia. + Zastąpiono %n wystąpień. + + List of comma separated wildcard filters Lista filtrów z dżokerami oddzielona przecinkami @@ -10426,23 +8946,8 @@ Wstępnie wybiera wersję desktopową Qt do budowania aplikacji (jeśli jest dos Przerwano zastępowanie. - - TextEditor::BaseTextDocument - - Opening file - Otwieranie pliku - - TextEditor::BaseTextEditor - - Line: %1, Col: %2 - Linia: %1, kolumna: %2 - - - Line: 9999, Col: 999 - Linia: 9999, kolumna: 999 - A highlight definition was not found for this file. Would you like to try to find one? Definicja podświetleń dla tego pliku nie została znaleziona. Czy chcesz spróbować ją znaleźć? @@ -10492,10 +8997,6 @@ Wstępnie wybiera wersję desktopową Qt do budowania aplikacji (jeśli jest dos File "%1": Plik "%1": - - File '%1': - Plik "%1": - File path: %1 %2 @@ -10574,390 +9075,6 @@ Wstępnie wybiera wersję desktopową Qt do budowania aplikacji (jeśli jest dos TextEditor::TextEditorActionHandler - - &Undo - &Cofnij - - - &Redo - &Przywróć - - - Select Encoding... - Wybierz kodowanie... - - - Auto-&indent Selection - Sformatuj wc&ięcia w zaznaczonym tekście - - - Ctrl+I - Ctrl+I - - - &Rewrap Paragraph - Zawiń &paragraf - - - &Visualize Whitespace - Pokazuj &białe znaki - - - Clean Whitespace - Usuń końcowe białe znaki - - - Enable Text &Wrapping - Za&wijanie tekstu - - - Ctrl+/ - Ctrl+/ - - - Cut &Line - Wytnij &linię - - - Shift+Del - Shift+Del - - - Delete &Line - Usuń &linię - - - Delete Word from Cursor On - Usuń słowo począwszy od kursora - - - Delete Word up to Cursor - Usuń słowo kończąc na kursorze - - - Ctrl+< - Ctrl+< - - - Ctrl+> - Ctrl+> - - - Toggle &Fold All - &Zwiń / rozwiń wszystko - - - Increase Font Size - Zwiększ rozmiar czcionki - - - Ctrl++ - Ctrl++ - - - Decrease Font Size - Zmniejsz rozmiar czcionki - - - Ctrl+- - Ctrl+- - - - Reset Font Size - Przywróć domyślny rozmiar czcionki - - - Ctrl+0 - Ctrl+0 - - - Go to Block Start - Przejdź do początku bloku - - - Go to Block End - Przejdź do końca bloku - - - Ctrl+[ - Ctrl+[ - - - Toggle Comment &Selection - Wykomentuj / odkomentuj zaznaczony tek&st - - - Meta+E, R - Meta+E, R - - - Ctrl+E, R - Ctrl+E, R - - - Meta+E, Meta+V - Meta+E, Meta+V - - - Ctrl+E, Ctrl+V - Ctrl+E, Ctrl+V - - - Meta+E, Meta+W - Meta+E, Meta+W - - - Ctrl+E, Ctrl+W - Ctrl+E, Ctrl+W - - - Copy &Line - Skopiuj &linię - - - Ctrl+Ins - Ctrl+Ins - - - Fold - Zwiń - - - Unfold - Rozwiń - - - Meta+0 - Meta+0 - - - Ctrl+] - Ctrl+] - - - Go to Block Start with Selection - Zaznacz do początku bloku - - - Ctrl+{ - Ctrl+{ - - - Go to Block End with Selection - Zaznacz do końca bloku - - - Ctrl+} - Ctrl+} - - - Select Block Up - Zaznacz zewnętrzny blok - - - Ctrl+U - Ctrl+U - - - Select Block Down - Zaznacz wewnętrzny blok - - - Move Line Up - Przenieś linię w górę - - - Ctrl+Shift+Up - Ctrl+Shift+Up - - - Move Line Down - Przenieś linię w dół - - - Ctrl+Shift+Down - Ctrl+Shift+Down - - - Copy Line Up - Skopiuj linię i wstaw powyżej - - - Ctrl+Alt+Up - Ctrl+Alt+Up - - - Copy Line Down - Skopiuj linię i wstaw poniżej - - - Ctrl+Alt+Down - Ctrl+Alt+Down - - - Join Lines - Złącz linie - - - Ctrl+J - Ctrl+J - - - Insert Line Above Current Line - Wstaw linię ponad bieżącą linią - - - Ctrl+Shift+Return - Ctrl+Shift+Return - - - Insert Line Below Current Line - Wstaw linię pod bieżącą linią - - - Ctrl+Return - Ctrl+Return - - - Uppercase Selection - Zastąp wielkimi literami - - - Alt+Shift+U - Alt+Shift+U - - - Meta+Shift+U - Meta+Shift+U - - - Lowercase Selection - Zastąp małymi literami - - - Alt+U - Alt+U - - - Meta+U - Meta+U - - - Paste from Clipboard History - Wklej z historii schowka - - - Ctrl+Shift+V - Ctrl+Shift+V - - - Indent - Dodaj wcięcie - - - Unindent - Usuń wcięcie - - - Follow Symbol Under Cursor - Podąż za symbolem pod kursorem - - - Follow Symbol Under Cursor in Next Split - Podąż za symbolem pod kursorem w sąsiadującym oknie - - - Meta+E, F2 - Meta+E, F2 - - - Ctrl+E, F2 - Ctrl+E, F2 - - - Jump To File Under Cursor - Skocz do pliku pod kursorem - - - Go to Line Start - Przejdź do początku linii - - - Go to Line End - Przejdź do końca linii - - - Go to Next Line - Przejdź do następnej linii - - - Go to Previous Line - Przejdź do poprzedniej linii - - - Go to Previous Character - Przejdź do poprzedniego znaku - - - Go to Next Character - Przejdź do następnego znaku - - - Go to Previous Word - Przejdź do poprzedniego słowa - - - Go to Next Word - Przejdź do następnego słowa - - - Go to Previous Word Camel Case - Przejdź do poprzedniego słowa w zbitce Camel Case - - - Go to Next Word Camel Case - Przejdź do następnego słowa w zbitce Camel Case - - - Go to Line Start with Selection - Zaznacz do początku linii - - - Go to Line End with Selection - Zaznacz do końca linii - - - Go to Next Line with Selection - Zaznacz do następnej linii - - - Go to Previous Line with Selection - Zaznacz do poprzedniej linii - - - Go to Previous Character with Selection - Zaznacz do poprzedniego znaku - - - Go to Next Character with Selection - Zaznacz do następnego znaku - - - Go to Previous Word with Selection - Zaznacz do poprzedniego słowa - - - Go to Next Word with Selection - Zaznacz do następnego słowa - - - Go to Previous Word Camel Case with Selection - Zaznacz do poprzedniego słowa w zbitce Camel Case - - - Go to Next Word Camel Case with Selection - Zaznacz do następnego słowa w zbitce Camel Case - <line>:<column> <linia>:<kolumna> @@ -10965,30 +9082,6 @@ Wstępnie wybiera wersję desktopową Qt do budowania aplikacji (jeśli jest dos TextEditor::Internal::TextEditorPlugin - - Creates a text file. The default file extension is <tt>.txt</tt>. You can specify a different extension as part of the filename. - Tworzy plik tekstowy. Domyślnym rozszerzeniem pliku jest <tt>.txt</tt>. Istnieje możliwość podania innego rozszerzenia jako część nazwy pliku. - - - Text File - Plik tekstowy - - - General - Ogólne - - - Creates a scratch buffer using a temporary file. - Tworzy brudnopis używając tymczasowego pliku. - - - Scratch Buffer - Brudnopis - - - Triggers a completion in this scope - Przełącza uzupełnianie kodu w tym zakresie - Ctrl+Space Ctrl+Space @@ -10997,10 +9090,6 @@ Wstępnie wybiera wersję desktopową Qt do budowania aplikacji (jeśli jest dos Meta+Space Meta+Space - - Triggers a quick fix in this scope - Uaktywnia w tym zakresie szybką poprawkę - Trigger Completion Rozpocznij uzupełnianie @@ -11088,6 +9177,14 @@ Wstępnie wybiera wersję desktopową Qt do budowania aplikacji (jeśli jest dos Parentheses Nawiasy + + Mismatched Parentheses + Niedopasowane nawiasy + + + Displayed when mismatched parentheses, square brackets, or curly brackets are found. + Wyświetlane, gdy znaleziono niedopasowane nawiasy okrągłe, kwadratowe lub klamrowe. + Current Line Bieżąca linia @@ -11304,10 +9401,6 @@ Użyte do tekstu, jeśli inne reguły nie mają zastosowania. Keyword Słowo kluczowe - - Reserved keywords of the programming language. - Zarezerwowane słowa kluczowe języka programowania. - Operator Operator @@ -11459,58 +9552,20 @@ Nie zostanie zastosowane do białych znaków w komentarzach i ciągach znakowych Stosowane do dodanych znaków (w edytorze różnic wyświetlającym zawartość sąsiadująco). - Behavior - Zachowanie - - - Display - Wyświetlanie - - - - VcsBase::BaseCheckoutWizard - - Cannot Open Project - Nie można otworzyć projektu + Log Change Line + Linia logu zmian - Failed to open project in '%1'. - Nie można otworzyć projektu w "%1". + Applied to lines describing changes in VCS log. + Stosowane do linii opisujących zmiany w logu systemu kontroli wersji. - Could not find any project files matching (%1) in the directory '%2'. - Nie można odnaleźć żadnych plików z projektami, pasujących do (%1) w katalogu "%2". - - - The Project Explorer is not available. - Przeglądarka projektów nie jest dostępna. - - - '%1' does not exist. - "%1" nie istnieje. - - - - VcsBase::Internal::CheckoutProgressWizardPage - - Checkout - Kopia robocza - - - No job running, please abort. - Brak uruchomionych zadań, przerwij. - - - Checkout started... - Rozpoczęto tworzenie kopii roboczej... - - - Failed. - Niepoprawnie zakończone. + Behavior + Zachowanie - Succeeded. - Poprawnie zakończone. + Display + Wyświetlanie @@ -11527,18 +9582,10 @@ Nie zostanie zastosowane do białych znaków w komentarzach i ciągach znakowych Alias email Alias email - - E-mail - Email - Alias Alias - - Alias e-mail - Alias e-mail - Nicknames Przydomki @@ -11566,29 +9613,6 @@ Nie zostanie zastosowane do białych znaków w komentarzach i ciągach znakowych Ogólne - - VcsBase::VcsBaseOutputWindow - - Open "%1" - Otwórz "%1" - - - Clear - Wyczyść - - - Version Control - System kontroli wersji - - - Executing: %1 %2 - Wykonywanie: %1 %2 - - - Executing in %1: %2 %3 - Wykonywanie w %1: %2 %3 - - VcsBase::VcsBaseSubmitEditor @@ -11627,30 +9651,11 @@ Nie zostanie zastosowane do białych znaków w komentarzach i ciągach znakowych The check script "%1" crashed. Skrypt sprawdzający "%1" zakończył pracę błędem. - - The check script '%1' crashed. - Skrypt sprawdzający "%1" zakończył pracę błędem. - - - The check script '%1' could not be started: %2 - Nie można uruchomić skryptu sprawdzającego "%1": %2 - - - The check script '%1' timed out. - Skrypt sprawdzający "%1" bez odpowiedzi. - The check script returned exit code %1. Skrypt sprawdzający zwrócił kod wyjściowy %1. - - Welcome::Internal::CommunityWelcomePage - - News && Support - Nowiny i wsparcie - - BookmarkWidget @@ -11677,14 +9682,6 @@ Nie zostanie zastosowane do białych znaków w komentarzach i ciągach znakowych Rename Bookmark Zmień nazwę zakładki - - Add - Dodaj - - - Remove - Usuń - BookmarkManager @@ -11718,92 +9715,29 @@ Nie zostanie zastosowane do białych znaków w komentarzach i ciągach znakowych HelpViewer - - Error 404... - Błąd 404... - - - The page could not be found! - Nie można odnaleźć strony! - - - <li>Check that you have one or more documentation sets installed.</li> - <li>Sprawdź, czy zainstalowałeś przynajmniej jeden zestaw dokumentacji.</li> - - - <li>Check that you have installed the appropriate browser plug-in to support the file your loading.</li> - <li>Sprawdź, czy zainstalowałeś odpowiednią wtyczkę do przeglądarki, która obsługuje ładowanie tego pliku</li> - - - <li>If you try to access a public URL, make sure to have a network connection.</li> - <li>Dostęp do publicznego URL: upewnij się, że masz dostęp do sieci.</li> - - - <li>If your computer or network is protected by a firewall or proxy, make sure the application is permitted to access the network.</li> - <li>Jeśli twój komputer lub sieć są za zaporą sieciową, upewnij się, że aplikacja ma prawo dostępu do sieci.</li> - Open Link as New Page Otwórz odsyłacz na nowej stronie - - IndexWindow - - &Look for: - Wy&szukaj: - - - Open Link - Otwórz odsyłacz - - - Open Link as New Page - Otwórz odsyłacz na nowej stronie - - MimeType CMake Project file Plik projektu CMake - - C Source file - Plik źródłowy C - - - C Header file - Plik nagłówkowy C - - - C++ Header file - Plik nagłówkowy C++ - C++ header Plik nagłówkowy C++ - - C++ Source file - Plik źródłowy C++ - C++ source code Kod źródłowy C++ - - Objective-C source code - Kod źródłowy Objective-C - CVS submit template Szablon wrzucanych zmian CVS - - Qt Designer file - Plik Qt Designer - Generic Qt Creator Project file Ogólny plik projektu Qt Creator @@ -11820,10 +9754,22 @@ Nie zostanie zastosowane do białych znaków w komentarzach i ciągach znakowych Generic Project Configuration File Ogólny plik z konfiguracją projektu + + WebP Image file + + Perforce submit template Szablon wrzucanych zmian Perforce + + Python source file without console + + + + Qt Creator Python project file + + QML file Plik QML @@ -11837,24 +9783,24 @@ Nie zostanie zastosowane do białych znaków w komentarzach i ciągach znakowych Plik nagłówkowy projektu Qt - message catalog - katalog komunikatów + ClearCase submit template + Szablon wrzucanych zmian ClearCase - Qt Script file - Plik ze skryptem Qt + C source code + Kod źródłowy C - Java Source file - Plik źródłowy Java + NVIDIA CUDA C source code + Kod źródłowy NVIDIA CUDA C - Automake based Makefile - + C header + Plik nagłówkowy C - ClearCase submit template - Szablon wrzucanych zmian ClearCase + Qt MOC file + Plik Qt MOC Objective-C++ source code @@ -11888,62 +9834,6 @@ Nie zostanie zastosowane do białych znaków w komentarzach i ciągach znakowych GLSL/ES Geometry Shader file Plik geometry shadera GLSL/ES - - BMP image - Plik graficzny BMP - - - GIF image - Plik graficzny GIF - - - ICO image - Plik graficzny ICO - - - JPEG image - Plik graficzny JPEG - - - MNG video - Plik wideo MNG - - - PBM image - Plik graficzny PBM - - - PGM image - Plik graficzny PGM - - - PNG image - Plik graficzny PNG - - - PPM image - Plik graficzny PPM - - - SVG image - Plik graficzny SVG - - - TIFF image - Plik graficzny TIFF - - - XBM image - Plik graficzny XBM - - - XPM image - Plik graficzny XPM - - - Python Source File - Plik źródłowy Pythona - Qt Project configuration file Plik z konfiguracją projektu Qt @@ -11980,6 +9870,18 @@ Nie zostanie zastosowane do białych znaków w komentarzach i ciągach znakowych Qt Project feature file + + Android manifest file + + + + Linguist translated messages (machine-readable) + + + + Linguist message catalog + + Qt Resource file Plik z zasobami Qt @@ -11992,14 +9894,6 @@ Nie zostanie zastosowane do białych znaków w komentarzach i ciągach znakowych Qt Creator task list file Plik z listą zadań Qt Creatora - - Plain text document - Dokument tekstowy - - - XML document - Dokument XML - Assembler Asembler @@ -12008,10 +9902,6 @@ Nie zostanie zastosowane do białych znaków w komentarzach i ciągach znakowych Qt Creator Generic Assembler Ogólny asembler Qt Creatora - - Differences between files - Różnice pomiędzy plikami - CppTools::Internal::CppLocatorFilter @@ -12260,7 +10150,7 @@ Możesz odłożyć zmiany lub je porzucić. Log count: - Licznik loga: + Licznik logu: Timeout: @@ -12419,19 +10309,19 @@ Możesz odłożyć zmiany lub je porzucić. Always save when leaving subcomponent in bread crumb - + Zawsze zachowuj przy opuszczaniu podkomponentu QML Emulation Layer - + Emulator QML If you do not select this checkbox, Qt Quick Designer uses the QML emulation layer (QML Puppet) built with the Qt configured in the build and run kit for the project. - + Jeśli ta opcja nie jest wybrana, Qt Quick Designer używa Emulatora QML (QML Puppet) zbudowanego przy pomocy Qt skonfigurowanego dla projektu. Always use the QML emulation layer provided by Qt Creator - + Zawsze używaj emulatora QML dostarczonego z Qt Creatorem @@ -12539,10 +10429,6 @@ Możesz odłożyć zmiany lub je porzucić. Cleaning "%1" Czyszczenie %1 - - Cleaning %1 - Czyszczenie %1 - ExtensionSystem::PluginDetailsView @@ -12590,6 +10476,34 @@ Możesz odłożyć zmiany lub je porzucić. Plugin is not available on this platform. Wtyczka nie jest dostępna na tej platformie. + + Path: %1 +Plugin is not available on this platform. + Ścieżka: %1 +Wtyczka nie jest dostępna dla tej platformy. + + + Path: %1 +Plugin is enabled as dependency of an enabled plugin. + Ścieżka: %1 +Wtyczka jest włączona przez zależność od innej wtyczki. + + + Path: %1 +Plugin is enabled by command line argument. + Ścieżka: %1 +Wtyczka jest włączona przez argument linii komend. + + + Path: %1 +Plugin is disabled by command line argument. + Ścieżka: %1 +Wtyczka jest wyłączona przez argument linii komend. + + + Path: %1 + Ścieżka:: %1 + Plugin is required. Wymagana wtyczka. @@ -12598,6 +10512,38 @@ Możesz odłożyć zmiany lub je porzucić. Load on startup Załadowany przy uruchomieniu + + Enabling Plugins + Włączanie wtyczek + + + Enabling +%1 +will also enable the following plugins: + +%2 + Włączenie +%1 +włączy również następujące wtyczki: + +%2 + + + Disabling Plugins + Wyłączanie wtyczek + + + Disabling +%1 +will also disable the following plugins: + +%2 + Wyłączenie +%1 +wyłączy również następujące wtyczki: + +%2 + QmlJS::Check @@ -12633,13 +10579,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Moduł QML zawiera wtyczki C++, trwa sczytywanie informacji o typach... - - Utils::FileWizardDialog - - Location - Położenie - - Utils::fileDeletedPrompt @@ -12715,14 +10654,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Default display name for the cmake make step. Make - - Qt Creator needs a compiler set up to build. Configure a compiler in the kit options. - Do budowy Qt Creator wymaga ustawionego kompilatora. Skonfiguruj go w opcjach zestawu narzędzi. - - - Configuration is faulty. Check the Issues view for details. - Błędna konfiguracja. Sprawdź szczegóły w widoku "Problemy budowania". - CMakeProjectManager::Internal::MakeStepFactory @@ -12762,22 +10693,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Export... Eksportuj... - - Target Identifier - Identyfikator celu - - - Reset to default. - Przywraca domyślne. - - - Reset - Reset - - - Target: - Cel: - Label Etykieta @@ -12849,14 +10764,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Split Podziel - - Copy Full Path to Clipboard - Skopiuj pełną ścieżkę do schowka - - - Copy File Name to Clipboard - Skopiuj nazwę pliku do schowka - Drag to drag documents between splits "drag to drag" doesn't really explain anything- maybe "drag to move" @@ -12901,11 +10808,11 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki CVS Command Log Editor - Edytor loga komend CVS + Edytor logu komend CVS CVS File Log Editor - Edytor loga plików CVS + Edytor logu plików CVS CVS Annotation Editor @@ -12917,20 +10824,16 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Git Command Log Editor - Edytor loga komend Git + Edytor logu komend Git Git File Log Editor - Edytor loga plików Git + Edytor logu plików Git Git Annotation Editor Edytor adnotacji Git - - Git Diff Editor - Edytor różnic Git - Git Commit Editor Edytor wrzucanych zmian Git @@ -12945,7 +10848,7 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Mercurial File Log Editor - Edytor loga plików Mercurial + Edytor logu plików Mercurial Mercurial Annotation Editor @@ -12965,7 +10868,7 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Perforce Log Editor - Edytor loga plików Perforce + Edytor logu plików Perforce Perforce Diff Editor @@ -12981,19 +10884,15 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Subversion File Log Editor - Edytor loga plików Subversion + Edytor logu plików Subversion Subversion Annotation Editor Edytor adnotacji Subversion - - Subversion Diff Editor - Edytor różnic Subversion - Bazaar File Log Editor - Edytor loga plików Bazaar + Edytor logu plików Bazaar Bazaar Annotation Editor @@ -13013,7 +10912,7 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki ClearCase File Log Editor - Edytor loga plików ClearCase + Edytor logu plików ClearCase ClearCase Annotation Editor @@ -13024,13 +10923,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Edytor różnic ClearCase - - Cvs::Internal::CvsEditor - - Annotate revision "%1" - Dołącz adnotację do poprawki "%1" - - Debugger::Internal::CdbOptionsPage @@ -13049,64 +10941,12 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Plik - - Debugger::Internal::SnapshotWindow - - Snapshots - Zrzuty - - - - Designer::Internal::FormEditorFactory - - This file can only be edited in <b>Design</b> mode. - Ten plik może być modyfikowany jedynie w trybie <b>Design</b>. - - - - Designer::Internal::FormFileWizardDialog - - Location - Położenie - - - - FakeVim::Internal::FakeVimExCommandsPage - - Ex Command Mapping - Mapowanie komend Ex - - - FakeVim - FakeVim - - - Ex Trigger Expression - Wyzwalacz Ex - - - Regular expression: - Wyrażenie regularne: - - - Ex Command - Komenda Ex - - GenericProjectManager::Internal::GenericMakeStep Make Make - - Qt Creator needs a compiler set up to build. Configure a compiler in the kit options. - Do budowy Qt Creator wymaga ustawionego kompilatora. Skonfiguruj go w opcjach zestawu narzędzi. - - - Configuration is faulty. Check the Issues view for details. - Błędna konfiguracja. Sprawdź szczegóły w widoku "Problemy budowania". - Override %1: Przesłoń %1: @@ -13120,25 +10960,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Produkty docelowe: - - Git::Internal::GitEditor - - Blame %1 - Blame %1 - - - Reset - Reset - - - All changes in working directory will be discarded. Are you sure? - Wszystkie zmiany w katalogu roboczym zostaną utracone. Czy kontynuować? - - - Revert Change %1 - Odwróć zmianę %1 - - Help @@ -13164,42 +10985,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Help::Internal::HelpViewer - - <title>about:blank</title> - <title>o:pusty</title> - - - <html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Error 404...</title></head><body><div align="center"><br/><br/><h1>The page could not be found</h1><br/><h3>'%1'</h3></div></body></html> - <html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Błąd 404...</title></head><body><div align="center"><br/><br/><h1>Nie można odnaleźć strony</h1><br/><h3>'%1'</h3></div></body></html> - - - Open Link - Otwórz odsyłacz - - - Open Link as New Page - Otwórz odsyłacz na nowej stronie - - - Copy Link - Skopiuj odsyłacz - - - Copy - Skopiuj - - - Reload - Przeładuj - - - Error loading: %1 - Błąd ładowania: %1 - - - Unknown or unsupported Content! - Nieznana lub nieobsługiwana zawartość! - Unknown or unsupported content. Nieznana lub nieobsługiwana zawartość. @@ -13223,40 +11008,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Zamknij wszystko z wyjątkiem %1 - - Mercurial::Internal::CloneWizard - - Cloning - Klonowanie - - - Cloning started... - Rozpoczęto klonowanie... - - - Clones a Mercurial repository and tries to load the contained project. - Klonuje repozytorium Mercurial i próbuje załadować zawarty projekt. - - - Mercurial Clone - Klon repozytorium Mercurial - - - - Mercurial::Internal::CloneWizardPage - - Location - Położenie - - - Specify repository URL, checkout directory and path. - Podaj URL repozytorium, nazwę katalogu z kopią roboczą i ścieżkę do niego. - - - Clone URL: - URL klonu: - - Mercurial::Internal::CommitEditor @@ -13290,17 +11041,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Mercurial - - Mercurial::Internal::MercurialEditor - - Annotate %1 - Dołącz adnotację do %1 - - - Annotate parent revision %1 - Dołącz adnotację do poprawki macierzystej "%1" - - Mercurial::Internal::MercurialPlugin @@ -13323,10 +11063,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Diff "%1" Pokaż różnice w "%1" - - Alt+H,Alt+D - Alt+H,Alt+D - Meta+H,Meta+D Meta+H,Meta+D @@ -13339,10 +11075,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Log "%1" Log "%1" - - Alt+H,Alt+L - Alt+H,Alt+L - Meta+H,Meta+L Meta+H,Meta+L @@ -13355,18 +11087,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Status "%1" Stan "%1" - - Alt+H,Alt+S - Alt+H,Alt+S - - - Clones a Mercurial repository and tries to load the contained project. - Klonuje repozytorium Mercurial i próbuje załadować zawarty projekt. - - - Mercurial Clone - Klon repozytorium Mercurial - Alt+G,Alt+D Alt+G,Alt+D @@ -13451,10 +11171,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Commit... Wrzuć... - - Alt+H,Alt+C - Alt+H,Alt+C - Meta+H,Meta+C Meta+H,Meta+C @@ -13538,8 +11254,8 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Nie podano programu do uruchomienia - "%1" timed out after %2ms. - "%1" bez odpowiedzi po %2ms. + "%1" timed out after %2 ms. + "%1" bez odpowiedzi po %2 ms. Unable to launch "%1": %2 @@ -13567,19 +11283,8 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Repozytorium "%1" nie istnieje. - - Perforce::Internal::PerforceEditor - - Annotate change list "%1" - Dołącz adnotację do listy zmian "%1" - - ProjectExplorer::BaseProjectWizardDialog - - Location - Położenie - untitled File path suggestion for a new project. If you choose to translate it, make sure it is a valid path name without blanks and using only ascii chars. @@ -13626,13 +11331,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Środowisko budowania - - BuildSettingsPanelFactory - - Build Settings - Ustawienia budowania - - BuildSettingsPanel @@ -13642,19 +11340,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki ProjectExplorer::CustomWizard - - Details - Default short title for custom wizard page to be shown in the progress pane of the wizard. - Szczegóły - - - Creates a plain C project using qmake, not using the Qt library. - Tworzy zwykły projekt C używający qmake, nieużywający biblioteki Qt. - - - Creates a plain C++ project using qmake, not using the Qt library. - Tworzy zwykły projekt C++ używający qmake, nieużywający biblioteki Qt. - URI: URI: @@ -13671,90 +11356,14 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki URL: URL: - - Creates an application descriptor file. - Tworzy plik deskryptora aplikacji. - - - Application descriptor - Deskryptor aplikacji - - - BlackBerry - BlackBerry - - - Creates an Qt5 application descriptor file. - Tworzy plik deskryptora aplikacji Qt5. - - - Qt5 Application descriptor - Deskryptor aplikacji Qt5 - - - Plain C Project - Zwykły projekt C - - - Non-Qt Project - Projekty nieużywające Qt - Other Project Inne projekty - - Creates a plain C project using CMake, not using the Qt library. - Tworzy zwykły projekt C używający CMake, nieużywający biblioteki Qt. - - - Plain C Project (CMake Build) - Zwykły projekt C (używający CMake) - - - Creates a plain C project using qbs. - Tworzy zwykły projekt C używający qbs. - - - Plain C Project (Qbs Build) - Zwykły projekt C (używający Qbs) - - - Creates a plain (non-Qt) C++ project using qbs. - Tworzy zwykły projekt C++ (bez Qt) używający qbs. - - - Plain C++ Project (Qbs Build) - Zwykły projekt C++ (używający Qbs) - - - Plain C++ Project - Zwykły projekt C++ - - - Creates a plain C++ project using CMake, not using the Qt library. - Tworzy zwykły projekt C++ używający CMake, nieużywający biblioteki Qt. - - - Plain C++ Project (CMake Build) - Zwykły projekt C++ (używający CMake) - - - Libraries - Biblioteki - Qt Creator Plugin Wtyczka Qt Creatora - - Creates a Cascades application for BlackBerry 10. - Tworzy aplikację Cascades dla BlackBerry 10. - - - BlackBerry Cascades Application - Aplikacja Cascades dla BlackBerry - Creates a qmake-based test project for which a code snippet can be entered. Tworzy testowy projekt, bazujący na qmake, w który można wstawić urywek kodu. @@ -13763,10 +11372,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Code Snippet Urywek kodu - - Other Projects - Inne projekty - Snippet Parameters Parametry urywka @@ -13882,13 +11487,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki <Brak innych projektów w tej sesji> - - DependenciesPanel - - Dependencies - Zależności - - DependenciesPanelFactory @@ -13903,13 +11501,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Edytor - - EditorSettingsPanel - - Editor - Edytor - - ProjectExplorer::Internal::FolderNavigationWidget @@ -13920,10 +11511,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Open "%1" Otwórz "%1" - - Open with - Otwórz przy pomocy - Open Parent Folder Otwórz katalog wyżej @@ -14061,14 +11648,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Library Biblioteka - - Applications - Aplikacje - - - Libraries - Biblioteki - Import Project Projekty zaimportowane @@ -14212,14 +11791,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Title of navigator view Nawigator - - Become first sibling of parent (CTRL + Left). - Przenieś jako najbliższe rodzeństwo rodzica (CTRL + Left). - - - Become child of first sibling (CTRL + Right). - Przenieś jako dziecko najbliższego rodzeństwa (CTRL + Right). - Become last sibling of parent (CTRL + Left). Przenieś jako rodzeństwo rodzica i umieść przed nim (CTRL + Left). @@ -14338,14 +11909,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki QmlJSEditor::Internal::QmlJSEditorPlugin - - Creates a JavaScript file. - Tworzy plik JavaScript. - - - JS File - Plik JS - Rename Symbol Under Cursor Zmień nazwę symbolu pod kursorem @@ -14366,6 +11929,10 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Reformat File Przeformatuj plik + + Inspect API for Element Under Cursor + + QML QML @@ -14378,22 +11945,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Find Usages Znajdź użycia - - Creates a QML file with boilerplate code, starting with "import QtQuick 1.1". - Tworzy plik QML z wstępnym kodem rozpoczynającym się od "import QtQuick 1.1". - - - QML File (Qt Quick 1) - Plik QML (Qt Quick 1) - - - Creates a QML file with boilerplate code, starting with "import QtQuick 2.0". - Tworzy plik QML z wstępnym kodem rozpoczynającym się od "import QtQuick 2.0". - - - QML File (Qt Quick 2) - Plik QML (Qt Quick 2) - Ctrl+Shift+U Ctrl+Shift+U @@ -14428,10 +11979,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki QmlProjectManager::Internal::Manager - - Failed opening project '%1': Project is not a file - Nie można otworzyć projektu "%1": Ścieżka projektu nie wskazuje na plik - Failed opening project "%1": Project is not a file. Nie można otworzyć projektu "%1": Ścieżka projektu nie wskazuje na plik. @@ -14494,21 +12041,13 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki System System - - Qt %1 in PATH (%2) - Qt %1 w PATH (%2) - - - Qt %1 (%2) - Qt %1 (%2) - Qt %{Qt:Version} in PATH (%2) - Qt %{Qt:Wersja} w PATH (%2) + Qt %{Qt:Wersja} w PATH (%2) Qt %{Qt:Version} (%2) - + Qt %{Qt:Version} dla %2 Qt version is not properly installed, please run make install @@ -14546,22 +12085,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki qmake "%1" is not an executable. qmake "%1" nie jest plikiem wykonywalnym. - - Cannot start '%1': %2 - Nie można uruchomić "%1": %2 - - - Timeout running '%1' (%2 ms). - Przekroczony czas oczekiwania na odpowiedź od uruchomionego "%1" (%2 ms). - - - '%1' crashed. - "%1" zakończył pracę błędem. - - - qmake '%1' is not an executable. - qmake '%1' nie jest plikiem wykonywalnym. - No qmlviewer installed. Brak zainstalowanego "qmlviewer". @@ -14575,21 +12098,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki No qmlscene installed. Brak zainstalowanego "qmlscene". - - Qt Simulator - Qt Version is meant for Qt Simulator - Symulator Qt - - - Cannot determine the installation path for Qt version '%1'. - Nie można określić ścieżki instalacji Qt wersji "%1". - - - Building helper(s) with toolchain '%1'... - - Budowanie asystenta z zestawem narzędzi "%1"... - - Cannot determine the installation path for Qt version "%1". Nie można określić ścieżki instalacji Qt w wersji "%1". @@ -14619,17 +12127,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Wbudowany linux - - QmakeProjectManager::Internal::BaseQmakeProjectWizardDialog - - Modules - Moduły - - - Kits - Zestawy narzędzi - - QmakeProjectManager::Internal::TestWizard @@ -14647,17 +12144,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki This wizard generates a Qt Unit Test consisting of a single source file with a test class. Ten kreator generuje test jednostkowy Qt składający się z pojedynczego pliku źródłowego z klasą testową. - - Details - Szczegóły - - - - Subversion::Internal::SubversionEditor - - Annotate revision "%1" - Dołącz adnotację do poprawki "%1" - TextEditor @@ -14672,18 +12158,10 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Version Control System kontroli wersji - - The file '%1' could not be deleted. - Nie można usunąć pliku "%1". - Choose Repository Directory Wybierz katalog repozytorium - - The directory '%1' is already managed by a version control system (%2). Would you like to specify another directory? - Katalog "%1" jest już zarządzany przez system kontroli wersji (%2). Czy chcesz podać inny katalog? - The file "%1" could not be deleted. Nie można usunąć pliku "%1". @@ -14704,26 +12182,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Repository Creation Failed Błąd podczas tworzenia repozytorium - - There is no patch-command configured in the common 'Version Control' settings. - Brak skonfigurowanej komendy "patch" we wspólnych ustawieniach systemów kontroli wersji. - - - Unable to launch '%1': %2 - Nie można uruchomić "%1": %2 - - - A timeout occurred running '%1' - Przekroczony czas oczekiwania na odpowiedź od uruchomionego "%1" - - - '%1' crashed. - "%1" zakończył pracę błędem. - - - '%1' failed (exit code %2). - '%1' zakończone błędem (kod wyjściowy %2). - A version control repository has been created in %1. Repozytorium systemu kontroli wersji została utworzona w %1. @@ -14819,10 +12277,6 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki TextEditSpecifics - - Format - Format - Text Color Kolor tekstu @@ -14831,17 +12285,9 @@ Użyj właściwości importPaths dla projektów qmlproject aby dodać ścieżki Selection Color Kolor selekcji - - Text Input - Wejście tekstu - Utils::FancyMainWindow - - Locked - Zablokowany - Reset to Default Layout Przywróć domyślne rozmieszczenie @@ -14913,23 +12359,12 @@ które można ustawić poniżej. %1 - Błąd konfiguracji - - CppEditor - - C++ - C++ - - Debugger::Internal::PdbEngine Running requested... Zażądano uruchomienia... - - Unable to start pdb '%1': %2 - Nie można rozpocząć pdb "%1": %2 - Adapter start failed Nie można uruchomić adaptera @@ -14938,38 +12373,14 @@ które można ustawić poniżej. Python Error Błąd Pythona - - '%1' contains no identifier - "%1" nie zawiera identyfikatora - - - String literal %1 - Literał łańcuchowy %1 - - - Cowardly refusing to evaluate expression '%1' with potential side effects - Tchórzliwa odmowa obliczenia wyrażenia '%1' z możliwymi efektami ubocznymi - Pdb I/O Error Błąd wejścia / wyjścia Pdb - - The Pdb process failed to start. Either the invoked program '%1' is missing, or you may have insufficient permissions to invoke the program. - Nie można rozpocząć procesu Pdb. Brak programu "%1" albo brak wymaganych uprawnień aby go uruchomić. - Unable to start pdb "%1": %2 Nie można rozpocząć pdb "%1": %2 - - "%1" contains no identifier - "%1" nie zawiera identyfikatora - - - Cowardly refusing to evaluate expression "%1" with potential side effects - Tchórzliwa odmowa obliczenia wyrażenia "%1" z możliwymi efektami ubocznymi - The Pdb process failed to start. Either the invoked program "%1" is missing, or you may have insufficient permissions to invoke the program. Nie można rozpocząć procesu Pdb. Brak programu "%1" albo brak wymaganych uprawnień aby go uruchomić. @@ -15005,10 +12416,6 @@ które można ustawić poniżej. Switch To Przełącz sesję - - Switch to - Przełącz sesję - ProjectExplorer::Internal::TargetSelector @@ -15047,10 +12454,6 @@ które można ustawić poniżej. QmakeProjectManager::QmakeProject - - Evaluating - Ewaluowanie - Reading Project "%1" Odczyt projektu "%1" @@ -15071,18 +12474,6 @@ które można ustawić poniżej. The .pro file "%1" could not be parsed. Plik .pro "%1" nie może zostać sparsowany. - - The .pro file '%1' does not exist. - Plik projektu "%1" nie istnieje. - - - The .pro file '%1' is not part of the project. - Plik projektu "%1" nie jest częścią projektu. - - - The .pro file '%1' could not be parsed. - Plik projektu "%1" nie może zostać sparsowany. - QmakeProjectManager::QtVersion @@ -15165,14 +12556,6 @@ które można ustawić poniżej. %1 already exists. %1 już istnieje. - - Warning - Ostrzeżenie - - - Reparenting the component %1 here will cause the component %2 to be deleted. Do you want to proceed? - Przeniesienie komponentu %1 tutaj spowoduje usunięcie komponentu %2. Czy kontynuować? - QmlDesigner::InvalidArgumentException @@ -15258,10 +12641,6 @@ Identyfikatory muszą rozpoczynać się małą literą. Convert connect() to Qt 5 Style Skonwertuj "connect()" do stylu Qt 5 - - #include Header File - #include plik nagłówkowy - Add Local Declaration Dodaj lokalną deklarację @@ -15333,10 +12712,6 @@ Identyfikatory muszą rozpoczynać się małą literą. GenericProjectManager::Internal::Manager - - Failed opening project '%1': Project is not a file - Nie można otworzyć projektu "%1": Ścieżka projektu nie wskazuje na plik - Failed opening project "%1": Project is not a file. Nie można otworzyć projektu "%1": Ścieżka projektu nie wskazuje na plik. @@ -15372,25 +12747,6 @@ Identyfikatory muszą rozpoczynać się małą literą. Nieprzefiltrowane - - FakeVim::Internal::FakeVimHandler::Private - - Recursive mapping - Mapowanie rekurencyjne - - - Type Alt-V, Alt-V to quit FakeVim mode. - Naciśnij Alt-V, Alt-V aby wyjść z trybu FakeVim. - - - [New] - [Nowy] - - - Not an editor command: %1 - %1 nie jest komendą edytora - - ContextPaneWidgetBorderImage @@ -15549,10 +12905,6 @@ Identyfikatory muszą rozpoczynać się małą literą. ClassView::Internal::NavigationWidget - - Form - Formularz - Show Subprojects Pokaż podprojekty @@ -15560,15 +12912,6 @@ Identyfikatory muszą rozpoczynać się małą literą. Help::Internal::RemoteFilterOptions - - Prefix: - Przedrostek: - - - Limit to prefix - Ogranicz aktywność filtru: -aktywny tylko po wpisaniu przedrostka - Add Dodaj @@ -15581,10 +12924,6 @@ aktywny tylko po wpisaniu przedrostka Double-click to edit item. Kliknij dwukrotnie aby zmodyfikować element. - - Edit Filter Configuration - Konfiguracja filtra - ImageViewer::Internal::ImageViewerToolbar @@ -15765,26 +13104,6 @@ aktywny tylko po wpisaniu przedrostka Utils::SynchronousProcess - - The command '%1' finished successfully. - Komenda "%1" poprawnie zakończona. - - - The command '%1' terminated with exit code %2. - Komenda "%1" zakończona kodem wyjściowym %2. - - - The command '%1' terminated abnormally. - Komenda "%1" niepoprawnie zakończona. - - - The command '%1' could not be started. - Komenda "%1" nie może zostać uruchomiona. - - - The command '%1' did not respond within the timeout limit (%2 ms). - Komenda "%1" nie odpowiedziała w określonym czasie (%2 ms). - The command "%1" finished successfully. Komenda "%1" poprawnie zakończona. @@ -15802,8 +13121,8 @@ aktywny tylko po wpisaniu przedrostka Komenda "%1" nie może zostać uruchomiona. - The command "%1" did not respond within the timeout limit (%2 ms). - Komenda "%1" nie odpowiedziała w określonym czasie (%2 ms). + The command "%1" did not respond within the timeout limit (%2 s). + Komenda "%1" nie odpowiedziała w określonym czasie (%2 s). Process not Responding @@ -15817,10 +13136,6 @@ aktywny tylko po wpisaniu przedrostka The process "%1" is not responding. Proces "%1" nie odpowiada. - - The process '%1' is not responding. - Proces "%1" nie odpowiada. - Would you like to terminate it? Czy zakończyć go? @@ -15835,10 +13150,6 @@ aktywny tylko po wpisaniu przedrostka Core::Internal::CommandComboBox - - Activate %1 Pane - Uaktywnij panel %1 - Activate %1 View Uaktywnij widok %1 @@ -15846,18 +13157,6 @@ aktywny tylko po wpisaniu przedrostka Core::NavigationWidget - - Activate %1 Pane - Uaktywnij panel %1 - - - Hide Sidebar - Ukryj boczny pasek - - - Show Sidebar - Pokaż boczny pasek - Activate %1 View Uaktywnij widok %1 @@ -15872,6 +13171,11 @@ Server list was %2. Lista klienta: %1. Lista serwera: %2. + + Server requested invalid combination of key exchange and hashing algorithms. Key exchange algorithm list was: %1. +Hashing algorithm list was %2. + + CodePaster::NetworkProtocol @@ -15912,10 +13216,6 @@ Lista serwera: %2. C++ Symbols Symbole C++ - - Searching - Przeszukiwanie - Searching for Symbol Wyszukiwanie symbolu @@ -16046,18 +13346,6 @@ Flagi: %3 Break when JavaScript exception is thrown Przerwij po rzuceniu wyjątku JavaScript - - <html><head/><body><p>Determines how the path is specified when setting breakpoints:</p><ul><li><i>Use Engine Default</i>: Preferred setting of the debugger engine.</li><li><i>Use Full Path</i>: Pass full path, avoiding ambiguities should files of the same name exist in several modules. This is the engine default for CDB and LLDB.</li><li><i>Use File Name</i>: 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.</li></ul></body></html> - <html><head/><body><p>Określa sposób wyznaczania ścieżki podczas ustawiania pułapek:</p><ul><li><i>Używaj domyślnego silnika</i>: preferowane ustawienie silnika debuggera.</li><li><i>Używaj pełnej ścieżki</i>: przekazuj pełną ścieżkę, aby uniknąć niejednoznaczności, gdy istnieją pliki o tej samej nazwie w różnych modułach. Jest to domyślne ustawienie dla silników CDB i LLDB.</li><li><i>Używaj nazwy pliku</i>: przekazuj tylko nazwę pliku. Jest to pomocne w trakcie używania drzewa źródeł, którego położenie jest inne niż użyte podczas budowania modułu. Jest to domyślne ustawienie silnika GDB, ponieważ używanie pełnych ścieżek może go spowolnić.</li></ul></body></html> - - - Specifying the module (base name of the library or executable) -for function or file type breakpoints can significantly speed up -debugger start-up times (CDB, LLDB). - Podanie modułu (nazwy bazowej biblioteki lub pliku wykonywalnego) -dla funkcji bądź pułapek może znacząco przyspieszyć uruchomienie -debuggera (CDB, LLDB). - Edit Breakpoint Properties Zmodyfikuj właściwości pułapki @@ -16102,10 +13390,20 @@ debuggera (CDB, LLDB). &One shot only: Tylko &jeden raz: + + <p>Determines how the path is specified when setting breakpoints:</p><ul><li><i>Use Engine Default</i>: Preferred setting of the debugger engine.</li><li><i>Use Full Path</i>: Pass full path, avoiding ambiguities should files of the same name exist in several modules. This is the engine default for CDB and LLDB.</li><li><i>Use File Name</i>: 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.</li></ul> + <p>Określa sposób wyznaczania ścieżki podczas ustawiania pułapek:</p><ul><li><i>Używaj domyślnego silnika</i>: preferowane ustawienie silnika debuggera.</li><li><i>Używaj pełnej ścieżki</i>: przekazuj pełną ścieżkę, aby uniknąć niejednoznaczności, gdy istnieją pliki o tej samej nazwie w różnych modułach. Jest to domyślne ustawienie dla silników CDB i LLDB.</li><li><i>Używaj nazwy pliku</i>: przekazuj tylko nazwę pliku. Jest to pomocne w trakcie używania drzewa źródeł, którego położenie jest inne niż użyte podczas budowania modułu. Jest to domyślne ustawienie silnika GDB, ponieważ używanie pełnych ścieżek może go spowolnić.</li></ul> + Pat&h: Ś&cieżka: + + <p>Specifying the module (base name of the library or executable) for function or file type breakpoints can significantly speed up debugger start-up times (CDB, LLDB). + <p>Podanie modułu (nazwy bazowej biblioteki lub pliku wykonywalnego) +dla funkcji bądź pułapek może znacząco przyspieszyć uruchomienie +debuggera (CDB, LLDB). + &Module: &Moduł: @@ -16122,12 +13420,6 @@ debuggera (CDB, LLDB). Use File Name Używaj nazwy pliku - - Debugger commands to be executed when the breakpoint is hit. -This feature is only available for GDB. - Komendy debuggera, które będą wykonane, gdy pułapka zostanie osiągnięta. -Ta funkcja jest dostępna jedynie dla GDB. - &Commands: &Komendy: @@ -16148,6 +13440,11 @@ Ta funkcja jest dostępna jedynie dla GDB. &Expression: Wyraż&enie: + + <p>Debugger commands to be executed when the breakpoint is hit. This feature is only available for GDB. + <p>Komendy debuggera, które będą wykonane, gdy pułapka zostanie osiągnięta. +Ta funkcja jest dostępna jedynie dla GDB. + &Message: K&omunikat: @@ -16155,10 +13452,6 @@ Ta funkcja jest dostępna jedynie dla GDB. Debugger::Internal::CdbEngine - - The console process '%1' could not be started. - Nie można uruchomić procesu konsolowego "%1". - The console process "%1" could not be started. Nie można uruchomić procesu konsolowego "%1". @@ -16179,26 +13472,10 @@ Ta funkcja jest dostępna jedynie dla GDB. Separate Window Oddzielne okno - - Image - Obrazek - There is no CDB executable specified. Brak podanego pliku wykonywalnego CDB. - - CDB crashed - CDB zakończone błędem - - - CDB exited (%1) - CDB zakończył pracę (%1) - - - Unable to add expression - Nie można dodać wyrażenia - Interrupting is not possible in remote sessions. Przerywanie nie jest możliwe w zdalnych sesjach. @@ -16216,8 +13493,12 @@ Ta funkcja jest dostępna jedynie dla GDB. "Wybierz widżet do obserwowania": nie obsługiwane w stanie "%1". - Conditional breakpoint %1 (%2) in thread %3 triggered, examining expression '%4'. - Osiągnięto pułapkę warunkową %1 (%2) w wątku %3, sprawdzanie wyrażenia "%4". + Internal error: Invalid start parameters passed for the CDB engine. + Błąd wewnętrzny: niepoprawny parametr startowy przekazany do silnika CDB. + + + Unsupported CDB host system. + Malformed stop response received. @@ -16227,6 +13508,10 @@ Ta funkcja jest dostępna jedynie dla GDB. Switching to main thread... Przełączanie do głównego wątku... + + Module loaded: + Załadowany moduł: + Value %1 obtained from evaluating the condition of breakpoint %2, stopping. Wartość %1 otrzymana po przetworzeniu warunku pułapki %2, zatrzymano. @@ -16239,10 +13524,6 @@ Ta funkcja jest dostępna jedynie dla GDB. "Select Widget to Watch": Please stop the application first. "Wybierz widżet do obserwowania": Najpierw zatrzymaj aplikację. - - "Select Widget to Watch": Not supported in state '%1'. - "Wybierz widżet do obserwowania": Nie obsługiwane w stanie "%1". - Debugger::Internal::CacheDirectoryDialog @@ -16266,215 +13547,10 @@ Ta funkcja jest dostępna jedynie dla GDB. The folder "%1" could not be created. Nie można utworzyć katalogu "%1". - - A file named '%1' already exists. - Plik o nazwie "%1" już istnieje. - Cannot Create Nie można utworzyć - - The folder '%1' could not be created. - Nie można utworzyć katalogu "%1". - - - - Debugger::DebuggerEngine - - Launching - Uruchamianie - - - Setup failed. - Niepoprawna konfiguracja. - - - Loading finished. - Zakończono ładowanie. - - - Run failed. - Nieudane uruchomienie. - - - Running. - Uruchomiono. - - - Run requested... - Zażądano uruchomienia... - - - This debugger cannot handle user input. - Ten debugger nie obsługuje poleceń wejściowych użytkownika. - - - Data breakpoint %1 (%2) at %3 triggered. - Osiągnięto pułapkę warunkową %1 (%2) przy %3. - - - Internal data breakpoint %1 at %2 triggered. - Osiągnięto wewnętrzną pułapkę warunkową %1 przy %2. - - - Data breakpoint %1 (%2) at %3 in thread %4 triggered. - Osiągnięto pułapkę warunkową %1 (%2) przy %3 w wątku %4. - - - Internal data breakpoint %1 at %2 in thread %3 triggered. - Osiągnięto wewnętrzna pułapka warunkowa %1 przy %2 w wątku %3. - - - Data breakpoint %1 (%2) at 0x%3 triggered. - Osiągnięto pułapkę warunkową %1 (%2) pod 0x%3. - - - Internal data breakpoint %1 at 0x%2 triggered. - Osiągnięto wewnętrzną pułapkę warunkową %1 pod 0x%2. - - - Data breakpoint %1 (%2) at 0x%3 in thread %4 triggered. - Osiągnięto pułapkę warunkową %1 (%2) pod 0x%3 w wątku %4. - - - Internal data breakpoint %1 at 0x%2 in thread %3 triggered. - Osiągnięto wewnętrzną pułapkę warunkową %1 pod 0x%2 w wątku %3. - - - Stopped at breakpoint %1 (%2) in thread %3. - Zatrzymano w pułapce %1 (%2) w wątku %3. - - - Stopped at internal breakpoint %1 in thread %2. - Zatrzymano w wewnętrznej pułapce %1 w wątku %2. - - - <Unknown> - name - <nieznana> - - - <Unknown> - meaning - Still not translatable in Polish: unknown meaning of WHAT? - <nieznane> - - - Found. - Znaleziono. - - - Not found. - Nie znaleziono. - - - Section %1: %2 - Sekcja %1: %2 - - - Warning - Ostrzeżenie - - - This does not seem to be a "Debug" build. -Setting breakpoints by file name and line number may fail. - To nie jest wersja debugowa. -Ustawianie pułapek w liniach plików może się nie udać. - - - Stopped. - Zatrzymano. - - - Launching Debugger - Uruchamianie debuggera - - - Stopped: "%1" - Zatrzymano: "%1" - - - Stopped: %1 (Signal %2). - Zatrzymano: %1 (sygnał %2). - - - Stopped in thread %1 by: %2. - Zatrzymano w wątku %1 przez %2. - - - Interrupted. - Przerwano. - - - <p>The inferior stopped because it received a signal from the Operating System.<p><table><tr><td>Signal name : </td><td>%1</td></tr><tr><td>Signal meaning : </td><td>%2</td></tr></table> - <p>Podproces zatrzymany, ponieważ otrzymał on sygnał z systemu operacyjnego.<p><table><tr><td>Nazwa sygnału: </td><td>%1</td></tr><tr><td>Znaczenie sygnału: </td><td>%2</td></tr></table> - - - Signal received - Otrzymano sygnał - - - <p>The inferior stopped because it triggered an exception.<p>%1 - <p>Podproces zatrzymany z powodu rzuconego wyjątku.<p>%1 - - - Exception Triggered - Rzucono wyjątek - - - Taking notice of pid %1 - Zwracanie uwagi na pid %1 - - - Run to Address 0x%1 - Uruchom do adresu 0x%1 - - - Run to Line %1 - Uruchom do linii %1 - - - Jump to Address 0x%1 - Skocz do adresu 0x%1 - - - Jump to Line %1 - Skocz do linii %1 - - - - Debugger::DebuggerPlugin - - Debug - Debug - - - Option '%1' is missing the parameter. - Brak parametru w opcji "%1". - - - Only one executable allowed! - Dozwolony jest tylko jeden plik wykonywalny! - - - The parameter '%1' of option '%2' does not match the pattern <handle>:<pid>. - Parametr "%1" opcji "%2" nie pasuje do wzoru <uchwyt>:<pid>. - - - Invalid debugger option: %1 - Niepoprawna opcja debuggera: %1 - - - Some breakpoints cannot be handled by the debugger languages currently active, and will be ignored. -Affected are breakpoints %1 - Niektóre pułapki nie mogą być obsłużone przez aktywne języki debuggera i zostaną zignorowane. -Dotyczy to następujących pułapek: %1 - - - Not enough free ports for QML debugging. - Niewystarczająca ilość wolnych portów do debugowania QML. - Debugger::DebuggerRunControl @@ -16553,7 +13629,7 @@ Dotyczy to następujących pułapek: %1 Log File - Plik loga + Plik logu @@ -16569,17 +13645,6 @@ Dotyczy to następujących pułapek: %1 Git::Internal::SettingsPageWidget - - Set the environment variable HOME to '%1' -(%2). -This causes msysgit to look for the SSH-keys in that location -instead of its installation directory when run outside git bash. - Ustaw zmienną środowiskową HOME na "%1" -(%2). -Spowoduje to, że msysgit uruchomiony na zewnątrz powłoki git -zacznie poszukiwać kluczy SSH w tym położeniu -zamiast w jego katalogu instalacyjnym. - Set the environment variable HOME to "%1" (%2). @@ -16599,26 +13664,11 @@ zamiast w jego katalogu instalacyjnym. currently set to "%1" aktualnie ustawiona na "%1" - - currently set to '%1' - aktualnie ustawiona na "%1" - Git Repository Browser Command Komenda przeglądarki repozytorium Git - - Help::Internal::ExternalHelpWindow - - Show Sidebar - Pokazuj boczny pasek - - - Qt Creator Offline Help - Pomoc offline Qt Creatora - - EditorManager @@ -16935,10 +13985,6 @@ zamiast w jego katalogu instalacyjnym. Searching for Usages Wyszukiwanie użyć - - Searching - Przeszukiwanie - QmlJSEditor::QuickFix @@ -16953,18 +13999,6 @@ zamiast w jego katalogu instalacyjnym. Add Library Dodaj bibliotekę - - Type - Typ - - - Details - Szczegóły - - - Summary - Podsumowanie - QmakeProjectManager::Internal::LibraryTypePage @@ -17096,39 +14130,6 @@ Adds the library and include paths to the .pro file. %1 Biblioteka - - QmakeProjectManager::AbstractMobileApp - - Could not open template file '%1'. - Nie można otworzyć pliku z szablonem "%1". - - - - QmakeProjectManager::Internal::QtQuickAppWizardDialog - - New Qt Quick Application - Nowa aplikacja Qt Quick - - - This wizard generates a Qt Quick Application project. - Ten kreator generuje projekt aplikacji Qt Quick. - - - Component Set - Zestaw komponentów - - - - QmakeProjectManager::Internal::QtQuickAppWizard - - Qt Quick Application - Aplikacja Qt Quick - - - Creates a Qt Quick application project that can contain both QML and C++ code. - Tworzy projekt aplikacji Qt Quick, zawierający kod QML i C++. - - TaskList::Internal::StopMonitoringHandler @@ -17140,28 +14141,6 @@ Adds the library and include paths to the .pro file. Zatrzymaj monitorowanie plików zadania. - - TaskList::Internal::TaskFileFactory - - Task file reader - Czytnik plików z zadaniami - - - File Error - Błąd pliku - - - - TaskList::TaskListPlugin - - Cannot open task file %1: %2 - Nie można otworzyć pliku z zadaniem %1: %2 - - - My Tasks - Moje zadania - - TextEditor::HighlighterSettingsPage @@ -17244,33 +14223,6 @@ Adds the library and include paths to the .pro file. Pobierz zaznaczone definicje - - TextEditor::Internal::Manager - - Registering definitions - Rejestrowanie definicji - - - Downloading definitions - Pobieranie definicji - - - Error downloading selected definition(s). - Błąd pobierania wybranych definicji. - - - Error downloading one or more definitions. - Błąd pobierania jednej lub wielu definicji. - - - Please check the directory's access rights. - Sprawdź prawa dostępu do katalogu. - - - Download Error - Błąd pobierania - - TextEditor::Internal::OutlineWidgetStack @@ -17293,17 +14245,6 @@ Adds the library and include paths to the .pro file. Konspekt - - TextEditor::Internal::PlainTextEditorFactory - - A highlight definition was not found for this file. Would you like to try to find one? - Definicja podświetleń nie została znaleziona. Czy chcesz spróbować ją znaleźć? - - - Show Highlighter Options... - Pokaż opcje podświetlania... - - ProjectExplorer::BuildableHelperLibrary @@ -17311,8 +14252,8 @@ Adds the library and include paths to the .pro file. Nie można uruchomić procesu: %1 - Timeout after %1s. - Bez odpowiedzi po %1s. + Timeout after %1 s. + Bez odpowiedzi po %1 s. The process crashed. @@ -17332,16 +14273,6 @@ Adds the library and include paths to the .pro file. Building helper "%1" in %2 Budowanie asystenta "%1" w %2 - - - - Error running '%1' in %2: %3 - Błąd uruchamiania "%1" w %2: %3 - - - Building helper '%1' in %2 - - Budowanie asystenta "%1" w %2 @@ -17412,8 +14343,8 @@ Przyczyna: %2 QmakeProjectManager::QmlDumpTool - Only available for Qt for Desktop and Qt for Qt Simulator. - Dostępne jedynie dla wersji Qt Desktop oraz dla Qt Simulator. + Only available for Qt for Desktop. + Dostępne jedynie dla wersji Qt Desktop. Only available for Qt 4.7.1 or newer. @@ -17434,10 +14365,6 @@ Przyczyna: %2 QmlDumpBuildTask - - Building helper - Budowanie asystenta - Building QML Helpers Budowanie asystentów QML @@ -17480,73 +14407,6 @@ Local commits are not pushed to the master branch until a normal commit is perfo Zmiany wrzucone lokalnie nie są wrzucane do głównej gałęzi, dopóki nie dokonano zwykłego wrzucenia. - - Bazaar::Internal::CloneOptionsPanel - - Options - Opcje - - - Use existing directory - Użyj istniejącego katalogu - - - Stacked - - - - Standalone - - - - Bind new branch to source location - Powiąż nową gałąź z położeniem źródeł - - - Switch checkout - Przełącz kopię roboczą - - - Hardlink - - - - No working-tree - Bez kopii roboczej - - - Revision: - Poprawka: - - - By default, branch will fail if the target directory exists, but does not already have a control directory. -This flag will allow branch to proceed. - Who "does not have"? A branch or the target directory? - Domyślnie, utworzenie gałęzi nie powiedzie się, jeśli docelowy katalog istnieje -a gałąź nie ma katalogu kontrolnego. Opcja ta umożliwia utworzenie gałęzi w takim przypadku. - - - Creates a stacked branch referring to the source branch. -The new branch will depend on the availability of the source branch for all operations. - - - - Does not use a shared repository, even if available. - Nie używa dzielonego repozytorium, nawet jeśli jest dostępne. - - - Switches the checkout in the current directory to the new branch. - Przełącza kopię roboczą w bieżącym katalogu do nowej gałęzi. - - - Hard-links working tree files where possible. - - - - Creates a branch without a working-tree. - Tworzy gałąź bez drzewa roboczego. - - Bazaar::Internal::OptionsPage @@ -17587,7 +14447,7 @@ The new branch will depend on the availability of the source branch for all oper Log count: - Licznik loga: + Licznik logu: Timeout: @@ -17817,12 +14677,40 @@ Local pulls are not applied to the master branch. <li>Zastąp selekcję: zastępuje nimi selekcję w bieżącym dokumencie.</li> </ul></body></html> + + Environment: + Środowisko: + + + No changes to apply. + Brak zmian do zastosowania. + + + Change... + Zmień... + Core::VariableChooser - Insert variable - Wstaw zmienną + Insert Variable + Wstaw zmienną + + + Current Value: %1 + Bieżąca wartość: %1 + + + Insert Unexpanded Value + Wstaw zwiniętą wartość + + + Insert "%1" + Wstaw "%1" + + + Insert Expanded Value + Wstaw rozwiniętą wartość Select a variable to insert. @@ -17929,16 +14817,12 @@ Local pulls are not applied to the master branch. Reading only version 1.1 parts. Czytanie fragmentów pochodzących jedynie z wersji 1.1. - - Expected only Property, Method, Signal and Enum object definitions, not '%1'. - Oczekiwano jedynie definicji obiektu Property, Method, Signal lub Enum, a nie "%1". - Expected only Property, Method, Signal and Enum object definitions, not "%1". Oczekiwano jedynie definicji obiektu Property, Method, Signal lub Enum, a nie "%1". - Expected only name, prototype, defaultProperty, attachedType, exports isSingleton, isCreatable, isComposite and exportMetaObjectRevisions script bindings, not "%1". + Expected only name, prototype, defaultProperty, attachedType, exports, isSingleton, isCreatable, isComposite and exportMetaObjectRevisions script bindings, not "%1". @@ -18075,13 +14959,6 @@ Local pulls are not applied to the master branch. <WARTOŚĆ> - - Utils::IpAddressLineEdit - - The IP address is not valid. - Niepoprawny adres IP. - - Utils::QtcProcess @@ -18248,13 +15125,6 @@ Local pulls are not applied to the master branch. Analizator - - Analyzer::Internal::AnalyzerMode - - Analyze - Analiza - - Analyzer::Internal::AnalyzerPlugin @@ -18270,27 +15140,8 @@ Local pulls are not applied to the master branch. Bazaar - - Bazaar::Internal::BazaarEditor - - Annotate %1 - Dołącz adnotację do %1 - - - Annotate parent revision %1 - Dołącz adnotację do poprawki macierzystej "%1" - - Bazaar::Internal::BazaarPlugin - - Clones a Bazaar branch and tries to load the contained project. - Klonuje repozytorium Bazaar i próbuje załadować zawarty projekt. - - - Bazaar Clone (Or Branch) - Klon repozytorium (lub gałęzi) Bazaar - Bazaar Bazaar @@ -18472,40 +15323,6 @@ Local pulls are not applied to the master branch. Błąd sprawdzania opisu. Czy kontynuować? - - Bazaar::Internal::CloneWizard - - Cloning - Klonowanie - - - Cloning started... - Rozpoczęto klonowanie... - - - Clones a Bazaar branch and tries to load the contained project. - Klonuje repozytorium Bazaar i próbuje załadować zawarty projekt. - - - Bazaar Clone (Or Branch) - Klon repozytorium Bazaar (albo gałęzi) - - - - Bazaar::Internal::CloneWizardPage - - Location - Położenie - - - Specify repository URL, clone directory and path. - Podaj URL repozytorium, katalogu klonu i ścieżkę do niego. - - - Clone URL: - URL klonu: - - Bazaar::Internal::CommitEditor @@ -18530,10 +15347,6 @@ Local pulls are not applied to the master branch. Failed opening project "%1": Project is not a file Nie można otworzyć projektu "%1": Ścieżka projektu nie wskazuje na plik - - Failed opening project '%1': Project is not a file - Nie można otworzyć projektu "%1": Ścieżka projektu nie wskazuje na plik - Core::Internal::ExternalToolModel @@ -18565,18 +15378,6 @@ Local pulls are not applied to the master branch. Core::Internal::ExternalToolRunner - - Could not find executable for '%1' (expanded '%2') - Nie można znaleźć pliku wykonywalnego dla "%1" (w rozwinięciu "%2") - - - Starting external tool '%1' %2 - Uruchamianie narzędzia zewnętrznego "%1" %2 - - - '%1' finished - Zakończono "%1" - Could not find executable for "%1" (expanded "%2") Nie można znaleźć pliku wykonywalnego dla "%1" (w rozwinięciu "%2") @@ -18612,8 +15413,8 @@ Local pulls are not applied to the master branch. Błąd - Not a valid byte pattern. - Niepoprawny wzór bajtowy. + Internal error: Type is invalid + Błąd wewnętrzny: niepoprawny typ Dialog @@ -18623,10 +15424,6 @@ Local pulls are not applied to the master branch. Value: Wartość: - - Type - Typ - String Ciąg znakowy @@ -18639,14 +15436,6 @@ Local pulls are not applied to the master branch. Use Recommended Używaj rekomendowanych - - Start range: - Początek zakresu: - - - End range: - Koniec zakresu: - Priority: Priorytet: @@ -18655,59 +15444,79 @@ Local pulls are not applied to the master branch. <i>Note: Wide range values might impact Qt Creator's performance when opening files.</i> <i>Uwaga: Szeroki zakres może wpłynąć na wydajność Qt Creatora podczas otwierania plików.</i> - - - Core::Internal::MimeTypeSettingsModel - MIME Type - Typ MIME + <html><head/><body><p>MIME magic data is interpreted as defined by the Shared MIME-info Database specification from <a href="http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html">freedesktop.org</a>.<hr/></p></body></html> + - Handler - Jednostka obsługująca + Type: + Typ: - Undefined - Niezdefiniowana + RegExp + - Invalid MIME Type - Niepoprawny typ MIME + Host16 + - Conflicting pattern(s) will be discarded. - Kolidujące wzory zostaną usunięte. + Host32 + - - %n pattern(s) already in use. - - %n wzór w użyciu. - %n wzory w użyciu. - %n wzorów w użyciu. - + + Big16 + + + + Big32 + + + + Little16 + + + + Little32 + + + + Mask: + Maska: + + + Range start: + Początek zakresu: + + + Range end: + Koniec zakresu: - Core::Internal::MimeTypeSettingsPrivate + Core::Internal::MimeTypeSettingsModel - Error - Błąd + MIME Type + Typ MIME - No MIME type selected. - Nie zaznaczono żadnego typu MIME. + Handler + Jednostka obsługująca - No magic header selected. - Nie zaznaczono żadnego magicznego nagłówka. + Undefined + Niezdefiniowana + + + Core::Internal::MimeTypeSettingsPrivate - MIME Types - Typy MIME + Reset MIME Types + Zresetuj typy MIME - Changes will take effect in the next time you start Qt Creator. - Zmiany zostaną zastosowana przy ponownym uruchomieniu Qt Creatora. + Changes will take effect after Qt Creator restart. + Zmiany zostaną zastosowane przy ponownym uruchomieniu Qt Creatora. @@ -18767,10 +15576,12 @@ do systemu kontroli wersji (%2)? Could not add the file %1 -to version control (%2) +to version control (%2) + Nie można dodać pliku %1 -do systemu kontroli wersji (%2) +do systemu kontroli wersji (%2) + Could not add the following files to version control (%1) @@ -18779,17 +15590,6 @@ do systemu kontroli wersji (%2) %2 - - CppEditor::Internal::CPPEditorWidget - - Sort Alphabetically - Posortuj alfabetycznie - - - &Refactor - &Refaktoryzacja - - CppEditor::Internal::CppOutlineTreeView @@ -18965,10 +15765,6 @@ do systemu kontroli wersji (%2) Set Message Tracepoint at 0x%1... Ustaw komunikat pod 0x%1... - - Start '%1' and break at function 'main()' - Rozpocznij "%1" i zatrzymaj na funkcji "main()" - Save Debugger Log Zachowaj log debuggera @@ -19041,22 +15837,6 @@ do systemu kontroli wersji (%2) Move to Calling Frame Przenieś do wołającej ramki - - From - Od - - - To - Do - - - Flags - Flagi - - - Sections in "%1" - Sekcje w "%1" - Error evaluating command line arguments: %1 Błąd podczas przetwarzania argumentów komendy: %1 @@ -19069,10 +15849,6 @@ do systemu kontroli wersji (%2) Start and Debug External Application... Uruchom i zdebuguj zewnętrzną aplikację... - - Attach to Remote Debug Server... - Dołącz do zdalnego serwera debugowego... - Attach to QML Port... Dołącz do portu QML... @@ -19131,6 +15907,14 @@ Qt Creator nie może się do niego podłączyć. Add Expression Evaluator + + Attach to Running Debug Server... + + + + Start Debug Server Attached to Process... + + Select Wybierz @@ -19195,10 +15979,6 @@ Qt Creator nie może się do niego podłączyć. Load Core File... Załaduj plik zrzutu... - - Start Remote Debug Server Attached to Process... - Uruchom zdalny serwer debugowy dołączony do procesu... - Attach to Running Application... Dołącz do uruchomionej aplikacji... @@ -19279,10 +16059,6 @@ Qt Creator nie może się do niego podłączyć. F9 F9 - - Apply Changes on Save - Zastosuj zmiany przy zachowywaniu - Show Application on Top Pokazuj aplikację na wierzchu @@ -19291,30 +16067,6 @@ Qt Creator nie może się do niego podłączyć. Threads: Wątki: - - Symbol - Symbol - - - Address - Adres - - - Code - Kod - - - Section - Sekcja - - - Name - Nazwa - - - Symbols in "%1" - Symbole w "%1" - Debugger::Internal::DebuggerSourcePathMappingWidget @@ -19351,29 +16103,25 @@ Qt Creator nie może się do niego podłączyć. Mapowanie ścieżek źródłowych - <html><head/><body><p>Mappings of source file folders to be used in the debugger can be entered here.</p><p>This is useful when using a copy of the source tree at a location different from the one at which the modules where built, for example, while doing remote debugging.</p><p>If source is specified as a regular expression by starting it with an open parenthesis, Qt Creator matches the paths in the ELF with the regular expression to automatically determine the source path.</p><p>Example: <b>(/home/.*/Project)/KnownSubDir -> D:\Project</b> will substitute ELF built by any user to your local project directory.</p></body></html> - <html><head/><body><p>Tu można podać mapowanie katalogów plików źródłowych użytych w debuggerze.</p><p>Jest to przydatne podczas używania kopii drzewa źródeł z innego położenia niż to, w którym moduły były zbudowane, np. podczas zdalnego debugowania.</body></html> + <p>Mappings of source file folders to be used in the debugger can be entered here.</p><p>This is useful when using a copy of the source tree at a location different from the one at which the modules where built, for example, while doing remote debugging.</p><p>If source is specified as a regular expression by starting it with an open parenthesis, Qt Creator matches the paths in the ELF with the regular expression to automatically determine the source path.</p><p>Example: <b>(/home/.*/Project)/KnownSubDir -> D:\Project</b> will substitute ELF built by any user to your local project directory.</p> + <p>Tu można podać mapowanie katalogów plików źródłowych użytych w debuggerze.</p><p>Jest to przydatne podczas używania kopii drzewa źródeł z innego położenia niż to, w którym moduły były zbudowane, np. podczas zdalnego debugowania.</p> - <html><head/><body><p>Mappings of source file folders to be used in the debugger can be entered here.</p><p>This is useful when using a copy of the source tree at a location different from the one at which the modules where built, for example, while doing remote debugging.</body></html> - <html><head/><body><p>Tu można podać mapowanie katalogów plików źródłowych użytych w debuggerze.</p><p>Jest to przydatne podczas używania kopii drzewa źródeł z innego położenia niż to, w którym moduły były zbudowane, np. podczas zdalnego debugowania.</body></html> + <p>Add a mapping for Qt's source folders when using an unpatched version of Qt. + - Add a mapping for Qt's source folders when using an unpatched version of Qt. - Dodaj mapowanie dla katalogów źródeł Qt podczas używania niezałatanej wersji Qt. + <p>The source path contained in the debug information of the executable as reported by the debugger + - The source path contained in the debug information of the executable as reported by the debugger - Ścieżka źródłowa, zawarta w informacji debugowej pliku wykonywalnego, zgłoszona przez debugger + <p>The actual location of the source tree on the local machine + &Source path: Ś&cieżka do źródła: - - The actual location of the source tree on the local machine - Bieżące położenie drzewa źródeł na lokalnej maszynie - &Target path: Ścieżka &docelowa: @@ -19446,10 +16194,6 @@ Ponowić próbę? QML Debugger: Remote host closed connection. Debugger QML: Zdalny host zamknął połączenie. - - QML Debugger: Could not connect to service '%1'. - Debugger QML: Nie można nawiązać połączenia z serwisem "%1". - JS Source for %1 Źródło JS dla %1 @@ -19466,10 +16210,6 @@ Ponowić próbę? Starting %1 %2 Uruchamianie %1 %2 - - QML Debugger: Could not connect to service "%1". - Debugger QML: Nie można nawiązać połączenia z serwisem "%1". - Failed to start application Nie można uruchomić aplikacji @@ -19506,37 +16246,6 @@ Ponowić próbę? Ignoruj białe znaki - - Git::Internal::GitShowArgumentsWidget - - oneline - jedna linia - - - short - krótki - - - medium - średni - - - full - pełny - - - fuller - pełniejszy - - - email - e-mail - - - raw - surowy - - Git::Internal::GitBlameArgumentsWidget @@ -19563,65 +16272,18 @@ Ponowić próbę? GLSL - - GLSLEditor::Internal::GLSLEditorPlugin - - GLSL - GLSL sub-menu in the Tools menu - GLSL - - - 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. - Tworzy fragment shader OpenGL/ES 2.0 w języku GLSL/ES. Fragment shadery generują końcowe kolory pikseli trójkątów, punktów i linii renderowanych przez OpenGL. - - - Fragment Shader (OpenGL/ES 2.0) - Fragment Shader (OpenGL/ES 2.0) - - - Creates a vertex shader in the OpenGL/ES 2.0 Shading Language (GLSL/ES). Vertex shaders transform the positions, normals and texture co-ordinates of triangles, points and lines rendered with OpenGL. - Tworzy vertex shader OpenGL/ES 2.0 w języku GLSL/ES. Vertex shadery zmieniają transformacje, normalne i współrzędne tekstur trójkątów, punktów i linii renderowanych przez OpenGL. - - - Vertex Shader (OpenGL/ES 2.0) - Vertex Shader (OpenGL/ES 2.0) - - - Creates a fragment shader in the Desktop OpenGL Shading Language (GLSL). Fragment shaders generate the final pixel colors for triangles, points and lines rendered with OpenGL. - Tworzy fragment shader Desktop OpenGL w języku GLSL. Fragment shadery generują końcowe kolory pikseli trójkątów, punktów i linii renderowanych przez OpenGL. - - - Fragment Shader (Desktop OpenGL) - Fragment Shader (Desktop OpenGL) - - - Creates a vertex shader in the Desktop OpenGL Shading Language (GLSL). Vertex shaders transform the positions, normals and texture co-ordinates of triangles, points and lines rendered with OpenGL. - Tworzy vertex shader Desktop OpenGL w języku GLSL. Vertex shadery zmieniają transformacje, normalne i współrzędne tekstur trójkątów, punktów i linii renderowanych przez OpenGL. - - - Vertex Shader (Desktop OpenGL) - Vertex Shader (Desktop OpenGL) - - - - GLSLEditor::GLSLFileWizard - - New %1 - Nowy %1 - - Macros::Internal::MacroLocatorFilter - Macros - Makra + Text Editing Macros + Makra do edycji tekstu Macros::Internal::MacrosPlugin - &Macros - &Makra + Text Editing &Macros + &Makra do edycji tekstu Record Macro @@ -19733,14 +16395,14 @@ Ponowić próbę? - ProjectExplorer::Internal::ToolChainModel + ProjectExplorer::Internal::ToolChainOptionsPage - Auto-detected - Automatycznie wykryte + Compilers + Kompilatory - Manual - Ustawione ręcznie + Add + Dodaj <nobr><b>ABI:</b> %1 @@ -19759,35 +16421,32 @@ Ponowić próbę? Typ - Duplicate Compilers Detected - Wykryto powielone kompilatory + Auto-detected + Automatycznie wykryte - The following compiler was already configured:<br>&nbsp;%1<br>It was not configured again. - Następujący kompilator został już skonfigurowany:<br>&nbsp;%1<br>Nie został on ponownie skonfigurowany. + Manual + Ustawione ręcznie - The following compilers were already configured:<br>&nbsp;%1<br>They were not configured again. - Następujące kompilatory zostały już skonfigurowane:<br>&nbsp;%1<br>Nie zostały one ponownie skonfigurowane. + Clone + Sklonuj - - - ProjectExplorer::Internal::ToolChainOptionsPage - Compilers - Kompilatory + Remove + Usuń - Add - Dodaj + Duplicate Compilers Detected + Wykryto powielone kompilatory - Clone - Sklonuj + The following compiler was already configured:<br>&nbsp;%1<br>It was not configured again. + Następujący kompilator został już skonfigurowany:<br>&nbsp;%1<br>Nie został on ponownie skonfigurowany. - Remove - Usuń + The following compilers were already configured:<br>&nbsp;%1<br>They were not configured again. + Następujące kompilatory zostały już skonfigurowane:<br>&nbsp;%1<br>Nie zostały one ponownie skonfigurowane. @@ -19865,36 +16524,6 @@ Ponowić próbę? Stan bazowy - - JsFileOptionsPage - - Options - Opcje - - - Stateless library - Biblioteka bezstanowa - - - Usually each QML component instance has a unique copy of -imported JavaScript libraries. Indicating that a library is -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. - Zwykle każda instancja komponentu QML posiada unikalną kopię -zaimportowanych bibliotek JavaScript. Biblioteka bezstanowa oznacza, że -pojedyncza instancja będzie dzielona pomiędzy komponentami. Biblioteki -bezstanowe nie będą miały bezpośredniego dostępu do obiektów i właściwości -komponentów QML. - - - - QmlJSEditor::JsFileWizard - - New %1 - Nowy %1 - - QmlJSEditor::Internal::QmlJSOutlineTreeView @@ -19931,50 +16560,6 @@ komponentów QML. Główny plik QML: - - QmakeProjectManager::AbstractMobileAppWizardDialog - - Kits - Zestawy narzędzi - - - - QmakeProjectManager::Internal::Html5AppWizardDialog - - New HTML5 Application - Nowa aplikacja HTML5 - - - This wizard generates a HTML5 Application project. - Ten kreator generuje projekt aplikacji HTML5. - - - HTML Options - Opcje HTML - - - - QmakeProjectManager::Internal::Html5AppWizard - - HTML5 Application - Aplikacja HTML5 - - - Creates an HTML5 application project that can contain both HTML5 and C++ code and includes a WebKit view. - -You can build the application and deploy it on desktop and mobile target platforms. - Tworzy projekt aplikacji HTML5, który może zawierać zarówno kod HTML5 jak i C++, oraz dołącza widok WebKit. - -Aplikację można zbudować i zainstalować na desktopie oraz na platformach mobilnych. - - - - QmakeProjectManager::Internal::Html5AppWizardOptionsPage - - Select HTML File - Wybierz plik HTML - - QmakeProjectManager::Internal::SubdirsProjectWizard @@ -20006,41 +16591,6 @@ Aplikację można zbudować i zainstalować na desktopie oraz na platformach mob Ten kreator generuje projekt z podkatalogami Qt. Podprojekty mogą być dodane później przy użyciu innych kreatorów. - - TextEditor::BaseTextEditorWidget - - CTRL+D - Ctrl+D - - - Print Document - Wydruk dokumentu - - - File Error - Błąd pliku - - - <b>Error:</b> Could not decode "%1" with "%2"-encoding. Editing not possible. - <b>Błąd:</b> Nie można odkodować "%1" używając kodowania "%2". Edycja nie jest możliwa. - - - Select Encoding - Wybierz kodowanie - - - Delete UTF-8 BOM on Save - Usuwaj UTF-8 BOM przy zachowywaniu - - - Add UTF-8 BOM on Save - Dodawaj UTF-8 BOM przy zachowywaniu - - - The text is too large to be displayed (%1 MB). - Tekst jest zbyt obszerny aby mógł zostać wyświetlony (%1 MB). - - TextEditor::Internal::PlainTextSnippetProvider @@ -20090,25 +16640,6 @@ Aplikację można zbudować i zainstalować na desktopie oraz na platformach mob Nie wybrano urywku. - - VcsBase::VcsBaseClient - - Unable to start process '%1': %2 - Nie można rozpocząć procesu "%1": %2 - - - Unable to start process "%1": %2 - Nie można rozpocząć procesu "%1": %2 - - - Timed out after %1s waiting for the process %2 to finish. - Przekroczono czas oczekiwania %1s na zakończenie procesu %2. - - - Working... - Przetwarzanie... - - VcsBase::VcsBaseEditorWidget @@ -20120,8 +16651,8 @@ Aplikację można zbudować i zainstalować na desktopie oraz na platformach mob Skopiuj "%1" - Describe Change %1 - Opisz zmianę %1 + &Describe Change %1 + &Opisz zmianę %1 Send to CodePaster... @@ -20139,14 +16670,6 @@ Aplikację można zbudować i zainstalować na desktopie oraz na platformach mob Failed to retrieve data. Nie można odebrać danych. - - Unable to Paste - Nie można wkleić - - - Code pasting services are not available. - Usługi wklejania kodu są niedostępne. - Revert Chunk Odwróć zmiany we fragmencie @@ -20569,10 +17092,6 @@ if (a && Remove Usuń - - Clean up - Wyczyść - Add... Dodaj... @@ -20762,10 +17281,24 @@ With cache simulation, further event counters are enabled: Configuration Konfiguracja + + No version control set on "VcsConfiguration" page. + Do not translate "VcsConfiguration", because it is the id of a page. + + + + "vcsId" ("%1") is invalid for "VcsConfiguration" page. Possible values are: %2. + Do not translate "VcsConfiguration", because it is the id of a page. + + Please configure <b>%1</b> now. Skonfiguruj teraz <b>%1</b>. + + No known version control selected. + + FlowSpecifics @@ -21077,22 +17610,10 @@ With cache simulation, further event counters are enabled: Preferred highlight end - must be larger than Preferred begin. Note that the user has to add a highlight component. - - Preferred highlight begin - must be smaller than Preferred end. - Oczekiwany początek podświetlenia - musi być mniejszy od oczekiwanego końca. - Preferred end Oczekiwany koniec - - Preferred highlight end - must be larger than Preferred begin. - Oczekiwany koniec - musi być większy od oczekiwanego początku. - - - Determines whether the highlight is managed by the view. - Określa, czy podświetlenie jest zarządzane przed widok. - Interactive Interaktywny @@ -21127,22 +17648,6 @@ With cache simulation, further event counters are enabled: Refusing to remove your home directory. Odmowa usunięcia katalogu domowego. - - Failed to remove directory '%1'. - Nie można usunąć katalogu "%1". - - - Failed to remove file '%1'. - Nie można usunąć pliku "%1". - - - Failed to create directory '%1'. - Nie można utworzyć katalogu "%1". - - - Could not copy file '%1' to '%2'. - Nie można skopiować pliku "%1" do "%2". - Failed to remove directory "%1". Nie można usunąć katalogu "%1". @@ -21420,26 +17925,11 @@ With cache simulation, further event counters are enabled: Zbuduj teraz - - Core::Internal::PromptOverwriteDialog - - Overwrite Existing Files - Nadpisz istniejące pliki - - - The following files already exist in the folder -%1. -Would you like to overwrite them? - Następujące pliki istnieją już w katalogu -%1. -Czy nadpisać je? - - Core::InfoBarDisplay Do Not Show Again - Nie pokazuj więcej + Nie pokazuj ponownie Close @@ -21484,23 +17974,8 @@ Czy nadpisać je? Ignoruj puste linie - - Debugger::Internal::DebuggerToolTipWidget - - Previous - Poprzedni - - Debugger::Internal::RegisterMemoryView - - Memory at Register '%1' (0x%2) - Pamięć pod adresem "%1" (0x%2) - - - Register '%1' - Rejestr "%1" - Memory at Register "%1" (0x%2) Pamięć pod adresem "%1" (0x%2) @@ -21510,38 +17985,8 @@ Czy nadpisać je? Rejestr "%1" - - FakeVim::Internal::FakeVimUserCommandsModel - - Action - Akcja - - - Command - Komenda - - - User command #%1 - Komenda użytkownika #%1 - - - - FakeVim::Internal::FakeVimUserCommandsPage - - User Command Mapping - Mapa komend użytkownika - - - FakeVim - FakeVim - - ImageViewer::Internal::ImageViewer - - Cannot open image file %1. - Nie można otworzyć pliku graficznego %1. - Play Animation Odtwórz animację @@ -21622,13 +18067,6 @@ Czy nadpisać je? Styl kodu - - CodeStyleSettingsPanel - - Code Style - Styl kodu - - ProjectExplorer::EditorConfiguration @@ -21658,78 +18096,23 @@ Czy nadpisać je? QmlDesigner::NodeInstanceServerProxy - - Cannot Start QML Puppet Executable - Nie można uruchomić QML Puppet - - - The executable of the QML Puppet process (%1) cannot be started. Please check your installation. QML Puppet is a process which runs in the background to render the items. - Nie można uruchomić procesu QML Puppet (%1). Sprawdź swoją instalację. QML Puppet jest procesem uruchamianym w tle w celu renderowania elementów. - - - Wrong QML Puppet Executable Version - Niepoprawna wersja pliku wykonywalnego QML Puppet - - - The QML Puppet version is incompatible with the Qt Creator version. - Wersja QML Puppet nie jest kompatybilna z wersją Qt Creatora. - - - Cannot Find QML Puppet Executable - Nie można odnaleźć QML Puppet - - - The executable of the QML Puppet process (<code>%1</code>) cannot be found. Check your installation. QML Puppet is a process which runs in the background to render the items. - Nie można odnaleźć procesu QML Puppet (<code>%1</code>). Sprawdź swoją instalację. QML Puppet jest procesem uruchamianym w tle w celu renderowania elementów. - - - You can build <code>qml2puppet</code> yourself with Qt 5.2.0 or higher. The source can be found in <code>%1</code>. - <code>qml2puppet</code> można zbudować samodzielnie przy użyciu Qt 5.2.0 lub nowszej wersji. Źródła można znaleźć w <code>%1</code>. - - - <code>qml2puppet</code> will be installed to the <code>bin</code> directory of your Qt version. Qt Quick Designer will check the <code>bin</code> directory of the currently active Qt version of your project. - <code>qml2puppet</code> zostanie zainstalowany w katalogu <code>bin</code> w drzewie Qt. Qt Quick Designer sprawdzi katalog <code>bin</code> aktywnej wersji Qt dla projektu. - - - <code>qmlpuppet</code> will be installed to the <code>bin</code> directory of your Qt version. Qt Quick Designer will check the <code>bin</code> directory of the currently active Qt version of your project. - <code>qmlpuppet</code> zostanie zainstalowany w katalogu <code>bin</code> w drzewie Qt. Qt Quick Designer sprawdzi katalog <code>bin</code> aktywnej wersji Qt dla projektu. - - - QML Puppet Crashed - QML Puppet zakończony błędem - Cannot Start QML Emulation Layer (QML Puppet) Nie można uruchomić emulatora QML (QML Puppet) The executable of the QML emulation layer (QML Puppet) process cannot be started or does not respond. - + Nie można uruchomić emulatora QML (QML Puppet) lub pozostaje on bez odpowiedzi. QML Emulation Layer (QML Puppet) Crashed - + Błąd emulatora QML (QML Puppet) You are recording a puppet stream and the emulations layer crashed. It is recommended to reopen the Qt Quick Designer and start again. - - QmlJSEditor::Internal::HoverHandler - - Library at %1 - Biblioteka w %1 - - - Dumped plugins successfully. - Wtyczki poprawnie zrzucone. - - - Read typeinfo files successfully. - Pliki typeinfo poprawnie odczytane. - - QmlJSTools @@ -21779,6 +18162,10 @@ Czy nadpisać je? Save QML Trace Zachowaj stos QML + + Search timeline event notes. + + %1 s %1 s @@ -21863,31 +18250,8 @@ Czy kontynuować? Release - - QmakeProjectManager::QmakeProFileNode - - Error while parsing file %1. Giving up. - Błąd parsowania pliku %1. Przetwarzanie przerwane. - - - Could not find .pro file for sub dir "%1" in "%2" - Nie można odnaleźć pliku .pro w podkatalogu "%1" w "%2" - - - Could not find .pro file for sub dir '%1' in '%2' - Nie można odnaleźć pliku .pro w podkatalogu "%1" w "%2" - - BaseQtVersion - - The compiler '%1' (%2) cannot produce code for the Qt version '%3' (%4). - Kompilator "%1" (%2) nie może utworzyć kodu dla wersji Qt "%3" (%4). - - - The compiler '%1' (%2) may not produce code compatible with the Qt version '%3' (%4). - Kompilator "%1" (%2) nie może utworzyć kodu kompatybilnego z wersją Qt "%3" (%4). - The compiler "%1" (%2) cannot produce code for the Qt version "%3" (%4). Kompilator "%1" (%2) nie może utworzyć kodu dla wersji Qt "%3" (%4). @@ -21945,12 +18309,12 @@ Czy kontynuować? Wymaga Qt 5.3.0 lub nowszej wersji. - Building Debugging Helpers - Budowanie asystentów debuggera + This Qt Version does not contain Qt Quick Compiler. + Ta wersja Qt nie zawiera kompilatora Qt Quick. - Building helpers - Budowanie asystentów + Building Debugging Helpers + Budowanie asystentów debuggera @@ -21971,14 +18335,6 @@ Czy kontynuować? Do you want to remove all invalid Qt Versions?<br><ul><li>%1</li></ul><br>will be removed. Czy usunąć wszystkie niepoprawne wersje Qt?<br>Usunięte zostaną:<br><ul><li>%1</li></ul>. - - Building helpers - Budowanie asystentów - - - Debugging Helper Build Log for '%1' - Log budowania asystenta debuggera dla "%1" - Select a qmake Executable Wskaż plik wykonywalny qmake @@ -21995,10 +18351,6 @@ Czy kontynuować? The qmake executable %1 could not be added: %2 Nie można dodać pliku wykonywalnego qmake %1: %2 - - Select a qmake executable - Wskaż plik wykonywalny qmake - This Qt version was already registered as "%1". Ta wersja Qt została już zarejestrowana jako "%1". @@ -22036,6 +18388,10 @@ Czy kontynuować? Remove Invalid Qt Versions Usuń niepoprawne wersje Qt + + Display Name is not unique. + Widoczna nazwa nie jest unikatowa. + No compiler can produce code for this Qt version. Please define one or more compilers. Żaden kompilator nie może wygenerować kodu dla tej wersji Qt. Zdefiniuj jeden lub więcej kompilatorów. @@ -22073,13 +18429,6 @@ Czy kontynuować? Uruchom na zdalnym urządzeniu - - Subversion::Internal::SubversionDiffParameterWidget - - Ignore Whitespace - Ignoruj białe znaki - - TextEditor::BehaviorSettingsPage @@ -22122,7 +18471,7 @@ Czy kontynuować? Load External Log File - Załaduj zewnętrzny plik loga + Załaduj zewnętrzny plik logu Go back one step in history. This will select the previously selected item. @@ -22132,10 +18481,6 @@ Czy kontynuować? Reset all event counters. Resetuje wszystkie liczniki zdarzeń. - - Load External XML Log File - Załaduj zewnętrzny plik loga XML - Request the dumping of profile information. This will update the Callgrind visualization. Żąda zrzutu informacji i odświeża widok callgrinda. @@ -22226,19 +18571,15 @@ Czy kontynuować? Open Callgrind Log File - Otwórz plik loga Callgrinda + Otwórz plik logu Callgrinda Callgrind Output (callgrind.out*);;All Files (*) - Internal Error - Błąd wewnętrzny - - - Failed to open file for reading: %1 - Nie można otworzyć pliku do odczytu: %1 + Callgrind: Failed to open file for reading: %1 + Parsing Profile Data... @@ -22265,10 +18606,6 @@ Czy kontynuować? Valgrind::Internal::MemcheckErrorView - - Copy Selection - Skopiuj selekcję - Suppress Error Stłum błąd @@ -22301,12 +18638,12 @@ Czy kontynuować? Niepoprawne wywołania "free()" - Failed to open file for reading: %1 - Nie można otworzyć pliku do odczytu: %1 + Memcheck: Failed to open file for reading: %1 + Memcheck: Nie można otworzyć pliku do odczytu: %1 - Error occurred parsing Valgrind output: %1 - Błąd podczas parsowania komunikatów Valgrind'a: %1 + Memcheck: Error occurred parsing Valgrind output: %1 + Memcheck: Błąd podczas parsowania komunikatów Valgrind'a: %1 Memory Issues @@ -22314,7 +18651,7 @@ Czy kontynuować? Load External XML Log File - Załaduj zewnętrzny plik loga XML + Załaduj zewnętrzny plik logu XML Go to previous leak. @@ -22338,23 +18675,12 @@ Czy kontynuować? Open Memcheck XML Log File - Otwórz plik XML loga Memchecka + Otwórz plik XML logu Memchecka XML Files (*.xml);;All Files (*) Pliki XML (*.xml);;Wszystkie pliki (*) - - Internal Error - Błąd wewnętrzny - - - - VcsBase::Internal::CommonSettingsWidget - - Command used for reverting diff chunks. - Komenda użyta do zastosowywania odwrotnych fragmentów w różnicach. - Welcome::Internal::WelcomeMode @@ -22610,33 +18936,6 @@ Dodatkowo, przetestowane zostanie połączenie z urządzeniem. Nie można debugować: brak ustawionego lokalnego pliku wykonywalnego. - - Analyzer::AnalyzerManagerPrivate - - &Analyze - &Analiza - - - Start - Uruchom - - - Stop - Zatrzymaj - - - Analyzer Toolbar - Pasek narzędzi analizatora - - - An analysis is still in progress. - Nadal trwa analiza. - - - No analyzer tool selected. - Brak wybranego narzędzia analizy. - - RemoteLinux::CreateTarStepWidget @@ -22746,40 +19045,40 @@ Dodatkowo, przetestowane zostanie połączenie z urządzeniem. Gadatliwy - Show files changed in each revision - Pokazuj pliki zmienione w każdej poprawce + Show files changed in each revision. + - Forward - Do przodu + Show from oldest to newest. + - Show from oldest to newest - Pokaż od najstarszych do najnowszych + Include Merges + - Include merges - Włączaj scalenia + Show merged revisions. + - Show merged revisions - Pokaż scalone poprawki + Moderately Short + - Detailed - Szczegółowo + One Line + - Moderately short - Umiarkowanie skrótowo + GNU Change Log + - One line - W jednej linijce + Forward + Do przodu - GNU ChangeLog - GNU ChangeLog + Detailed + Szczegółowo @@ -22799,14 +19098,6 @@ Dodatkowo, przetestowane zostanie połączenie z urządzeniem. %1 - - - '%1' returned the following error: - -%2 - "%1" zwrócił następujący błąd: - -%2 "%1" returned the following error: @@ -22856,6 +19147,18 @@ Dodatkowo, przetestowane zostanie połączenie z urządzeniem. Could not delete file %1. Nie można usunąć pliku %1. + + Click and type the new key sequence. + Kliknij i wpisz nową sekwencję klawiszy. + + + Stop Recording + Zatrzymaj nagrywanie + + + Record + Rozpocznij nagrywanie + BaseFileWizard @@ -22891,55 +19194,8 @@ Dodatkowo, przetestowane zostanie połączenie z urządzeniem. Komunikaty: - - Debugger::Internal::QScriptDebuggerClient - - <p>An uncaught exception occurred:</p><p>%1</p> - <p>Wystąpił nieobsłużony wyjątek:</p><p>%1</p> - - - <p>An uncaught exception occurred in '%1':</p><p>%2</p> - <p>Wystąpił nieobsłużony wyjątek w "%1":</p><p>%2</p> - - - <p>An uncaught exception occurred in "%1":</p><p>%2</p> - <p>Wystąpił nieobsłużony wyjątek w "%1":</p><p>%2</p> - - - Uncaught Exception - Nieobsłużony wyjątek - - - No Local Variables - Brak lokalnych zmiennych - - ProjectExplorer::SettingsAccessor - - No valid .user file found for '%1' - Brak poprawnego pliku .user dla "%1" - - - <p>No valid settings file could be found for this installation of Qt Creator.</p><p>All settings files were either too new or too old to be read.</p> - <p>Brak poprawnego pliku z ustawieniami dla tej instalacji Qt Creatora.</p><p>Napotkane pliki z ustawieniami były albo zbyt nowe, albo zbyt stare, aby je odczytać.</p> - - - Settings File for '%1' from a different Environment? - Plik z ustawieniami dla "%1" z innego środowiska? - - - <p>No .user settings file created by this instance of Qt Creator was found.</p><p>Did you work with this project on another machine or using a different settings path before?</p><p>Do you still want to load the settings file '%1'?</p> - <p>Brak pliku .user z ustawieniami, utworzonego przez tego Qt Creatora.</p><p>Czy pracowałeś z tym projektem na innej maszynie lub używałeś innej ścieżki do ustawień?</p><p>Czy załadować plik "%1" z ustawieniami?</p> - - - Using Old Settings File for '%1' - Użyto starego pliku z ustawieniami dla "%1" - - - <p>The versioned backup '%1' of the .user settings file is used, because the non-versioned file was created by an incompatible version of Qt Creator.</p><p>Project settings changes made since the last time this version of Qt Creator was used with this project are ignored, and changes made now will <b>not</b> be propagated to the newer version.</p> - <p>Użyta zostanie kopia zapasowa "%1" pliku z ustawieniami .user, ponieważ w międzyczasie oryginalny plik z ustawieniami został zachowany przez niekompatybilną wersję Qt Creatora.</p><p>Jeżeli nastąpią teraz zmiany w ustawieniach projektu to <b>nie</b> zostaną one zastosowane w nowszej wersji Qt Creatora.</p> - Unsupported Shared Settings File Nieobsługiwany plik z dzielonymi ustawieniami @@ -22982,26 +19238,6 @@ Dodatkowo, przetestowane zostanie połączenie z urządzeniem. Other files Inne pliki - - Failed - - - - There are unsaved changes for project file %1. - Plik z projektem %1 posiada niezachowane zmiany. - - - Failed! - Niepoprawnie zakończone! - - - Could not write project file %1. - Nie można zapisać pliku projektu %1. - - - File Error - Błąd pliku - RemoteLinux::AbstractRemoteLinuxDeployService @@ -23098,38 +19334,14 @@ Dodatkowo, przetestowane zostanie połączenie z urządzeniem. Uploading file "%1"... Przesyłanie pliku "%1"... - - Upload of file '%1' failed. The server said: '%2'. - Nie można przesłać pliku "%1". Odpowiedź serwera: "%2". - - - If '%1' is currently running on the remote host, you might need to stop it first. - Jeżeli "%1" jest aktualnie uruchomiony na zdalnym hoście, należy go najpierw zatrzymać. - - - Failed to upload file '%1'. - Nie można przesłać pliku "%1". - Failed to set executable flag. Nie można uczynić pliku wykonywalnym. - - Failed to upload file '%1': Could not open for reading. - Nie można przesłać pliku "%1". Nie można otworzyć go do odczytu. - All files successfully deployed. Wszystkie pliki poprawnie zainstalowane. - - Warning: No remote path set for local file '%1'. Skipping upload. - Ostrzeżenie: Brak ustawionej zdalnej ścieżki dla lokalnego pliku "%1". Nie zostanie on przesłany. - - - Uploading file '%1'... - Przesyłanie pliku "%1"... - RemoteLinux::Internal::ConfigWidget @@ -23239,10 +19451,6 @@ Dodatkowo, przetestowane zostanie połączenie z urządzeniem. No command line given. Nie podano linii komendy. - - Starting remote command '%1'... - Uruchamianie zdalnej komendy "%1"... - Starting remote command "%1"... Uruchamianie zdalnej komendy "%1"... @@ -23362,30 +19570,6 @@ Dodatkowo, przetestowane zostanie połączenie z urządzeniem. Error writing tar file "%1": %2 Błąd zapisu pliku tar "%1": %2. - - No remote path specified for file '%1', skipping. - Brak ustawionej zdalnej ścieżki dla pliku "%1", zostanie on pominięty. - - - Error writing tar file '%1': %2. - Błąd zapisu pliku tar "%1": %2. - - - Error reading file '%1': %2. - Błąd odczytu pliku "%1": %2. - - - Adding file '%1' to tarball... - Dodawanie pliku "%1" do tarballa... - - - Cannot add file '%1' to tar-archive: path too long. - Nie można dodać pliku "%1" do archiwum tar: zbyt długa ścieżka. - - - Error writing tar file '%1': %2 - Błąd zapisu pliku tar "%1": %2 - Create tarball Utwórz tarball @@ -23496,10 +19680,6 @@ Dodatkowo, przetestowane zostanie połączenie z urządzeniem. Files on File System Pliki w systemie plików - - Directory '%1': - Katalog "%1": - Directory "%1": Katalog "%1": @@ -23517,10 +19697,6 @@ Filtr: %2 Director&y: &Katalog: - - &Browse... - &Przeglądaj... - Fi&le pattern: &Wzorzec pliku: @@ -23533,39 +19709,24 @@ Filtr: %2 UpdateInfo::Internal::UpdateInfoPlugin - Could not determine location of maintenance tool. Please check your installation if you did not enable this plugin manually. - Nie można określić położenia narzędzia kontrolnego. Sprawdź w instalacji, czy ta wtyczka nie została uaktywniona ręcznie. - - - Could not find maintenance tool at "%1". Check your installation. - Nie można odnaleźć narzędzia kontrolnego w "%1". Sprawdź instalację. + Updater + Aktualizator - Updates Available - Dostępne uaktualnienia + New updates are available. Do you want to start update? + Dostępne są nowe uaktualnienia. Czy chcesz rozpocząć aktualizację? - Could not find maintenance tool at '%1'. Check your installation. - Nie można odnaleźć narzędzia kontrolnego w "%1". Sprawdź instalację. - - - Start Updater - Uruchom uaktualniacza - - - Updates available - Dostępne uaktualnienia + Could not determine location of maintenance tool. Please check your installation if you did not enable this plugin manually. + Nie można określić położenia narzędzia kontrolnego. Sprawdź w instalacji, czy ta wtyczka nie została uaktywniona ręcznie. - - - VcsBase::Command - Unable to start process, binary is empty - Nie można uruchomić procesu, plik binarny jest pusty + The maintenance tool at "%1" is not an executable. Check your installation. + Narzędzie utrzymania "%1" nie jest plikiem wykonywalnym. Sprawdź instalację. - Error: Executable timed out after %1s. - Błąd: plik wykonywalny nie odpowiada po upływie %1s. + Check for Updates + Sprawdź dostępność aktualizacji @@ -23721,10 +19882,6 @@ Filtr: %2 There already is a file of that name. Do you want to overwrite it? Plik o tej nazwie już istnieje. Czy nadpisać go? - - Failed to create directory: '%1'. - Nie można utworzyć katalogu: "%1". - Choose... Wybierz... @@ -23809,125 +19966,6 @@ Filtr: %2 - - AndroidDeployStepWidget - - Form - Formularz - - - Qt Deployment - Instalacja Qt - - - Use Ministro service to install Qt - Użyj usługi Ministro do zainstalowania Qt - - - Deploy local Qt libraries to temporary directory - Zainstaluj lokalne biblioteki Qt do tymczasowego katalogu - - - Creates a standalone APK. - Tworzy samodzielny APK. - - - Bundle Qt libraries in APK - Dołącz biblioteki Qt do APK - - - Advanced Actions - Zaawansowane akcje - - - Clean Temporary Libraries Directory on Device - Wyczyść tymczasowe katalogi z bibliotekami na urządzeniu - - - Install Ministro from APK - Zainstaluj Ministro z APK - - - Reset Default Devices - Przywróć domyślne urządzenia - - - Uses the external Ministro application to download and maintain Qt libraries. - Używa zewnętrznej aplikacji Ministro do pobierania bibliotek Qt i zarządzania nimi. - - - Pushes local Qt libraries to device. You must have Qt libraries compiled for that platform. -The APK will not be usable on any other device. - Przesyła lokalne biblioteki Qt do urządzenia. -Należy przesłać biblioteki skompilowane dla tej platformy. -APK nie będzie przydatne na innych urządzeniach. - - - - AndroidPackageCreationWidget - - <b>Android target SDK:</b> - <b>Docelowy SDK Androida:</b> - - - Application - Aplikacja - - - Libraries - Biblioteki - - - Read information from application (must be compiled) - Odczytaj informację z aplikacji (musi być skompilowana) - - - Required Qt libraries - Wymagane biblioteki Qt - - - <center>Prebundled libraries</center> -<p align="justify">Please be aware that the order is very important: If library <i>A</i> depends on library <i>B</i>, <i>B</i> <b>must</b> go before <i>A</i>.</p> - <center>Spakowane biblioteki</center> -<p align="justify">Kolejność jest bardzo istotna. Jeśli biblioteka <i>A</i> zależy od biblioteki <i>B</i>, <i>B</i> <b>musi</b> pojawić się przed <i>A</i>.</p> - - - Up - Do góry - - - Down - Na dół - - - Sign package - Podpisz pakiet - - - Create - Utwórz - - - Browse - Przeglądaj - - - Open package location after is complete - Po zakończeniu otwórz w położeniu pakietu - - - Certificate alias: - Alias certyfikatu: - - - Signing a debug package - Podpisywanie pakietu debugowego - - - Automatically check required Qt libraries from compiled application. - Automatycznie sprawdzaj wymagane biblioteki Qt na podstawie informacji uzyskanej ze skompilowanej aplikacji. - - AndroidSettingsWidget @@ -23938,10 +19976,6 @@ APK nie będzie przydatne na innych urządzeniach. Android SDK location: Położenie Android SDK: - - Browse - Przeglądaj - Android NDK location: Położenie Android NDK: @@ -24037,10 +20071,6 @@ APK nie będzie przydatne na innych urządzeniach. Patterns: Wzory: - - Magic Header - Magiczny nagłówek - Type Typ @@ -24089,17 +20119,6 @@ APK nie będzie przydatne na innych urządzeniach. &Usuń z systemu kontroli wersji - - Core::Internal::VariableChooser - - Variables - Zmienne - - - Select a variable to insert. - Wybierz zmienną do wstawienia. - - CodePaster::Internal::FileShareProtocolSettingsWidget @@ -24203,10 +20222,6 @@ p, li { white-space: pre-wrap; } Patch 2 Łata 2 - - Days - Dni - &Expires after: Okr&es ważności: @@ -24238,10 +20253,6 @@ p, li { white-space: pre-wrap; } &Expires after: Okr&es ważności: - - Days - Dni - Days Dni @@ -24341,51 +20352,6 @@ Przedrostki te, w dodatku do nazwy bieżącego pliku, używane są do przełącz Zawsze dodawaj pułapkę w funkcji <i>%1()</i>. - - Debugger::Internal::DebuggingHelperOptionPage - - Use Debugging Helper - Używaj asystenta debuggera - - - <html><head/><body> -<p>The debugging helper is only used to produce a nice display of objects of certain types like QString or std::map in the &quot;Locals and Expressions&quot; view. It is not strictly necessary for debugging with Qt Creator. </p></body></html> - <html><head/><body> -<p>Asystent debuggera jest używany do ładnego formatowania danych w widoku &quot;Zmienne lokalne i wyrażenia&quot; dla obiektów niektórych typów takich jak QString lub std::map. Nie jest on niezbędny do debugowania w Qt Creatorze.</p></body></html> - - - Makes use of Qt Creator's code model to find out if a variable has already been assigned a value at the point the debugger interrupts. - Korzysta z modelu kodu Qt Creatora w celu zbadania czy wartość została już przypisana do zmiennej w chwili przerwania debuggera. - - - Use code model - Używaj modelu kodu - - - Displays names of QThread based threads. - Wyświetla nazwy wątków dziedziczących z QThread. - - - Display thread names - Wyświetlaj nazwy wątków - - - Show "std::" namespace for types - Pokazuj przestrzeń nazw "std::" dla typów - - - Show Qt's namespace for types - Pokazuj przestrzeń nazw Qt dla typów - - - Shows 'std::' prefix for types from the standard library. - Pokazuje przedrostek "std::" dla typów z biblioteki standardowej. - - - Shows Qt namespace prefix for Qt types. This is only relevant if Qt was configured with '-qtnamespace'. - Pokazuje przestrzeń nazw Qt dla typów Qt. Ma to zastosowanie jedynie dla Qt skonfigurowanego z "-qtnamespace". - - ProjectExplorer::Internal::CodeStyleSettingsPropertiesPage @@ -24494,185 +20460,6 @@ Przedrostki te, w dodatku do nazwy bieżącego pliku, używane są do przełącz Czas trwania - - Qnx::Internal::BlackBerryDeployConfigurationWidget - - Packages to deploy: - Pakiety do instalacji: - - - - Qnx::Internal::BlackBerryDeviceConfigurationWidget - - &Device name: - Nazwa urzą&dzenia: - - - IP or host name of the device - IP lub nazwa hosta urządzenia - - - Device &password: - &Hasło urządzenia: - - - Show password - Pokaż hasło - - - Debug token: - - - - Private key file: - Plik z kluczem prywatnym: - - - Connection log: - Log połączeń: - - - Request - Żądanie - - - Upload - Prześlij - - - Qt Creator - Qt Creator - - - Debug token successfully uploaded. - - - - No route to host. - Brak połączenia z hostem. - - - Authentication failed. - Brak autoryzacji. - - - Development mode is disabled on the device. - Tryb deweloperski nieaktywny na urządzeniu. - - - Failed to start inferior process. - Nie można uruchomić podprocesu. - - - Inferior processes timed out. - Przekroczony czas oczekiwania na podproces. - - - Inferior process has crashed. - Podproces zakończył pracę błędem. - - - Failed to communicate with the inferior process. - Nie można skomunikować się z podprocesem. - - - An unknwon error has happened. - Wystąpił nieznany błąd. - - - Error - Błąd - - - Select Debug Token - - - - BAR file (*.bar) - Plik BAR (*.bar) - - - Invalid Debug Token - - - - Debug token file %1 cannot be read. - - - - Invalid debug token path. - - - - Failed to upload debug token: - - - - Operation in Progress - Operacja w toku - - - Uploading debug token - - - - Import - Zaimportuj - - - - Qnx::Internal::BlackBerryDeviceConfigurationWizardSetupPage - - WizardPage - StronaKreatora - - - Device password: - Hasło urządzenia: - - - Device host name or IP address: - Nazwa hosta lub adres IP urządzenia: - - - Connection - Połączenie - - - Specify device manually - Określ urządzenie ręcznie - - - Auto-detecting devices - please wait... - Detekcja urządzeń - proszę czekać... - - - No device has been auto-detected. - Brak urządzeń wykrytych automatycznie. - - - Device auto-detection is available in BB NDK 10.2. Make sure that your device is in Development Mode. - Detekcja urządzeń dostępna jest w BB NDK 10.2. Upewnij się, że urządzenie jest w trybie deweloperskim. - - - - Qnx::Internal::BlackBerryRunConfigurationWidget - - Device: - Urządzenie: - - - Package: - Pakiet: - - - - Qnx::Internal::QnxBaseQtConfigWidget - - SDK: - SDK: - - QmakeProjectManager::Internal::MakeStep @@ -24711,51 +20498,12 @@ Przedrostki te, w dodatku do nazwy bieżącego pliku, używane są do przełącz Ostateczna komenda qmake: - Use QML compiler - Użyj kompilatora QML - - - - QmakeProjectManager::Internal::Html5AppWizardSourcesPage - - WizardPage - StronaKreatora - - - Main HTML File - Główny plik HTML - - - Generate an index.html file - Wygeneruj plik index.html - - - Import an existing .html file - Zaimportuj istniejący plik .html - - - Load a URL - Załaduj URL - - - http:// - http:// - - - Note: Unless you chose to load a URL, all files and directories that reside in the same directory as the main HTML file are deployed. You can modify the contents of the directory any time before deploying. - Uwaga: wszystkie pliki i katalogi, które leżą w tym samym katalogu, co główny plik HTML, zostaną zainstalowane, chyba że wybrałeś załadowanie URL. Możesz zmodyfikować zawartość katalogu przed zainstalowaniem. - - - Touch optimized navigation - Nawigacja zoptymalizowana pod kątem urządzeń dotykowych - - - Enable touch optimized navigation - Uaktywnij nawigację zoptymalizowaną pod kątem urządzeń dotykowych + Generate separate debug info: + - Touch optimized navigation will make the HTML page flickable and enlarge the area of touch sensitive elements. If you use a JavaScript framework which optimizes the touch interaction, leave the checkbox unchecked. - Nawigacja zoptymalizowana pod kątem urządzeń dotykowych spowoduje ???miganie??? strony HTML i zwiększy obszar elementów czułych na dotyk. Jeśli używasz JavaScript ze zoptymalizowaną interakcją dotykową, pozostaw tę opcję niezaznaczoną. + Use QML compiler: + Używaj kompilatora QML: @@ -24855,6 +20603,10 @@ Przedrostki te, w dodatku do nazwy bieżącego pliku, używane są do przełącz You can enter lists and ranges like this: '1024,1026-1028,1030'. Można wprowadzać listy i zakresy, np.: "1024,1026-1028,1030". + + &Check host key + + RemoteLinux::Internal::GenericLinuxDeviceConfigurationWizardSetupPage @@ -24870,10 +20622,6 @@ Przedrostki te, w dodatku do nazwy bieżącego pliku, używane są do przełącz The device's host name or IP address: Nazwa hosta lub adres IP urządzenia: - - The user name to log into the device: - Nazwa użytkownika na urządzeniu: - The authentication type: Typ autoryzacji: @@ -24914,17 +20662,6 @@ Przedrostki te, w dodatku do nazwy bieżącego pliku, używane są do przełącz Wymagane miejsce na dysku: - - RemoteLinux::Internal::RemoteLinuxDeployConfigurationWidget - - Form - Formularz - - - Files to deploy: - Pliki do zainstalowania: - - TextEditor::Internal::BehaviorSettingsPage @@ -25227,6 +20964,10 @@ Ustala, jak klawisz "Backspace" reaguje na wcięcia. Shows tabs and spaces. Pokazuje tabulatory i spacje. + + Highlight search results on the scrollbar + Podświetlaj rezultaty wyszukiwań na pasku przewijania + TextEditor::Internal::HighlighterSettingsPage @@ -25471,57 +21212,6 @@ Wpływa na wcięcia przeniesionych linii. Skanuj tylko bieżąco edytowany dokument - - VcsBase::Internal::BaseCheckoutWizardPage - - WizardPage - StronaKreatora - - - Repository - Repozytorium - - - The remote repository to check out. - Zdalne repozytorium dla kopii roboczej. - - - Branch: - Gałąź: - - - The development branch in the remote repository to check out. - Gałąź w zdalnym repozytorium dla kopii roboczej. - - - Retrieve list of branches in repository. - Pozyskaj listę gałęzi z repozytorium. - - - ... - ... - - - Working Copy - Kopia robocza - - - The path in which the directory containing the checkout will be created. - Ścieżka, w której zostanie utworzony katalog zawierający kopię roboczą. - - - The local directory that will contain the code after the checkout. - Lokalny katalog, który będzie zawierał kod po utworzeniu kopii roboczej. - - - Path: - Ścieżka: - - - Directory: - Katalog: - - VcsBase::Internal::CleanDialog @@ -25563,10 +21253,6 @@ Wpływa na wcięcia przeniesionych linii. User &fields configuration file: Plik z konfiguracją &pól użytkownika: - - &Patch command: - Komenda "pa&tch": - &SSH prompt command: Komenda monitu &SSH: @@ -25576,12 +21262,6 @@ Wpływa na wcięcia przeniesionych linii. should a repository require SSH-authentication (see documentation on SSH and the environment variable SSH_ASKPASS). W przypadku, gdy repozytorium wymaga autoryzacji SSH, pole to definiuje komendę, która będzie pytała o hasło. Sprawdź dokumentację SSH i zmienną środowiskową SSH_ASKPASS. - - - A file listing user names and email addresses in a 4-column mailmap format: -'name <email> alias <email>'. - Plik z listą nazw użytkowników i adresami e-mail w 4 kolumnach (format mailmap): -"nazwa <e-mail> alias <e-mail>". A file listing nicknames in a 4-column mailmap format: @@ -25710,22 +21390,6 @@ Sprawdź dokumentację SSH i zmienną środowiskową SSH_ASKPASS. Unknown error. Nieznany błąd. - - Created remote directory '%1'. - Utworzono zdalny katalog "%1". - - - Remote directory '%1' already exists. - Zdalny katalog "%1" już istnieje. - - - Error creating directory '%1': %2 - Błąd tworzenia katalogu "%1": %2 - - - Could not open local file '%1': %2 - Nie można otworzyć lokalnego pliku "%1": %2 - Created remote directory "%1". Utworzono zdalny katalog "%1". @@ -25813,14 +21477,6 @@ Sprawdź dokumentację SSH i zmienną środowiskową SSH_ASKPASS. Error listing contents of directory "%1": %2 Błąd podczas listowania zawartości katalogu "%1": %2 - - Error getting 'stat' info about '%1': %2 - Błąd podczas pobierania informacji "stat" o "%1": %2 - - - Error listing contents of directory '%1': %2 - Błąd podczas listowania zawartości katalogu "%1": %2 - QSsh::Internal::SshChannelManager @@ -25851,14 +21507,6 @@ Sprawdź dokumentację SSH i zmienną środowiskową SSH_ASKPASS. Server identification string contains illegal NUL character. Ciąg identyfikujący serwer zawiera niedozwolony znak NUL. - - Server Identification string '%1' is invalid. - Ciąg identyfikujący serwer "%1" jest niepoprawny. - - - Server protocol version is '%1', but needs to be 2.0 or 1.99. - Wersja protokołu serwera to "%1", wymagana to 2.0 lub 1.99. - Server Identification string "%1" is invalid. Ciąg identyfikujący serwer "%1" jest niepoprawny. @@ -25926,6 +21574,14 @@ Sprawdź dokumentację SSH i zmienną środowiskową SSH_ASKPASS. Please enter the password for your private key. Podaj hasło do prywatnego klucza. + + Failed to open key file "%1" for reading: %2 + Nie można otworzyć pliku z kluczem "%1" do odczytu: %2 + + + Failed to open key file "%1" for writing: %2 + Nie można otworzyć pliku z kluczem "%1" do zapisu: %2 + QSsh::Internal::SshRemoteProcessPrivate @@ -25937,32 +21593,9 @@ Sprawdź dokumentację SSH i zmienną środowiskową SSH_ASKPASS. Server sent invalid signal "%1" Serwer wysłał niepoprawny sygnał "%1" - - Server sent invalid signal '%1' - Serwer wysłał niepoprawny sygnał "%1" - - - - Utils::BaseTreeView - - Adjust Column Widths to Contents - Wyrównaj szerokości kolumn do ich zawartości - Utils::ElfReader - - '%1' is an invalid ELF object (%2) - "%1" nie jest poprawnym obiektem ELF (%2) - - - '%1' is not an ELF object (file too small) - "%1" nie jest obiektem ELF (za mały plik) - - - '%1' is not an ELF object - "%1" nie jest obiektem ELF - "%1" is an invalid ELF object (%2) "%1" nie jest poprawnym obiektem ELF (%2) @@ -26035,98 +21668,6 @@ Sprawdź dokumentację SSH i zmienną środowiskową SSH_ASKPASS. Zmień nazwę... - - ZeroConf::Internal::ZConfLib - - AvahiZConfLib could not load the native library '%1': %2 - AvahiZConfLib nie może załadować natywnej biblioteki "%1": %2 - - - %1 cannot create a client. The daemon is probably not running. - %1 nie może utworzyć klienta. Prawdopodobnie demon nie jest uruchomiony. - - - cAvahiClient, server collision. - cAvahiClient, kolizja serwerów. - - - cAvahiClient, an error occurred on the client side. - cAvahiClient, wystąpił błąd po stronie klienta. - - - cAvahiClient, still connecting, no server available. - cAvahiClient, trwa łączenie, brak dostępnych serwerów. - - - Unexpected state %1 in cAvahiClientReply. - Nieoczekiwany stan %1 w cAvahiClientReply. - - - Unexpected state %1 in cAvahiBrowseReply. - Nieoczekiwany stan %1 w cAvahiBrowseReply. - - - %1 failed to kill other daemons with '%2'. - %1 nie może zamknąć innych demonów przy pomocy "%2". - - - %1 detected a file at /tmp/mdnsd, daemon startup will probably fail. - %1 wykrył plik w /tmp/mdnsd, prawdopodobnie nie uda się uruchomić demona. - - - %1: log of previous daemon run is: '%2'. - %1: log z poprzedniego uruchomienia demona: "%2". - - - %1 failed starting embedded daemon at %2. - %1 nie może uruchomić wbudowanego demona w %2. - - - - ZeroConf - - Zeroconf could not load a valid library, failing. - Zeroconf nie może załadować poprawnej biblioteki i tym samym kończy działanie. - - - Zeroconf has no valid library, aborting connection. - Zeroconf nie ma poprawnej biblioteki, przerwano połączenie. - - - Trying %1... - Próbowanie %1... - - - Succeeded using %1. - Poprawnie zakończone przy pomocy %1. - - - Could not load native library. - Nie można załadować natywnej biblioteki. - - - Warning: Detected an obsolete version of Apple Bonjour. Disable, uninstall, or upgrade it, or zeroconf will fail. - Ostrzeżenie: wykryto przestarzałą wersję Apple Bonjour. Zdezaktywuj, odinstaluj albo uaktualnij ją, w przeciwnym razie zeroconf nie zadziała. - - - - ZeroConf::ServiceBrowser - - Starting Zeroconf Browsing - Uruchamianie zeroconf - - - - Android::Internal::AndroidConfigurations - - Android Debugger for %1 - Debugger Android dla %1 - - - Android for %1 (GCC %2, Qt %3) - Android dla %1 (GCC %2, Qt %3) - - Android @@ -26187,72 +21728,6 @@ Sprawdź dokumentację SSH i zmienną środowiskową SSH_ASKPASS. Zainstaluj na urządzeniu Android - - Android::Internal::AndroidDeployStep - - Deploy to Android device - AndroidDeployStep default display name - Zainstaluj na urządzeniu Android - - - No Android toolchain selected. - Brak wybranego zestawu narzędzi dla Androida. - - - Package deploy: Running command '%1 %2'. - Instalacja pakietu: Uruchamianie komendy "%1 %2". - - - Packaging error: Could not start command '%1 %2'. Reason: %3 - Błąd pakowania: Nie można uruchomić komendy "%1 %2". Przyczyna: %3 - - - Packaging Error: Command '%1 %2' failed. - Błąd pakowania: Komenda "%1 %2" zakończona błędem. - - - Reason: %1 - Przyczyna: %1 - - - Exit code: %1 - Kod wyjściowy: %1 - - - Deploy Qt libraries. This may take some time, please wait. - Instalowanie bibliotek Qt. To może zająć trochę czasu. - - - Package installation failed. - Błąd instalowania pakietu. - - - Installing package onto %1. - Instalowanie pakietów na %1. - - - - Android::Internal::AndroidDeployStepFactory - - Deploy to Android device or emulator - Zainstaluj na urządzeniu lub emulatorze Android - - - - Android::Internal::AndroidDeployStepWidget - - <b>Deploy configurations</b> - <b>Konfiguracje instalacji</b> - - - Qt Android Smart Installer - Qt Android Smart Installer - - - Android package (*.apk) - Pakiet androida (*.apk) - - Android::Internal::AndroidDevice @@ -26271,177 +21746,6 @@ Sprawdź dokumentację SSH i zmienną środowiskową SSH_ASKPASS. Urządzenie Android - - Android::Internal::AndroidManager - - Error creating Android directory '%1'. - Błąd podczas tworzenia androidowego katalogu "%1". - - - No Qt for Android SDKs were found. -Please install at least one SDK. - Brak Qt dla Android SDK. -Zainstaluj przynajmniej jeden SDK. - - - Warning - Ostrzeżenie - - - Android files have been updated automatically. - Pliki Androida zostały automatycznie uaktualnione. - - - Unknown Android version. - Nieznana wersja Androida. - - - Error creating Android templates. - Błąd tworzenia szablonów Androida. - - - Cannot parse '%1'. - Błąd parsowania "%1". - - - Cannot open '%1'. - Nie można otworzyć "%1". - - - Starting Android virtual device failed. - Nie można uruchomić wirtualnego urządzenia Android. - - - - Android::Internal::AndroidPackageCreationFactory - - Create Android (.apk) Package - Utwórz pakiet androidowy (.apk) - - - - Android::Internal::AndroidPackageCreationStep - - Packaging for Android - Pakowanie dla Androida - - - Cannot create Android package: current build configuration is not Qt 4. - Nie można utworzyć pakietu androidowego: bieżąca konfiguracja budowania nie używa Qt 4. - - - Cannot create Android package: No ANDROID_TARGET_ARCH set in make spec. - Nie można utworzyć pakietu androidowego: brak ustawionej zmiennej ANDROID_TARGET_ARCH w make spec. - - - Warning: Signing a debug package. - Ostrzeżenie: podpisywanie pakietu debugowego. - - - Cannot find ELF information - Nie można odnaleźć informacji o ELF - - - Cannot find '%1'. -Please make sure your application is built successfully and is selected in Application tab ('Run option'). - Nie można odnaleźć "%1". -Upewnij się, że aplikacja jest poprawnie zbudowana i jest ona wybrana w zakładce "Aplikacja" ("Opcje uruchamiania"). - - - Error - Błąd - - - Invalid password - Niepoprawne hasło - - - Copy Qt app & libs to Android package ... - Kopiowanie bibliotek i aplikacji Qt do pakietu androidowego... - - - Can't copy gdbserver from '%1' to '%2' - Nie można skopiować gdbserver z "%1" do "%2" - - - Creating package file ... - Tworzenie pliku pakietu... - - - Signing package ... - Podpisywanie pakietu... - - - Failed, try again - Nie udało się, spróbuj ponownie - - - Release signed package created to %1 - Utworzono podpisany releasowy pakiet w %1 - - - Package created. - Utworzono pakiet. - - - Package deploy: Running command '%1 %2'. - Instalacja pakietu: Uruchamianie komendy "%1 %2". - - - Packaging failed. - Błąd pakowania. - - - Packaging error: Could not start command '%1 %2'. Reason: %3 - -Błąd pakowania: Nie można uruchomić komendy "%1 %2". Przyczyna: %3 - - - Packaging Error: Command '%1 %2' failed. - Błąd pakowania: Komenda "%1 %2" zakończona błędem. - - - Reason: %1 - Przyczyna: %1 - - - Exit code: %1 - Kod wyjściowy: %1 - - - Certificate - Certyfikat - - - Certificate password (%1): - Hasło dla certyfikatu (%1): - - - - Android::Internal::AndroidPackageCreationWidget - - <b>Package configurations</b> - <b>Konfiguracje pakietu</b> - - - - Android::Internal::AndroidPackageInstallationFactory - - Deploy to device - Zainstaluj na urządzeniu - - - - Android::Internal::AndroidPackageInstallationStep - - Copy application data - Skopiuj dane aplikacji - - - Removing directory %1 - Usuwanie katalogu %1 - - Android::Internal::AndroidQtVersion @@ -26454,17 +21758,6 @@ Błąd pakowania: Nie można uruchomić komendy "%1 %2". Przyczyna: %3 Android - - Android::Internal::AndroidRunConfiguration - - The .pro file '%1' is currently being parsed. - Trwa parsowanie pliku projektu "%1". - - - Run on Android device - Uruchom na urządzeniu Android - - Android::Internal::AndroidRunControl @@ -26518,10 +21811,6 @@ Błąd pakowania: Nie można uruchomić komendy "%1 %2". Przyczyna: %3 Failed to contact debugging port. - - Unable to start '%1'. - Nie można uruchomić "%1". - "%1" terminated. Zakończono "%1". @@ -26564,6 +21853,12 @@ Błąd pakowania: Nie można uruchomić komendy "%1 %2". Przyczyna: %3 The Android NDK cannot be installed into a path with spaces. Nie można zainstalować Android NDK w ścieżce zawierającej spacje. + + Qt versions for %1 architectures are missing. +To add the Qt versions, select Options > Build & Run > Qt Versions. + Brak wersji Qt dla architektury %1. +Wersje Qt można dodać w Opcje -> Budowanie i uruchamianie -> Wersje Qt. + Found %n toolchains for this NDK. @@ -26580,13 +21875,7 @@ Aby dodać wersję Qt wybierz Opcje | Budowanie i uruchamianie | Wersje Qt. Select JDK Path - - - - Qt versions for architectures %1 are missing. -To add the Qt versions, select Options > Build & Run > Qt Versions. - Brak ustawionych wersji Qt dla architektur %1. -Aby dodać wersje Qt wybierz Opcje | Budowanie i uruchamianie | Wersje Qt. + Wybierz ścieżkę do JDK The Platform tools are missing. Please use the Android SDK Manager to install them. @@ -26598,18 +21887,18 @@ Aby dodać wersje Qt wybierz Opcje | Budowanie i uruchamianie | Wersje Qt. Remove Android Virtual Device - + Usuń wirtualne urządzenie Android Remove device "%1"? This cannot be undone. - + Usunąć urządzenie "%1"? Zmiana ta będzie nieodwracalna. Unsupported GDB - + Nieobsługiwany GDB - The GDB inside this NDK seems to not support Python. The Qt Project offers fixed GDB builds at: <a href="http://download.qt-project.org/official_releases/gdb/">http://download.qt-project.org/official_releases/gdb/</a> + The GDB inside this NDK seems to not support Python. The Qt Project offers fixed GDB builds at: <a href="http://download.qt.io/official_releases/gdb/">http://download.qt.io/official_releases/gdb/</a> @@ -26624,10 +21913,6 @@ Aby dodać wersje Qt wybierz Opcje | Budowanie i uruchamianie | Wersje Qt.Select ant Script Wybierz skrypt "ant" - - Select OpenJDK Path - Wybierz ścieżkę do OpenJDK - Android::Internal::AndroidToolChainFactory @@ -26723,10 +22008,6 @@ Aby dodać wersje Qt wybierz Opcje | Budowanie i uruchamianie | Wersje Qt. AutotoolsProjectManager::Internal::AutotoolsManager - - Failed opening project '%1': Project is not a file - Nie można otworzyć projektu "%1": Ścieżka projektu nie wskazuje na plik - Failed opening project "%1": Project is not a file Nie można otworzyć projektu "%1": Ścieżka projektu nie wskazuje na plik @@ -26810,14 +22091,6 @@ Aby dodać wersje Qt wybierz Opcje | Budowanie i uruchamianie | Wersje Qt.Make Make - - Qt Creator needs a compiler set up to build. Configure a compiler in the kit options. - Do budowy Qt Creator wymaga ustawionego kompilatora. Skonfiguruj go w opcjach zestawu narzędzi. - - - Configuration is faulty. Check the Issues view for details. - Błędna konfiguracja. Sprawdź szczegóły w widoku "Problemy budowania". - AutotoolsProjectManager::Internal::MakeStepConfigWidget @@ -26831,21 +22104,6 @@ Aby dodać wersje Qt wybierz Opcje | Budowanie i uruchamianie | Wersje Qt.Make - - BinEditorDocument - - The Binary Editor cannot open empty files. - Edytor plików binarnych nie może otwierac pustych plików. - - - Cannot open %1: %2 - Nie można otworzyć %1: %2 - - - File Error - Błąd pliku - - Bookmarks::Internal::BookmarkViewFactory @@ -26887,10 +22145,6 @@ Aby dodać wersje Qt wybierz Opcje | Budowanie i uruchamianie | Wersje Qt.An item named "%1" already exists at this location. Do you want to overwrite it? Element o nazwie "%1" istnieje już w tym miejscu. Czy nadpisać go? - - An item named '%1' already exists at this location. Do you want to overwrite it? - Element o nazwie "%1" istnieje już w tym miejscu. Czy nadpisać go? - Save File As Zapisz plik jako @@ -26952,12 +22206,12 @@ Aby dodać wersje Qt wybierz Opcje | Budowanie i uruchamianie | Wersje Qt. - Enter function name - Wprowadź nazwę funkcji + Function name + Nazwa funkcji - Invalid function name - Niepoprawna nazwa funkcji + Access + Dostęp @@ -26969,10 +22223,6 @@ Aby dodać wersje Qt wybierz Opcje | Budowanie i uruchamianie | Wersje Qt. Debugger::Internal::BreakTreeView - - Delete Breakpoint - Usuń pułapkę - Delete All Breakpoints Usuń wszystkie pułapki @@ -26986,8 +22236,8 @@ Aby dodać wersje Qt wybierz Opcje | Budowanie i uruchamianie | Wersje Qt.Usuń pułapki w pliku - Adjust Column Widths to Contents - Wyrównaj szerokości kolumn do ich zawartości + Delete Selected Breakpoints + Usuń zaznaczone pułapki Edit Breakpoint... @@ -27103,50 +22353,8 @@ Aby dodać wersje Qt wybierz Opcje | Budowanie i uruchamianie | Wersje Qt.Inne typy - - Debugger::DebuggerEnginePrivate - - Debugged executable - Debugowany program - - - Attempting to interrupt. - Próba przerwania. - - - - Debugger::Internal::DebuggerRunConfigWidget - - Debugger Settings - Ustawienia debuggera - - - Enable C++ - Uaktywnij C++ - - - Enable QML - Uaktywnij QML - - - Debug port: - Port debugowania: - - - <a href="qthelp://org.qt-project.qtcreator/doc/creator-debugging-qml.html">What are the prerequisites?</a> - <a href="qthelp://org.qt-project.qtcreator/doc/creator-debugging-qml.html">Jakie są wymagania?</a> - - - Enable Debugging of Subprocesses - Uaktywnij debugowanie podprocesów - - DebuggerPlugin - - Unable to create a debugger engine of the type '%1' - Nie można utworzyć silnika debuggera typu "%1" - Install &Debug Information Zainstaluj informację &debugową @@ -27162,6 +22370,18 @@ Aby dodać wersje Qt wybierz Opcje | Budowanie i uruchamianie | Wersje Qt.Attached to process %1. Dołączono do procesu %1. + + Attached to running application + Dołączono do uruchomionej aplikacji + + + Failed to attach to application: %1 + Nie można dołączyć do aplikacji: %1 + + + Debugger Error + Błąd debuggera + Debugger::Internal::GdbCoreEngine @@ -27464,38 +22684,6 @@ Wskakiwanie do wnętrza modułu lub ustawianie pułapek w plikach powinno dział Pokaż zależności dla "%1" - - Debugger::Internal::QmlAdapter - - Connecting to debug server %1:%2 - Łączenie z serwerem debugowym %1: %2 - - - Error: (%1) %2 - %1=error code, %2=error message - Błąd: (%1) %2 - - - Disconnected. - Rozłączony. - - - Connected. - Połączony. - - - Resolving host. - Rozwiązywanie adresu hosta. - - - Connecting to debug server. - Łączenie z serwerem debugowym. - - - Closing. - Zamykanie. - - Debugger::Internal::QmlInspectorAgent @@ -27507,40 +22695,6 @@ Wskakiwanie do wnętrza modułu lub ustawianie pułapek w plikach powinno dział Właściwości - - Debugger::Internal::QmlLiveTextPreview - - The %1 attribute at line %2, column %3 cannot be changed without reloading the QML application. - Atrybut %1 w linii %2, w kolumnie %3, nie może być zmieniony bez przeładowania aplikacji QML. - - - The %1 element at line %2, column %3 cannot be changed without reloading the QML application. - Element %1 w linii %2, w kolumnie %3, nie może być zmieniony bez przeładowania aplikacji QML. - - - The changes in JavaScript cannot be applied without reloading the QML application. - Nie można zastosować zmian w JavaScript bez przeładowania aplikacji QML. - - - The changes made cannot be applied without reloading the QML application. - Nie można zastosować zmian bez przeładowania aplikacji QML. - - - You can continue debugging, but behavior can be unexpected. - Można kontynuować debugowanie, ale zachowanie może być nieoczekiwane. - - - Reload QML - Przeładuj QML - - - - Debugger::Internal::QmlV8DebuggerClient - - Anonymous Function - Anonimowa funkcja - - Debugger::Internal::RegisterTreeView @@ -27757,10 +22911,6 @@ Wskakiwanie do wnętrza modułu lub ustawianie pułapek w plikach powinno dział Add New Expression Evaluator... - - Change Local Display Format... - Zmień format wyświetlania zmiennych lokalnych... - Copy View Contents to Clipboard Skopiuj zawartość widoku do schowka @@ -27813,14 +22963,6 @@ Wskakiwanie do wnętrza modułu lub ustawianie pułapek w plikach powinno dział Automatic Automatyczny - - Change Display for Type or Item... - Zmień wyświetlanie dla typu lub elementu... - - - Add Data Breakpoint... - Dodaj pułapkę warunkową... - Add Data Breakpoint at Object's Address (0x%1) Dodaj pułapkę warunkową pod adresem obiektu (0x%1) @@ -27873,6 +23015,18 @@ Wskakiwanie do wnętrza modułu lub ustawianie pułapek w plikach powinno dział Select Widget to Add into Expression Evaluator + + Remove All Expression Evaluators + + + + Change Local Display Format + + + + Open Memory Editor + Otwórz edytor pamięci + Open Memory Editor... Otwórz edytor pamięci... @@ -27897,26 +23051,14 @@ Wskakiwanie do wnętrza modułu lub ustawianie pułapek w plikach powinno dział Open Memory Editor Showing Stack Layout Otwórz edytor pamięci z układem stosu - - Copy Contents to Clipboard - Skopiuj zawartość do schowka - Copy Value to Clipboard Skopiuj wartość do schowka - - Show View Contents in Editor - Pokaż zawartość widoku w edytorze - Close Editor Tooltips Zamknij podpowiedzi edytora - - Expression: - Wyrażenie: - Locals & Expressions Zmienne lokalne i wyrażenia @@ -27995,10 +23137,6 @@ Wskakiwanie do wnętrza modułu lub ustawianie pułapek w plikach powinno dział &Refresh &Odśwież - - &Show... - &Pokaż... - &Show &Pokaż @@ -28018,10 +23156,6 @@ Wskakiwanie do wnętrza modułu lub ustawianie pułapek w plikach powinno dział Gerrit::Internal::GerritModel - - <html><head/><body><table><tr><td>Subject</td><td>%1</td></tr><tr><td>Number</td><td><a href="%11">%2</a></td></tr><tr><td>Owner</td><td>%3 <a href="mailto:%4">%4</a></td></tr><tr><td>Project</td><td>%5 (%6)</td></tr><tr><td>Status</td><td>%7, %8</td></tr><tr><td>Patch set</td><td>%9</td></tr>%10<tr><td>URL</td><td><a href="%11">%11</a></td></tr></table></body></html> - <html><head/><body><table><tr><td>Temat</td><td>%1</td></tr><tr><td>Numer</td><td><a href="%11">%2</a></td></tr><tr><td>Właściciel</td><td>%3 <a href="mailto:%4">%4</a></td></tr><tr><td>Projekt</td><td>%5 (%6)</td></tr><tr><td>Stan</td><td>%7, %8</td></tr><tr><td>Zestaw łat</td><td>%9</td></tr>%10<tr><td>URL</td><td><a href="%11">%11</a></td></tr></table></body></html> - Subject Temat @@ -28074,25 +23208,9 @@ Wskakiwanie do wnętrza modułu lub ustawianie pułapek w plikach powinno dział Parse error: "%1" Błąd parsowania: "%1" - - Parse error: '%1' -> %2 - Błąd parsowania: "%1" -> %2 - - - Parse error: '%1' - Błąd parsowania: "%1" - - - Parse error in line '%1' - Błąd parsowania w linii "%1" - Gerrit::Internal::QueryContext - - Gerrit - Gerrit - Querying Gerrit @@ -28114,10 +23232,10 @@ Wskakiwanie do wnętrza modułu lub ustawianie pułapek w plikach powinno dział Przekroczony czas oczekiwania - The gerrit process has not responded within %1s. + The gerrit process has not responded within %1 s. Most likely this is caused by problems with SSH authentication. Would you like to terminate it? - Proces gerrit nie odpowiedział po %1s. + Proces gerrit nie odpowiedział po %1 s. Najprawdopodobniej jest to problem autoryzacji SSH. Czy zakończyć proces? @@ -28143,10 +23261,6 @@ Czy zakończyć proces? HTTPS HTTPS - - Always prompt for repository folder - Zawsze pytaj o katalog repozytorium - &Host: &Host: @@ -28159,24 +23273,6 @@ Czy zakończyć proces? &ssh: &ssh: - - &Repository: - &Repozytorium: - - - Default repository where patches will be applied. - Domyślne repozytorium do którego będą aplikowane łaty. - - - Pr&ompt: - Py&taj: - - - If checked, user will always be -asked to confirm the repository path. - Jeśli zaznaczone, użytkownik będzie -zawsze pytany o potwierdzenie ścieżki do repozytorium. - &Port: &Port: @@ -28194,10 +23290,6 @@ zawsze pytany o potwierdzenie ścieżki do repozytorium. Gerrit::Internal::FetchContext - - Gerrit Fetch - Gerrit Fetch - Fetching from Gerrit Pobieranie danych z Gerrita @@ -28260,10 +23352,6 @@ were not verified among remotes in %3. Select different folder? Enter Local Repository for "%1" (%2) Podaj lokalne repozytorium dla "%1" (%2) - - Enter Local Repository for '%1' (%2) - Podaj lokalne repozytorium dla "%1" (%2) - Git::Internal::GitLogArgumentsWidget @@ -28286,6 +23374,10 @@ were not verified among remotes in %3. Select different folder? Git::Internal::GitSubmitEditorWidget + + Provide a valid email to commit. + + Detached HEAD Odłączony HEAD @@ -28650,14 +23742,6 @@ Spróbować ponownie? Failed to connect! Nie można uzyskać połączenia! - - QML Profiler: Connecting to %1:%2 ... - Profiler QML: łączenie z %1:%2... - - - QML Profiler: connected and running - Profiler QML: połączony i uruchomiony - QmlProfiler::Internal::QmlProfilerEventsWidget @@ -28772,26 +23856,6 @@ odniesienia do elementów w innych plikach, pętle, itd.) QmlProfiler::Internal::QmlProfilerTraceView - - Jump to previous event. - Skocz do poprzedniego zdarzenia. - - - Jump to next event. - Skocz do następnego zdarzenia. - - - Show zoom slider. - Pokaż suwak powiększania. - - - Select range. - Wybierz zakres. - - - View event information on mouseover. - Pokazuj informacje o zdarzeniach po najechaniu myszą. - Limit Events Pane to Current Range Ogranicz liczbę zdarzeń panelu do bieżącego zakresu @@ -28811,422 +23875,10 @@ odniesienia do elementów w innych plikach, pętle, itd.) Events Zdarzenia - - V8 - V8 - Timeline Oś czasu - - JavaScript - JavaScript - - - - Qnx::Internal::BlackBerryAbstractDeployStep - - Starting: "%1" %2 - Uruchamianie "%1" %2 - - - - Qnx::Internal::BlackBerryApplicationRunner - - Cannot determine device runtime version. - - - - Cannot determine API level version. - Nie można określić wersji poziomu API. - - - Confirmation - Potwierdzenie - - - The device runtime version (%1) does not match the API level version (%2). -This may cause unexpected behavior when debugging. -Do you want to continue anyway? - - - - API level version does not match Runtime version. - - - - Querying device runtime version... - - - - Launching application failed - Nie można uruchomić aplikacji - - - Checking qmljsdebugger command line argument. - - - - Cannot find Native Packager executable. - - - - Cannot read bar package manifest. - - - - Internal error: Cannot create temporary manifest file "%1" - - - - Cannot set command line arguments. - Nie można ustawić argumentów linii komend. - - - - Qnx::Internal::BlackBerryCreatePackageStep - - Create packages - Utwórz pakiety - - - Could not find packager command '%1' in the build environment. - Nie można odnaleźć komendy pakującej "%1" w środowisku budowania. - - - Could not find packager command "%1" in the build environment. - Nie można odnaleźć komendy pakującej "%1" w środowisku budowania. - - - No packages enabled for deployment. - Brak włączonych pakietów do instalacji. - - - BAR application descriptor file not specified. Check deployment settings. - Nie podano pliku deskryptora aplikacji, sprawdź ustawienia instalacji. - - - No package specified. Check deployment settings. - Nie podano pakietu, sprawdź ustawienia instalacji. - - - Could not create build directory "%1". - Nie można utworzyć katalogu budowania "%1". - - - In order to link to the correct Qt library specified in the deployment settings Qt Creator needs to update the Qt environment variables in the BAR application file as follows: - -<env var="LD_LIBRARY_PATH" value="%1"/> -<env var="QT_PLUGIN_PATH" value="%2"/> -<env var="QML_IMPORT_PATH" value="%3"/> - - - - - -Do you want to update it? - - - - Confirmation - Potwierdzenie - - - Error saving BAR application descriptor file "%1" - %2 - Błąd podczas zachowywania pliku BAR deskryptora aplikacji "%1" %2 - - - Could not create build directory '%1'. - Nie można utworzyć katalogu budowania "%1". - - - Missing passwords for signing packages. - Brak haseł do podpisania pakietów. - - - Error opening BAR application descriptor file "%1" - %2 - Błąd podczas otwierania pliku BAR deskryptora aplikacji "%1" %2 - - - Error preparing BAR application descriptor file. - Błąd przygotowywania pliku BAR deskryptora aplikacji. - - - Error opening BAR application descriptor file '%1' - %2 - Błąd otwierania pliku BAR deskryptora aplikacji "%1" %2 - - - Error saving prepared BAR application descriptor file '%1' - %2 - Błąd podczas zachowywania pliku BAR deskryptora aplikacji "%1" %2 - - - - Qnx::Internal::BlackBerryCreatePackageStepConfigWidget - - Use the Qt libraries shipped with the BlackBerry device. - Używaj bibliotek Qt dostarczonych z urządzeniem BlackBerry. - - - Include Qt libraries in the package. This will increase the package size. - Dołączaj biblioteki Qt do pakietu. Pakiet zwiększy swój rozmiar. - - - Use deployed Qt libraries on the device. - Używaj bibliotek Qt na urządzeniu. - - - Use Pre-installed Qt - Używaj preinstalowanego Qt - - - Bundle Qt in Package - Dowiązuj Qt do pakietu - - - Use Deployed Qt - Używaj zainstalowanego Qt - - - <b>Create packages</b> - <b>Utwórz pakiety</b> - - - Form - Formularz - - - Sign packages - Podpisane pakiety - - - CSK password: - Hasło CSK: - - - Keystore password: - - - - Note: This will store the passwords in a world-readable file. - Uwaga: hasła zostaną zachowane w pliku dostępnym dla wszystkich. - - - Save passwords - Zachowaj hasła - - - Show passwords - Pokaż hasła - - - Package in development mode - Pakiet w trybie deweloperskim - - - /accounts/devuser/ - /accounts/devuser/ - - - Deploy Now - Zainstaluj teraz - - - No device configured, cannot deploy. - Brak skonfigurowanego urządzenia, nie można zainstalować. - - - - Qnx::Internal::BlackBerryCreatePackageStepFactory - - Create BAR Packages - Utwórz pakiety BAR - - - - Qnx::Internal::BlackBerryDeployConfiguration - - Deploy to BlackBerry Device - Zainstaluj na urządzeniu BlackBerry - - - Setup Application Descriptor File - Ustaw plik deskryptora aplikacji - - - You need to set up a BAR descriptor file to enable packaging. -Do you want Qt Creator to generate it for your project (%1)? - Należy ustawić plik deskryptora aplikacji BAR aby umożliwić utorzenie pakietu. -Czy wygenerować plik BAR dla projektu (%1)? - - - Do not ask again for this project - Nie pytaj więcej o ten projekt - - - Reading the BAR descriptor template failed. - Błąd odczytu szablonu deskryptora BAR. - - - Writing the BAR descriptor file failed. - Błąd zapisu pliku deskryptora BAR. - - - Cannot Set up Application Descriptor File - Nie można ustawić pliku deskryptora aplikacji - - - - Qnx::Internal::BlackBerryDeployConfigurationFactory - - Deploy to BlackBerry Device - Zainstaluj na urządzeniu BlackBerry - - - - Qnx::Internal::BlackBerryDeployInformation - - Enabled - Aktywne - - - Application descriptor file - Plik deskryptora aplikacji - - - Package - Pakiet - - - - Qnx::Internal::BlackBerryDeployStep - - Deploy packages - Zainstaluj pakiety - - - Could not find deploy command '%1' in the build environment - Nie można odnaleźć komendy instalującej "%1" w środowisku budowania - - - Could not find deploy command "%1" in the build environment - Nie można odnaleźć komendy instalującej "%1" w środowisku budowania - - - No hostname specified for device - Brak nazwy hosta dla urządzenia - - - No packages enabled for deployment - Brak pakietów do instalacji - - - Package "%1" does not exist. Create the package first. - Pakiet "%1" nie istnieje. Najpierw go utwórz. - - - Package '%1' does not exist. Create the package first. - Pakiet "%1" nie istnieje. Najpierw go utwórz. - - - - Qnx::Internal::BlackBerryDeployStepConfigWidget - - <b>Deploy packages</b> - <b>Zainstaluj pakiety</b> - - - - Qnx::Internal::BlackBerryDeployStepFactory - - Deploy Package - Zainstaluj pakiet - - - - Qnx::Internal::BlackBerryDeviceConfiguration - - BlackBerry - BlackBerry - - - Connect to device - Połącz z urządzeniem - - - Disconnect from device - Rozłącz z urządzeniem - - - Deploy Qt libraries... - Instaluj biblioteki Qt... - - - - Qnx::Internal::BlackBerryDeviceConfigurationFactory - - BlackBerry Device - Urządzenie BlackBerry - - - - Qnx::Internal::BlackBerryDeviceConfigurationWizard - - New BlackBerry Device Configuration Setup - Nowa konfiguracja urządzenia BlackBerry - - - - Qnx::Internal::BlackBerryDeviceConfigurationWizardFinalPage - - Summary - Podsumowanie - - - The new device configuration will be created now. - Zostanie teraz utworzona nowa konfiguracja urządzenia. - - - - Qnx::Internal::BlackBerryQtVersion - - BlackBerry %1 - Qt Version is meant for BlackBerry - BlackBerry %1 - - - BlackBerry - BlackBerry - - - BlackBerry Native SDK: - Natywny SDK BlackBerry: - - - - Qnx::Internal::BlackBerryRunConfiguration - - Run on BlackBerry device - Uruchom na urządzeniu BlackBerry - - - - Qnx::Internal::BlackBerryRunControlFactory - - No active deploy configuration - Brak aktywnej konfiguracji instalacji - - - Target Qt version (%1) might not support QML profiling. Cascades applications are not affected and should work as expected. For more info see http://qt-project.org/wiki/Qt-Creator-with-BlackBerry-10 - - - - - Qnx::Internal::QnxAbstractQtVersion - - No SDK path set - Nie ustawiono ścieżki do SDK - Qnx::Internal::QnxDebugSupport @@ -29246,10 +23898,6 @@ Czy wygenerować plik BAR dla projektu (%1)? Warning: "slog2info" is not found on the device, debug output not available. Ostrzeżenie: brak"slog2info" na urządzeniu, komunikaty debugowe nie będą dostępne. - - Warning: "slog2info" is not found on the device, debug output not available! - Ostrzeżenie: brak"slog2info" na urządzeniu, komunikaty debugowe nie będą dostępne. - Qnx::Internal::QnxDeployConfigurationFactory @@ -29302,8 +23950,8 @@ Czy wygenerować plik BAR dla projektu (%1)? QNX - QNX Software Development Platform: - Platforma dewelopmentowa QNX: + No SDK path was set up. + Nie ustawiono ścieżki do SDK. @@ -29326,18 +23974,10 @@ Czy wygenerować plik BAR dla projektu (%1)? Executable: Plik wykonywalny: - - Arguments: - Argumenty: - Working directory: Katalog roboczy: - - Run in &terminal - Uruchom w &terminalu - QtSupport::CustomExecutableRunConfiguration @@ -29484,10 +24124,6 @@ w ścieżce. Cannot check for free disk space: "%1" is not an absolute path. Nie można sprawdzić wolnego miejsca na dysku: "%1" nie jest ścieżką bezwzględną. - - Unexpected output from remote process: '%1'. - Nieoczekiwany komunikat od zdalnego procesu: "%1". - The remote file system has only %n megabytes of free space, but %1 megabytes are required. @@ -29504,10 +24140,6 @@ w ścieżce. Zdalny system plików ma %n megabajtów wolnego miejsca, wznowiono pracę. - - Cannot check for free disk space: '%1' is not an absolute path. - Nie można sprawdzić wolnego miejsca na dysku: "%1" nie jest ścieżką bezwzględną. - RemoteLinux::Internal::RemoteLinuxCheckForFreeDiskSpaceStepWidget @@ -29794,6 +24426,14 @@ w ścieżce. VOBs list, separated by comma. Indexer will only traverse the specified VOBs. If left blank, all active VOBs will be indexed. + + Check out or check in files with no comment (-nc/omment). + + + + Do &not prompt for comment during check out or check in + + ClearCase::Internal::UndoCheckOut @@ -29864,13 +24504,6 @@ w ścieżce. Zachowaj aktywność elementu - - ClearCase::Internal::ClearCaseEditor - - Annotate version "%1" - Dołącz adnotację do wersji "%1" - - ClearCase::Internal::ClearCasePlugin @@ -30165,10 +24798,6 @@ w ścieżce. Enter activity headline - - CC Indexing - Indeksowanie CC - ClearCase::Internal::ClearCaseSubmitEditor @@ -30199,12 +24828,12 @@ w ścieżce. Komenda ClearCase - In order to use External diff, 'diff' command needs to be accessible. - Aby użyć zewnętrzego edytora różnic, należy udostępnić komendę "diff". + In order to use External diff, "diff" command needs to be accessible. + - DiffUtils is available for free download <a href="http://gnuwin32.sourceforge.net/packages/diffutils.htm">here</a>. Please extract it to a directory in your PATH. - DiffUtils można darmowo pobrać <a href="http://gnuwin32.sourceforge.net/packages/diffutils.htm">tutaj</a>. Rozpakuj pakiet w katalogu dostępnym ze zmiennej PATH. + DiffUtils is available for free download athttp://gnuwin32.sourceforge.net/packages/diffutils.htm.Extract it to a directory in your PATH. + @@ -30303,10 +24932,6 @@ w ścieżce. The <RCC> root element is missing. Brak głównego elementu <RCC>. - - Cannot write file. Disk full? - Nie można zapisać pliku. Pełny dysk? - ClearCase::Internal::ClearCaseControl @@ -30347,14 +24972,6 @@ w ścieżce. No debugger set up. Brak ustawionego debuggera. - - Debugger '%1' not found. - Brak debuggera "%1". - - - Debugger '%1' not executable. - Debugger "%1" nie jest plikiem wykonywalnym. - Debugger "%1" not found. Brak debuggera "%1". @@ -30372,8 +24989,24 @@ w ścieżce. - unknown - nieznany + Unknown debugger version + Nieznana wersja debuggera + + + Unknown debugger ABI + + + + Name of Debugger + Nazwa debuggera + + + Unknown debugger + Nieznany debugger + + + Unknown debugger type + Nieznany typ debuggera No Debugger @@ -30434,7 +25067,7 @@ w ścieżce. Nazwa aktywnego zestawu narzędzi. - The name of the currently active kit in a filesystem friendly version. + The name of the currently active kit in a filesystem-friendly version. Nazwa aktywnego zestawu narzędzi w wersji przyjaznej dla systemu plików. @@ -30493,10 +25126,6 @@ w ścieżce. ProjectExplorer::DeviceKitInformation - - Device does not match device type. - Urządzenie nie odpowiada typowi urządzenia. - No device set. Brak ustawionego urządzenia. @@ -30682,47 +25311,68 @@ w ścieżce. "mkspec" bieżącej wersji Qt. - None - Brak + The installation prefix of the current Qt version. + Przedrostek instalacji bieżącej wersji Qt. - Name of Qt Version - Nazwa wersji Qt + The installation location of the current Qt version's data. + Położenie danych wewnątrz instalacji bieżącej wersji Qt. - unknown - nieznana + The installation location of the current Qt version's header files. + Położenie plików nagłówkowych wewnątrz instalacji bieżącej wersji Qt. + + + The installation location of the current Qt version's library files. + Położenie plików bibliotecznych wewnątrz instalacji bieżącej wersji Qt. + + + The installation location of the current Qt version's documentation files. + Położenie plików z dokumentacją wewnątrz instalacji bieżącej wersji Qt. + + + The installation location of the current Qt version's executable files. + Położenie plików wykonywalnych wewnątrz instalacji bieżącej wersji Qt. + + + The installation location of the current Qt version's plugins. + Położenie wtyczek wewnątrz instalacji bieżącej wersji Qt. + + + The installation location of the current Qt version's imports. + Położenie importów wewnątrz instalacji bieżącej wersji Qt. + + + The installation location of the current Qt version's translation files. + Położenie plików z tłumaczeniami wewnątrz instalacji bieżącej wersji Qt. - - - CMakeProjectManager::Internal::ChooseCMakePage - CMake Executable: - Plik wykonywalny CMake: + The installation location of the current Qt version's examples. + Położenie przykładów wewnątrz instalacji bieżącej wersji Qt. - Choose CMake Executable - Wybierz plik wykonywalny CMake + The installation location of the current Qt version's demos. + Położenie dem wewnątrz instalacji bieżącej wersji Qt. - The CMake executable is valid. - Plik wykonywalny CMake jest poprawny. + The current Qt version's default mkspecs. + Domyślny mkspecs bieżącej wersji Qt. - Specify the path to the CMake executable. No CMake executable was found in the path. - Podaj ścieżkę do pliku wykonywalnego CMake. Nie odnaleziono go w ścieżce. + The current Qt's qmake version. + Wersja qmake bieżącej wersji Qt. - The CMake executable (%1) does not exist. - Plik wykonywalny CMake (%1) nie istnieje. + None + Brak - The path %1 is not an executable. - Ścieżka %1 nie wskazuje na plik wykonywalny. + Name of Qt Version + Nazwa wersji Qt - The path %1 is not a valid CMake executable. - Ścieżka %1 nie wskazuje na poprawny plik wykonywalny CMake. + unknown + nieznana @@ -30773,59 +25423,9 @@ w ścieżce. Select all, if possible: Zaznacz wszystko, jeśli to możliwe: - - Mixed - Mieszane - - - No Version Control System Found - Brak systemu kontroli wersji (VCS) - - - Cannot Set Permissions - Nie można ustawić praw dostępu - - - Cannot Save File - Nie można zachować pliku - - - Cannot open file %1 from version control system. -No version control system found. - Nie można otworzyć pliku %1 z systemu kontroli wersji. -Brak systemu kontroli wersji. - - - Cannot set permissions for %1 to writable. - Nie można uczynić pliku %1 zapisywalnym. - - - Cannot save file %1 - Nie można zachować pliku %1 - - - Canceled Changing Permissions - Anulowano zmianę praw dostępu - - - Could Not Change Permissions on Some Files - Nie można zmienić praw dostępu niektórych plików - - - See details for a complete list of files. - W szczegółach pełna lista plików. - - - Change &Permission - Zmień &prawa dostępu - Debugger::Internal::SymbolPathsDialog - - Dialog - Dialog - <html><head/><body><p>The debugger is not configured to use the public Microsoft Symbol Server.<br/>This is recommended for retrieval of the symbols of the operating system libraries.</p><p><span style=" font-style:italic;">Note:</span> It is recommended, that if you use the Microsoft Symbol Server, to also use a local symbol cache.<br/>A fast internet connection is required for this to work smoothly,<br/>and a delay might occur when connecting for the first time and caching the symbols.</p><p>What would you like to set up?</p></body></html> <html><head/><body><p>Debugger nie jest skonfigurowany do użycia publicznego Microsoft Symbol Servera.<br/>Zalecane jest pobranie symboli dla bibliotek systemu operacyjnego. </p><p><span style=" font-style:italic;"><i>Uwaga:</i> Zalecane jest używanie lokalnego cache'a z symbolami wraz z Microsoft Symbol Serverem.<br/>Wymagane jest szybkie połączenie z internetem do płynnego działania.<br>Może wystąpić opóźnienie przy pierwszym połączeniu i cache'owaniu symboli.</p><p>Czy skonfigurować?</p></body></html> @@ -30839,8 +25439,8 @@ Brak systemu kontroli wersji. Użyj Microsoft Symbol Servera - Do not ask again - Nie pytaj ponownie + Set up Symbol Paths + Ustaw ścieżki z symbolami @@ -30888,18 +25488,6 @@ Brak systemu kontroli wersji. Push to Gerrit Wyślij do Gerrita - - <b>Local repository:</b> - <b>Lokalne repozytorium:</b> - - - Destination: - Przeznaczenie: - - - R&emote: - Zdaln&e repozytorium: - &Topic: &Temat: @@ -30912,10 +25500,6 @@ Brak systemu kontroli wersji. Number of commits Liczba zmian - - &Push up to commit: - - Pushes the selected commit and all dependent commits. @@ -30924,18 +25508,6 @@ Brak systemu kontroli wersji. &Reviewers: &Recenzenci: - - Comma-separated list of reviewers. - -Partial names can be used if they are unambiguous. - Lista recenzentów, oddzielona przecinkami. - -Można używać częściowych nazw, jeśli będą unikatowe. - - - <b>Local repository:</b> %1 - <b>Lokalne repozytorium:</b> %1 - Number of commits between %1 and %2: %3 Liczba zmian pomiędzy %1 a %2: %3 @@ -30944,14 +25516,6 @@ Można używać częściowych nazw, jeśli będą unikatowe. ... Include older branches ... ... Dołącz inne gałęzie ... - - &Local branch: - &Lokalna gałąź: - - - Target &branch: - Docelowa &gałąź: - Comma-separated list of reviewers. @@ -30960,6 +25524,22 @@ Reviewers can be specified by nickname or email address. Spaces not allowed. Partial names can be used if they are unambiguous. + + Push: + + + + Commits: + + + + Local repository + + + + To: + Do: + Mercurial::Internal::AuthenticationDialog @@ -30967,10 +25547,6 @@ Partial names can be used if they are unambiguous. Dialog Dialog - - User name: - Nazwa użytkownika: - Password: Hasło: @@ -31046,8 +25622,12 @@ Partial names can be used if they are unambiguous. Może to sprawić, że aplikacja stanie się podatna na ataki. Używaj tylko w bezpiecznym środowisku. - Parallel Jobs: - Liczba równoległych zadań: + Could not split properties. + Nie można rozdzielić właściwości. + + + No ":" found in property definition. + Brak ":" w definicji właściwości. Flags: @@ -31074,12 +25654,20 @@ Partial names can be used if they are unambiguous. Budowanie będzie kontynuowane, nawet jeśli wystąpią błędy, o ile budowanie w dalszym ciągu będzie możliwe. - Instead of using the file timestamps that are stored in the build graph, retrieve the timestamps from the file system. - Zamiast używania czasów dostępu, zgromadzonych w grafie budowania, pobiera je z systemu plików. + Parallel jobs: + Liczba równoległych zadań: + + + Show command lines + Pokazuj linie komend + + + Install + Zainstaluj - Check timestamps - Spawdzaj czas dostępu + Clean install root + Wyczyść korzeń instalacji @@ -31181,18 +25769,10 @@ Partial names can be used if they are unambiguous. Text Tekst - - The text shown on the button - Tekst pokazany na przycisku - Checked Wciśnięty - - The state of the button - Stan przycisku - Text displayed on the button. Tekst pokazany na przycisku. @@ -31260,14 +25840,6 @@ Partial names can be used if they are unambiguous. Text Tekst - - The text shown on the check box - Tekst etykiety przycisku wyboru - - - The state of the check box - Stan przycisku wyboru - Determines whether the check box gets focus if pressed. Określa, czy przycisk wyboru otrzymuje fokus po naciśnięciu. @@ -31299,14 +25871,6 @@ Partial names can be used if they are unambiguous. Determines whether the combobox gets focus if pressed. Określa, czy pole wyboru otrzymuje fokus po naciśnięciu. - - Tool tip - Podpowiedź - - - The tool tip shown for the combobox. - Podpowiedź ukazująca się dla pola wyboru. - Focus on press Fokus po naciśnięciu @@ -31322,10 +25886,6 @@ Partial names can be used if they are unambiguous. Text Tekst - - The text label for the radio button - Tekst etykiety przycisku opcji - Text label for the radio button. Tekst etykiety przycisku opcji. @@ -31373,26 +25933,14 @@ Partial names can be used if they are unambiguous. Document margins Marginesy dokumentu - - The margins of the text area - Marginesy pola tekstowego - Text Area Obszar tekstowy - - The text shown on the text area - Tekst pokazany w obszarze tekstowym - Frame width Szerokość ramki - - The width of the frame - Szerokość ramki - Margins of the text area. Marginesy pola tekstowego. @@ -31448,18 +25996,10 @@ Partial names can be used if they are unambiguous. Text Tekst - - The text shown on the text field - Tekst pokazany w polu tekstowym - Placeholder text Tekst zastępczy - - The placeholder text - Tekst zastępczy - Read only Tylko do odczytu @@ -31468,14 +26008,6 @@ Partial names can be used if they are unambiguous. Determines whether the text field is read only. Określa, czy pole tekstowe jest edytowalne. - - Password mode - Tryb hasła - - - Determines whether the text field is in password mode. - Określa, czy pole tekstowe jest w trybie hasła. - Text shown on the text field. Tekst pokazany w polu tekstowym. @@ -31538,12767 +26070,10895 @@ Partial names can be used if they are unambiguous. - Qnx::Internal::BarDescriptorEditorAssetsWidget + VcsBase::SubmitEditorWidget - Form - Formularz + Subversion Submit + Wrzuć do Subversion - Add... - Dodaj... + Descriptio&n + &Opis - Remove - Usuń + F&iles + Pl&iki + + + %1 %2/%n File(s) + + %1 %2 z %n pliku + %1 %2 z %n plików + %1 %2 z %n plików + - Path - Ścieżka + &Commit + &Wrzuć - Destination - Przeznaczenie + Select All + Check all for submit + Zaznacz wszystko - Entry-Point - Punkt wejścia + Unselect All + Uncheck all for submit + Odznacz wszystko - Select File to Add - Wybierz plik do dodania + Select a&ll + Zaznacz &wszystko - Qnx::Internal::BarDescriptorEditorAuthorInformationWidget + ExtensionSystem::PluginErrorOverview - Form - Formularz + Continue + Kontynuuj + + + QmlJS::QrcParser - Author: - Autor: + XML error on line %1, col %2: %3 + Błąd XML w linii %1, w kolumnie %2: %3 - Author ID: - Identyfikator autora: + The <RCC> root element is missing. + Brak głównego elementu <RCC>. + + + QmlJS::SimpleAbstractStreamReader - Set from debug token... - + Cannot find file %1. + Brak pliku %1. - Select Debug Token - + Could not parse document. + Błąd parsowania dokumentu. - Debug token: - + Expected document to contain a single object definition. + Oczekiwano dokumentu zawierającego pojedynczą definicję obiektu. - Error Reading Debug Token - + Expected expression statement after colon. + Oczekiwano składnika wyrażenia po dwukropku. - There was a problem reading debug token. - + Expected expression statement to be a literal. + Oczekiwano literału jako składnika wyrażenia. - Qnx::Internal::BarDescriptorEditorEntryPointWidget - - Form - Formularz - - - Name: - Nazwa: - - - Description: - Opis: - + QmlJS::SimpleReader - Icon: - Ikona: + Property is defined twice. + Właściwość jest zdefiniowana dwukrotnie. + + + QmlJS::StaticAnalysisMessages - Clear - Wyczyść + Do not use "%1" as a constructor. + Nie używaj "%1" jako konstruktora. - Splash screens: - + Invalid value for enum. + Niepoprawna wartość dla typu wyliczeniowego. - Add... - Dodaj... + Enum value must be a string or a number. + Wartość typu wyliczeniowego musi być ciągiem znakowym lub liczbą. - Remove - Usuń + Number value expected. + Oczekiwano wartości liczbowej. - Images (*.jpg *.png) - Pliki graficzne (*.jpg *.png) + Boolean value expected. + Oczekiwano wartości boolowskiej. - Select Splash Screen - + String value expected. + Oczekiwano wartości w postaci ciągu tekstowego. - <font color="red">Could not open "%1" for reading.</font> - <font color="red">Nie można otworzyć '%1' do odczytu.</font> + Invalid URL. + Niepoprawny URL. - <font color="red">Could not open '%1' for reading.</font> - <font color="red">Nie można otworzyć '%1' do odczytu.</font> + File or directory does not exist. + Plik lub katalog nie istnieje. - <font color="red">The selected image is too big (%1x%2). The maximum size is %3x%4 pixels.</font> - <font color="red">Wybrany plik graficzny jest za duży (%1x%2). Maksymalny rozmiar to %3x%4 piksli.</font> + Invalid color. + Niepoprawny kolor. - - - Qnx::Internal::BarDescriptorEditorEnvironmentWidget - Form - Formularz + Anchor line expected. + Oczekiwano linii kotwicznej. - Device Environment - Środowisko urządzenia + Duplicate property binding. + Powielone powiązanie właściwości. - - - Qnx::Internal::BarDescriptorEditorGeneralWidget - Form - Formularz + Id expected. + Oczekiwano identyfikatora. - Orientation: - Orientacja: + Invalid id. + Niepoprawny identyfikator. - Chrome: - Chrome: + Duplicate id. + Powielony identyfikator. - Transparent main window - Główne okno przezroczyste + Invalid property name "%1". + Niepoprawna nazwa właściwości "%1". - Application Arguments: - Argumenty aplikacji: + "%1" does not have members. + "%1" nie posiada składników. - Default - Domyślna + "%1" is not a member of "%2". + "%1" nie jest składnikiem "%2". - Auto-orient - Automatyczna + "%1" already is a formal parameter. + "%1" jest już formalnym parametrem. - Landscape - Pejzaż + "%1" already is a function. + "%1" jest już funkcją. - Portrait - Portret + var "%1" is used before its declaration. + Zmienna "%1" jest użyta przed jej deklaracją. - Standard - Standard + "%1" already is a var. + "%1" jest już zmienną. - None - Brak + "%1" is declared more than once. + "%1" jest zadeklarowana więcej niż jeden raz. - - - Qnx::Internal::BarDescriptorEditorPackageInformationWidget - Form - Formularz + Function "%1" is used before its declaration. + Funkcja "%1" jest użyta przed jej deklaracją. - Package ID: - Identyfikator pakietu: + Could not resolve the prototype "%1" of "%2". + Nie można rozwiązać prototypu "%1" klasy "%2". - Package version: - Wersja pakietu: + Could not resolve the prototype "%1". + Nie można rozwiązać prototypu "%1". - Package build ID: - Identyfikator wersji pakietu: + Prototype cycle, the last non-repeated component is "%1". + Cykl w prototypie, ostatni niepowtórzony komponent to "%1". - - - Qnx::Internal::BarDescriptorEditorPermissionsWidget - Form - Formularz + Invalid property type "%1". + Niepoprawna nazwa właściwości "%1". - Select All - Zaznacz wszystko + Missing property "%1". + Brak właściwości "%1". - Deselect All - Odznacz wszystko + This type (%1) is not supported in the Qt Quick Designer. + Ten typ (%1) nie jest obsługiwany przez Qt Quick Designera. - - - Qnx::Internal::BlackBerryCreateCertificateDialog - Create Certificate - Utwórz certyfikat + This type (%1) is not supported as a root element by Qt Quick Designer. + Ten typ (%1) nie jest obsługiwany jako główny element przez Qt Quick Designera. - Author: - Autor: + This type (%1) is not supported as a root element of a Qt Quick UI form. + Ten typ (%1) nie jest obsługiwany jako główny element formularza Qt Quick UI. - Password: - Hasło: + This type (%1) is not supported in a Qt Quick UI form. + Ten typ (%1) nie jest obsługiwany w formularzu Qt Quick UI. - Confirm password: - Potwierdź hasło: + Functions are not supported in a Qt Quick UI form. + Funkcje nie są obsługiwane w formularzach Qt Quick UI. - Show password - Pokaż hasło + JavaScript blocks are not supported in a Qt Quick UI form. + - Status - Stan + Behavior type is not supported in a Qt Quick UI form. + - Base directory does not exist. - Katalog bazowy nie istnieje. + States are only supported in the root item in a Qt Quick UI form. + Stany są obsługiwane jedynie w głównym elemencie formularza Qt Quick UI. - The entered passwords do not match. - Wprowadzone hasła nie zgadzają się. + Referencing the parent of the root item is not supported in a Qt Quick UI form. + Odwołanie do rodzica elementu głównego nie jest obsługiwane w formularzu Qt Quick UI. - Password must be at least 6 characters long. - Hasło musi się składać przynajmniej z sześciu znaków. + Assignment in condition. + Podstawienie w warunku. - Are you sure? - Czy kontynuować? + Unterminated non-empty case block. + Niezakończony niepusty blok "case". - The file '%1' will be overwritten. Do you want to proceed? - Plik "%1" zostanie nadpisany. Kontynuować? + Do not use 'eval'. + Nie używaj "eval". - The file "%1" will be overwritten. Do you want to proceed? - Plik "%1" zostanie nadpisany. Kontynuować? + Unreachable. + Nieosiągalne. - The blackberry-keytool process is already running. - + Do not use 'with'. + Nie używaj "with". - The password entered is invalid. - Wprowadzone hasło jest niepoprawne. + Do not use comma expressions. + Nie używaj wyrażeń przecinkowych. - The password entered is too short. - Wprowadzone hasło jest za krótkie. + Unnecessary message suppression. + Niepotrzebne stłumienie komunikatu. - Invalid output format. - Niepoprawny format wyjściowy. + The 'function' keyword and the opening parenthesis should be separated by a single space. + Słowo kluczowe "function" i nawias otwierający powinny być oddzielone pojedynczą spacją. - An unknown error occurred. - Wystąpił nieznany błąd. + Do not use stand-alone blocks. + Nie używaj samodzielnych bloków. - Error - Błąd + Do not use void expressions. + Nie używaj wyrażeń "void". - Please be patient... - Cierpliwości... + Confusing pluses. + Mylne plusy. - - - Qnx::Internal::BlackBerryDebugTokenRequestDialog - Request Debug Token - + Confusing minuses. + Mylne minusy. - Debug token path: - + Declare all function vars on a single line. + Zadeklaruj wszystkie zmienne funkcji w pojedynczej linii. - Device PIN: - PIN urządzenia: + Unnecessary parentheses. + Nadmiarowe nawiasy. - Status - Stan + == and != may perform type coercion, use === or !== to avoid it. + == i != mogą dokonać konwersji typu, zamiast tego używaj === lub !==. - BAR Files (*.bar) - Pliki BAR (*.bar) + Expression statements should be assignments, calls or delete expressions only. + Składnikami wyrażenia mogą być tylko przypisania, wywołania lub "delete". - Requesting Device PIN... - Oczekiwanie na PIN urządzenia... + Place var declarations at the start of a function. + Deklaracje zmiennych powinny znajdować się na początku funkcji. - Base directory does not exist. - Katalog bazowy nie istnieje. + Use only one statement per line. + Używaj tylko jednego wyrażenia w linii. - Are you sure? - Czy kontynuować? + Unknown component. + Nieznany komponent. - The file '%1' will be overwritten. Do you want to proceed? - Plik "%1" zostanie nadpisany. Kontynuować? + == and != perform type coercion, use === or !== to avoid it. + == i != mogą dokonać konwersji typu, zamiast tego używaj === lub !==. - The file "%1" will be overwritten. Do you want to proceed? - Plik "%1" zostanie nadpisany. Kontynuować? + Calls of functions that start with an uppercase letter should use 'new'. + Wywołania funkcji, które rozpoczynają się wielką literą, powinny używać "new". - Failed to request debug token: - + Use 'new' only with functions that start with an uppercase letter. + "new" powinno być użyte jedynie dla funkcji, które rozpoczynają się wielką literą. - Wrong CSK password. - Złe hasło CSK. + Use spaces around binary operators. + Używaj spacji po obu stronach operatorów binarnych. - Wrong keystore password. - + Unintentional empty block, use ({}) for empty object literal. + Niezamierzony pusty blok, użyj ({}) dla pustego literału obiektowego. - Network unreachable. - Sieć nieosiągalna. + Use %1 instead of 'var' or 'variant' to improve performance. + Używaj %1 zamiast "var" lub "variant" aby poprawić wydajność. - Illegal device PIN. - Niepoprawny PIN urządzenia. + Object value expected. + Oczekiwano wartości w postaci obiektu. - Failed to start inferior process. - Nie można uruchomić podprocesu. + Array value expected. + Oczekiwano wartości w postaci tablicy. - Inferior processes timed out. - Przekroczony czas oczekiwania na podproces. + %1 value expected. + Oczekiwano wartości w postaci %1. - Inferior process has crashed. - Podproces zakończył pracę błędem. + Maximum number value is %1. + Maksymalną wartością liczbową jest %1. - Failed to communicate with the inferior process. - Nie można skomunikować się z podprocesem. + Minimum number value is %1. + Minimalną wartością liczbową jest %1. - Not yet registered to request debug tokens. - + Maximum number value is exclusive. + Maksymalna wartość liczbowa jest wyłączna. - An unknwon error has occurred. - Wystąpił nieznany błąd. + Minimum number value is exclusive. + Minimalna wartość liczbowa jest wyłączna. - Error - Błąd + String value does not match required pattern. + Wartość ciągu tekstowego nie odpowiada wymaganemu wzorcowi. - Requesting debug token... - + Minimum string value length is %1. + Minimalna długość wartości ciągu tekstowego to %1. - - - Qnx::Internal::BlackBerryImportCertificateDialog - Import Certificate - Zaimportuj certyfikat + Maximum string value length is %1. + Maksymalna długość wartości ciągu tekstowego to %1. - Path: - Ścieżka: + %1 elements expected in array value. + Oczekiwano %1 elementów w tablicy wartości. - Password: - Hasło: + Imperative code is not supported in the Qt Quick Designer. + Kod imperatywny nie jest obsługiwany w Qt Quick Designerze. - PKCS 12 Archives (*.p12) - Archiwa PKCS 12 (*.p12) + Reference to parent item cannot be resolved correctly by the Qt Quick Designer. + Qt Quick Designer nie może poprawnie rozwiązać referencji do rodzica elementu. - The keystore password is invalid. - + This visual property binding cannot be evaluated in the local context and might not show up in Qt Quick Designer as expected. + To lokalne powiązanie właściwości nie może zostać obliczone w lokalnym kontekście, ani nie możne zostać prawidłowo pokazane w Qt Quick Designerze. - Error parsing inferior process output. - Błąd parsowania wyjścia podprocesu. + Qt Quick Designer only supports states in the root item. + Qt Quick Designer obsługuje jedynie stany w głównym elemencie. - An unknown error has occurred. - Wystąpił nieznany błąd. + Using Qt Quick 1 code model instead of Qt Quick 2. + Użyto modelu kodu Qt Quick 1 zamiast Qt Quick 2. + + + Android::Internal::AndroidGdbServerKitInformation - Error - Błąd + GDB server + Serwer GDB - Qnx::Internal::BlackBerryKeysWidget + Android::Internal::AndroidGdbServerKitInformationWidget - Form - Formularz + Manage... + Zarządzaj... - BlackBerry Signing Authority - + Auto-detect + Wykryj automatycznie - Developer Certificate - Certyfikat dewelopera + Edit... + Modyfikuj... - Error - Błąd + Android GDB server + Serwer GDB Androida - STATUS - STAN + The GDB server to use for this kit. + Serwer GDB użyty w tym zestawie narzędzi. - Path: - Ścieżka: + &Binary: + Plik &binarny: - PATH - ŚCIEŻKA + GDB Server for "%1" + Serwer GDB dla "%1" + + + Android::Internal::AndroidManifestEditor - Author: - Autor: + General + Ogólne - LABEL - ETYKIETA + XML Source + Źródło XML + + + Android::Internal::AndroidManifestEditorFactory - No developer certificate has been found. - Brak certyfikatu deweloperskiego. + Android Manifest editor + Edytor plików manifest Androida + + + Android::Internal::AndroidManifestEditorWidget - Open Certificate - Otwórz certyfikat + Package + Pakiet - Clear Certificate - Wyczyść certyfikat + <p align="justify">Please choose a valid package name for your application (for example, "org.example.myapplication").</p><p align="justify">Packages are usually defined using a hierarchical naming pattern, with levels in the hierarchy separated by periods (.) (pronounced "dot").</p><p align="justify">In general, a package name begins with the top level domain name of the organization and then the organization'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.</p><p align="justify">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.</p> + - Path - Ścieżka + Package name: + Nazwa pakietu: + + + The package name is not valid. + Niepoprawna nazwa pakietu. - Author - Autor + Version code: + Kod wersji: - PINs - PINy + Version name: + Nazwa wersji: - Expiry - Ważność + Sets the minimum required version on which this application can be run. + Ustawia minimalną wymaganą wersję, z którą ta aplikacja może zostać uruchomiona. - Qt Creator - Qt Creator + Not set + Nie ustawiona - Invalid certificate password. Try again? - Niepoprawne hasło certyfikatu. Spróbować ponownie? + Minimum required SDK: + Minimalnie wymagane SDK: - Error loading certificate. - Błąd ładowania certyfikatu. + Sets the target SDK. Set this to the highest tested version. This disables compatibility behavior of the system for your application. + - This action cannot be undone. Would you like to continue? - Ta akcja nie będzie mogła zostać cofnięta. Kontynuować? + Target SDK: + Docelowe SDK: - It appears you are using legacy key files. Please refer to the <a href="%1">BlackBerry website</a> to find out how to update your keys. - Użyto starych kluczy. Na <a href="%1">stronie BlackBerry</a> można znaleźć informacje o tym, jak je uaktualnić. + Application + Aplikacja - No keys found. Please refer to the <a href="%1">BlackBerry website</a> to find out how to request your keys. - Brak kluczy. Na <a href="%1">stronie BlackBerry</a> można znaleźć informacje o tym, jak je uzyskać. + Application name: + Nazwa aplikacji: - Select Debug Token + Activity name: - Bar file (*.bar) - Plik BAR (*.bar) + Run: + Uruchom: - Invalid Debug Token - + Select low DPI icon. + Wybierz ikonę o małym DPI. - Debug token file %1 cannot be read. - + Select medium DPI icon. + Wybierz ikonę o średnim DPI. - Confirmation - Potwierdzenie + Select high DPI icon. + Wybierz ikonę o dużym DPI. - Are you sure you want to remove %1? - Czy usunąć %1? + The structure of the Android manifest file is corrupted. Expected a top level 'manifest' node. + Struktura pliku manifest Androida jest uszkodzona. Oczekiwano głównego elementu "manifest". - Failed to request debug token: - + The structure of the Android manifest file is corrupted. Expected an 'application' and 'activity' sub node. + Struktura pliku manifest Androida jest uszkodzona. Oczekiwano podelementów "application" i "activity". - Wrong CSK password. - Złe hasło CSK. + API %1: %2 + API %1: %2 - Wrong keystore password. - + Application icon: + Ikona aplikacji: - Network unreachable. - Sieć nieosiągalna. + Permissions + Prawa dostępu - Illegal device PIN. - Niepoprawny PIN urządzenia. + Include default permissions for Qt modules. + Ustaw domyślne prawa dostępu dla modułów Qt. - Failed to start inferior process. - Nie można uruchomić podprocesu. + Include default features for Qt modules. + Ustaw domyślne cechy dla modułów Qt. - Inferior processes timed out. - Przekroczony czas oczekiwania na podproces. + Remove + Usuń - Inferior process has crashed. - Podproces zakończył pracę błędem. + Add + Dodaj - Failed to communicate with the inferior process. - Nie można skomunikować się z podprocesem. + Could not parse file: "%1". + Błąd parsowania pliku: "%1". - Not yet registered to request debug tokens. - + %2: Could not parse file: "%1". + %2: Błąd parsowania pliku: "%1". - An unknown error has occurred. - Wystąpił nieznany błąd. + Goto error + - Your keys are ready to be used - Klucze są gotowe do użycia + Choose Low DPI Icon + Wybierz ikonę o małym dpi - Create Certificate... - Utwórz certyfikat... + PNG images (*.png) + Pliki graficzne (*.png) - Debug Tokens - + Choose Medium DPI Icon + Wybierz ikonę o średnim dpi - Request... - Żądanie... + Choose High DPI Icon + Wybierz ikonę o dużym dpi + + + Bookmarks::Internal::BookmarkManager - Import... - Importuj... + Edit Bookmark + Zmodyfikuj zakładkę - Edit... - Modyfikuj... + Note text: + Tekst notatki: - Remove - Usuń + Line number: + Numer linii: - Qnx::Internal::BlackBerryNDKSettingsWidget + CMakeProjectManager::Internal::GeneratorInfo - Form - Formularz + Ninja (%1) + Ninja (%1) - Remove - Usuń + NMake Generator (%1) + Generator NMake (%1) - Auto-Detected - Automatycznie wykryte + MinGW Generator (%1) + Generator MinGW (%1) - Manual - Ustawione ręcznie + Unix Generator (%1) + Generator Unix (%1) + + + CMakeProjectManager::Internal::NoKitPage - Configuration - Konfiguracja + Check Kits + Sprawdzenie narzędzi budowania - API Levels - Poziomy API + There are compatible kits. + Istnieją kompatybilne zestawy narzędzi. - Runtimes - + Qt Creator has no kits that are suitable for CMake projects. Please configure a kit. + Brak zestawów narzędzi dla projektów CMake. Skonfiguruj zestaw. + + + Core::ICore - Invalid target %1: - + (%1) + (%1) - - Target no longer installed. - + Qt Creator %1%2 + Qt Creator %1%2 - - No NDK environment file found. - - Brak pliku ze środowiskiem NDK. + Based on Qt %1 (%2, %3 bit) + Bazujący na Qt %1 (%2, %3 bitowy) + + + Core::Internal::ProgressManagerPrivate - - No Qt version found. - - Brak wersji Qt. + Toggle Progress Details + Przełącz szczegóły postępu - - No compiler found. - - Brak kompilatora. + Ctrl+Shift+0 + Ctrl+Shift+0 - - No debugger found for device. - - Brak debuggera dla urządzenia. + Alt+Shift+0 + Alt+Shift+0 + + + CppEditor::Internal::CppEditorPlugin - - No debugger found for simulator. - - Brak debuggera dla symulatora. + Shift+F2 + Shift+F2 - Clean BlackBerry 10 Configuration - Wyczyść konfigurację BlackBerry 10 + Additional Preprocessor Directives... + Dodatkowe dyrektywy preprocesora... - Are you sure you want to remove: - %1? - Czy usunąć: -%1? + Switch Between Function Declaration/Definition + Przełącz między deklaracją a definicją funkcji - Runtime Information - + Open Function Declaration/Definition in Next Split + Otwórz deklarację / definicję metody w nowym, sąsiadującym oknie - API Level Information - Informacja o poziomie API + Meta+E, Shift+F2 + Meta+E, Shift+F2 - Environment file: - Plik ze środowiskiem: + Ctrl+E, Shift+F2 + Ctrl+E, Shift+F2 - Confirmation - Potwierdzenie + Find Usages + Znajdź użycia - Are you sure you want to uninstall %1? - Czy zdezinstalować %1? + Ctrl+Shift+U + Ctrl+Shift+U - Newest Version - Najnowsza wersja + Open Type Hierarchy + Otwórz hierarchię typów - Activate - Uaktywnij + Meta+Shift+T + Meta+Shift+T - Deactivate - Zdezaktywuj + Ctrl+Shift+T + Ctrl+Shift+T - Default API level: - Domyślny poziom API: + Open Include Hierarchy + Otwórz hierarchię dołączeń - Add... - Dodaj... + Meta+Shift+I + Meta+Shift+I - Clean Up - Wyczyść + Ctrl+Shift+I + Ctrl+Shift+I - GroupBox - GroupBox + Rename Symbol Under Cursor + Zmień nazwę symbolu pod kursorem - Path: - Ścieżka: + CTRL+SHIFT+R + CTRL+SHIFT+R - Name: - Nazwa: + Reparse Externally Changed Files + Ponownie przeparsuj pliki zewnętrznie zmodyfikowane - Version: - Wersja: + Inspect C++ Code Model... + Przejrzyj model kodu C++... - Host: - Host: + Meta+Shift+F12 + Meta+Shift+F12 - Target: - Cel: + Ctrl+Shift+F12 + Ctrl+Shift+F12 - Qnx::Internal::BlackBerrySigningPasswordsDialog + CppEditor::QuickFix + + Move Definition Outside Class + Przenieś definicję na zewnątrz klasy + - Package signing passwords - Hasła podpisujące pakiety + Move Definition to %1 + Przenieś definicję do %1 - CSK password: - Hasło CSK: + Move All Function Definitions Outside Class + Przenieś wszystkie definicje funkcji poza klasę - Keystore password: - + Move All Function Definitions to %1 + Przenieś wszystkie definicje funkcji do %1 + + + Move Definition to Class + Przenieś definicję do klasy + + + Insert Virtual Functions of Base Classes + Wstaw wirtualne metody klas bazowych - VcsBase::SubmitEditorWidget + CppEditor::Internal::InsertVirtualMethodsDialog - Subversion Submit - Wrzuć do Subversion + Insert Virtual Functions + Wstaw wirtualne metody - Descriptio&n - &Opis + &Functions to insert: + &Metody do wstawienia: - F&iles - Pl&iki + &Hide reimplemented functions + &Ukryj nadpisane funkcje - Check a&ll - &Zaznacz wszystko + &Insertion options: + Opcje &wstawiania: - - %1 %2/%n File(s) - - %1 %2 z %n pliku - %1 %2 z %n plików - %1 %2 z %n plików - + + Insert only declarations + Wstaw tylko deklaracje - &Commit - &Wrzuć + Insert definitions inside class + Wstaw definicje wewnątrz klasy - Select All - Check all for submit - Zaznacz wszystko + Insert definitions outside class + Wstaw definicje na zewnątrz klasy - Unselect All - Uncheck all for submit - Odznacz wszystko + Insert definitions in implementation file + Wstaw definicje w pliku z implementacjami - Check All - Check all for submit - Zaznacz wszystko + Add "&virtual" to function declaration + Dodaj "&virtual" do deklaracji funkcji - Uncheck All - Uncheck all for submit - Odznacz wszystko + Add "override" equivalent to function declaration: + Dodaj odpowiednik "override" do deklaracji funkcji: - Select a&ll - Zaznacz &wszystko + Clear Added "override" Equivalents + Usuń dodany odpowiednik "override" - ExtensionSystem::PluginErrorOverview + CppTools::Internal::BuiltinIndexingSupport - Continue - Kontynuuj + Parsing C/C++ Files + Parsowanie plików C / C++ - CppQmlTypesLoader + CPlusplus::CheckSymbols - %1 seems not to be encoded in UTF8 or has a BOM. - Wygląda na to, że %1 nie jest zakodowane w UTF-8 lub posiada BOM. + Only virtual functions can be marked 'override' + Jedynie funkcje wirtualne mogą być opatrzone "override" - QmlJS::QrcParser + CPlusPlus::CheckSymbols - XML error on line %1, col %2: %3 - Błąd XML w linii %1, w kolumnie %2: %3 + Only virtual functions can be marked 'final' + Jedynie funkcje wirtualne mogą być opatrzone "final" - The <RCC> root element is missing. - Brak głównego elementu <RCC>. + Expected a namespace-name + Oczekiwano nazwy przestrzeni nazw + + + Too many arguments + Za dużo argumentów - QmlJS::SimpleAbstractStreamReader + CplusPlus::CheckSymbols - Cannot find file %1. - Brak pliku %1. + Too few arguments + Za mało argumentów + + + Cvs::Internal::CvsControl - Could not parse document. - Błąd parsowania dokumentu. + &Edit + &Edycja - Expected document to contain a single object definition. - Oczekiwano dokumentu zawierającego pojedynczą definicję obiektu. + CVS Checkout + Kopia robocza CVS + + + Debugger::Internal::CdbPathsPageWidget - Expected expression statement after colon. - Oczekiwano składnika wyrażenia po dwukropku. + Symbol Paths + Ścieżki z symbolami - Expected expression statement to be a literal. - Oczekiwano literału jako składnika wyrażenia. + Source Paths + Ścieżki ze źródłami - QmlJS::SimpleReader + Debugger::Internal::CdbPathsPage - Property is defined twice. - Właściwość jest zdefiniowana dwukrotnie. + CDB Paths + Ścieżki CDB - QmlJS::StaticAnalysisMessages + Debugger::Internal::CommonOptionsPageWidget - Do not use '%1' as a constructor. - Nie używaj "%1" jako konstruktora. + Behavior + Zachowanie - Do not use "%1" as a constructor. - Nie używaj "%1" jako konstruktora. + Use alternating row colors in debug views + Używaj alternatywnych kolorów wierszy w widokach debugowych - Invalid value for enum. - Niepoprawna wartość dla typu wyliczeniowego. + Debugger font size follows main editor + Rozmiar czcionki debuggera wzięty z głównego edytora - Enum value must be a string or a number. - Wartość typu wyliczeniowego musi być ciągiem znakowym lub liczbą. + Use tooltips in main editor while debugging + Używaj podpowiedzi w głównym edytorze podczas debugowania - Number value expected. - Oczekiwano wartości liczbowej. + Changes the font size in the debugger views when the font size in the main editor changes. + Zmienia rozmiar czcionki w widokach debuggera, gdy zostanie on zmieniony w głównym edytorze. - Boolean value expected. - Oczekiwano wartości boolowskiej. + Populates the source file view automatically. This might slow down debugger startup considerably. + Automatycznie wypełnia widok plików źródłowych. Może to znacznie spowolnić proces uruchamiania debuggera. - String value expected. - Oczekiwano wartości w postaci ciągu tekstowego. + Populate source file view automatically + Wypełniaj automatycznie widok pliku źródłowego - Invalid URL. - Niepoprawny URL. + Switch to previous mode on debugger exit + Przełączaj do poprzedniego trybu po zakończeniu debugowania - File or directory does not exist. - Plik lub katalog nie istnieje. + Bring Qt Creator to foreground when application interrupts + Przywołuj Qt Creatora w przypadku zatrzymania aplikacji - Invalid color. - Niepoprawny kolor. + Enables a full file path in breakpoints by default also for GDB. + Domyślnie uaktywnia pełne ścieżki również dla GDB. - Anchor line expected. - Oczekiwano linii kotwicznej. + Registers Qt Creator for debugging crashed applications. + Rejestruje Qt Creatora do debugowania aplikacji zakończonych błędem. - Duplicate property binding. - Powielone powiązanie właściwości. + Shows a warning when starting the debugger on a binary with insufficient debug information. + Pokazuje ostrzeżenie przy rozpoczęciu debugowania programu, w którym brak wystarczającej informacji debugowej. - Id expected. - Oczekiwano identyfikatora. + Show QML object tree + Pokazuj drzewo obiektów QML - Invalid id. - Niepoprawny identyfikator. + Stopping and stepping in the debugger will automatically open views associated with the current location. + Zatrzymanie i kroczenie w debuggerze automatycznie otworzy widoki związane z bieżącym położeniem. - Duplicate id. - Powielony identyfikator. + Close temporary source views on debugger exit + Zamykaj tymczasowe widoki ze źródłami po zakończeniu debugowania - Invalid property name "%1". - Niepoprawna nazwa właściwości "%1". + Select this option to close automatically opened source views when the debugger exits. + Opcja ta powoduje automatyczne zamykanie widoków ze źródłami otwartych w trakcie debugowania po jego zakończeniu. - "%1" does not have members. - "%1" nie posiada składników. + Close temporary memory views on debugger exit + Zamykaj tymczasowe widoki pamięci po zakończeniu debugowania - "%1" is not a member of "%2". - "%1" nie jest składnikiem "%2". + Select this option to close automatically opened memory views when the debugger exits. + Opcja ta powoduje automatyczne zamykanie widoków pamięci otwartych w trakcie debugowania po jego zakończeniu. - "%1" already is a formal parameter. - "%1" jest już formalnym parametrem. + Shows QML object tree in Locals and Expressions when connected and not stepping. + Pokazuje drzewo obiektów QML w widoku "Zmienne lokalne i wyrażenia" gdy podłączono i zatrzymano. - "%1" already is a function. - "%1" jest już funkcją. + Set breakpoints using a full absolute path + Włącz pełne, bezwzględne ścieżki - var "%1" is used before its declaration. - Zmienna "%1" jest użyta przed jej deklaracją. + Use Qt Creator for post-mortem debugging + Używaj Creatora do pośmiertnego debugowania - "%1" already is a var. - "%1" jest już zmienną. + Warn when debugging "Release" builds + Ostrzegaj przed debugowaniem wersji release'owej - "%1" is declared more than once. - "%1" jest zadeklarowana więcej niż jeden raz. + Keep editor stationary when stepping + Wyłącz centrowanie bieżącej linii podczas kroczenia - Function "%1" is used before its declaration. - Funkcja "%1" jest użyta przed jej deklaracją. + Scrolls the editor only when it is necessary to keep the current line in view, instead of keeping the next statement centered at all times. + Przewija edytor jedynie gdy jest to konieczne do pokazania bieżącej linii w widoku, zamiast centrowania bieżącej linii za każdym razem. - Could not resolve the prototype "%1" of "%2". - Nie można rozwiązać prototypu "%1" klasy "%2". + Maximum stack depth: + Maksymalna głębokość stosu: - Could not resolve the prototype "%1". - Nie można rozwiązać prototypu "%1". + <unlimited> + <nieograniczona> + + + Debugger::DebuggerRunConfigurationAspect - Prototype cycle, the last non-repeated component is "%1". - Cykl w prototypie, ostatni niepowtórzony komponent to "%1". + Debugger settings + Ustawienia debuggera + + + Debugger::Internal::GdbOptionsPage2 - Invalid property type "%1". - Niepoprawna nazwa właściwości "%1". + GDB Extended + Rozszerzony GDB + + + ImageViewer - Missing property "%1". - Brak właściwości "%1". + Color at %1,%2: red: %3 green: %4 blue: %5 alpha: %6 + Kolor na pozycji (%1,%2): czerwień: %3, zieleń: %4, błękit: %5, przeźroczystość: %6 - This type (%1) is not supported in the Qt Quick Designer. - Ten typ (%1) nie jest obsługiwany przez Qt Quick Designera. + Size: %1x%2, %3 byte, format: %4, depth: %5 + Rozmiar: %1x%2, %3 bajtów, format: %4, głębokość: %5 - This type (%1) is not supported as a root element by Qt Quick Designer. - Ten typ (%1) nie jest obsługiwany jako główny element przez Qt Quick Designera. + <Click to display color> + <Naciśnij aby wyświetlić kolor> - This type (%1) is not supported as a root element of a Qt Quick UI form. - Ten typ (%1) nie jest obsługiwany jako główny element formularza Qt Quick UI. + Copy Image + Skopiuj obraz - This type (%1) is not supported in a Qt Quick UI form. - Ten typ (%1) nie jest obsługiwany w formularzu Qt Quick UI. + Open Image Viewer + Otwórz przeglądarkę plików graficznych + + + Debugger::Internal::LldbEngine - Functions are not supported in a Qt Quick UI form. - Funkcje nie są obsługiwane w formularzach Qt Quick UI. + Unable to start LLDB "%1": %2 + Nie można uruchomić LLDB "%1": %2 - Java Script blocks are not supported in a Qt Quick UI form. - Bloki Java Script nie są obsługiwane w formularzy Qt Quick UI. + Adapter start failed. + Nie można uruchomić adaptera. - Behavior type is not supported in a Qt Quick UI form. - + Setting up inferior... + Ustawianie podprocesu... - States are only supported in the root item in a Qt Quick UI form. - Stany są obsługiwane jedynie w głównym elemencie formularza Qt Quick UI. + Running requested... + Zażądano uruchomienia... - Referencing the parent of the root item is not supported in a Qt Quick UI form. - Odwołanie do rodzica elementu głównego nie jest obsługiwane w formularzu Qt Quick UI. + Interrupt requested... + Zażądano przerwy... - Invalid property name '%1'. - Niepoprawna nazwa właściwości "%1". + LLDB I/O Error + Błąd wejścia / wyjścia LLDB - '%1' does not have members. - "%1" nie posiada składników. + The LLDB process failed to start. Either the invoked program "%1" is missing, or you may have insufficient permissions to invoke the program. + Nie można rozpocząć procesu LLDB. Brak programu "%1" albo brak wymaganych uprawnień aby go uruchomić. - '%1' is not a member of '%2'. - "%1" nie jest składnikiem "%2". + The LLDB process crashed some time after starting successfully. + Proces LLDB zakończony błędem po poprawnym uruchomieniu. - Assignment in condition. - Podstawienie w warunku. - + An error occurred when attempting to write to the LLDB process. For example, the process may not be running, or it may have closed its input channel. + Wystąpił błąd podczas próby pisania do procesu LLDB. Być może proces nie jest uruchomiony lub zamknął on swój kanał wejściowy. + - Unterminated non-empty case block. - Niezakończony niepusty blok "case". + An unknown error in the LLDB process occurred. + Wystąpił nieznany błąd w procesie LLDB. - Do not use 'eval'. - Nie używaj "eval". + Adapter start failed + Nie można uruchomić adaptera - Unreachable. - Nieosiągalne. + Debugger Error + Błąd debuggera - Do not use 'with'. - Nie używaj "with". + The last waitFor...() function timed out. The state of QProcess is unchanged, and you can try calling waitFor...() again. + Przekroczono czas oczekiwania na powrót z ostatniego wywołania funkcji waitFor...(). Stan QProcess się nie zmienił, można ponownie spróbować wywołać waitFor...(). - Do not use comma expressions. - Nie używaj wyrażeń przecinkowych. + An error occurred when attempting to read from the Lldb process. For example, the process may not be running. + Wystąpił błąd podczas próby czytania z procesu Lldb. Być może proces nie jest uruchomiony. + + + DiffEditor - '%1' already is a formal parameter. - "%1" jest już formalnym parametrem. + Diff Editor + Edytor różnic + + + DiffEditor::Internal::DiffEditorPlugin - Unnecessary message suppression. - Niepotrzebne stłumienie komunikatu. + Diff... + Porównaj... - '%1' already is a function. - "%1" jest już funkcją. + Select First File for Diff + Wybierz pierwszy plik do porównania - var '%1' is used before its declaration. - Zmienna "%1" jest użyta przed jej deklaracją. + Select Second File for Diff + Wybierz drugi plik do porównania - '%1' already is a var. - "%1" jest już zmienną. + Diff "%1", "%2" + Porównanie "%1" z "%2" + + + Diff - '%1' is declared more than once. - "%1" jest zadeklarowana więcej niż jeden raz. + Delete + Usunięto - Function '%1' is used before its declaration. - Funkcja "%1" jest użyta przed jej deklaracją. + Insert + Wstawiono - The 'function' keyword and the opening parenthesis should be separated by a single space. - Słowo kluczowe "function" i nawias otwierający powinny być oddzielone pojedynczą spacją. + Equal + Brak zmian + + + Git::Internal::LogChangeWidget - Do not use stand-alone blocks. - Nie używaj samodzielnych bloków. + Sha1 + Sha1 - Do not use void expressions. - Nie używaj wyrażeń "void". + Subject + Temat + + + Git::Internal::LogChangeDialog - Confusing pluses. - Mylne plusy. + Reset to: + Zresetuj do: - Confusing minuses. - Mylne minusy. + Select change: + Wybierz zmianę: - Declare all function vars on a single line. - Zadeklaruj wszystkie zmienne funkcji w pojedynczej linii. + Reset type: + Typ resetu: - Unnecessary parentheses. - Nadmiarowe nawiasy. + Mixed + Mixed - == and != may perform type coercion, use === or !== to avoid it. - == i != mogą dokonać konwersji typu, zamiast tego używaj === lub !==. + Hard + Hard - Expression statements should be assignments, calls or delete expressions only. - Składnikami wyrażenia mogą być tylko przypisania, wywołania lub "delete". + Soft + Soft + + + Git::Internal::MergeTool - Place var declarations at the start of a function. - Deklaracje zmiennych powinny znajdować się na początku funkcji. + Error + Błąd - Use only one statement per line. - Używaj tylko jednego wyrażenia w linii. + File input for the merge tool requires Git 1.7.8, or later. + Plik wejściowy narzędzia scalania wymaga wersji Git 1.7.8 lub nowszej. - Unknown component. - Nieznany komponent. + Normal + Normalny - Could not resolve the prototype '%1' of '%2'. - Nie można rozwiązać prototypu "%1" klasy "%2". + Submodule + Podmoduł - Could not resolve the prototype '%1'. - Nie można rozwiązać prototypu "%1". + Deleted + Usunięty - Prototype cycle, the last non-repeated component is '%1'. - Cykl w prototypie, ostatni niepowtórzony komponent to "%1". + Symbolic link + Dowiązanie symboliczne - Invalid property type '%1'. - Niepoprawny typ właściwości "%1". + Modified + Zmodyfikowany - == and != perform type coercion, use === or !== to avoid it. - == i != mogą dokonać konwersji typu, zamiast tego używaj === lub !==. + Created + Utworzony - Calls of functions that start with an uppercase letter should use 'new'. - Wywołania funkcji, które rozpoczynają się wielką literą, powinny używać "new". + Submodule commit %1 + Zmiana w podmodule %1 - Use 'new' only with functions that start with an uppercase letter. - "new" powinno być użyte jedynie dla funkcji, które rozpoczynają się wielką literą. + Symbolic link -> %1 + Link symboliczny -> %1 - Use spaces around binary operators. - Używaj spacji po obu stronach operatorów binarnych. + Merge Conflict + Konflikty podczas scalania - Unintentional empty block, use ({}) for empty object literal. - Niezamierzony pusty blok, użyj ({}) dla pustego literału obiektowego. + %1 merge conflict for "%2" +Local: %3 +Remote: %4 + - Use %1 instead of 'var' or 'variant' to improve performance. - Używaj %1 zamiast "var" lub "variant" aby poprawić wydajność. + &Local + - Missing property '%1'. - Brak właściwości "%1". + &Remote + - Object value expected. - Oczekiwano wartości w postaci obiektu. + &Created + - Array value expected. - Oczekiwano wartości w postaci tablicy. + &Modified + - %1 value expected. - Oczekiwano wartości w postaci %1. + &Deleted + - Maximum number value is %1. - Maksymalną wartością liczbową jest %1. + Continue Merging + Kontynuuj scalanie - Minimum number value is %1. - Minimalną wartością liczbową jest %1. + Continue merging other unresolved paths? + Kontynuować scalanie innych nierozwiązanych ścieżek? - Maximum number value is exclusive. - Maksymalna wartość liczbowa jest wyłączna. + Merge tool process finished successfully. + Proces scalania poprawnie zakończony. - Minimum number value is exclusive. - Minimalna wartość liczbowa jest wyłączna. + Merge tool process terminated with exit code %1 + Proces scalania zakończony kodem wyjściowym %1 + + + ProjectExplorer::Internal::CustomToolChainFactory - String value does not match required pattern. - Wartość ciągu tekstowego nie odpowiada wymaganemu wzorcowi. + Custom + Własny + + + + ProjectExplorer::Internal::TextEditDetailsWidget + + %n entries + + %n element + %n elementy + %n elementów + - Minimum string value length is %1. - Minimalna długość wartości ciągu tekstowego to %1. + Empty + Brak + + + ProjectExplorer::Internal::CustomToolChainConfigWidget - Maximum string value length is %1. - Maksymalna długość wartości ciągu tekstowego to %1. + Custom Parser Settings... + Własne ustawienia parsera... - %1 elements expected in array value. - Oczekiwano %1 elementów w tablicy wartości. + Each line defines a macro. Format is MACRO[=VALUE]. + Każda linia definiuje makro w formacie: MACRO[=WARTOŚĆ]. - Imperative code is not supported in the Qt Quick Designer. - Kod imperatywny nie jest obsługiwany w Qt Quick Designerze. + Each line adds a global header lookup path. + - This type is not supported in the Qt Quick Designer. - Ten typ nie jest obsługiwany przez Qt Quick Designera. + Comma-separated list of flags that turn on C++11 support. + Oddzielona przecinkami lista flag włączających obsługę C++11. - Reference to parent item cannot be resolved correctly by the Qt Quick Designer. - Qt Quick Designer nie może poprawnie rozwiązać referencji do rodzica elementu. + Comma-separated list of mkspecs. + Oddzielona przecinkami lista mkspec'ów. - This visual property binding cannot be evaluated in the local context and might not show up in Qt Quick Designer as expected. - To lokalne powiązanie właściwości nie może zostać obliczone w lokalnym kontekście, ani nie możne zostać prawidłowo pokazane w Qt Quick Designerze. + &Compiler path: + Ścieżka do &kompilatora: - Qt Quick Designer only supports states in the root item. - Qt Quick Designer obsługuje jedynie stany w głównym elemencie. + &Make path: + Ścieżka do "&make": - Using Qt Quick 1 code model instead of Qt Quick 2. - Użyto modelu kodu Qt Quick 1 zamiast Qt Quick 2. + &ABI: + &ABI: - - - Android::Internal::AndroidGdbServerKitInformation - GDB server - Serwer GDB + &Predefined macros: + &Predefiniowane makra: - - - Android::Internal::AndroidGdbServerKitInformationWidget - Manage... - Zarządzaj... + &Header paths: + Ścieżki do &nagłówków: - Auto-detect - Wykryj automatycznie + C++11 &flags: + &Flagi C++11: - Edit... - Modyfikuj... + &Qt mkspecs: + &Qt mkspecs: - Android GDB server - Serwer GDB Androida + &Error parser: + &Błąd parsowania: + + + ProjectExplorer::DeviceCheckBuildStep - The GDB server to use for this kit. - Serwer GDB użyty w tym zestawie narzędzi. + No device configured. + Brak skonfigurowanego urządzenia. - &Binary: - Plik &binarny: + Set Up Device + Ustaw urządzenie - GDB Server for "%1" - Serwer GDB dla "%1" + There is no device set up for this kit. Do you want to add a device? + Brak ustawionego urządzenia w tym zestawie narzędzi. Czy dodać urządzenie? + + + Check for a configured device + Wyszukaj skonfigurowane urządzenie - Android::Internal::AndroidManifestEditor + ProjectExplorer::EnvironmentAspect - General - Ogólne + Run Environment + Środowisko uruchamiania + + + ProjectExplorer::EnvironmentAspectWidget - XML Source - Źródło XML + Base environment for this run configuration: + Podstawowe środowisko dla tej konfiguracji uruchamiania: - Android::Internal::AndroidManifestEditorFactory + ProjectExplorer::GccToolChain - Android Manifest editor - Edytor plików manifest Androida + %1 (%2 %3 in %4) + %1 (%2 %3 w %4) - Android::Internal::AndroidManifestEditorWidget + ProjectExplorer::LocalEnvironmentAspect - Package - Pakiet + Build Environment + Środowisko budowania - <p align="justify">Please choose a valid package name for your application (for example, "org.example.myapplication").</p><p align="justify">Packages are usually defined using a hierarchical naming pattern, with levels in the hierarchy separated by periods (.) (pronounced "dot").</p><p align="justify">In general, a package name begins with the top level domain name of the organization and then the organization'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.</p><p align="justify">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.</p> - + System Environment + Środowisko systemowe - Package name: - Nazwa pakietu: + Clean Environment + Czyste środowisko + + + ProjectExplorer::Internal::RemoveTaskHandler - The package name is not valid. - Niepoprawna nazwa pakietu. + Remove + Name of the action triggering the removetaskhandler + Usuń - Version code: - Kod wersji: + Remove task from the task list. + Usuwa zadanie z listy zadań. + + + QbsProjectManager::Internal::QbsBuildConfiguration - Version name: - Nazwa wersji: + Parsing the Qbs project. + Parsowanie projektu Qbs. - Sets the minimum required version on which this application can be run. - Ustawia minimalną wymaganą wersję, z którą ta aplikacja może zostać uruchomiona. + Parsing of Qbs project has failed. + Nie można sparsować projektu Qbs. + + + QbsProjectManager::Internal::QbsBuildConfigurationFactory - Not set - Nie ustawiona + Build + Wersja - Minimum required SDK: - Minimalnie wymagane SDK: + Debug + The name of the debug build configuration created by default for a qbs project. + Debug - Sets the target SDK. Set this to the highest tested version. This disables compatibility behavior of the system for your application. - + Debug + Shadow build directory suffix + Non-ASCII characters in directory suffix may cause build issues. + Debug - Target SDK: - Docelowe SDK: + Release + The name of the release build configuration created by default for a qbs project. + Release - Application - Aplikacja + Release + Shadow build directory suffix + Non-ASCII characters in directory suffix may cause build issues. + Release + + + QbsProjectManager::Internal::QbsBuildConfigurationWidget - Application name: - Nazwa aplikacji: + Build directory: + Katalog wersji: + + + QbsProjectManager::Internal::QbsBuildStep - Run: - Uruchom: + Qbs Build + Wersja Qbs + + + QbsProjectManager::Internal::QbsBuildStepFactory - Select low DPI icon. - Wybierz ikonę o małym DPI. + Qbs Build + Wersja Qbs + + + QbsProjectManager::Internal::QbsCleanStep - Select medium DPI icon. - Wybierz ikonę o średnim DPI. + Qbs Clean + Qbs Clean + + + + QbsProjectManager::Internal::QbsCleanStepFactory + + Qbs Clean + Qbs Clean + + + Qbs - Select high DPI icon. - Wybierz ikonę o dużym DPI. + Qbs Install + Qbs Install + + + QbsProjectManager::Internal::QbsInstallStep - The structure of the Android manifest file is corrupted. Expected a top level 'manifest' node. - Struktura pliku manifest Androida jest uszkodzona. Oczekiwano głównego elementu "manifest". + Qbs Install + Qbs Install + + + QbsProjectManager::Internal::QbsInstallStepFactory - The structure of the Android manifest file is corrupted. Expected an 'application' and 'activity' sub node. - Struktura pliku manifest Androida jest uszkodzona. Oczekiwano podelementów "application" i "activity". + Qbs Install + Qbs Install + + + Qbs::QbsProjectNode - API %1: %2 - API %1: %2 + %1 in %2 + %1 w %2 + + + QbsProjectManager::Internal::QbsProject - Could not parse file: '%1'. - Błąd parsowania pliku: "%1". + Failed! + Niepoprawnie zakończone! - %2: Could not parse file: '%1'. - %2: Błąd parsowania pliku: "%1". + Could not write project file %1. + Nie można zapisać pliku projektu %1. - Application icon: - Ikona aplikacji: + Cannot build: Selected products do not exist anymore. + Nie można zbudować: wybrane produkty docelowe już nie istnieją. - Permissions - Prawa dostępu + Reading Project "%1" + Odczyt projektu "%1" + + + QbsProjectManager::Internal::QbsProjectManagerPlugin - Include default permissions for Qt modules. - Ustaw domyślne prawa dostępu dla modułów Qt. + Reparse Qbs + Przeparsuj Qbs - Include default features for Qt modules. - Ustaw domyślne cechy dla modułów Qt. + Build + Zbuduj - Remove - Usuń + Build File + Zbuduj plik - Add - Dodaj + Build File "%1" + Zbuduj plik "%1" - Could not parse file: "%1". - Błąd parsowania pliku: "%1". + Ctrl+Alt+B + Ctrl+Alt+B - %2: Could not parse file: "%1". - %2: Błąd parsowania pliku: "%1". + Build Product + Zbuduj produkt - Goto error - + Build Product "%1" + Zbuduj produkt "%1" - Choose Low DPI Icon - Wybierz ikonę o małym dpi + Ctrl+Alt+Shift+B + Ctrl+Alt+Shift+B - PNG images (*.png) - Pliki graficzne (*.png) + Build Subproject + Zbuduj podprojekt - Choose Medium DPI Icon - Wybierz ikonę o średnim dpi + Build Subproject "%1" + Zbuduj podprojekt "%1" - Choose High DPI Icon - Wybierz ikonę o dużym dpi + Ctrl+Shift+B + Ctrl+Shift+B - Android::AndroidPlugin + QbsProjectManager::Internal::QbsRunConfiguration + + The .qbs files are currently being parsed. + Trwa parsowanie plików .qbs. + - Android Manifest file - Plik manifest Androida + Parsing of .qbs files has failed. + Nie można sparsować plików .qbs. - Could not add mime-type for AndroidManifest.xml editor. - + Qbs Run Configuration + Konfiguracja uruchamiania Qbs - BINEditor::BinEditorWidget + QbsProjectManager::Internal::QbsRunConfigurationWidget - Memory at 0x%1 - Pamięć w 0x%1 + <unknown> + <nieznany> - Decimal&nbsp;unsigned&nbsp;value: - Wartość&nbsp;dziesiętna&nbsp;bez&nbsp;znaku: + Executable: + Plik wykonywalny: + + + QmlDesignerContextMenu - Decimal&nbsp;signed&nbsp;value: - Wartość&nbsp;dziesiętna&nbsp;ze&nbsp;znakiem: + Selection + Selekcja - Previous&nbsp;decimal&nbsp;unsigned&nbsp;value: - Poprzednia&nbsp;wartość&nbsp;dziesiętna&nbsp;bez&nbsp;znaku: + Stack (z) + Stos (z) - Previous&nbsp;decimal&nbsp;signed&nbsp;value: - Poprzednia&nbsp;wartość&nbsp;dziesiętna&nbsp;ze&nbsp;znakiem: + Edit + Edycja - %1-bit&nbsp;Integer&nbsp;Type - %1-bitowy&nbsp;typ&nbsp;całkowity + Anchors + Kotwice - Little Endian - Little Endian + Layout + Rozmieszczenie - Big Endian - Big Endian - - - Binary&nbsp;value: - Wartość&nbsp;binarna: - - - Octal&nbsp;value: - Wartość&nbsp;ósemkowa: - - - Previous&nbsp;binary&nbsp;value: - Poprzednia&nbsp;wartość&nbsp;binarna: + Select Parent: %1 + Zaznacz rodzica: %1 - Previous&nbsp;octal&nbsp;value: - Poprzednia&nbsp;wartość&nbsp;ósemkowa: + Select: %1 + Zaznacz: %1 - <i>double</i>&nbsp;value: - Wartość&nbsp;<i>double</i>: + Deselect: + Odznacz: - Previous <i>double</i>&nbsp;value: - Poprzednia&nbsp;wartość&nbsp;<i>double</i>: + Cut + Wytnij - <i>float</i>&nbsp;value: - Wartość&nbsp;<i>float</i>: + Copy + Skopiuj - Previous <i>float</i>&nbsp;value: - Poprzednia&nbsp;wartość&nbsp;<i>float</i>: + Paste + Wklej - Copying Failed - Błąd kopiowania + Delete Selection + Usuń zaznaczone - You cannot copy more than 4 MB of binary data. - Nie można skopiować więcej niż 4 MB danych binarnych. + To Front + Na wierzch - Copy Selection as ASCII Characters - Skopiuj jako znaki ASCII + To Back + Na spód - Copy Selection as Hex Values - Skopiuj jako wartości szesnastkowe + Raise + Do przodu - Set Data Breakpoint on Selection - Ustaw pułapkę warunkową na selekcji + Lower + Do tyłu - Jump to Address in This Window - Skocz do adresu w tym oknie + Undo + Cofnij - Jump to Address in New Window - Skocz do adresu w nowym oknie + Redo + Przywróć - Jump to Address 0x%1 in This Window - Skocz do adresu 0x%1 w tym oknie + Visibility + Widoczność - Jump to Address 0x%1 in New Window - Skocz do adresu 0x%1 w nowym oknie + Reset Size + Zresetuj rozmiar - - - Bookmarks::Internal::BookmarkManager - Edit Note - Zmodyfikuj notatkę + Reset Position + Zresetuj pozycję - Edit Bookmark - Zmodyfikuj zakładkę + Go into Component + Przejdź do komponentu - Note text: - Tekst notatki: + Set Id + Ustaw identyfikator - Line number: - Numer linii: + Reset z Property + Zresetuj właściwość "z" - - - CMakeProjectManager::Internal::GeneratorInfo - Ninja (%1) - Ninja (%1) + Fill + Wypełnij - NMake Generator (%1) - Generator NMake (%1) + Reset + Zresetuj - MinGW Generator (%1) - Generator MinGW (%1) + Layout in Column (Positioner) + - Unix Generator (%1) - Generator Unix (%1) + Layout in Row (Positioner) + - - - CMakeProjectManager::Internal::NoKitPage - Check Kits - Sprawdzenie narzędzi budowania + Layout in Grid (Positioner) + - There are compatible kits. - Istnieją kompatybilne zestawy narzędzi. + Layout in Flow (Positioner) + - Qt Creator has no kits that are suitable for CMake projects. Please configure a kit. - Brak zestawów narzędzi dla projektów CMake. Skonfiguruj zestaw. + Layout in ColumnLayout + - - - Core::ICore - (%1) - (%1) + Layout in RowLayout + - Qt Creator %1%2 - Qt Creator %1%2 + Layout in GridLayout + - Based on Qt %1 (%2, %3 bit) - Bazujący na Qt %1 (%2, %3 bitowy) + Fill Width + Wypełnij szerokość - - - Core::Internal::ProgressManagerPrivate - Toggle Progress Details - Przełącz szczegóły postępu + Fill Height + Wypełnij wysokość - Ctrl+Shift+0 - Ctrl+Shift+0 + Select parent: %1 + Zaznacz rodzica: %1 - Alt+Shift+0 - Alt+Shift+0 + Step into: %1 + Wskocz do wnętrza: %1 - Core::VariableManager - - %1: Full path including file name. - %1: Pełna ścieżka zawierająca nazwę pliku. - - - %1: Full path excluding file name. - %1: Pełna ścieżka bez nazwy pliku. - + QmlDesigner::Internal::DebugView - %1: File name without path. - %1: Nazwa pliku bez ścieżki. + Model attached + Dołączono model - %1: File base name without path and suffix. - %1: Bazowa nazwa pliku bez ścieżki i rozszerzenia. + FileName %1 + NazwaPliku %1 - Access environment variables. - + DebugView is enabled + DebugView jest aktywny - - - CppEditor::Internal::CppEditorPlugin - C++ Class - Klasa C++ + Model detached + Odłączono model - Creates a C++ header and a source file for a new class that you can add to a C++ project. - Tworzy plik nagłówkowy i źródłowy C++ z nową klasą, którą można dodać do projektu C++. + Added imports: + Dodane importy: - Creates a C++ source file that you can add to a C++ project. - Tworzy plik źródłowy C++, który można dodać do projektu C++. + Removed imports: + Usunięte importy: - C++ Source File - Plik źródłowy C++ + Imports changed: + Zmienione importy: - Creates a C++ header file that you can add to a C++ project. - Tworzy plik nagłówkowy C++, który można dodać do projektu C++. + Node created: + Utworzono węzeł: - C++ Header File - Plik nagłówkowy C++ + Node removed: + Usunięto węzeł: - Shift+F2 - Shift+F2 + New parent property: + Nowa właściwość rodzica: - Additional Preprocessor Directives... - Dodatkowe dyrektywy preprocesora... + Old parent property: + Stara właściwość rodzica: - Switch Between Function Declaration/Definition - Przełącz między deklaracją a definicją funkcji + PropertyChangeFlag + - Open Function Declaration/Definition in Next Split - Otwórz deklarację / definicję metody w nowym, sąsiadującym oknie + Node reparanted: + Zmieniono rodzica węzła: - Meta+E, Shift+F2 - Meta+E, Shift+F2 + New Id: + Nowy identyfikator: - Ctrl+E, Shift+F2 - Ctrl+E, Shift+F2 + Old Id: + Stary identyfikator: - Find Usages - Znajdź użycia + Node id changed: + Zmieniono identyfikator węzła: - Ctrl+Shift+U - Ctrl+Shift+U + VariantProperties changed: + - Open Type Hierarchy - Otwórz hierarchię typów + BindingProperties changed: + - Meta+Shift+T - Meta+Shift+T + SignalHandlerProperties changed: + - Ctrl+Shift+T - Ctrl+Shift+T + Node selected: + Wybrany węzęł: - Open Include Hierarchy - Otwórz hierarchię dołączeń + Properties removed: + Usunięto właściwości: - Meta+Shift+I - Meta+Shift+I + Auxiliary Data Changed: + Zmieniono dane pomocnicze: - Ctrl+Shift+I - Ctrl+Shift+I + Begin rewriter transaction + - Rename Symbol Under Cursor - Zmień nazwę symbolu pod kursorem + End rewriter transaction + - CTRL+SHIFT+R - CTRL+SHIFT+R + Debug View + Widok debugowy - Reparse Externally Changed Files - Ponownie przeparsuj pliki zewnętrznie zmodyfikowane + Instance property change + - Inspect C++ Code Model... - Przejrzyj model kodu C++... + Instance Completed + - Meta+Shift+F12 - Meta+Shift+F12 + Custom Notification: + Własne powiadomienie: - Ctrl+Shift+F12 - Ctrl+Shift+F12 + Node Source Changed: + Zmodyfikowano źródło węzła: - TextEditor::QuickFixFactory - - Create Getter and Setter Member Functions - Dodaj metodę zwracającą (getter) i ustawiającą (setter) - - - Convert to Stack Variable - Przekształć do zmiennej na stosie - - - Convert to Pointer - Przekształć do wskaźnika - + QmlDesigner::FormEditorView - Generate Missing Q_PROPERTY Members... - Wygeneruj brakujące składniki Q_PROPERTY... + Form Editor + Edytor formularzy - CppEditor::QuickFix - - Move Definition Outside Class - Przenieś definicję na zewnątrz klasy - - - Move Definition to %1 - Przenieś definicję do %1 - - - Move Definition to Class - Przenieś definicję do klasy - + QmlDesigner::Internal::MetaInfoPrivate - Insert Virtual Functions of Base Classes - Wstaw wirtualne metody klas bazowych + Invalid meta info + Niepoprawna metainformacja - CppEditor::Internal::InsertVirtualMethodsDialog + QmlDesigner::Internal::MetaInfoReader - Insert Virtual Functions - Wstaw wirtualne metody + Illegal state while parsing + Niepoprawny stan podczas parsowania - &Functions to insert: - &Metody do wstawienia: + No property definition allowed + Definicja właściwości nie jest dozwolona - &Hide reimplemented functions - &Ukryj nadpisane funkcje + Invalid type %1 + Niepoprawny typ %1 - &Insertion options: - Opcje &wstawiania: + Unknown property for Type %1 + Nieznana właściwość dla "Type" %1 - Insert only declarations - Wstaw tylko deklaracje + Unknown property for ItemLibraryEntry %1 + Nieznana właściwość dla "ItemLibraryEntry" %1 - Insert definitions inside class - Wstaw definicje wewnątrz klasy + Unknown property for Property %1 + Nieznana właściwość dla "Property" %1 - Insert definitions outside class - Wstaw definicje na zewnątrz klasy + Unknown property for QmlSource %1 + Nieznana właściwość dla "QmlSource" %1 - Insert definitions in implementation file - Wstaw definicje w pliku z implementacjami + Invalid or duplicate item library entry %1 + + + + SubComponentManager::parseDirectory - &Add keyword 'virtual' to function declaration - &Dodaj słowo kluczowe "virtual" do deklaracji metod + Invalid meta info + Niepoprawna metainformacja - CppTools::Internal::BuiltinIndexingSupport + QmlDesigner::TextToModelMerger - Parsing - Parsowanie + No import statements found + Brak instrukcji importu - Parsing C/C++ Files - Parsowanie plików C / C++ + Unsupported QtQuick version + Nieobsługiwana wersja QtQuick - CPlusplus::CheckSymbols + QmlDesigner::QmlDesignerPlugin - Only virtual functions can be marked 'override' - Jedynie funkcje wirtualne mogą być opatrzone "override" + Switch Text/Design + Przełącz tekst / projekt - CPlusPlus::CheckSymbols - - Only virtual functions can be marked 'final' - Jedynie funkcje wirtualne mogą być opatrzone "final" - + QmlDesigner::ShortCutManager - Expected a namespace-name - Oczekiwano nazwy przestrzeni nazw + &Undo + &Cofnij - Too many arguments - Za dużo argumentów + &Redo + &Przywróć - - - CplusPlus::CheckSymbols - Too few arguments - Za mało argumentów + Delete + Usuń - - - Cvs::Internal::CvsControl - &Edit - &Edycja + Delete "%1" + Usuń "%1" - - - Debugger::Internal::CdbPathsPageWidget - Symbol Paths - Ścieżki z symbolami + Cu&t + Wy&tnij - Source Paths - Ścieżki ze źródłami + Cut "%1" + Wytnij "%1" - - - Debugger::Internal::CdbPathsPage - CDB Paths - Ścieżki CDB + &Copy + S&kopiuj - - - Debugger::Internal::CommonOptionsPageWidget - Behavior - Zachowanie + Copy "%1" + Skopiuj "%1" - Use alternating row colors in debug views - Używaj alternatywnych kolorów wierszy w widokach debugowych + &Paste + Wk&lej - Debugger font size follows main editor - Rozmiar czcionki debuggera wzięty z głównego edytora + Paste "%1" + Wklej "%1" - Use tooltips in main editor while debugging - Używaj podpowiedzi w głównym edytorze podczas debugowania + Select &All + Zaznacz &wszystko - Changes the font size in the debugger views when the font size in the main editor changes. - Zmienia rozmiar czcionki w widokach debuggera, gdy zostanie on zmieniony w głównym edytorze. + Select All "%1" + Zaznacz wszystkie "%1" - Populates the source file view automatically. This might slow down debugger startup considerably. - Automatycznie wypełnia widok plików źródłowych. Może to znacznie spowolnić proces uruchamiania debuggera. + Toggle Sidebars + Przełącz boczny pasek - Populate source file view automatically - Wypełniaj automatycznie widok pliku źródłowego + &Restore Default View + Przywróć &domyślny widok - Close temporary views on debugger exit - Zamykaj widoki tymczasowe po zakończeniu debugowania + Toggle &Left Sidebar + Przełącz l&ewy boczny pasek - Stopping and stepping in the debugger will automatically open source or disassembler views associated with the current location. Select this option to automatically close them when the debugger exits. - Zatrzymanie lub kroczenie w debuggerze automatycznie otwiera widok źródła lub dezasemblacji bieżącego miejsca. Wybranie tej opcji spowoduje automatyczne zamknięcie tych widoków po zakończeniu debugowania. + Toggle &Right Sidebar + Przełącz p&rawy boczny pasek - Switch to previous mode on debugger exit - Przełączaj do poprzedniego trybu po zakończeniu debugowania + &Go into Component + &Przejdź do komponentu - Bring Qt Creator to foreground when application interrupts - Przywołuj Qt Creatora w przypadku zatrzymania aplikacji + Save %1 As... + Zachowaj %1 jako... - Shows QML object tree in Locals & Expressions when connected and not stepping. - + &Save %1 + &Zachowaj %1 - Enables a full file path in breakpoints by default also for GDB. - Domyślnie uaktywnia pełne ścieżki również dla GDB. + Revert %1 to Saved + Odwróć zmiany w %1 - Registers Qt Creator for debugging crashed applications. - Rejestruje Qt Creatora do debugowania aplikacji zakończonych błędem. + Close %1 + Zamknij %1 - Shows a warning when starting the debugger on a binary with insufficient debug information. - Pokazuje ostrzeżenie przy rozpoczęciu debugowania programu, w którym brak wystarczającej informacji debugowej. + Close All Except %1 + Zamknij wszystko z wyjątkiem %1 - Show QML object tree - Pokazuj drzewo obiektów QML + Close Others + Zamknij inne + + + QmlJSTools::Internal::QmlConsoleEdit - Stopping and stepping in the debugger will automatically open views associated with the current location. - + Cu&t + Wy&tnij - Close temporary source views on debugger exit - Zamykaj tymczasowe widoki ze źródłami po zakończeniu debugowania + &Copy + S&kopiuj - Select this option to close automatically opened source views when the debugger exits. - Opcja ta powoduje automatyczne zamykanie widoków ze źródłami otwartych w trakcie debugowania po jego zakończeniu. + &Paste + Wk&lej - Close temporary memory views on debugger exit - Zamykaj tymczasowe widoki pamięci po zakończeniu debugowania + Select &All + Zaznacz &wszystko - Select this option to close automatically opened memory views when the debugger exits. - Opcja ta powoduje automatyczne zamykanie widoków pamięci otwartych w trakcie debugowania po jego zakończeniu. + C&lear + Wy&czyść + + + QmlJSTools::Internal::QmlConsoleModel - Set breakpoints using a full absolute path - Włącz pełne, bezwzględne ścieżki + Can only evaluate during a QML debug session. + Obliczanie możliwe jedynie podczas debugowania QML. + + + QmlJSTools::Internal::QmlConsolePane - Use Qt Creator for post-mortem debugging - Używaj Creatora do pośmiertnego debugowania + Show debug, log, and info messages. + Pokazuj komunikaty debugowe, log i informacje. - Warn when debugging "Release" builds - Ostrzegaj przed debugowaniem wersji release'owej + Show warning messages. + Pokazuj komunikaty z ostrzeżeniami. - Keep editor stationary when stepping - Wyłącz centrowanie bieżącej linii podczas kroczenia + Show error messages. + Pokazuj komunikaty z błędami. - Scrolls the editor only when it is necessary to keep the current line in view, instead of keeping the next statement centered at all times. - Przewija edytor jedynie gdy jest to konieczne do pokazania bieżącej linii w widoku, zamiast centrowania bieżącej linii za każdym razem. + QML/JS Console + Konsola QML / JS + + + QmlJSTools::Internal::QmlConsoleView - Maximum stack depth: - Maksymalna głębokość stosu: + &Copy + S&kopiuj - <unlimited> - <nieograniczona> + &Show in Editor + &Pokaż w edytorze - Maximum string length: - Maksymalna długość ciągu tekstowego: + C&lear + Wy&czyść - Debugger::DebuggerRunConfigurationAspect + QmlProjectManager::QmlProjectEnvironmentAspect - Debugger settings - Ustawienia debuggera + System Environment + Środowisko systemowe - Debugger::Internal::GdbOptionsPage2 + Qnx::Internal::QnxAbstractRunSupport - GDB Extended - Rozszerzony GDB + Not enough free ports on device for debugging. + Niewystarczająca ilość wolnych portów w urządzeniu do debugowania. - ImageViewer - - Color at %1,%2: red: %3 green: %4 blue: %5 alpha: %6 - Kolor na pozycji (%1,%2): czerwień: %3, zieleń: %4, błękit: %5, przeźroczystość: %6 - + Qnx::Internal::QnxAnalyzeSupport - Size: %1x%2, %3 byte, format: %4, depth: %5 - Rozmiar: %1x%2, %3 bajtów, format: %4, głębokość: %5 + Preparing remote side... + Przygotowywanie zdalnej strony... - <Click to display color> - <Naciśnij aby wyświetlić kolor> + The %1 process closed unexpectedly. + Proces %1 nieoczekiwanie zakończył pracę. - Copy Image - Skopiuj obraz + Initial setup failed: %1 + Błąd wstępnej konfiguracji: %1 - Open Image Viewer - Otwórz przeglądarkę plików graficznych + Warning: "slog2info" is not found on the device, debug output not available. + Ostrzeżenie: brak"slog2info" na urządzeniu, komunikaty debugowe nie będą dostępne. - Debugger::Internal::LldbEngine - - Unable to start LLDB "%1": %2 - Nie można uruchomić LLDB "%1": %2 - - - Adapter start failed. - Nie można uruchomić adaptera. - - - Running requested... - Zażądano uruchomienia... - - - Interrupt requested... - Zażądano przerwy... - + Qnx::Internal::QnxDeviceTester - LLDB I/O Error - Błąd wejścia / wyjścia LLDB + %1 found. + Znaleziono %1. - The LLDB process failed to start. Either the invoked program "%1" is missing, or you may have insufficient permissions to invoke the program. - Nie można rozpocząć procesu LLDB. Brak programu "%1" albo brak wymaganych uprawnień aby go uruchomić. + %1 not found. + Nie znaleziono %1. - The LLDB process crashed some time after starting successfully. - Proces LLDB zakończony błędem po poprawnym uruchomieniu. + An error occurred checking for %1. + Błąd podczas sprawdzania %1. - An error occurred when attempting to write to the LLDB process. For example, the process may not be running, or it may have closed its input channel. - Wystąpił błąd podczas próby pisania do procesu LLDB. Być może proces nie jest uruchomiony lub zamknął on swój kanał wejściowy. + SSH connection error: %1 + Błąd połączenia SSH: %1 - An unknown error in the LLDB process occurred. - Wystąpił nieznany błąd w procesie LLDB. + Checking for %1... + Sprawdzanie %1... + + + QtSupport::Internal::QtSupportPlugin - Adapter start failed - Nie można uruchomić adaptera + Full path to the host bin directory of the current project's Qt version. + Pełna ścieżka do źródłowego podkatalogu "bin" w katalogu instalacji bieżącej wersji Qt. - Debugger Error - Błąd debuggera + Full path to the target bin directory of the current project's Qt version. You probably want %1 instead. + Pełna ścieżka docelowego podkatalogu "bin" w katalogu instalacji bieżącej wersji Qt. Prawdopodobnie powinno być: %1. + + + QtSupport::QtVersionFactory - The last waitFor...() function timed out. The state of QProcess is unchanged, and you can try calling waitFor...() again. - Przekroczono czas oczekiwania na powrót z ostatniego wywołania funkcji waitFor...(). Stan QProcess się nie zmienił, można ponownie spróbować wywołać waitFor...(). + No factory found for qmake: "%1" + Brak fabryki dla qmake: "%1" + + + RemoteLinux::AbstractRemoteLinuxRunSupport - An error occurred when attempting to read from the Lldb process. For example, the process may not be running. - Wystąpił błąd podczas próby czytania z procesu Lldb. Być może proces nie jest uruchomiony. + Not enough free ports on device for debugging. + Niewystarczająca ilość wolnych portów w urządzeniu do debugowania. - DiffEditor::DiffEditor + RemoteLinux::RemoteLinuxAnalyzeSupport - Ignore Whitespace - Ignoruj białe znaki + Checking available ports... + Sprawdzanie dostępnych portów... - Context Lines: - Linie z kontekstem: + Failure running remote process. + Błąd uruchamiania zdalnego procesu. - Reload Editor - Przeładuj edytor + Initial setup failed: %1 + Błąd wstępnej konfiguracji: %1 + + + RemoteLinux::RemoteLinuxEnvironmentAspect - Synchronize Horizontal Scroll Bars - Synchronizuj poziome paski przesuwania + Clean Environment + Czyste środowisko - [%1] vs. [%2] %3 - [%1] vs [%2] %3 + System Environment + Środowisko systemowe + + + RemoteLinux::RemoteLinuxEnvironmentAspectWidget - %1 vs. %2 - %1 vs %2 + Fetch Device Environment + Pobierz środowisko urządzenia - [%1] %2 vs. [%3] %4 - [%1] %2 vs [%3] %4 + Cancel Fetch Operation + Anuluj pobieranie - Hide Change Description - Ukryj opis zmiany + Device Error + Błąd urządzenia - Show Change Description - Pokaż opis zmiany + Fetching environment failed: %1 + Błąd podczas pobierania środowiska: %1 + + + TextEditor::BehaviorSettingsWidget - Switch to Side By Side Diff Editor - Przełącz do edytora różnic wyświetlającego zawartość sąsiadująco + Displays context-sensitive help or type information on mouseover. + Pokazuje pomoc kontekstową lub informację o typie po najechaniu kursorem myszy. - Switch to Unified Diff Editor - Przełącz do edytora różnic wyświetlającego zawartość w formacie ujednoliconym + Displays context-sensitive help or type information on Shift+Mouseover. + Pokazuje pomoc kontekstową lub informację o typie po naciśnięciu klawisza Shift i najechaniu kursorem myszy. - DiffEditor + RefactoringFile::apply - Diff Editor - Edytor różnic + Refactoring cannot be applied. + Nie można zrefaktoryzować. - DiffEditor::Internal::DiffEditorPlugin - - Diff... - Porównaj... - + Android::Internal::AddNewAVDDialog - Select First File for Diff - Wybierz pierwszy plik do porównania + Create new AVD + Utwórz nowe AVD - Select Second File for Diff - Wybierz drugi plik do porównania + Target API: + - Diff "%1", "%2" - Porównanie "%1" z "%2" + Name: + Nazwa: - - - Diff - Delete - Usunięto + SD card size: + Rozmiar karty SD: - Insert - Wstawiono + MiB + MiB - Equal - Brak zmian + ABI: + ABI: - Git::Internal::GitDiffHandler + AndroidDeployQtWidget - Working tree - Drzewo robocze + Form + Formularz - Index - Indeks + Clean Temporary Libraries Directory on Device + Wyczyść tymczasowe katalogi z bibliotekami na urządzeniu - Waiting for data... - Oczekiwanie na dane... + Install Ministro from APK + Zainstaluj Ministro z APK - - - Git::Internal::LogChangeWidget - Sha1 - Sha1 + Reset Default Devices + Przywróc domyślne urządzenia - Subject - Temat + Deploy options + Opcje instalacji + + + Uninstall previous package + Odinstaluj poprzedni pakiet - Git::Internal::LogChangeDialog + Android::Internal::AndroidDeviceDialog - Reset to: - Zresetuj do: + Select Android Device + Wybierz urządzenie z Androidem - Select change: - Wybierz zmianę: + Refresh Device List + Odśwież listę urządzeń - Reset type: - Typ resetu: + Create Android Virtual Device + Utwórz wirtualne urządzenie Android - Mixed - Mixed + Always use this device for architecture %1 + Używaj zawsze tego urządzenia do architektury %1 - Hard - Hard + ABI: + ABI: - Soft - Soft + Compatible devices + Kompatybilne urządzenia - - - Git::Internal::MergeTool - Error - Błąd + Unauthorized. Please check the confirmation dialog on your device %1. + Urządzenie nieautoryzowane. Sprawdź dialog potwierdzenia w urządzeniu %1. - File input for the merge tool requires Git 1.7.8, or later. - Plik wejściowy narzędzia scalania wymaga wersji Git 1.7.8 lub nowszej. + Offline. Please check the state of your device %1. + Rozłączony. Sprawdź stan urządzenia %1. - Normal - Normalny + ABI is incompatible, device supports ABIs: %1. + Niekompatybilne ABI, urządzenie obsługuje następujące ABI: %1. - Submodule - Podmoduł + API Level of device is: %1. + Poziom API urządzenia: %1. - Deleted - Usunięty + Android 5 devices are incompatible with deploying Qt to a temporary directory. + Urządzenia Android 5 nie obsługują instalowania Qt do tymczasowego katalogu. - Symbolic link - Dowiązanie symboliczne + Incompatible devices + Niekompatybilne urządzenia - Modified - Zmodyfikowany + <p>Connect an Android device via USB and activate developer mode on it. Some devices require the installation of a USB driver.</p> + <p>Podłącz urządzenie Android przez USB i włącz w nim tryb deweloperski. Niektóre urządzenia wymagają instalacji sterownika USB.</p> - Created - Utworzony + <p>The adb tool in the Android SDK lists all connected devices if run via &quot;adb devices&quot;.</p> + <p>Narzędzie adb w Android SDK pokazuje wszystkie podłączone urządzenia uruchomione przez &quot;urządzenia adb&quot;.</p> - Submodule commit %1 - Zmiana w podmodule %1 + No Device Found + Brak urządzeń - Symbolic link -> %1 - Link symboliczny -> %1 + Looking for default device <b>%1</b>. + Poszukiwanie domyślnego urządzenia <b>%1</b>. - Merge Conflict - Konflikty podczas scalania + <html><head/><body><p><a href="aaa"><span style=" text-decoration: underline; color:#0057ae;">My device is missing</span></a></p></body></html> + <html><head/><body><p><a href="aaa"><span style=" text-decoration: underline; color:#0057ae;">Brak mojego urządzenia</span></a></p></body></html> - %1 merge conflict for "%2" -Local: %3 -Remote: %4 - + Cancel + Anuluj + + + BareMetal::Internal::BareMetalDeviceConfigurationWizardSetupPage - &Local - + Set up GDB Server or Hardware Debugger + Ustaw serwer GDB lub debugger sprzętowy - &Remote - + Name: + Nazwa: - &Created + GDB server provider: - &Modified - + Bare Metal Device + Urządzenie Bare Metal + + + Core::Internal::AddToVcsDialog - &Deleted - + Dialog + Dialog - Continue Merging - Kontynuuj scalanie + Add the file to version control (%1) + Dodaj plik do systemu kontroli wersji (%1) - Continue merging other unresolved paths? - Kontynuować scalanie innych nierozwiązanych ścieżek? + Add the files to version control (%1) + Dodaj pliki do systemu kontroli wersji (%1) + + + CppEditor::Internal::CppPreProcessorDialog - Merge tool process finished successfully. - Proces scalania poprawnie zakończony. + Additional C++ Preprocessor Directives + Dodatkowe dyrektywy preprocesora C++ - Merge tool process terminated with exit code %1 - Proces scalania zakończony kodem wyjściowym %1 + Project: + Projekt: - - - ProjectExplorer::Internal::CustomToolChainFactory - Custom - Własny + Additional C++ Preprocessor Directives for %1: + Dodatkowe dyrektywy preprocesora C++ dla %1: - ProjectExplorer::Internal::TextEditDetailsWidget - - %n entries - - %n element - %n elementy - %n elementów - - + CppTools::Internal::CppCodeModelSettingsPage - Empty - Brak + Form + Formularz - - - ProjectExplorer::Internal::CustomToolChainConfigWidget - Custom Parser Settings... - Własne ustawienia parsera... + Code Completion and Semantic Highlighting + Uzupełnianie kodu i podświetlanie semantyczne - Each line defines a macro. Format is MACRO[=VALUE]. - Każda linia definiuje makro w formacie: MACRO[=WARTOŚĆ]. + C + C - Each line adds a global header lookup path. - + C++ + C++ - Comma-separated list of flags that turn on C++11 support. - Oddzielona przecinkami lista flag włączających obsługę C++11. + Objective C + Objective C - Comma-separated list of mkspecs. - Oddzielona przecinkami lista mkspec'ów. + Objective C++ + Objective C++ - &Compiler path: - Ścieżka do &kompilatora: + Pre-compiled Headers + Nagłówki prekompilowane - &Make path: - Ścieżka do "&make": + <html><head/><body><p>When pre-compiled headers are not ignored, the parsing for code completion and semantic highlighting will process the pre-compiled header before processing any file.</p></body></html> + <html><head/><body><p>Gdy nagłówki prekompilowane nie są ignorowane, parsowanie ich nastąpi przed wszystkimi innymi plikami podczas uzupełniania kodu i podświetlania semantyki.</p></body></html> - &ABI: - &ABI: + Ignore pre-compiled headers + Ignoruj nagłówki prekompilowane - &Predefined macros: - &Predefiniowane makra: + Headers + Nagłówki + + + Ios::Internal::IosBuildStep - &Header paths: - Ścieżki do &nagłówków: + Base arguments: + Podstawowe argumenty: - C++11 &flags: - &Flagi C++11: + Reset Defaults + Przywróć domyślne - &Qt mkspecs: - &Qt mkspecs: + Extra arguments: + Dodatkowe argumenty: - &Error parser: - &Błąd parsowania: + xcodebuild + xcodebuild - ProjectExplorer::DeviceCheckBuildStep - - No device configured. - Brak skonfigurowanego urządzenia. - + IosDeployStepWidget - Set Up Device - Ustaw urządzenie + Form + Formularz + + + IosRunConfiguration - There is no device set up for this kit. Do you want to add a device? - Brak ustawionego urządzenia w tym zestawie narzędzi. Czy dodać urządzenie? + Form + Formularz - Check for a configured device - Wyszukaj skonfigurowane urządzenie + Arguments: + Argumenty: - - - ProjectExplorer::EnvironmentAspect - Run Environment - Środowisko uruchamiania + Executable: + Plik wykonywalny: - - - ProjectExplorer::EnvironmentAspectWidget - Base environment for this run configuration: - Podstawowe środowisko dla tej konfiguracji uruchamiania: + iPhone 3.5-inch Retina Display + Wyświetłacz 3.5-calowy Retina iPhone - - - ProjectExplorer::GccToolChain - %1 (%2 %3 in %4) - %1 (%2 %3 w %4) + iPhone 4-inch Retina Display + Wyświetłacz 4-calowy Retina iPhone - - - ProjectExplorer::LocalEnvironmentAspect - Build Environment - Środowisko budowania + iPad + iPad - System Environment - Środowisko systemowe + iPad Retina Display + Wyświetłacz Retina iPad - Clean Environment - Czyste środowisko + Device type: + Typ urządzenia: - ProjectExplorer::Internal::RemoveTaskHandler + IosSettingsWidget - Remove - Name of the action triggering the removetaskhandler - Usuń + iOS Configuration + Konfiguracja iOS - Remove task from the task list. - Usuwa zadanie z listy zadań. + Ask about devices not in developer mode + Pytaj o urządzenia nie będące w trybie deweloperskim - PythonEditor::FileWizard + ProjectExplorer::Internal::CustomParserConfigDialog - Python source file - Plik źródłowy Pythona + Custom Parser + Własny parser - Creates an empty Python script with UTF-8 charset - Tworzy pusty skrypt Python z kodowaniem UTF-8 + &Error message capture pattern: + Wzorzec do wychwytywania komunikatów z &błędami: - New %1 - Nowy %1 + #error (.*):(\d+): (.*)$ + #error (.*):(\d+): (.*)$ - - - PythonEditor::ClassWizard - Python class - Klasa Pythona + Capture Positions + Wychwytane pozycje - Creates new Python class - Tworzy nową klasę Pythona + &File name: + Nazwa &pliku: - C++ module for Python - Moduł C++ dla Pythona + &Line number: + Numer &linii: - Creates C++/Boost file with bindings for Python - Tworzy plik C++ / Boost z powiązaniem dla Pythona + &Message: + K&omunikat: - - - QbsProjectManager::Internal::QbsBuildConfiguration - Parsing the Qbs project. - Parsowanie projektu Qbs. + Test + Test - Parsing of Qbs project has failed. - Nie można sparsować projektu Qbs. + E&rror message: + Komunikat z błę&dem: - - - QbsProjectManager::Internal::QbsBuildConfigurationFactory - Build - Wersja + #error /home/user/src/test.c:891: Unknown identifier `test` + #error /home/user/src/test.c:891: Nieznany identyfikator `test` - Debug - The name of the debug build configuration created by default for a qbs project. - Debug + File name: + Nazwa pliku: - Release - The name of the release build configuration created by default for a qbs project. - Release + TextLabel + Etykietka - - - QbsProjectManager::Internal::QbsBuildConfigurationWidget - Build directory: - Katalog wersji: + Line number: + Numer linii: - - - QbsProjectManager::Internal::QbsBuildStep - Qbs Build - Wersja Qbs + Message: + Komunikat: - - - QbsProjectManager::Internal::QbsBuildStepFactory - Qbs Build - Wersja Qbs + Not applicable: + Nieodpowiedni: - - - QbsProjectManager::Internal::QbsCleanStep - Qbs Clean - Qbs Clean + Pattern is empty. + Wzorzec jest pusty. - - - QbsProjectManager::Internal::QbsCleanStepFactory - Qbs Clean - Qbs Clean + Pattern does not match the error message. + Wzorzec nie wychwycił komunikatu z błędem. - Qbs + ProjectExplorer::Internal::DeviceTestDialog - Qbs Install - Qbs Install + Device Test + Test urządzenia - - - QbsProjectManager::Internal::QbsInstallStep - Qbs Install - Qbs Install + Close + Zamknij - - - QbsProjectManager::Internal::QbsInstallStepFactory - Qbs Install - Qbs Install + Device test finished successfully. + Test urządzenia poprawnie zakończony. + + + Device test failed. + Błąd testowania urządzenia. - Qbs::QbsProjectNode + QmlDesigner::AddTabToTabViewDialog - %1 in %2 - %1 w %2 + Dialog + Dialog + + + Add tab: + Dodaj zakładkę: - QbsProjectManager::Internal::QbsProject + UpdateInfo::Internal::SettingsWidget - Evaluating - Ewaluowanie + Configure Filters + Konfiguracja filtrów - Failed! - Niepoprawnie zakończone! + Automatic Check for Updates + Automatyczne sprawdzanie dostępnych aktualizacji - Could not write project file %1. - Nie można zapisać pliku projektu %1. + Check interval basis: + Częstość sprawdzania: - Reading Project "%1" - Odczyt projektu "%1" + Qt Creator automatically runs a scheduled check for updates on a time interval basis. If Qt Creator is not in use on the scheduled date, the automatic check for updates will be performed next time Qt Creator starts. + Qt Creator automatycznie sprawdza dostępność aktualizacji co określony czas. Jeśli Qt Creator nie jest używany w dniu, w którym powinno nastąpić sprawdzenie dostępnych aktualizacji, nastąpi ono przy najbliższym uruchomieniu Qt Creatora. - - - QbsProjectManager::QbsManager - Failed opening project '%1': Project is not a file. - Nie można otworzyć projektu "%1": Ścieżka projektu nie wskazuje na plik. + Next check date: + Data najbiższego sprawdzenia: - Failed opening project "%1": Project is not a file. - Nie można otworzyć projektu "%1": Ścieżka projektu nie wskazuje na plik. + Last check date: + Data ostatniego sprawdzenia: - Failed to set up kit for Qbs: %1 - Nie można ustawić zestawu narzędzi dla Qbs: %1 + Not checked yet + Jeszcze nie sprawdzano - - - QbsProjectManager::Internal::QbsProjectManagerPlugin - Reparse Qbs - Przeparsuj Qbs + Check Now + Sprawdź teraz + + + FlickableSection - Build - Zbuduj + Flickable + Element przerzucalny - Build File - Zbuduj plik + Content size + Rozmiar zawartości - Build File "%1" - Zbuduj plik "%1" + Flick direction + Kierunek przerzucania - Ctrl+Alt+B - Ctrl+Alt+B + Behavior + Zachowanie - Build Product - Zbuduj produkt + Bounds behavior + Zachowanie przy brzegach - Build Product "%1" - Zbuduj produkt "%1" + Interactive + Interaktywny - Ctrl+Alt+Shift+B - Ctrl+Alt+Shift+B + Max. velocity + Prędkość maks. - Build Subproject - Zbuduj podprojekt + Maximum flick velocity + Maksymalna prędkość przerzucania - Build Subproject "%1" - Zbuduj podprojekt "%1" + Deceleration + Opóźnienie - Ctrl+Shift+B - Ctrl+Shift+B + Flick deceleration + Opóźnienie przerzucania - QbsProjectManager::Internal::QbsPropertyLineEdit + FontSection - Could not split properties. - Nie można rozdzielić właściwości. + Font + Czcionka - No ':' found in property definition. - Brak ":" w definicji właściwości. + Size + Rozmiar + + + Font style + Styl czcionki + + + Style + Styl - QbsProjectManager::Internal::QbsRunConfiguration + StandardTextSection - The .qbs files are currently being parsed. - Trwa parsowanie plików .qbs. + Text + Tekst - Parsing of .qbs files has failed. - Nie można sparsować plików .qbs. + Wrap mode + Tryb zawijania - Qbs Run Configuration - Konfiguracja uruchamiania Qbs + Alignment + Wyrównanie + + + Format + Format - QbsProjectManager::Internal::QbsRunConfigurationWidget + AdvancedSection - <unknown> - <nieznany> + Advanced + Zaawansowane - Executable: - Plik wykonywalny: + Origin + Początek - Arguments: - Argumenty: + Scale + Skala - Select Working Directory - Wybierz katalog roboczy + Rotation + Rotacja - Reset to default - Przywróć domyślne + Enabled + Aktywny - Working directory: - Katalog roboczy: + Accept mouse and keyboard events + Akceptuj zdarzenia myszy i klawiatury - Run in terminal - Uruchom w terminalu + Smooth + Gładki + + + Smooth sampling active + Włącz gładkie próbkowanie + + + Antialiasing + Antyaliasing + + + Anti-aliasing active + Włącz antyaliasing - QmlDesignerContextMenu + ColumnSpecifics - Selection - Selekcja + Column + Kolumna - Stack (z) - Stos (z) + Spacing + Odstępy + + + FlipableSpecifics - Edit - Edycja + Flipable + + + + GeometrySection - Anchors - Kotwice + Geometry + Geometria - Layout - Rozmieszczenie + Position + Pozycja - Select Parent: %1 - Zaznacz rodzica: %1 + Size + Rozmiar + + + ItemPane - Select: %1 - Zaznacz: %1 + Type + Typ - Deselect: - Odznacz: + id + identyfikator - Cut - Wytnij + Visibility + Widoczność - Copy - Skopiuj + Is Visible + Jest widoczny - Paste - Wklej + Clip + Klip - Delete Selection - Usuń zaznaczone + Opacity + Nieprzezroczystość - To Front - Na wierzch + Layout + Rozmieszczenie - To Back - Na spód + Advanced + Zaawansowane + + + LayoutSection - Raise - Do przodu + Layout + Rozmieszczenie - Lower - Do tyłu + Anchors + Kotwice + + + QtObjectPane - Undo - Cofnij + Type + Typ - Redo - Przywróć + id + identyfikator + + + TextInputSection - Visibility - Widoczność + Text Input + Wejście tekstu - Reset Size - Zresetuj rozmiar + Input mask + Maska wejściowa - Reset Position - Zresetuj pozycję + Echo mode + Tryb echo - Go into Component - Przejdź do komponentu + Pass. char + Znak hasła - Set Id - Ustaw identyfikator + Character displayed when users enter passwords. + Znak wyświetlany podczas wpisywania hasła przez użytkownika. - Reset z Property - Zresetuj właściwość "z" + Flags + Flagi - Fill - Wypełnij + Read only + Tylko do odczytu - Reset - Zresetuj + Cursor visible + Kursor widoczny - Layout in Column (Positioner) - + Active focus on press + Uaktywnij fokus po naciśnięciu - Layout in Row (Positioner) - + Auto scroll + Automatyczne przewijanie + + + TextInputSpecifics - Layout in Grid (Positioner) - + Text Color + Kolor tekstu - Layout in Flow (Positioner) - + Selection Color + Kolor selekcji + + + TextSpecifics - Layout in ColumnLayout - + Text Color + Kolor tekstu - Layout in RowLayout - + Style Color + Kolor stylu + + + WindowSpecifics - Layout in GridLayout - + Window + Okno - Fill Width - Wypełnij szerokość + Title + Tytuł - Fill Height - Wypełnij wysokość + Size + Rozmiar - Select parent: %1 - Zaznacz rodzica: %1 + Color + Kolor - Step into: %1 - Wskocz do wnętrza: %1 + Visible + Widoczny + + + Opacity + Nieprzezroczystość - QmlDesigner::Internal::DebugView + SideBar - Model attached - Dołączono model + New to Qt? + Nowicjusz? - FileName %1 - NazwaPliku %1 + Learn how to develop your own applications and explore Qt Creator. + Poznaj Qt Creatora i dowiedz się, jak przy jego pomocy tworzyć aplikacje. - DebugView is enabled - DebugView jest aktywny + Get Started Now + Rozpocznij teraz - Model detached - Odłączono model + Qt Account + Konto Qt - Added imports: - Dodane importy: + Qt Cloud Services + Chmura z usługami Qt - Removed imports: - Usunięte importy: + Online Community + Społeczność online - Imports changed: - Zmienione importy: + Blogs + Blogi - Node created: - Utworzono węzeł: + User Guide + Przewodnik użytkownika + + + Analyzer::AnalyzerRunConfigWidget - Node removed: - Usunięto węzeł: + Use Customized Settings + Użyj własnych ustawień - New parent property: - Nowa właściwość rodzica: + Use Global Settings + Użyj globalnych ustawień + + + Android::Internal::AndroidDeployQtStepFactory - Old parent property: - Stara właściwość rodzica: + Deploy to Android device or emulator + Zainstaluj na urządzeniu lub emulatorze Android + + + Android::Internal::AndroidDeployQtStep - PropertyChangeFlag - + Deploy to Android device + AndroidDeployQtStep default display name + Zainstaluj na urządzeniu Android - Node reparanted: - Zmieniono rodzica węzła: + Found old folder "android" in source directory. Qt 5.2 does not use that folder by default. + Odnaleziono folder "android" w katalogu źródłowym. Qt 5.2 domyślnie nie używa tego katalogu. - New Id: - Nowy identyfikator: + No Android arch set by the .pro file. + Brak ustawionego arch dla Androida w pliku .pro. - Old Id: - Stary identyfikator: + Cannot find the android build step. + Nie można odnaleźć kroku budowania androida. - Node id changed: - Zmieniono identyfikator węzła: + Cannot find the androiddeployqt tool. + Nie można odnaleźć narzędzia androiddeployqt. - VariantProperties changed: - + Cannot find the androiddeploy Json file. + Nie można odnaleźć pliku androiddeploy Json. - BindingProperties changed: - + Cannot find the package name. + Nie można odnaleźć nazwy pakietu. - SignalHandlerProperties changed: - + Uninstall previous package %1. + Odinstaluj poprzedni pakiet %1. - Node selected: - Wybrany węzęł: + Starting: "%1" %2 + Uruchamianie "%1" %2 - Properties removed: - Usunięto właściwości: + The process "%1" exited normally. + Proces "%1" zakończył pracę normalnie. - Auxiliary Data Changed: - Zmieniono dane pomocnicze: + The process "%1" exited with code %2. + Proces "%1" zakończył pracę kodem wyjściowym %2. - Begin rewriter transaction - + The process "%1" crashed. + Proces "%1" zakończył pracę błędem. - End rewriter transaction - + Another application with the same package id but signed with different certificate already exists. +Do you want to uninstall the existing package? + Istnieje już inna aplikacja o tym samym identyfikatorze pakietu, lecz z innym certyfikatem. +Czy odinstalować istniejący pakiet? - Debug View - Widok debugowy + Package deploy: Failed to pull "%1" to "%2". + - Instance property change - + Package deploy: Running command "%1 %2". + Instalacja pakietu: uruchomiono komendę "%1 %2". - Instance Completed - + Packaging error: Could not start command "%1 %2". Reason: %3 + Błąd pakowania: nie można uruchomić komendy "%1 %2". Przyczyna: %3 - Custom Notification: - Własne powiadomienie: + Packaging error: Command "%1 %2" failed. + Błąd pakowania: Komenda "%1 %2" zakończona błędem. - Node Source Changed: - Zmodyfikowano źródło węzła: + Install failed + Instalacja niepoprawnie zakończona - - - QmlDesigner::FormEditorView - Form Editor - Edytor formularzy + Pulling files necessary for debugging. + + + + Reason: %1 + Przyczyna: %1 + + + Exit code: %1 + Kod wyjściowy: %1 - QmlDesigner::Internal::MetaInfoPrivate + Android::Internal::AndroidDeployQtWidget - Invalid meta info - Niepoprawna metainformacja + <b>Deploy configurations</b> + <b>Konfiguracje instalacji</b> + + + Qt Android Smart Installer + Qt Android Smart Installer + + + Android package (*.apk) + Pakiet androida (*.apk) - QmlDesigner::Internal::MetaInfoReader + Android::Internal::AndroidErrorMessage - Illegal state while parsing - Niepoprawny stan podczas parsowania + Android: SDK installation error 0x%1 + Android: błąd instalacji SDK 0x%1 - No property definition allowed - Definicja właściwości nie jest dozwolona + Android: NDK installation error 0x%1 + Android: błąd instalacji NDK 0x%1 - Invalid type %1 - Niepoprawny typ %1 + Android: Java installation error 0x%1 + Android: błąd instalacji Java 0x%1 - Unknown property for Type %1 - Nieznana właściwość dla "Type" %1 + Android: ant installation error 0x%1 + Android: błąd instalacji ant 0x%1 - Unknown property for ItemLibraryEntry %1 - Nieznana właściwość dla "ItemLibraryEntry" %1 + Android: adb installation error 0x%1 + Android: błąd instalacji adb 0x%1 - Unknown property for Property %1 - Nieznana właściwość dla "Property" %1 + Android: Device connection error 0x%1 + Android: błąd łączności z urządzeniem 0x%1 - Unknown property for QmlSource %1 - Nieznana właściwość dla "QmlSource" %1 + Android: Device permission error 0x%1 + Android: błąd uprawnień urządzenia 0x%1 - Invalid or duplicate item library entry %1 - + Android: Device authorization error 0x%1 + Android: błąd autoryzacji urządzenia 0x%1 - - - SubComponentManager::parseDirectory - Invalid meta info - Niepoprawna metainformacja + Android: Device API level not supported: error 0x%1 + Android: Poziom API urządzenia nieobsługiwany 0x%1 - - - QmlDesigner::TextToModelMerger - No import statements found - Brak instrukcji importu + Android: Unknown error 0x%1 + Android: nieznany błąd 0x%1 + + + Android::Internal::AndroidPotentialKitWidget - Unsupported QtQuick version - Nieobsługiwana wersja QtQuick + Qt Creator needs additional settings to enable Android support. You can configure those settings in the Options dialog. + Qt Creator wymaga dodatkowych ustawień do obsługi Androida. Można je skonfigurować w dialogu z opcjami. + + + BareMetal::Internal::BareMetalDevice - This .qml file contains features which are not supported by Qt Quick Designer - Ten plik .qml zawiera cechy nieobsługiwane przez Qt Quick Designera + Bare Metal + Bare Metal - QmlDesigner::QmlDesignerPlugin + BareMetal::Internal::BareMetalGdbCommandsDeployStepWidget - Switch Text/Design - Przełącz tekst / projekt + GDB commands: + Komendy GDB: - QmlDesigner::ShortCutManager + BareMetal::Internal::BareMetalRunConfigurationFactory - &Undo - &Cofnij + %1 (on GDB server or hardware debugger) + %1 (na serwerze GDB lub debuggerze sprzętowym) + + + BareMetal::Internal::BareMetalRunControlFactory - &Redo - &Przywróć + Cannot debug: Local executable is not set. + Nie można debugować: brak ustawionego lokalnego pliku wykonywalnego. - Delete - Usuń + Cannot debug: Could not find executable for "%1". + Nie można debugować: nie można odnaleźć pliku wykonywalnego dla "%1". - Delete "%1" - Usuń "%1" + Cannot debug: Kit has no device. + Nie można debugować: brak urządzenia w zestawie narzędzi. - Cu&t - Wy&tnij + Cannot debug: Device has no GDB server provider configuration. + + + + CppEditor::Internal::CppIncludeHierarchyWidget - Cut "%1" - Wytnij "%1" + No include hierarchy available + Brak dostępnej hierarchii dołączeń + + + CppEditor::Internal::CppIncludeHierarchyFactory - &Copy - S&kopiuj + Include Hierarchy + Hierarchia dołączeń + + + CppEditor::Internal::CppIncludeHierarchyModel - Copy "%1" - Skopiuj "%1" + Includes + Dołączenia - &Paste - Wk&lej + Included by + Dołączone przez - Paste "%1" - Wklej "%1" + (none) + (brak) - Select &All - Zaznacz &wszystko + (cyclic) + (cykl) + + + VirtualFunctionsAssistProcessor - Select All "%1" - Zaznacz wszystkie "%1" + ...searching overrides + ...wyszukiwanie implementacji + + + ModelManagerSupportInternal::displayName - Toggle Sidebars - Przełącz boczny pasek + Qt Creator Built-in + Wbudowany w Qt Creatora + + + Debugger::DebuggerItemManager - Toggle Full Screen - Przełącz pełny ekran + Auto-detected CDB at %1 + Automatycznie wykryty CDB w %1 - &Restore Default View - Przywróć &domyślny widok + System %1 at %2 + %1: Debugger engine type (GDB, LLDB, CDB...), %2: Path + System %1 w %2 - Toggle &Left Sidebar - Przełącz l&ewy boczny pasek + Extracted from Kit %1 + Znaleziony w zestawie narzędzi %1 + + + Debugger::Internal::GdbPlainEngine - Toggle &Right Sidebar - Przełącz p&rawy boczny pasek + Starting executable failed: + Nie można uruchomić programu: - &Go into Component - &Przejdź do komponentu + Cannot set up communication with child process: %1 + Nie można ustanowić połączenia z podprocesem: %1 + + + Ios::Internal::IosBuildStepConfigWidget - Save %1 As... - Zachowaj %1 jako... + iOS build + iOS BuildStep display name. + Wersja iOS + + + Ios::Internal::IosConfigurations - &Save %1 - &Zachowaj %1 + %1 %2 + %1 %2 + + + Ios - Revert %1 to Saved - Odwróć zmiany w %1 + iOS + iOS + + + Ios::Internal::IosDebugSupport - Close %1 - Zamknij %1 + Could not find device specific debug symbols at %1. Debugging initialization will be slow until you open the Organizer window of Xcode with the device connected to have the symbols generated. + - Close All Except %1 - Zamknij wszystko z wyjątkiem %1 + Debugging with Xcode 5.0.x can be unreliable without a dSYM. To create one, add a dsymutil deploystep. + - Close Others - Zamknij inne + The dSYM %1 seems to be outdated, it might confuse the debugger. + dSYM %1 może być nieaktualny i może spowodować nieprawidłową pracę debuggera. - - - QmlJSTools::Internal::QmlConsoleEdit - Cu&t - Wy&tnij + Could not get debug server file descriptor. + - &Copy - S&kopiuj + Got an invalid process id. + Otrzymano niepoprawny identyfikator procesu. - &Paste - Wk&lej + Run ended with error. + Praca zakończona błędem. - Select &All - Zaznacz &wszystko + Run ended. + Praca zakończona. + + + Ios::Internal::IosDeployConfiguration - C&lear - Wy&czyść + Deploy to iOS + Zainstaluj na iOS - QmlJSTools::Internal::QmlConsoleModel + Ios::Internal::IosDeployConfigurationFactory - Can only evaluate during a QML debug session. - Obliczanie możliwe jedynie podczas debugowania QML. + Deploy on iOS + Zainstaluj na iOS - QmlJSTools::Internal::QmlConsolePane + Ios::Internal::IosDeployStep - Show debug, log, and info messages. - Pokazuj komunikaty debugowe, log i informacje. + Deploy to %1 + Zainstaluj na %1 - Show warning messages. - Pokazuj komunikaty z ostrzeżeniami. + Error: no device available, deploy failed. + Błąd: urządzenie nie jest dostępne, instalacja nieudana. - Show error messages. - Pokazuj komunikaty z błędami. + Deployment failed. No iOS device found. + Nieudana instalacja. Brak urządzenia iOS. - QML/JS Console - Konsola QML / JS + Deployment failed. The settings in the Organizer window of Xcode might be incorrect. + Nieudana instalacja. Ustawienia w oknie "Organizer" w Xcode mogą być niepoprawne. - - - QmlJSTools::Internal::QmlConsoleView - &Copy - S&kopiuj + Deployment failed. + Nieudana instalacja. - &Show in Editor - &Pokaż w edytorze + The Info.plist might be incorrect. + Info.plist może być niepoprawne. - C&lear - Wy&czyść + The provisioning profile "%1" (%2) used to sign the application does not cover the device %3 (%4). Deployment to it will fail. + - QmlApplicationWizard - - Failed to read %1 template. - Nie można odczytać szablonu %1. - + Ios::Internal::IosDeployStepFactory - Failed to read file %1. - Nie można odczytać pliku %1. + Deploy to iOS device or emulator + Zainstaluj na urządzeniu iOS lub emulatorze - QmlProjectManager::Internal::QmlApplicationWizardDialog - - New Qt Quick UI Project - Nowy Qt Quick UI projekt - + Ios::Internal::IosDevice - This wizard generates a Qt Quick UI project. - Ten kreator generuje Qt Quick UI projekt. + iOS + iOS - Component Set - Zestaw komponentów + iOS Device + Urządzenie iOS - QmlProjectManager::Internal::QmlApplicationWizard - - Qt Quick UI - Qt Quick UI - + Ios::Internal::IosDeviceManager - Creates a Qt Quick UI project. - Tworzy projekt Qt Quick UI. + Device name + Nazwa urządzenia - - - QmlProjectManager::QmlProjectEnvironmentAspect - System Environment - Środowisko systemowe + Developer status + Whether the device is in developer mode. + Stan trybu deweloperskiego - - - Qnx::Internal::BarDescriptorDocument - %1 does not appear to be a valid application descriptor file - %1 nie jest poprawnym plikiem deskryptora aplikacji + Connected + Połączony - - - Qnx::Internal::BarDescriptorEditor - General - Ogólne + yes + tak - Application - Aplikacja + no + nie - Assets - Zasoby + unknown + nieznany - XML Source - Źródło XML + OS version + Wersja OS - Line: %1, Col: %2 - Linia: %1, kolumna: %2 + An iOS device in user mode has been detected. + Wykryto urządzenie iOS w trybie użytkownika. - Line: 9999, Col: 999 - Linia: 9999, kolumna: 999 + Do you want to see how to set it up for development? + Czy chcesz zobaczyć jak przełączyć je do trybu deweloperskiego? - Qnx::Internal::BarDescriptorEditorFactory + Ios::Internal::IosQtVersion + + Failed to detect the ABIs used by the Qt version. + Nie można wykryć ABI użytych przez wersję Qt. + - Bar descriptor editor - Edytor deskryptorów Bar + iOS + Qt Version is meant for Ios + iOS - Qnx::Internal::BarDescriptorEditorWidget + Ios::Internal::IosRunConfiguration - Entry-Point Text and Images - + Run on %1 + Uruchom na %1 - Package Information - Informacje o pakiecie + Run %1 on %2 + Uruchom %1 na %2 - Author Information - Informacje o autorze + The .pro file "%1" is currently being parsed. + Trwa parsowanie pliku .pro "%1". - General - Ogólne + Kit has incorrect device type for running on iOS devices. + Niewłaściwy typ urządzenia, ustawiony w zestawie narzędzi, do uruchamiania na urządzeniach iOS. - Permissions - Prawa dostępu + No device chosen. Select %1. + Brak wybranego urządzenia. Wybierz %1. - Environment - Środowisko + No device chosen. Enable developer mode on a device. + Brak wybranego urządzenia. Włącz tryb deweloperski na urządzeniu. - Assets - Zasoby + No device available. + Brak dostępnych urządzeń. - - - Qnx::Internal::BarDescriptorPermissionsModel - Permission - Prawa dostępu + To use this device you need to enable developer mode on it. + Włącz tryb deweloperski na tym urządzeniu. - BlackBerry Messenger - Komunikator BlackBerry + %1 is not connected. Select %2? + %1 nie jest podłączony. Wybrać %2? - <html><head/><body><p>Allows this app to connect to the BBM Social Platform to access BBM contact lists and user profiles, invite BBM contacts to download your app, initiate BBM chats and share content from within your app, or stream data between apps in real time.</p></body></html> - + %1 is not connected. Enable developer mode on a device? + %1 nie jest podłączony. Włączyć deweloperski na urządzeniu? - Calendar - Kalendarz + %1 is not connected. + %1 nie jest podłączony. + + + Ios::Internal::IosRunConfigurationWidget - <html><head/><body><p>Allows this app to access the calendar on the device. This access includes viewing, adding, and deleting calendar appointments.</p></body></html> - <html><head/><body><p>Udostępnia tej aplikacji kalendarz w urządzeniu, włącznie z przeglądaniem, dodawaniem i usuwaniem terminów w kalendarzu.</p></body></html> + iOS run settings + Ustawienia uruchamiania iOS + + + Ios::Internal::IosRunControl - Camera - Kamera + Starting remote process. + Uruchamianie zdalnego procesu. - <html><head/><body><p>Allows this app to take pictures, record video, and use the flash.</p></body></html> - <html><head/><body><p>Pozwala tej aplikacji robić zdjęcia, nagrywać wideo i używać lampy błyskowej.</p></body></html> + Run ended with error. + Praca zakończona błędem. - Contacts - Kontakty + Run ended. + Praca zakończona. + + + Ios::Internal::IosRunner - <html><head/><body><p>Allows this app to access the contacts stored on the device. This access includes viewing, creating, and deleting the contacts.</p></body></html> - <html><head/><body><p>Udostępnia tej aplikacji kontakty przechowywane w urządzeniu, włącznie z przeglądaniem, dodawaniem i usuwaniem kontaktów.</p></body></html> + Could not find %1. + Nie można odnaleźć %1. - Device Identifying Information - Informacja identyfikująca urządzenie + Run failed. The settings in the Organizer window of Xcode might be incorrect. + Nieudane uruchomienie. Ustawienia w oknie "Organizer" w Xcode mogą być niepoprawne. - <html><head/><body><p>Allows this app to access device identifiers such as serial number and PIN.</p></body></html> - <html><head/><body><p>Udostępnia tej aplikacji dane służące do identyfikacji urządzenia, włącznie z numerem seryjnym i kodem PIN.</p></body></html> + The device is locked, please unlock. + Urządzenie jest zablokowane, odblokuj je. + + + Ios::Internal::IosSettingsPage - Email and PIN Messages - + iOS Configurations + Konfiguracje iOS + + + Ios::Internal::IosSimulator - <html><head/><body><p>Allows this app to access the email and PIN messages stored on the device. This access includes viewing, creating, sending, and deleting the messages.</p></body></html> - + iOS Simulator + Symulator iOS + + + Ios::Internal::IosSimulatorFactory - GPS Location - Pozycja GPS + iOS Simulator + iOS Simulator + + + Ios::IosToolHandler - <html><head/><body><p>Allows this app to access the current GPS location of the device.</p></body></html> - <html><head/><body><p>Udostępnia tej aplikacji bieżącą pozycję GPS urządzenia.</p></body></html> + iOS tool Error %1 + Błąd narzędzia iOS %1 + + + Macros::Internal::MacroManager - Internet - Internet + Playing Macro + Odtwarzanie makra - <html><head/><body><p>Allows this app to use Wi-fi, wired, or other connections to a destination that is not local on the user's device.</p></body></html> - + An error occurred while replaying the macro, execution stopped. + Wystąpił błąd podczas ponownego odtwarzania makra, zatrzymano wykonywanie. - Location - Położenie + Macro mode. Type "%1" to stop recording and "%2" to play the macro. + Tryb makro. Wpisz "%1" aby zatrzymać nagrywanie albo "%2" aby je odtworzyć. - <html><head/><body><p>Allows this app to access the device's current or saved locations.</p></body></html> - <html><head/><body><p>Udostępnia tej aplikacji bieżącą lub zapisane pozycje urządzenia.</p></body></html> + Stop Recording Macro + Zatrzymaj nagrywanie makra + + + CustomToolChain - Microphone - Mikrofon + GCC + GCC - <html><head/><body><p>Allows this app to record sound using the microphone.</p></body></html> - <html><head/><body><p>Pozwala tej aplikacji rejestrować dźwięk przy użyciu mikrofonu.</p></body></html> + Clang + Clang - Notebooks - Notatniki + ICC + ICC - <html><head/><body><p>Allows this app to access the content stored in the notebooks on the device. This access includes adding and deleting entries and content.</p></body></html> - <html><head/><body><p>Udostępnia tej aplikacji zawartość notatników przechowywanych na urządzeniu, włącznie z dodawaniem i usuwaniem treści.</p></body></html> + MSVC + MSVC - Post Notifications - Wysłanie powiadomienia + Custom + Własny + + + ProjectExplorer::DesktopProcessSignalOperation - <html><head/><body><p>Post a notification to the notifications area of the screen.</p></body></html> - <html><head/><body><p>Wysyła powiadomienie do obszaru z powiadomieniami na ekranie.</p></body></html> + Cannot kill process with pid %1: %2 + Nie można zakończyć procesu z pid %1: %2 - Push - Push + Cannot interrupt process with pid %1: %2 + Nie można przerwać procesu z pid %1: %2 - <html><head/><body><p>Allows this app to use the Push Service with the BlackBerry Internet Service. This access allows the app to receive and request push messages. To use the Push Service with the BlackBerry Internet Service, you must register with BlackBerry. When you register, you receive a confirmation email message that contains information that your application needs to receive and request push messages. For more information about registering, visit https://developer.blackberry.com/services/push/. If you're using the Push Service with the BlackBerry Enterprise Server or the BlackBerry Device Service, you don't need to register with BlackBerry.</p></body></html> - + Cannot open process. + Nie można otworzyć procesu. - Run When Backgrounded - + Invalid process id. + Niepoprawny identyfikator procesu. - <html><head/><body><p>Allows background processing. Without this permission, the app is stopped when the user switches focus to another app. Apps that use this permission are rigorously reviewed for acceptance to BlackBerry App World storefront for their use of power.</p></body></html> - + Cannot open process: %1 + Nie można otworzyć procesu: %1 - Shared Files - Pliki dzielone + DebugBreakProcess failed: + Błąd DebugBreakProcess: - <html><head/><body><p>Allows this app to access pictures, music, documents, and other files stored on the user's device, at a remote storage provider, on a media card, or in the cloud.</p></body></html> - <html><head/><body><p>Udostępnia tej aplikacji zdjęcia, muzykę, dokumenty i inne pliki przechowywane na urządzeniu, karcie pamięci, bądź w chmurze użytkownika.</p></body></html> + %1 does not exist. If you built Qt Creator yourself, check out https://code.qt.io/cgit/qt-creator/binary-artifacts.git/. + %1 nie istnieje. Jeśli zbudowałeś Qt Creatora samodzielnie, sprawdź http://code.qt.io/cgit/qt-creator/binary-artifacts.git/. - Text Messages - Komunikaty tekstowe + Cannot start %1. Check src\tools\win64interrupt\win64interrupt.c for more information. + Nie można uruchomić %1. Więcej informacji sprawdź w src\tools\win64interrupt\win64interrupt. - <html><head/><body><p>Allows this app to access the text messages stored on the device. The access includes viewing, creating, sending, and deleting text messages.</p></body></html> - <html><head/><body><p>Udostępnia tej aplikacji komunikaty tekstowe, przechowywane na urządzeniu, włącznie z przeglądaniem, tworzeniem, wysyłaniem i usuwaniem komunikatów tekstowych.</p></body></html> + could not break the process. + nie można przerwać procesu. - Qnx::Internal::BlackBerryDeviceConnection + ProjectExplorer::SshDeviceProcess - Error connecting to device: java could not be found in the environment. - Błąd połączenia z urządzeniem: brak "java" w środowisku. + Failed to kill remote process: %1 + Nie można zakończyć zdalnego procesu: %1 - - - Qnx::Internal::BlackBerryKeysPage - Keys - Klucze + Timeout waiting for remote process to finish. + Przekroczono czas oczekiwania na zakończenie zdalnego procesu. - - - Qnx::Internal::BlackBerryNDKSettingsPage - API Levels and Runtimes - + Terminated by request. + Zakończono na żądanie. - Qnx::Internal::BlackBerryProcessParser + ProjectExplorer::Internal::ImportWidget - Authentication failed. Please make sure the password for the device is correct. - Błąd autoryzacji. Upewnij się, że hasło dla urządzenia jest poprawne. + Import Build From... + Zaimportuj wersję z... - - - Qnx::Internal::QnxAbstractRunSupport - Not enough free ports on device for debugging. - Niewystarczająca ilość wolnych portów w urządzeniu do debugowania. + Import + Zaimportuj - Qnx::Internal::QnxAnalyzeSupport + ProjectExplorer::OsParser - Preparing remote side... - Przygotowywanie zdalnej strony... - - - The %1 process closed unexpectedly. - Proces %1 nieoczekiwanie zakończył pracę. + The process can not access the file because it is being used by another process. +Please close all running instances of your application before starting a build. + Proces nie ma dostępu do pliku, ponieważ plik jest używany przez inny proces. +Proszę zamknąć wszystkie instancje tej aplikacji przed uruchomieniem budowania. + + + ProjectExplorer::ProjectImporter - Initial setup failed: %1 - Błąd wstępnej konfiguracji: %1 + %1 - temporary + %1 - tymczasowy + + + QmakeProjectManager::Internal::Qt4Target - Warning: "slog2info" is not found on the device, debug output not available. - Ostrzeżenie: brak"slog2info" na urządzeniu, komunikaty debugowe nie będą dostępne. + Desktop + Qt4 Desktop target display name + Desktop - Warning: "slog2info" is not found on the device, debug output not available! - Ostrzeżenie: brak"slog2info" na urządzeniu, komunikaty debugowe nie będą dostępne. + Maemo Emulator + Qt4 Maemo Emulator target display name + Emulator Maemo - - - BlackBerry - BlackBerry - BlackBerry + Maemo Device + Qt4 Maemo Device target display name + Urządzenie Maemo - Qnx::Internal::QnxDeviceTester + ProjectExplorer::TargetSetupPage - %1 found. - Znaleziono %1. + <span style=" font-weight:600;">No valid kits found.</span> + <span style=" font-weight:600;">Brak poprawnych zestawów narzędzi.</span> - %1 not found. - Nie znaleziono %1. + Please add a kit in the <a href="buildandrun">options</a> or via the maintenance tool of the SDK. + Dodaj zestaw w <a href="buildandrun">opcjach</a> lub poprzez narzędzie kontrolne SDK. - An error occurred checking for %1. - Błąd podczas sprawdzania %1. + Select all kits + Zaznacz wszystkie zestawy narzędzi - SSH connection error: %1 - Błąd połączenia SSH: %1 + Select Kits for Your Project + Wybierz zestawy narzędzi dla projektu - Checking for %1... - Sprawdzanie %1... + Kit Selection + Wybór zestawu narzędzi - - - QtSupport::Internal::QtSupportPlugin - Full path to the host bin directory of the current project's Qt version. - Pełna ścieżka do źródłowego podkatalogu "bin" w katalogu instalacji bieżącej wersji Qt. + Kits + Zestawy narzędzi - Full path to the target bin directory of the current project's Qt version. You probably want %1 instead. - Pełna ścieżka docelowego podkatalogu "bin" w katalogu instalacji bieżącej wersji Qt. Prawdopodobnie powinno być: %1. + Qt Creator can use the following kits for project <b>%1</b>: + %1: Project name + Qt Creator może ustawić następujące zestawy narzędzi dla projektu <b>%1</b>: - QtSupport::QtVersionFactory + ProjectExplorer::Internal::TargetSetupWidget - No factory found for qmake: '%1' - Brak fabryki dla qmake: "%1" + <b>Error:</b> + Severity is Task::Error + <b>Błąd:</b> - No factory found for qmake: "%1" - Brak fabryki dla qmake: "%1" + <b>Warning:</b> + Severity is Task::Warning + <b>Ostrzeżenie:</b> - RemoteLinux::AbstractRemoteLinuxRunSupport + ProjectExplorer::Internal::TargetSetupPageWrapper - Not enough free ports on device for debugging. - Niewystarczająca ilość wolnych portów w urządzeniu do debugowania. + Configure Project + Skonfiguruj projekt - - - RemoteLinux::RemoteLinuxAnalyzeSupport - Checking available ports... - Sprawdzanie dostępnych portów... + Cancel + Anuluj - Failure running remote process. - Błąd uruchamiania zdalnego procesu. + The project <b>%1</b> is not yet configured.<br/>Qt Creator cannot parse the project, because no kit has been set up. + Project <b>%1</b> nie jest jeszcze skonfigurowany.<br/>Qt Creator nie może sparsować projektu, ponieważ nie ustawiono żadnych zestawów narzędzi. - Initial setup failed: %1 - Błąd wstępnej konfiguracji: %1 + The project <b>%1</b> is not yet configured.<br/>Qt Creator uses the kit <b>%2</b> to parse the project. + Project <b>%1</b> nie jest jeszcze skonfigurowany.<br/>Qt Creator użyje zestawu narzędzi <b>%2</b> do parsowania projektu. + + + The project <b>%1</b> is not yet configured.<br/>Qt Creator uses the <b>invalid</b> kit <b>%2</b> to parse the project. + Project <b>%1</b> nie jest jeszcze skonfigurowany.<br/>Qt Creator użyje <b>niepoprawnego</b> zestawu narzędzi <b>%2</b> do parsowania projektu. - RemoteLinux::RemoteLinuxDeploymentDataModel + QmakeProjectManager::Internal::DesktopQmakeRunConfiguration - Local File Path - Ścieżka do lokalnego pliku + The .pro file "%1" is currently being parsed. + Trwa parsowanie pliku .pro "%1". - Remote Directory - Zdalny katalog + Qt Run Configuration + Konfiguracja uruchamiania Qt - RemoteLinux::RemoteLinuxEnvironmentAspect + QmakeProjectManager::Internal::DesktopQmakeRunConfigurationWidget - Clean Environment - Czyste środowisko + Executable: + Plik wykonywalny: - System Environment - Środowisko systemowe + Arguments: + Argumenty: - - - RemoteLinux::RemoteLinuxEnvironmentAspectWidget - Fetch Device Environment - Pobierz środowisko urządzenia + Select Working Directory + Wybierz katalog roboczy - Cancel Fetch Operation - Anuluj pobieranie + Reset to Default + Przywróć domyślny - Device Error - Błąd urządzenia + Working directory: + Katalog roboczy: - Fetching environment failed: %1 - Błąd podczas pobierania środowiska: %1 + Run in terminal + Uruchom w terminalu - - - TextEditor::BehaviorSettingsWidget - Displays context-sensitive help or type information on mouseover. - Pokazuje pomoc kontekstową lub informację o typie po najechaniu kursorem myszy. + Run on QVFb + Uruchom na QVFb - Displays context-sensitive help or type information on Shift+Mouseover. - Pokazuje pomoc kontekstową lub informację o typie po naciśnięciu klawisza Shift i najechaniu kursorem myszy. + Check this option to run the application on a Qt Virtual Framebuffer. + Zaznacz tę opcję aby uruchomić aplikację na Qt Virtual Framebuffer. - - - RefactoringFile::apply - Refactoring cannot be applied. - Nie można zrefaktoryzować. + Use debug version of frameworks (DYLD_IMAGE_SUFFIX=_debug) + Użyj pakietów w wersji do debugowania (DYLD_IMAGE_SUFFIX=_debug) - QmlProjectManager::QmlApplicationWizard + QmakeProjectManager::Internal::QmakeProjectImporter - Creates a Qt Quick 1 UI project with a single QML file that contains the main view. You can review Qt Quick 1 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 project. Requires Qt 4.8 or newer. - Tworzy projekt UI Qt Quick 1 z pojedynczym plikiem QML, zawierającym główny widok. Projekty można przeglądać przy pomocy QML Viewera, bez ich uprzedniego budowania. Do tworzenia i uruchamiania tego typu projektów nie jest wymagana instalacja środowiska deweloperskiego. Wymagana jest zaś wersja Qt 4.8 lub nowsza. + Debug + Debug - Qt Quick 1.1 - Qt Quick 1.1 + Release + Release - Creates a Qt Quick 2 UI project with a single QML file that contains the main view. You can review Qt Quick 2 UI projects in the QML Scene and you need not build them. You do not need to have the development environment installed on your computer to create and run this type of project. Requires Qt 5.1 or newer. - Tworzy projekt UI Qt Quick 2 z pojedynczym plikiem QML, zawierającym główny widok. Projekty można przeglądać przy pomocy QML Scene, bez ich uprzedniego budowania. Do tworzenia i uruchamiania tego typu projektów nie jest wymagana instalacja środowiska deweloperskiego. Wymagana jest zaś wersja Qt 5.1 lub nowsza. + No Build Found + Brak zbudowanej wersji - Qt Quick 2.1 - Qt Quick 2.1 + No build found in %1 matching project %2. + Brak zbudowanej wersji w %1 dla projektu %2. + + + TabViewToolAction - Creates a Qt Quick 2 UI project with a single QML file that contains the main view. You can review Qt Quick 2 UI projects in the QML Scene and you need not build them. You do not need to have the development environment installed on your computer to create and run this type of project. Requires Qt 5.2 or newer. - Tworzy projekt UI Qt Quick 2 z pojedynczym plikiem QML, zawierającym główny widok. Projekty można przeglądać przy pomocy QML Scene, bez ich uprzedniego budowania. Do tworzenia i uruchamiania tego typu projektów nie jest wymagana instalacja środowiska deweloperskiego. Wymagana jest zaś wersja Qt 5.2 lub nowsza. + Add Tab... + Dodaj zakładkę... - Qt Quick 2.2 - Qt Quick 2.2 + Step into Tab + Przejdź do zakładki + + + QmlDesigner::ImportLabel - Creates a Qt Quick 2 UI project with a single QML file that contains the main view. You can review Qt Quick 2 UI projects in the QML Scene and you need not build them. You do not need to have the development environment installed on your computer to create and run this type of project. Requires Qt 5.3 or newer. - Tworzy projekt UI Qt Quick 2 z pojedynczym plikiem QML, zawierającym główny widok. Projekty można przeglądać przy pomocy QML Scene, bez ich uprzedniego budowania. Do tworzenia i uruchamiania tego typu projektów nie jest wymagana instalacja środowiska deweloperskiego. Wymagana jest zaś wersja Qt 5.3 lub nowsza. + Remove Import + Usuń import + + + ImportManagerComboBox - Qt Quick 2.3 - Qt Quick 2.3 + Add new import + Dodaj nowy import - Creates a Qt Quick 2 UI project that contains a .ui.qml file. You can review Qt Quick 2 UI projects in the QML Scene and you need not build them. Requires Qt 5.4 or newer. - Tworzy projekt UI Qt Quick 2 zawierający plik .ui.qml. Projekty można przeglądać przy pomocy QML Scene, bez ich uprzedniego budowania. Wymagana jest wersja Qt 5.4 lub nowsza. + <Add Import> + <Dodaj Import> + + + QmlDesigner::ImportsWidget - Qt Quick 2.4 - Qt Quick 2.4 + Import Manager + Zarządzanie importami + + + FileResourcesModel - Creates a Qt Quick 2 UI project with a single QML file that contains the main view and uses Qt Quick Controls. You can review Qt Quick 2 UI projects in the QML Scene and you need not build them. This project requires that you have installed Qt Quick Controls for your Qt version. Requires Qt 5.2 or newer. - Tworzy projekt UI Qt Quick 2 z pojedynczym plikiem QML, zawierającym główny widok i używającym Qt Quick Controls. Projekty można przeglądać przy pomocy QML Scene, bez ich uprzedniego budowania. Takie projekty wymagają instalacji Qt Quick Controls. Wymagana jest również wersja Qt 5.2 lub nowsza. + Open File + Otwórz plik + + + QmlDesigner::PropertyEditorView - Qt Quick Controls 1.1 - Qt Quick Controls 1.1 + Properties + Właściwości - Creates a Qt Quick 2 UI project with a single QML file that contains the main view and uses Qt Quick Controls. You can review Qt Quick 2 UI projects in the QML Scene and you need not build them. This project requires that you have installed Qt Quick Controls for your Qt version. Requires Qt 5.3 or newer. - Tworzy projekt UI Qt Quick 2 z pojedynczym plikiem QML, zawierającym główny widok i używającym Qt Quick Controls. Projekty można przeglądać przy pomocy QML Scene, bez ich uprzedniego budowania. Takie projekty wymagają instalacji Qt Quick Controls. Wymagana jest również wersja Qt 5.3 lub nowsza. + Invalid Id + Niepoprawny identyfikator - Qt Quick Controls 1.2 - Qt Quick Controls 1.2 + %1 is an invalid id. + %1 nie jest poprawnym identyfikatorem. - Creates a Qt Quick 2 UI project that contains a .ui.qml file and uses Qt Quick Controls. You can review Qt Quick 2 UI projects in the QML Scene and you need not build them. This project requires that you have installed Qt Quick Controls for your Qt version. Requires Qt 5.4 or newer. - Tworzy projekt UI Qt Quick 2 zawierający plik .ui.qml i używający Qt Quick Controls. Projekty można przeglądać przy pomocy QML Scene, bez ich uprzedniego budowania. Takie projekty wymagają instalacji Qt Quick Controls. Wymagana jest również wersja Qt 5.4 lub nowsza. + %1 already exists. + %1 już istnieje. + + + QmlProfiler::Internal::QmlProfilerEventRelativesView - Qt Quick Controls 1.3 - Qt Quick Controls 1.3 + <bytecode> + <kod bajtowy> - Creates a Qt Quick 2 UI project with a single QML file that contains the main view and uses Qt Quick Controls. You can review Qt Quick 2 UI projects in the QML Scene and you need not build them. This project requires that you have installed Qt Quick Controls for your Qt version. Requires Qt 5.1 or newer. - Tworzy projekt UI Qt Quick 2 z pojedynczym plikiem QML, zawierającym główny widok i używającym Qt Quick Controls. Projekty można przeglądać przy pomocy QML Scene, bez ich uprzedniego budowania. Takie projekty wymagają instalacji Qt Quick Controls. Wymagana jest również wersja Qt 5.1 lub nowsza. + Source code not available + Kod źródłowy nie jest dostępny. - Qt Quick Controls 1.0 - Qt Quick Controls 1.0 + Part of binding loop. + Część powiązanej pętli. - Android::Internal::AddNewAVDDialog + QmlProfiler::Internal::QmlProfilerDataState - Create new AVD - Utwórz nowe AVD + Trying to set unknown state in events list. + Próba ustawienia nieznanego stanu na liście zdarzeń. + + + QmlProfiler::QmlProfilerModelManager - Target API: + Unexpected complete signal in data model. - Name: - Nazwa: + Could not open %1 for writing. + Nie można otworzyć "%1" do zapisu. - SD card size: - Rozmiar karty SD: + Saving Trace Data + - MiB - MiB + Could not open %1 for reading. + Nie można otworzyć "%1" do odczytu. - ABI: - ABI: + Loading Trace Data + - AndroidDeployQtWidget - - Form - Formularz - + QmlProfiler::Internal::QmlProfilerPlugin - Sign package - Podpis pakietu + QML Profiler + Profiler QML - Signing a debug package - Podpisanie pakietu debugowego + QML Profiler (External) + Profiler QML (zewnętrzny) + + + QmlProfiler::Internal::QmlProfilerFileReader - Certificate alias: - Alias certyfikatu: + Error while parsing trace data file: %1 + Błąd parsowania pliku z danymi stosu: %1 + + + QmlProjectManager::QmlProjectFileFormat - Advanced Actions - Zaawansowane akcje + Invalid root element: %1 + Niepoprawny główny element: %1 + + + Qnx::Internal::QnxRunControl - Clean Temporary Libraries Directory on Device - Wyczyść tymczasowe katalogi z bibliotekami na urządzeniu + Warning: "slog2info" is not found on the device, debug output not available. + Ostrzeżenie: brak"slog2info" na urządzeniu, komunikaty debugowe nie będą dostępne. + + + Qnx::Internal::QnxToolChainFactory - Install Ministro from APK - Zainstaluj Ministro z APK + QCC + QCC + + + Qnx::Internal::QnxToolChainConfigWidget - Reset Default Devices - Przywróc domyślne urządzenia + &Compiler path: + Ścieżka do &kompilatora: - Open package location after build - Po zakończeniu budowania otwórz w położeniu pakietu + NDK/SDP path: + SDP refers to 'Software Development Platform'. + Ścieżka NDK/SDP: - Verbose output - Gadatliwe komunikaty + &ABI: + &ABI: + + + Qnx::Internal::Slog2InfoRunner - Create AndroidManifest.xml - Utwórz AndroidManifest.xml + Cannot show slog2info output. Error: %1 + Nie można pokazać komunikatów slog2info. Błąd: %1 + + + RemoteLinux::RemoteLinuxSignalOperation - Application - Aplikacja + Exit code is %1. stderr: + Kod wyjściowy: %1. stderr: + + + Update - Input file for androiddeployqt: - Plik wejściowy dla androiddeployqt: + Update + Uaktualnij + + + Valgrind::Internal::CallgrindRunControl - Qt no longer uses the folder "android" in the project's source directory. - Qt nie używa już katalogu "android" w katalogu źródłowym projektu. + Profiling + Profilowanie - Qt Deployment - Instalacja Qt + Profiling %1 + Profilowanie %1 + + + Valgrind::Memcheck::MemcheckRunner - Use Ministro service to install Qt - Użyj usługi Ministro do zainstalowania Qt + XmlServer on %1: + XmlServer na %1: - Deploy local Qt libraries to temporary directory - Zainstaluj lokalne biblioteki Qt do tymczasowego katalogu + LogServer on %1: + LogServer na %1: + + + Valgrind::Internal::MemcheckRunControl - Creates a standalone APK. - Tworzy samodzielny APK. + Analyzing Memory + Analiza pamięci - Bundle Qt libraries in APK - Dołącz biblioteki Qt do APK + Analyzing memory of %1 + Analiza pamięci w %1 - - Additional Libraries - Dodatkowe biblioteki + + + AnalyzerManager + + Memory Analyzer Tool finished, %n issues were found. + + Zakończono analizę pamięci, znaleziono %n problem. + Zakończono analizę pamięci, znaleziono %n problemy. + Zakończono analizę pamięci, znaleziono %n problemów. + - List of extra libraries to include in Android package and load on startup. - Lista dodatkowych bibliotek dołączanych do pakietu Android i ładowanych przy uruchamianiu. + Memory Analyzer Tool finished, no issues were found. + Zakończono analizę pamięci, nie znaleziono żadnych problemów. - - Select library to include in package. - Wybierz bibliotekę, którą dołączyć do pakietu. + + Log file processed, %n issues were found. + + Przetworzono plik logu, znaleziono %n problem. + Przetworzono plik logu, znaleziono %n problemy. + Przetworzono plik logu, znaleziono %n problemów. + - Remove currently selected library from list. - Usuń zaznaczoną bibliotekę z listy. + Log file processed, no issues were found. + Przetworzono plik logu, nie znaleziono żadnych problemów. + + + Valgrind::Internal::ValgrindRunControl - Remove - Usuń + Valgrind options: %1 + Opcje valgrinda: %1 - Create... - Utwórz... + Working directory: %1 + Katalog roboczy: %1 - Add... - Dodaj... + Command line arguments: %1 + Argumenty linii komend: %1 - Uses the external Ministro application to download and maintain Qt libraries. - Używa zewnętrznej aplikacji Ministro do pobierania bibliotek Qt i zarządzania nimi. + Analyzing finished. + Zakończono analizę. - Pushes local Qt libraries to device. You must have Qt libraries compiled for that platform. -The APK will not be usable on any other device. - Przesyła lokalne biblioteki Qt do urządzenia. -Należy przesłać biblioteki skompilowane dla tej platformy. -APK nie będzie przydatne na innych urządzeniach. + Error: "%1" could not be started: %2 + Błąd: nie można uruchomić "%1": %2 - Deploy options - Opcje instalacji + Error: no Valgrind executable set. + Błąd: nie ustawiono pliku wykonywalnego valgrind. - Uninstall previous package - Odinstaluj poprzedni pakiet + Process terminated. + Zakończono proces. - Android::Internal::AndroidDeviceDialog + Valgrind::Internal::ValgrindOptionsPage - Select Android Device - Wybierz urządzenie z Androidem + Valgrind + Valgrind + + + Valgrind::Internal::ValgrindPlugin - Refresh Device List - Odśwież listę urządzeń + Valgrind Function Profile uses the Callgrind tool to record function calls when a program runs. + - Create Android Virtual Device - Utwórz wirtualne urządzenie Android + Valgrind Analyze Memory uses the Memcheck tool to find memory leaks. + - Always use this device for architecture %1 - Używaj zawsze tego urządzenia do architektury %1 + Valgrind Memory Analyzer + Analizator pamięci Valgrind - ABI: - ABI: + Valgrind Memory Analyzer with GDB + - Compatible devices - Kompatybilne urządzenia + Valgrind Analyze Memory with GDB uses the Memcheck tool to find memory leaks. +When a problem is detected, the application is interrupted and can be debugged. + - Unauthorized. Please check the confirmation dialog on your device %1. - Urządzenie nieautoryzowane. Sprawdź dialog potwierdzenia w urządzeniu %1. + Valgrind Function Profiler + Profiler funkcji Valgrind - Offline. Please check the state of your device %1. - Rozłączony. Sprawdź stan urządzenia %1. + Valgrind Memory Analyzer (External Remote Application) + Analizator pamięci Valgrind (zewnętrza zdalna aplikacja) - ABI is incompatible, device supports ABIs: %1. - Niekompatybilne ABI, urządzenie obsługuje następujące ABI: %1. + Valgrind Function Profiler (External Remote Application) + Profiler funkcji Valgrind (zewnętrzna zdalna aplikacja) - API Level of device is: %1. - Poziom API urządzenia: %1. + Profile Costs of This Function and Its Callees + + + + Valgrind::ValgrindProcess - Android 5 devices are incompatible with deploying Qt to a temporary directory. - Urządzenia Android 5 nie obsługują instalowania Qt do tymczasowego katalogu. + Could not determine remote PID. + Nie można określić zdalnego PID. + + + Valgrind::Internal::ValgrindRunConfigurationAspect - Incompatible devices - Niekompatybilne urządzenia + Valgrind Settings + Ustawienia Valgrinda + + + Bazaar::Internal::UnCommitDialog - <p>Connect an Android device via USB and activate developer mode on it. Some devices require the installation of a USB driver.</p> - <p>Podłącz urządzenie Android przez USB i włącz w nim tryb deweloperski. Niektóre urządzenia wymagają instalacji sterownika USB.</p> + Uncommit + - <p>The adb tool in the Android SDK lists all connected devices if run via &quot;adb devices&quot;.</p> - <p>Narzędzie adb w Android SDK pokazuje wszystkie podłączone urządzenia uruchomione przez &quot;urządzenia adb&quot;.</p> + Keep tags that point to removed revisions + - No Device Found - Brak urządzeń + Only remove the commits from the local branch when in a checkout + - <html><head/><body><p><a href="aaa"><span style=" text-decoration: underline; color:#0057ae;">My device is missing</span></a></p></body></html> - <html><head/><body><p><a href="aaa"><span style=" text-decoration: underline; color:#0057ae;">Brak mojego urządzenia</span></a></p></body></html> + Revision: + Poprawka: - - - BareMetal::BareMetalDeviceConfigurationWidget - Form - Formularz + If a revision is specified, uncommits revisions to leave the branch at the specified revision. +For example, "Revision: 15" will leave the branch at revision 15. + - GDB host: - Host GDB: + Last committed + Ostatnia zmiana - GDB port: - Port GDB: + Dry Run + Na sucho - GDB commands: - Komendy GDB: + Test the outcome of removing the last committed revision, without actually removing anything. + Testuje rezultat usunięcia ostatniej poprawki bez faktycznego usunięcia czegokolwiek. - BareMetal::Internal::BareMetalDeviceConfigurationWizardSetupPage + Beautifier::Internal::ArtisticStyle::ArtisticStyleOptionsPage Form - Formularz + Formularz - Set up GDB Server or Hardware Debugger - Ustaw serwer GDB lub debugger sprzętowy + Configuration + Konfiguracja - Name: - Nazwa: + Artistic Style command: + Komendy stylu Artistic: - Init commands: - Komendy inicjalizujące: + Options + Opcje - Reset commands: - Komendy resetujące: + Use file *.astylerc defined in project files + Używaj plików *.astylerc zdefiniowanych w plikach projektów - Bare Metal Device - Urządzenie Bare Metal + Artistic Style + Styl Artistic - localhost - localhost + Use file .astylerc or astylerc in HOME + HOME is replaced by the user's home directory + Używaj plików .astylerc lub astylerc zdefiniowanych w HOME - GDB port: - Port GDB: + Use customized style: + Używaj własnego stylu: + + + Beautifier::Internal::ClangFormat::ClangFormatOptionsPage - GDB host: - Host GDB: + Form + Formularz - GDB commands: - Komendy GDB: + Configuration + Konfiguracja - load -monitor reset - load -monitor reset + Clang Format command: + Komenda formatowania Clang: - - - Core::Internal::AddToVcsDialog - Dialog - Dialog - - - Add the file to version control (%1) - Dodaj plik do systemu kontroli wersji (%1) + Options + Opcje - Add the files to version control (%1) - Dodaj pliki do systemu kontroli wersji (%1) + Format entire file if no text was selected. (For action Format Selected Text) + Formatuj cały plik w przypadku braku zaznaczonego tekstu. (Dla akcji "Sformatuj zaznaczony tekst") - - - CppEditor::Internal::CppPreProcessorDialog - Additional C++ Preprocessor Directives - Dodatkowe dyrektywy preprocesora C++ + Clang Format + Formatowanie Clang - Project: - Projekt: + Use predefined style: + Używaj predefiniowanego stylu: - Additional C++ Preprocessor Directives for %1: - Dodatkowe dyrektywy preprocesora C++ dla %1: + Use customized style: + Używaj własnego stylu: - CppTools::Internal::CppCodeModelSettingsPage + Beautifier::Internal::ConfigurationDialog - Form - Formularz + Name + Nazwa - Code Completion and Semantic Highlighting - Uzupełnianie kodu i podświetlanie semantyczne + Value + Wartość - C - C + Documentation + Dokumentacja - C++ - C++ + Documentation for "%1" + Dokumentacja dla "%1" + + + Beautifier::Internal::ConfigurationPanel - Objective C - Objective C + Form + Formularz - Objective C++ - Objective C++ + Edit + Zmodyfikuj - Pre-compiled Headers - Nagłówki prekompilowane + Remove + Usuń - <html><head/><body><p>When pre-compiled headers are not ignored, the parsing for code completion and semantic highlighting will process the pre-compiled header before processing any file.</p></body></html> - <html><head/><body><p>Gdy nagłówki prekompilowane nie są ignorowane, parsowanie ich nastąpi przed wszystkimi innymi plikami podczas uzupełniania kodu i podświetlania semantyki.</p></body></html> + Add + Dodaj - Ignore pre-compiled headers - Ignoruj nagłówki prekompilowane + Add Configuration + Dodaj konfigurację - Headers - Nagłówki + Edit Configuration + Zmodyfikuj konfigurację - Ios::Internal::IosBuildStep - - Base arguments: - Podstawowe argumenty: - + Beautifier::Internal::Uncrustify::UncrustifyOptionsPage - Reset Defaults - Przywróć domyślne + Form + Formularz - Extra arguments: - Dodatkowe argumenty: + Configuration + Konfiguracja - xcodebuild - xcodebuild + Uncrustify command: + - Qt Creator needs a compiler set up to build. Configure a compiler in the kit preferences. - Do budowy Qt Creator wymaga ustawionego kompilatora. Skonfiguruj go w opcjach zestawu narzędzi. + Options + Opcje - Configuration is faulty. Check the Issues output pane for details. - Konfiguracja jest błędna, sprawdź szczegóły w widoku "Problemy budowania". + Use file uncrustify.cfg defined in project files + Używaj plików uncrustify.cfg zdefiniowanych w plikach projektów - - - IosDeployStepWidget - Form - Formularz + Uncrustify + - - - IosRunConfiguration - Form - Formularz + Use file uncrustify.cfg in HOME + HOME is replaced by the user's home directory + - Arguments: - Argumenty: + Use customized style: + Używaj własnego stylu: + + + ClangCodeModel::Internal::ClangProjectSettingsPropertiesPage - Executable: - Plik wykonywalny: + Pre-compiled headers: + Nagłówki prekompilowane: - iPhone 3.5-inch Retina Display - Wyświetłacz 3.5-calowy Retina iPhone + None + Brak - iPhone 4-inch Retina Display - Wyświetłacz 4-calowy Retina iPhone + Build system (exact) + - iPad - iPad + Build system (fuzzy) + - iPad Retina Display - Wyświetłacz Retina iPad + Custom + Własne - Device type: - Typ urządzenia: + Choose... + Wybierz... - IosSettingsWidget + Core::Internal::FindDialog - iOS Configuration - Konfiguracja iOS + &Search + Wy&szukaj - Ask about devices not in developer mode - Pytaj o urządzenia nie będące w trybie deweloperskim + Search && &Replace + Wyszukaj i &zastąp - - - ProjectExplorer::Internal::CustomParserConfigDialog - Custom Parser - Własny parser + Sear&ch for: + Wysz&ukaj: - &Error message capture pattern: - Wzorzec do wychwytywania komunikatów z &błędami: + Case sensiti&ve + Uwzględniaj wielkość &liter - #error (.*):(\d+): (.*)$ - #error (.*):(\d+): (.*)$ + Whole words o&nly + Tylko &całe słowa - Capture Positions - Wychwytane pozycje + Use re&gular expressions + Używaj wyrażeń &regularnych - &File name: - Nazwa &pliku: + Sco&pe: + Z&akres: + + + Core::Internal::FindWidget - &Line number: - Numer &linii: + Find + Znajdź - &Message: - K&omunikat: + Find: + Znajdź: - Test - Test + ... + ... - E&rror message: - Komunikat z błę&dem: + Replace with: + Zastąp: - #error /home/user/src/test.c:891: Unknown identifier `test` - #error /home/user/src/test.c:891: Nieznany identyfikator `test` + Replace + Zastąp - File name: - Nazwa pliku: + Replace && Find + Zastąp i znajdź - TextLabel - Etykietka + Replace All + Zastąp wszystkie - Line number: - Numer linii: + Advanced... + Zaawansowane... + + + Core::Internal::DirectoryFilterOptions - Message: - Komunikat: + Name: + Nazwa: - Not applicable: - Nieodpowiedni: + File types: + Typy plików: - Pattern is empty. - Wzorzec jest pusty. + Specify file name filters, separated by comma. Filters may contain wildcards. + Podaj filtry nazw plików. oddzielone przecinkiem. Filtry mogą zawierać dżokery. - Pattern does not match the error message. - Wzorzec nie wychwycił komunikatu z błędem. + Specify a short word/abbreviation that can be used to restrict completions to files from this directory tree. +To do this, you type this shortcut and a space in the Locator entry field, and then the word to search for. + Podaj krótkie słowo lub skrót, który zostanie użyty do odfiltrowania plików w podanych katalogach. +Aby uaktywnić ten filtr, wpisz w lokalizatorze powyższy skrót i po spacji podaj szukane słowo. - - - ProjectExplorer::Internal::DeviceTestDialog - Device Test - Test urządzenia + Add... + Dodaj... - Close - Zamknij + Edit... + Modyfikuj... - Device test finished successfully. - Test urządzenia poprawnie zakończony. + Remove + Usuń - Device test failed. - Błąd testowania urządzenia. + Directories: + Katalogi: - QmlDesigner::AddTabToTabViewDialog + Core::Internal::FileSystemFilterOptions - Dialog - Dialog + Include hidden files + Włącz ukryte pliki - Add tab: - Dodaj zakładkę: + Filter: + Filtr: - Qnx::Internal::BlackBerryDeviceConfigurationWizardConfigPage - - Form - Formularz - - - Debug Token - - + Core::Internal::LocatorSettingsWidget - Location: - Położenie: + Configure Filters + Konfiguracja filtrów - Generate - Wygeneruj + Add... + Dodaj... - Debug token is needed for deploying applications to BlackBerry devices. - + Remove + Usuń - Type: - Typ: + Edit... + Modyfikuj... - Host name or IP address: - Nazwa hosta lub adres IP: + Locator filters that do not update their cached data immediately, such as the custom directory filters, update it after this time interval. + Jest to czas, po którym zostaną odświeżone filtry lokalizatora. Dotyczy to filtów, które nie odświeżają swoich danych natychmiast, takich jak własne filtry katalogów. - Configuration name: - Nazwa konfiguracji: + Refresh interval: + Odświeżanie co: - Configuration - Konfiguracja + min + min + + + WinRt::Internal::WinRtRunConfigurationWidget - Select Debug Token - + Arguments: + Argumenty: - BAR file (*.bar) - Plik BAR (*.bar) + Uninstall package after stop + Zdezinstaluj pakiet po zatrzymaniu - Invalid Debug Token - + Launch App + Uruchom Aplikację + + + QmlJS::ModelManagerInterface - Debug token file %1 cannot be read. - + Parsing QML Files + Parsowanie plików QML - Import - Zaimportuj + Scanning QML Imports + Skanowanie importów QML - Qnx::Internal::BlackBerryDeviceConfigurationWizardQueryPage + QmlJS::PluginDumper - Form - Formularz + QML module does not contain information about components contained in plugins. + +Module path: %1 +See "Using QML Modules with Plugins" in the documentation. + Moduł QML nie zawiera informacji o komponentach we wtyczkach. + +Ścieżka do modułu: %1 +Zobacz "Using QML Modules with Plugins" w dokumentacji. + + + Automatic type dump of QML module failed. +Errors: +%1 + Automatyczne zrzucenie typów modułu QML niepoprawnie zakończone. +Błędy: +%1 - Device Information - Informacja o urządzeniu + Automatic type dump of QML module failed. +First 10 lines or errors: + +%1 +Check 'General Messages' output pane for details. + Automatyczny zrzut typów modułu QML niepoprawnie zakończony. +Pierwsze 10 linii błędów: + +%1 +Sprawdź szczegóły w panelu "Komunikaty ogólne". - Querying device information. Please wait... - Oczekiwanie na informacje o urządzeniu... + Warnings while parsing QML type information of %1: +%2 + Ostrzeżenia podczas parsowania informacji o typach QML w %1: +%2 - Cannot connect to the device. Check that the device is in development mode and has matching host name and password. - Nie można nawiązać połączenia z urządzeniem. Sprawdź, czy urządzenie jest w trybie deweloperskim i czy nazwa hosta i hasło są zgodne. + "%1" failed to start: %2 + Nie można uruchomić "%1": %2 - Generating SSH keys. Please wait... - Generowanie kluczy SSH... + "%1" crashed. + "%1" zakończył pracę błędem. - Failed generating SSH key needed for securing connection to a device. Error: - Błąd podczas generowania kluczy SSH niezbędnych do bezpiecznej komunikacji z urządzeniem: + "%1" timed out. + Przekroczony czas oczekiwania na "%1". - Failed saving SSH key needed for securing connection to a device. Error: - Błąd podczas zachowywania kluczy SSH niezbędnych do bezpiecznej komunikacji z urządzeniem: + I/O error running "%1". + Błąd wejścia / wyjścia przy uruchamianiu "%1". - Device information retrieved successfully. - Otrzymano informacje o urządzeniu. + "%1" returned exit code %2. + "%1" zwrócił kod wyjściowy %2. - - - Qnx::Internal::BlackBerryInstallWizardNdkPage - Form - Formularz + Arguments: %1 + Argumenty: %1 - Select Native SDK path: - Wybierz rdzenną ścieżkę SDK: + Failed to parse "%1". +Error: %2 + Nie można sparsować "%1". +Błąd: %2 - Native SDK - Rdzenny SDK + Errors while reading typeinfo files: + Błędy podczas czytania plików typeinfo: - Specify 10.2 NDK path manually - Podaj ręcznie ścieżkę do NDK 10.2 + Could not locate the helper application for dumping type information from C++ plugins. +Please build the qmldump application on the Qt version options page. + Nie można ustalić położenia aplikacji pomocniczej zrzucającej informacje o typach z wtyczek C++. +Zbuduj aplikację qmldump na stronie z opcjami wersji Qt. - Qnx::Internal::BlackBerryInstallWizardProcessPage - - Form - Formularz - + Utils::FancyLineEdit - Please wait... - Oczekiwanie... + Filter + Filtr - Uninstalling - Dezinstalowanie + Clear text + Wyczyść tekst + + + AndroidConfiguration - Installing - Instalowanie + Could not run: %1 + Nie można uruchomić: %1 - API level - Poziom API + No devices found in output of: %1 + Brak urządzeń na wyjściu %1 + + + AndroidConfig - simulator - symulator + Error Creating AVD + Błąd w trakcie tworzenia AVD - runtime - + Could not start process "%1 %2" + Nie można uruchomić procesu "%1 %2" + + + Android::Internal::AndroidPotentialKit - Uninstalling %1 version: %2 - Dezinstalowanie %1 wersja: %2 + Configure Android... + Konfiguruj Androida... + + + Android::Internal::JavaEditorFactory - Installing %1 version: %2 - Instalowanie %1 wersja: %2 + Java Editor + Edytor Java - Qnx::Internal::BlackBerryInstallWizardTargetPage + AbstractSettings - Form - Formularz + Cannot save styles. %1 does not exist. + Nie można zachować stylów. %1 nie istnieje. - Version - Wersja + Cannot open file "%1": %2. + Nie można otworzyć pliku "%1": %2. - Name - Nazwa + Cannot save file "%1": %2. + Nie można zachować pliku "%1": %2. - Querying available versions. Please wait... - Oczekiwanie na informacje o dostępnych wersjach... + No documentation file specified. + Nie podano pliku z dokumentacją. - Please select version: - Wybierz wersję: + Cannot open documentation file "%1". + Nie można otworzeć pliku z dokumentacją "%1". - - - Qnx::Internal::SrcProjectWizardPage - Choose the Location - Wybierz położenie + The file "%1" is not a valid documentation file. + Plik "%1" nie jest poprawnym plikiem z dokumentacją. - Project path: - Ścieżka do projektu: + Cannot read documentation file "%1": %2. + Nie można odczytać pliku z dokumentacją "%1": %2. + + + Beautifier - Momentics - Momentics + Beautifier + Upiększarka - UpdateInfo::Internal::SettingsWidget + Beautifier::Internal::BeautifierPlugin - Configure Filters - Konfiguracja filtrów + Cannot create temporary file "%1": %2. + Nie można utworzyć tymczasowego pliku "%1": %2. - Qt Creator Update Settings - Ustawienia uaktualniania Qt Creatora + Cannot call %1 or some other error occurred. + Nie można wywołać %1 lub wystąpił inny błąd. - Qt Creator automatically runs a scheduled update check on a daily basis. If Qt Creator is not in use on the scheduled time or maintenance is behind schedule, the automatic update check will be run next time Qt Creator starts. - Qt Creator automatycznie uruchamia zaplanowane sprawdzenie uaktualnień każdego dnia. Jeśli Qt Creator nie jest uruchomiony w zaplanowanym czasie, automatycznie sprawdzenie zostanie rozpoczęte przy najbliższym uruchomieniu Qt Creatora. + Cannot read file "%1": %2. + Nie można odczytać pliku "%1": %2. - Run update check daily at: - Uruchamiaj codzienne sprawdzanie uaktualnień o: + File was modified. + Zmodyfikowano plik. - - - FlickableSection - Flickable - Element przerzucalny + Time out reached while formatting file %1. + Przekroczono czas oczekiwania na sformatowanie pliku %1. - Content size - Rozmiar zawartości + Could not format file %1. + Nie można sformatować pliku %1. - Flick direction - Kierunek przerzucania + File %1 was closed. + Zamknięto plik %1. - Behavior - Zachowanie + Error in Beautifier: %1 + Błąd upiększarki: %1 - Bounds behavior - Zachowanie przy brzegach + Cannot get configuration file for %1. + Brak pliku z konfiguracją dla %1. - Interactive - Interaktywny + Format Current File + Menu entry + Sformatuj bieżący plik - Max. velocity - Prędkość maks. + Format Selected Text + Menu entry + Sformatuj zaznaczony tekst - Maximum flick velocity - Maksymalna prędkość przerzucania + %1 Command + File dialog title for path chooser when choosing binary + Komenda %1 + + + ClangFormatSettings - Deceleration - Opóźnienie + No description available. + Brak opisu. + + + ClangCodeModel::Internal::ClangCompletionAssistProcessor - Flick deceleration - Opóźnienie przerzucania + Location: %1 + Parent folder for proposed #include completion + Położenie: %1 - FontSection + ClangCodeModel::Internal::ClangIndexer - Font - Czcionka + Parsing C/C++/ObjC Files + Parsowanie plików C / C++ / ObjC + + + ClangCodeModel::Internal::ModelManagerSupport - Size - Rozmiar + Clang + Display name + Clang + + + ClangCodeModel::Internal::ClangProjectSettingsWidget - Font style - Styl czcionki + Clang Settings + Ustawienia Clang - Style - Styl + Header Files (*.h) + Pliki nagłówkowe (*.h) + + + All Files (*) + Wszystkie pliki (*) - StandardTextSection + ClangCodeModel::Diagnostic - Text - Tekst + ignored + - Wrap mode - Tryb zawijania + note + - Alignment - Wyrównanie + warning + - Format - Format + error + + + + fatal + - AdvancedSection + ClangCodeModel::Internal::PchManager - Advanced - Zaawansowane + Successfully generated PCH file "%1". + Wygenerowano poprawnie plik PCH "%1". - Origin - Początek + Failed to generate PCH file "%1". + Nie można wygenerować pliku PCH "%1". - Scale - Skala + Precompiling + Prekompilacja + + + Core::FindPlugin - Rotation - Rotacja + &Find/Replace + Z&najdź / zastąp - Enabled - Aktywny + Advanced Find + Zaawansowane przeszukiwanie - Accept mouse and keyboard events - Akceptuj zdarzenia myszy i klawiatury + Open Advanced Find... + Otwórz zaawansowane przeszukiwanie... - Smooth - Gładki + Advanced... + Zaawansowane... - Smooth sampling active - Włącz gładkie próbkowanie + Ctrl+Shift+F + Ctrl+Shift+F + + + Core::Internal::FindToolBar - Antialiasing - Antyaliasing + Shift+Enter + Shift+Enter - Anti-aliasing active - Włącz antyaliasing + Shift+Return + Shift+Return - - - ColumnSpecifics - Column - Kolumna + Find/Replace + Znajdź / zastąp - Spacing - Odstępy + Enter Find String + Podaj ciąg do znalezienia - - - FlipableSpecifics - Flipable - + Ctrl+E + Ctrl+E - - - GeometrySection - Geometry - Geometria + Find Next + Znajdź następne - Position - Pozycja + Find Previous + Znajdź poprzednie - Size - Rozmiar + Find Next (Selected) + Znajdź następny (zaznaczony) - - - ItemPane - Type - Typ + Ctrl+F3 + Ctrl+F3 - id - identyfikator + Find Previous (Selected) + Znajdź poprzedni (zaznaczony) - Visibility - Widoczność + Ctrl+Shift+F3 + Ctrl+Shift+F3 - Is Visible - Jest widoczny + Replace + Zastąp - Clip - Klip + Replace && Find + Zastąp i znajdź - Opacity - Nieprzezroczystość + Ctrl+= + Ctrl+= - Layout - Rozmieszczenie + Replace && Find Previous + Zastąp i znajdź poprzednie - Advanced - Zaawansowane + Replace All + Zastąp wszystkie - - - LayoutSection - Layout - Rozmieszczenie + Case Sensitive + Uwzględniaj wielkość liter - Anchors - Kotwice + Whole Words Only + Tylko całe słowa - Target - Cel + Use Regular Expressions + Używaj wyrażeń regularnych - Margin - Margines + Preserve Case when Replacing + Zachowuj wielkość liter przy zastępowaniu - - - QtObjectPane - Type - Typ + Search for... + Wyszukiwanie... - id - identyfikator + Replace with... + Zastępowanie... - TextInputSection + Core::IFindFilter - Text Input - Wejście tekstu + Case sensitive + Uwzględniaj wielkość liter - Input mask - Maska wejściowa + Whole words + Całe słowa - Echo mode - Tryb echo + Regular expressions + Wyrażenia regularne - Pass. char - Znak hasła + Preserve case + Zachowuj wielkość liter - Character displayed when users enter passwords. - Znak wyświetlany podczas wpisywania hasła przez użytkownika. + Flags: %1 + Flagi: %1 - Flags - Flagi + None + Brak - Read only - Tylko do odczytu + , + , + + + Core::Internal::SearchResultWidget - Cursor visible - Kursor widoczny + Search was canceled. + Anulowano przeszukiwanie. - Active focus on press - Uaktywnij fokus po naciśnięciu + Cancel + Anuluj - Auto scroll - Automatyczne przewijanie + Repeat the search with same parameters. + Powtórz przeszukiwanie z tymi samymi parametrami. - - - TextInputSpecifics - Text Color - Kolor tekstu + Search again + Przeszukaj ponownie - Selection Color - Kolor selekcji + Replace with: + Zastąp: - - - TextSpecifics - Text Color - Kolor tekstu + Replace all occurrences. + Zastąp wszystkie wystąpienia. - Style Color - Kolor stylu + Replace + Zastąp - - - WindowSpecifics - Window - Okno + Preserve case + Zachowuj wielkość liter - Title - Tytuł + This change cannot be undone. + Ta zmiana nie może być cofnięta. - - Size - Rozmiar + + The search resulted in more than %n items, do you still want to continue? + + Odnaleziono wiecej niż %n element, kontynuować? + Odnaleziono wiecej niż %n elementy, kontynuować? + Odnaleziono wiecej niż %n elementów, kontynuować? + - Color - Kolor + Continue + Kontynuuj - Visible - Widoczny + No matches found. + Brak pasujących wyników. - - Opacity - Nieprzezroczystość + + %n matches found. + + Znaleziono %n pasujący wynik. + Znaleziono %n pasujące wyniki. + Znaleziono %n pasujących wyników. + - SideBar - - New to Qt? - Nowicjusz? - - - Learn how to develop your own applications and explore Qt Creator. - Poznaj Qt Creatora i dowiedz się, jak przy jego pomocy tworzyć aplikacje. - + Core::SearchResultWindow - Get Started Now - Rozpocznij teraz + History: + Historia: - Qt Account - Konto Qt + New Search + Nowe wyszukiwanie - Qt Cloud Services - Chmura z usługami Qt + Expand All + Rozwiń wszystko - Online Community - Społeczność online + %1 %2 + %1 %2 - Blogs - Blogi + Collapse All + Zwiń wszystko - User Guide - Przewodnik użytkownika + Search Results + Wyniki wyszukiwań - Analyzer::AnalyzerRunConfigWidget + Core::Internal::DirectoryFilter - Use Customized Settings - Użyj własnych ustawień + Generic Directory Filter + Ogólny filtr katalogów - Use Global Settings - Użyj globalnych ustawień + Select Directory + Wybierz katalog - - - Android::Internal::AndroidDeployQtStepFactory - Deploy to Android device or emulator - Zainstaluj na urządzeniu lub emulatorze Android + %1 filter update: 0 files + Uaktualnienie filtra %1: 0 plików - - - Android::Internal::AndroidDeployQtStep - - Deploy to Android device - AndroidDeployQtStep default display name - Zainstaluj na urządzeniu Android + + %1 filter update: %n files + + Uaktualnienie filtra %1: %n plik + Uaktualnienie filtra %1: %n pliki + Uaktualnienie filtra %1: %n plików + - Found old folder "android" in source directory. Qt 5.2 does not use that folder by default. - Odnaleziono folder "android" w katalogu źródłowym. Qt 5.2 domyślnie nie używa tego katalogu. + %1 filter update: canceled + Uaktualnienie filtra %1: anulowano + + + Core::Internal::ExecuteFilter - No Android arch set by the .pro file. - Brak ustawionego arch dla Androida w pliku .pro. + Execute Custom Commands + Wykonanie własnej komendy - Cannot find the android build step. - Nie można odnaleźć kroku budowania androida. + Previous command is still running ("%1"). +Do you want to kill it? + Poprzednia komenda jest wciąż uruchomiona ("%1"). +Czy przerwać ją? - Cannot find the androiddeployqt tool. - Nie można odnaleźć narzędzia androiddeployqt. + Command "%1" finished. + Komenda "%1" zakończona. - Cannot find the androiddeploy Json file. - Nie można odnaleźć pliku androiddeploy Json. + Command "%1" failed. + Komenda "%1" zakończona błędem. - Cannot find the package name. - Nie można odnaleźć nazwy pakietu. + Starting command "%1". + Uruchamianie komendy "%1". - Uninstall previous package %1. - Odinstaluj poprzedni pakiet %1. + Kill Previous Process? + Czy przerwać poprzedni proces? - Package deploy: Running command "%1 %2". - Instalacja pakietu: uruchomiono komendę "%1 %2". + Could not start process: %1. + Nie można uruchomić procesu %1. - Packaging error: Could not start command "%1 %2". Reason: %3 - Błąd pakowania: nie można uruchomić komendy "%1 %2". Przyczyna: %3 + Could not find executable for "%1". + Nie można odnaleźć pliku wykonywalnego dla "%1". + + + Core::Internal::FileSystemFilter - Packaging Error: Command "%1 %2" failed. - Błąd pakowania: Komenda "%1 %2" niepoprawnie zakończona. + Files in File System + Pliki w systemie plików - Install failed - Instalacja niepoprawnie zakończona + Create and Open "%1" + Utwórz i otwórz "%1" + + + Core::ILocatorFilter - Another application with the same package id but signed with different ceritificate already exists. -Do you want to uninstall the existing package next time? - Istnieje już inna aplikacja o tym samym identyfikatorze pakietu, lecz z innym certyfikatem. -Czy odinstalować istniejący pakiet następnym razem? + Filter Configuration + Konfiguracja filtra - Warning: Signing a debug package. - Ostrzeżenie: podpisywanie pakietu debugowego. + Type the prefix followed by a space and search term to restrict search to the filter. + - Internal Error: Could not find .pro file. - Błąd wewnętrzny: brak pliku .pro. + Include by default + - Pulling files necessary for debugging. + Include the filter when not using a prefix for searches. - Package deploy: Running command '%1 %2'. - Instalacja pakietu: Uruchamianie komendy "%1 %2". + Prefix: + Przedrostek: + + + Core::Internal::Locator - Packaging error: Could not start command '%1 %2'. Reason: %3 - Błąd pakowania: Nie można uruchomić komendy "%1 %2". Przyczyna: %3 + Ctrl+K + Ctrl+K - Packaging Error: Command '%1 %2' failed. - Błąd pakowania: Komenda "%1 %2" zakończona błędem. + Type to locate + Wpisz aby znaleźć - Reason: %1 - Przyczyna: %1 + Type to locate (%1) + Wpisz aby znaleźć (%1) - Exit code: %1 - Kod wyjściowy: %1 + <html><body style="color:#909090; font-size:14px"><div align='center'><div style="font-size:20px">Open a document</div><table><tr><td><hr/><div style="margin-top: 5px">&bull; File > Open File or Project (%1)</div><div style="margin-top: 5px">&bull; File > Recent Files</div><div style="margin-top: 5px">&bull; Tools > Locate (%2) and</div><div style="margin-left: 1em">- type to open file from any open project</div>%4%5<div style="margin-left: 1em">- type <code>%3&lt;space&gt;&lt;filename&gt;</code> to open file from file system</div><div style="margin-left: 1em">- select one of the other filters for jumping to a location</div><div style="margin-top: 5px">&bull; Drag and drop files here</div></td></tr></table></div></body></html> + - Error - Błąd + <div style="margin-left: 1em">- type <code>%1&lt;space&gt;&lt;pattern&gt;</code> to jump to a class definition</div> + - Invalid password. - Niepoprawne hasło. + <div style="margin-left: 1em">- type <code>%1&lt;space&gt;&lt;pattern&gt;</code> to jump to a function definition</div> + - Certificate - Certyfikat + Updating Locator Caches + + + + Core::Internal::LocatorFiltersFilter - Certificate password (%1): - Hasło dla certyfikatu (%1): + Available filters + Dostępne filtry - Android::Internal::AndroidDeployQtWidget + Core::Internal::LocatorWidget - <b>Deploy configurations</b> - <b>Konfiguracje instalacji</b> + Refresh + Odśwież - Qt Android Smart Installer - Qt Android Smart Installer + Locate... + Znajdź... - Android package (*.apk) - Pakiet androida (*.apk) + Options + Opcje - Select additional libraries - Wybierz dodatkowe biblioteki + <type here> + <wpisz tutaj> + + + Core::Internal::OpenDocumentsFilter - Libraries (*.so) - Biblioteki (*.so) + Open Documents + Otwarte dokumenty - Android::Internal::AndroidErrorMessage + Debugger::Internal::UnstartedAppWatcherDialog - Android: SDK installation error 0x%1 - Android: błąd instalacji SDK 0x%1 + Attach to Process Not Yet Started + Dołącz do nieuruchomionego procesu - Android: NDK installation error 0x%1 - Android: błąd instalacji NDK 0x%1 + Reopen dialog when application finishes + Ponownie otwórz dialog po zakończeniu aplikacji - Android: Java installation error 0x%1 - Android: błąd instalacji Java 0x%1 + Reopens this dialog when application finishes. + Ponownie otwórz ten dialog po zakończeniu aplikacji. - Android: ant installation error 0x%1 - Android: błąd instalacji ant 0x%1 + Continue on attach + Kontynuuj po dołączeniu - Android: adb installation error 0x%1 - Android: błąd instalacji adb 0x%1 + Debugger does not stop the application after attach. + Debugger nie zatrzyma aplikacji po dołączeniu. - Android: Device connection error 0x%1 - Android: błąd łączności z urządzeniem 0x%1 + Start Watching + Rozpocznij obserwację - Android: Device permission error 0x%1 - Android: błąd uprawnień urządzenia 0x%1 + Close + Zamknij - Android: Device authorization error 0x%1 - Android: błąd autoryzacji urządzenia 0x%1 + Kit: + Zestaw narzędzi: - Android: Device API level not supported: error 0x%1 - Android: Poziom API urządzenia nieobsługiwany 0x%1 + Executable: + Plik wykonywalny: - Android: Unknown error 0x%1 - Android: nieznany błąd 0x%1 + Select valid executable. + Wybierz poprawny plik wykonywalny. - - - Android::Internal::AndroidPotentialKitWidget - Qt Creator needs additional settings to enable Android support. You can configure those settings in the Options dialog. - Qt Creator wymaga dodatkowych ustawień do obsługi Androida. Można je skonfigurować w dialogu z opcjami. + Not watching. + Brak obserwacji. - - - Android::Internal::NoApplicationProFilePage - No application .pro file found in this project. - Brak pliku .pro aplikacji w tym projekcie. + Waiting for process to start... + Oczekiwanie na uruchomienie procesu... - No Application .pro File - Brak pliku .pro aplikacji + Attach + Dołącz - Android::Internal::ChooseProFilePage - - Select the .pro file for which you want to create an AndroidManifest.xml file. - Wybierz plik .pro dla którego utworzyć plik AndroidManifest.xml. - - - .pro file: - Plik .pro: + DiffEditor::DiffEditorController + + and %n more + Displayed after the untranslated message "Branches: branch1, branch2 'and %n more'" + + i jeszcze %n gałąź + i jeszcze %n gałęzie + i jeszcze %n gałęzi + - Select a .pro File - Wybierz plik .pro + <None> + <Brak> - Android::Internal::ChooseDirectoryPage - - Android package source directory: - Katalog źródłowy pakietu Android: - + ProjectExplorer::KitConfigWidget - The Android manifest file will be created in the ANDROID_PACKAGE_SOURCE_DIR set in the .pro file. - Plik manifest Androida zostanie utworzony w katalogu, na który wskazuje zmienna ANDROID_PACKAGE_SOURCE_DIR ustawiona w pliku .pro. + Manage... + Zarządzaj... - Android::Internal::CreateAndroidManifestWizard + ProjectExplorer::SelectableFilesDialogEditFiles - Create Android Manifest Wizard - Kreator pliku manifest Androida + Edit Files + Zmodyfikuj pliki - Overwrite AndroidManifest.xml - Nadpisanie AndroidManifest.xml + Hide files matching: + Ukryj pliki pasujące do: - Overwrite existing AndroidManifest.xml? - Nadpisać istniejący plik AndroidManifest.xml? + Show files matching: + Pokaż pliki pasujące do: - File Removal Error - Błąd usuwania pliku + Apply Filter + Zastosuj filtr - Could not remove file %1. - Nie można usunąć pliku %1. + Generating file list... + +%1 + Generowanie listy plików... + +%1 - - File Creation Error - Błąd tworzenia pliku + + Not showing %n files that are outside of the base directory. +These files are preserved. + + Ukryto %n plik który jest na zewnątrz katalogu bazowego. +Ten plik jest zabezpieczony. + Ukryto %n pliki które są na zewnątrz katalogu bazowego. +Te pliki są zabezpieczone. + Ukryto %n plików które są na zewnątrz katalogu bazowego. +Te pliki są zabezpieczone. + + + + ProjectExplorer::SelectableFilesDialogAddDirectory - Could not create file %1. - Nie można utworzyć pliku %1. + Add Existing Directory + Dodaj istniejący katalog - Project File not Updated - Nieaktualny plik projektu + Source directory: + Katalog źródłowy: - Could not update the .pro file %1. - Nie można uaktualnić pliku .pro %1. + Start Parsing + Rozpocznij parsowanie - BareMetal::Internal::BareMetalDevice + QmlDesigner - Bare Metal - Bare Metal + Error + Błąd - BareMetal::BareMetalDeviceConfigurationFactory + QmlProfiler::QmlProfilerBaseModel - Bare Metal Device - Urządzenie Bare Metal + µs + µs - - - BareMetal::BareMetalDeviceConfigurationWizard - New Bare Metal Device Configuration Setup - Nowa konfiguracja urządzenia Bare Metal + ms + ms + + + s + s - BareMetal::BareMetalDeviceConfigurationWizardSetupPage + QmlProfiler::QmlProfilerDataModel - Set up GDB Server or Hardware Debugger - Ustaw serwer GDB lub debugger sprzętowy + <bytecode> + <kod bajtowy> - Bare Metal Device - Urządzenie Bare Metal + GUI Thread + Wątek GUI - - - BareMetal::Internal::BareMetalGdbCommandsDeployStepWidget - GDB commands: - Komendy GDB: + anonymous function + anonimowa funkcja - BareMetal::BareMetalGdbCommandsDeployStep + Qnx::Internal::QnxAttachDebugDialog - GDB commands - Komendy GDB: + Project source directory: + Katalog ze źródłami projektu: + + + Local executable: + Lokalny plik wykonywalny: - BareMetal::BareMetalRunConfiguration + Qnx::Internal::QnxAttachDebugSupport - %1 (via GDB server or hardware debugger) - %1 (poprzez serwer GDB lub debugger sprzętowy) + No free ports for debugging. + Brak wolnych portów do debugowania. - Run on GDB server or hardware debugger - Bare Metal run configuration default run name - Uruchom na serwerze GDB lub debuggerze sprzętowym + Remote: "%1:%2" - Process %3 + - BareMetal::Internal::BareMetalRunConfigurationFactory + FontSettings_C_OCCURRENCES_UNUSED - %1 (on GDB server or hardware debugger) - %1 (na serwerze GDB lub debuggerze sprzętowym) + Unused variable + Nieużywana zmienna - BareMetal::BareMetalRunConfigurationWidget - - Executable: - Plik wykonywalny: - + VcsBase::Internal::VcsPlugin - Arguments: - Argumenty: + Name of the version control system in use by the current project. + Nazwa systemu kontroli wersji używana w bieżącym projekcie. - <default> - <domyślny> + The current version control topic (branch or tag) identification of the current project. + - Working directory: - Katalog roboczy: + The top level path to the repository the current project is in. + Ścieżka do repozytorium do którego przynależy bieżący projekt. - BareMetal::Internal::BareMetalRunControlFactory + WinRt::Internal::WinRtDeployConfiguration - Cannot debug: Kit has no device. - Nie można debugować: brak urządzenia w zestawie narzędzi. + Run windeployqt + Uruchom windeployqt - - - Core::DocumentModel - <no document> - <brak dokumentu> + Deploy to Windows Phone + Zainstaluj na Windows Phone - No document is selected. - Brak zaznaczonego dokumenty. + Deploy to Windows Phone Emulator + Zainstaluj na emulatorze Windows Phone - CppEditor::Internal::CppIncludeHierarchyWidget + WinRt::Internal::WinRtDeployStepFactory - No include hierarchy available - Brak dostępnej hierarchii dołączeń + Run windeployqt + Uruchom windeployqt - CppEditor::Internal::CppIncludeHierarchyFactory + WinRt::Internal::WinRtDevice - Include Hierarchy - Hierarchia dołączeń + Windows Runtime (Local) + + + + Windows Phone + Windows Phone + + + Windows Phone Emulator + Emulator Windows Phone - CppEditor::Internal::CppIncludeHierarchyModel + WinRt::Internal::WinRtDeviceFactory - Includes - Dołączenia + Running Windows Runtime device detection. + - Included by - Dołączone przez + No winrtrunner.exe found. + Brak winrtrunner.exe. - (none) - (brak) + Error while executing winrtrunner: %1 + Błąd uruchamiania winrtrunner: %1 - (cyclic) - (cykl) + winrtrunner returned with exit code %1. + winrtrunner zakończył pracę kodem wyjściowym %1. - - - VirtualFunctionsAssistProcessor - ...searching overrides - ...wyszukiwanie implementacji + Windows Runtime local UI + + + + Found %n Windows Runtime devices. + + + + + + + + %n of them are new. + + %n z nich jest nowe. + %n z nich są nowe. + %n z nich jest nowych. + - ModelManagerSupportInternal::displayName + WinRt::Internal::WinRtPackageDeploymentStep - Qt Creator Built-in - Wbudowany w Qt Creatora + Run windeployqt + Uruchom windeployqt - - - Debugger::Internal::DebuggerOptionsPage - Not recognized - Nierozpoznany + No executable to deploy found in %1. + Brak pliku wykonawczego w %1 do zainstalowania. - Debuggers - Debuggery + Cannot parse manifest file %1. + Nie można sparsować pliku manifest %1. - Add - Dodaj + File %1 is outside of the executable's directory. These files cannot be installed. + "These files cannot be installed." - this should be singular, like the first sentence: "This file". + Plik %1 leży poza katalogiem pliku wykonywalnego. Plik ten nie zostanie zainstalowany. - Clone - Sklonuj + Cannot open mapping file %1 for writing. + Nie można otworzyć pliku z mapowaniem %1 do zapisu. + + + WinRt::Internal::WinRtQtVersion - Remove - Usuń + Windows Phone + Windows Phone - Clone of %1 - Klon %1 + Windows Runtime + Windows Runtime + + + WinRt::Internal::WinRtRunConfiguration - New Debugger - Nowy debugger + Run App Package + Uruchom pakiet App - Debugger::DebuggerItemManager + WinRt::Internal::WinRtRunConfigurationFactory - Auto-detected CDB at %1 - Automatycznie wykryty CDB w %1 + Run App Package + Uruchom pakiet App + + + WinRt::Internal::WinRtRunControlFactory - System %1 at %2 - %1: Debugger engine type (GDB, LLDB, CDB...), %2: Path - System %1 w %2 + Unsupported run mode %1. + Nieobsługiwany tryb uruchamiania %1. - Extracted from Kit %1 - Znaleziony w zestawie narzędzi %1 + WinRT Run Control Factory + - Debugger::Internal::DebuggerItemModel + WinRt::Internal::WinRtPackageDeploymentStepWidget - Auto-detected - Automatycznie wykryte + Arguments: + Argumenty: - Manual - Ustawione ręcznie + Restore Default Arguments + Przywróć domyślne argumenty + + + Utils::ProxyCredentialsDialog - Name - Nazwa + Proxy Credentials + Pośrednie listy uwierzytelniające - Path - Ścieżka + The proxy %1 requires a username and password. + Pośrednik %1 wymaga nazwy użytkownika i hasła. - Type - Typ + Username: + Nazwa użytkownika: - - - Debugger::Internal::DebuggerItemConfigWidget - Unknown - + Username + Nazwa użytkownika - Name: - Nazwa: + Password: + Hasło: - Path: - Ścieżka: + Password + Hasło + + + AndroidBuildApkWidget - ABIs: - ABIs: + Form + Formularz - Version: - Wersja: + Sign package + Podpisz pakiet - 64-bit version - w wersji 64 bitowej + Keystore: + - 32-bit version - w wersji 32 bitowej + Create... + Utwórz... - <html><body><p>Specify the path to the <a href="%1">Windows Console Debugger executable</a> (%2) here.</p></body></html> - Label text for path configuration. %2 is "x-bit version". - <html><body><p>Podaj ścieżkę do <a href="%1">pliku wykonywalnego Windows Console Debugger</a> (%2).</p></body></html> + Signing a debug package + extra space on the end + Podpisywanie pakietu debugowego - - - Debugger::Internal::GdbPlainEngine - Starting executable failed: - Nie można uruchomić programu: + Certificate alias: + Alias certyfikatu: - Cannot set up communication with child process: %1 - Nie można ustanowić połączenia z podprocesem: %1 + Application + Aplikacja - - - Git::Internal::GitDiffSwitcher - Switch to Text Diff Editor - Przełącz do tekstowego edytora różnic + Android build SDK: + - Switch to Side By Side Diff Editor - Przełącz do edytora różnic wyświetlającego zawartość sąsiadująco + Advanced Actions + Zaawansowane akcje - - - Ios::Internal::IosBuildStepConfigWidget - iOS build - iOS BuildStep display name. - Wersja iOS + Verbose output + Gadatliwe komunikaty - - - Ios::Internal::IosConfigurations - %1 %2 - %1 %2 + Open package location after build + Po zakończeniu budowania otwórz w położeniu pakietu - - - Ios - iOS - iOS + Use Gradle + Używaj Gradle - - - Ios::Internal::IosDebugSupport - Could not find device specific debug symbols at %1. Debugging initialization will be slow until you open the Organizer window of Xcode with the device connected to have the symbols generated. - + Qt Deployment + Instalacja Qt - Debugging with Xcode 5.0.x can be unreliable without a dSYM. To create one, add a dsymutil deploystep. - + Uses the external Ministro application to download and maintain Qt libraries. + Używa zewnętrznej aplikacji Ministro do pobierania bibliotek Qt i zarządzania nimi. - The dSYM %1 seems to be outdated, it might confuse the debugger. - dSYM %1 może być nieaktualny i może spowodować nieprawidłową pracę debuggera. + Use Ministro service to install Qt + Użyj usługi Ministro do zainstalowania Qt - Could not get debug server file descriptor. - + Creates a standalone APK. + Tworzy samodzielny APK. - Got an invalid process id. - Otrzymano niepoprawny identyfikator procesu. + Bundle Qt libraries in APK + Dołącz biblioteki Qt do APK - Run ended with error. - Praca zakończona błędem. + Pushes local Qt libraries to device. You must have Qt libraries compiled for that platform. +The APK will not be usable on any other device. + Przesyła lokalne biblioteki Qt do urządzenia. +Należy przesłać biblioteki skompilowane dla tej platformy. +APK nie będzie przydatne na innych urządzeniach. - Run ended. - Praca zakończona. + Deploy local Qt libraries to temporary directory + Zainstaluj lokalne biblioteki Qt do tymczasowego katalogu - Run failed unexpectedly. - Praca nieoczekiwanie zakończona. + Signing an APK that uses "Deploy local Qt libraries" is not allowed. +Deploying local Qt libraries is incompatible with Android 5. + Podpisywanie APK, które używa "Zainstaluj lokalne biblioteki Qt" jest niedozwolone. +Instalowanie lokalnych bibliotek Qt nie jest kompatybilne z Androidem 5. - Ios::Internal::IosDeployConfiguration + Core::Internal::ThemeEditor::ThemeEditorWidget - Deploy to iOS - Zainstaluj na iOS + Theme Editor + Edytor motywów - - - Ios::Internal::IosDeployConfigurationFactory - Deploy on iOS - Zainstaluj na iOS + Filter: + Filtr: - Ios::Internal::IosDeployStep + Core::Internal::ThemeSettings - Deploy to %1 - Zainstaluj na %1 + Rename... + Zmień nazwę... - Error: no device available, deploy failed. - Błąd: urządzenie nie jest dostępne, instalacja nieudana. + Copy... + Kopiuj... - Deployment failed. No iOS device found. - Nieudana instalacja. Brak urządzenia iOS. + Delete + Usuń - Deployment failed. The settings in the Organizer window of Xcode might be incorrect. - Nieudana instalacja. Ustawienia w oknie "Organizer" w Xcode mogą być niepoprawne. + Theme + Motyw + + + Ios::Internal::IosPresetBuildStep - Deployment failed. - Nieudana instalacja. + Reset to Default + Przywróć domyślny - The Info.plist might be incorrect. - Info.plist może być niepoprawne. + Command: + Komenda: - The provisioning profile "%1" (%2) used to sign the application does not cover the device %3 (%4). Deployment to it will fail. - + Arguments: + Argumenty: - Ios::Internal::IosDeployStepFactory + ProjectExplorer::DeploymentDataView - Deploy to iOS device or emulator - Zainstaluj na urządzeniu iOS lub emulatorze + Form + Formularz - - - Ios::Internal::IosDeployStepWidget - <b>Deploy to %1</b> - <b>Zainstaluj na %1</b> + Files to deploy: + Pliki do zainstalowania: - Ios::Internal::IosDevice + QmakeAndroidSupport::Internal::QmakeAndroidBuildApkWidget - iOS - iOS + Form + Formularz - iOS Device - Urządzenie iOS + Android + Android - - - Ios::Internal::IosDeviceManager - Device name - Nazwa urządzenia + Create Templates + Utwórz szablony - Developer status - Whether the device is in developer mode. - Stan trybu deweloperskiego + Additional Libraries + Dodatkowe biblioteki - Connected - Połączony + List of extra libraries to include in Android package and load on startup. + Lista dodatkowych bibliotek dołączanych do pakietu Android i ładowanych przy uruchamianiu. - yes - tak + Select library to include in package. + Wybierz bibliotekę, którą dołączyć do pakietu. - no - nie + Add... + Dodaj... - unknown - nieznany + Remove currently selected library from list. + Usuń zaznaczoną bibliotekę z listy. - OS version - Wersja OS + Remove + Usuń - An iOS device in user mode has been detected. - Wykryto urządzenie iOS w trybie użytkownika. + Select additional libraries + Wybierz dodatkowe biblioteki - Do you want to see how to set it up for development? - Czy chcesz zobaczyć jak przełączyć je do trybu deweloperskiego? - - - - Ios::Internal::IosQtVersion - - Failed to detect the ABIs used by the Qt version. - Nie można wykryć ABI użytych przez wersję Qt. + Libraries (*.so) + Biblioteki (*.so) - iOS - Qt Version is meant for Ios - iOS + <b>Build Android APK</b> + - Ios::Internal::IosRunConfiguration - - Run on %1 - Uruchom na %1 - + SliderSpecifics - The .pro file '%1' is currently being parsed. - Trwa parsowanie pliku projektu "%1". + Value + Wartość - Run %1 on %2 - Uruchom %1 na %2 + Current value of the Slider. The default value is 0.0. + Bieżąca wartość suwaka. Domyślną wartością jest 0.0. - The .pro file "%1" is currently being parsed. - Trwa parsowanie pliku .pro "%1". + Maximum value + Maksymalna wartość - Kit has incorrect device type for running on iOS devices. - Niewłaściwy typ urządzenia, ustawiony w zestawie narzędzi, do uruchamiania na urządzeniach iOS. + Maximum value of the slider. The default value is 1.0. + Maksymalna wartość suwaka. Domyślną wartością jest 1.0. - No device chosen. Select %1. - Brak wybranego urządzenia. Wybierz %1. + Minimum value + Minimalna wartość - No device chosen. Enable developer mode on a device. - Brak wybranego urządzenia. Włącz tryb deweloperski na urządzeniu. + Minimum value of the slider. The default value is 0.0. + Minimalna wartość suwaka. Domyślną wartością jest 0.0. - No device available. - Brak dostępnych urządzeń. + Orientation + Orientacja - To use this device you need to enable developer mode on it. - Włącz tryb deweloperski na tym urządzeniu. + Layout orientation of the slider. + Orientacja pozioma / pionowa suwaka. - %1 is not connected. Select %2? - %1 nie jest podłączony. Wybrać %2? + Step size + Rozmiar kroku - %1 is not connected. Enable developer mode on a device? - %1 nie jest podłączony. Włączyć deweloperski na urządzeniu? + Indicates the slider step size. + Określa rozmiar kroku suwaka. - %1 is not connected. - %1 nie jest podłączony. + Active focus on press + Uaktywnij fokus po naciśnięciu - - - Ios::Internal::IosRunConfigurationWidget - iOS run settings - Ustawienia uruchamiania iOS + Indicates whether the slider should receive active focus when pressed. + Określa, czy suwak powinien otrzymać fokus po naciśnięciu. - - - Ios::Internal::IosRunControl - Starting remote process. - Uruchamianie zdalnego procesu. + Tick marks enabled + Skala włączona - Run ended with error. - Praca zakończona błędem. + Indicates whether the slider should display tick marks at step intervals. + Określa, czy suwak powinien wyświetlać skalę z naniesionymi znacznikami kroków. - Run ended. - Praca zakończona. + Update value while dragging + Odświeżaj wartość podczaś przeciągania - Run ended unexpectedly. - Praca nieoczekiwanie zakończona. + Determines whether the current value should be updated while the user is moving the slider handle, or only when the button has been released. + Określa, czy bieżąca wartość powinna być odświeżana w trakcie przesuwania uchwytu suwaka, czy jedynie po zwolnieniu uchwytu. - Ios::Internal::IosRunner + SplitViewSpecifics - Could not find %1. - Nie można odnaleźć %1. + Split View + - Run failed. The settings in the Organizer window of Xcode might be incorrect. - Nieudane uruchomienie. Ustawienia w oknie "Organizer" w Xcode mogą być niepoprawne. + Orientation + Orientacja - The device is locked, please unlock. - Urządzenie jest zablokowane, odblokuj je. + Orientation of the split view. + - Ios::Internal::IosSettingsPage + TabViewSpecifics - iOS Configurations - Konfiguracje iOS + Tab View + Widok z zakładkami - - - Ios::Internal::IosSimulator - iOS Simulator - Symulator iOS + Current index + Bieżący indeks - - - Ios::Internal::IosSimulatorFactory - iOS Simulator - iOS Simulator + Frame visible + Ramka widoczna - - - Ios::IosToolHandler - iOS tool Error %1 - Błąd narzędzia iOS %1 + Determines the visibility of the tab frame around contents. + Określa, czy widoczna jest ramka zakładki wokół zawartości. - - - Macros::Internal::MacroManager - Playing Macro - Odtwarzanie makra + Tabs visible + Zakładki widoczne - An error occurred while replaying the macro, execution stopped. - Wystąpił błąd podczas ponownego odtwarzania makra, zatrzymano wykonywanie. + Determines the visibility of the tab bar. + Określa, czy widoczny jest pasek z zakładkami. - Macro mode. Type "%1" to stop recording and "%2" to play the macro. - Tryb makro. Wpisz "%1" aby zatrzymać nagrywanie albo "%2" aby je odtworzyć. + Tab position + Pozycja zakładek - Stop Recording Macro - Zatrzymaj nagrywanie makra + Determines the position of the tabs. + Określa pozycję zakładek. - CustomToolChain - - GCC - GCC - - - Clang - Clang - + PuppetBuildProgressDialog - ICC - ICC + Build Progress + Postęp budowania - MSVC - MSVC + Build Adapter for the current Qt. Happens only once for every Qt installation. + Budowanie adaptera dla bieżącego Qt. Wymane tylko raz dla każdej instalacji Qt. - Custom - Własny + Use Fallback QML Emulation Layer + - ProjectExplorer::DesktopProcessSignalOperation + PuppetDialog - Cannot kill process with pid %1: %2 - Nie można zakończyć procesu z pid %1: %2 + Dialog + Dialog + + + ButtonsBar - Cannot interrupt process with pid %1: %2 - Nie można przerwać procesu z pid %1: %2 + Jump to previous event. + Skocz do poprzedniego zdarzenia. - Cannot open process. - Nie można otworzyć procesu. + Jump to next event. + Skocz do następnego zdarzenia. - Invalid process id. - Niepoprawny identyfikator procesu. + Show zoom slider. + Pokaż suwak powiększania. - Cannot open process: %1 - Nie można otworzyć procesu: %1 + Filter Categories + Przefiltruj kategorie - DebugBreakProcess failed: - Błąd DebugBreakProcess: + Select range. + Wybierz zakres. - %1 does not exist. If you built Qt Creator yourself, check out http://qt.gitorious.org/qt-creator/binary-artifacts. - %1 nie istnieje. Jeśli zbudowałeś Qt Creatora samodzielnie, sprawdź http://qt.gitorious.org/qt-creator/binary-artifacts. + View event information on mouseover. + Pokazuj informacje o zdarzeniach po najechaniu myszą. + + + CategoryLabel - Cannot start %1. Check src\tools\win64interrupt\win64interrupt.c for more information. - Nie można uruchomić %1. Więcej informacji sprawdź w src\tools\win64interrupt\win64interrupt. + Collapse category + Zwiń kategorię - could not break the process. - nie można przerwać procesu. + Expand category + Rozwiń kategorię - ProjectExplorer::SshDeviceProcess + Qnx::Internal::QnxDeployQtLibrariesDialog - Failed to kill remote process: %1 - Nie można zakończyć zdalnego procesu: %1 + Deploy Qt to BlackBerry Device + Instalacja Qt na urządzeniu BlackBerry - Timeout waiting for remote process to finish. - Przekroczono czas oczekiwania na zakończenie zdalnego procesu. + Qt library to deploy: + Biblioteka Qt do zainstalowania: - Terminated by request. - Zakończono na żądanie. + Deploy + Zainstaluj - - - ProjectExplorer::Internal::ImportWidget - Import Build From... - Zaimportuj wersję z... + Remote directory: + Zdalny katalog: - Import - Zaimportuj + Close + Zamknij - - - ProjectExplorer::OsParser - The process can not access the file because it is being used by another process. -Please close all running instances of your application before starting a build. - Proces nie ma dostępu do pliku, ponieważ plik jest używany przez inny proces. -Proszę zamknąć wszystkie instancje tej aplikacji przed uruchomieniem budowania. + Closing the dialog will stop the deployment. Are you sure you want to do this? + Zamknięcie dialogu spowoduje zatrzymanie instalacji. Czy zamknąć dialog? - - - ProjectExplorer::ProjectImporter - %1 - temporary - %1 - tymczasowy + Please input a remote directory to deploy to. + Wprowadź zdalny katalog w którym ma zostać dokonana instalacja. - - - QmakeProjectManager::Internal::Qt4Target - Desktop - Qt4 Desktop target display name - Desktop + Connection failed: %1 + Błąd połączenia: %1 - Maemo Emulator - Qt4 Maemo Emulator target display name - Emulator Maemo + The remote directory "%1" already exists. Deploying to that directory will remove any files already present. + +Are you sure you want to continue? + Zdalny katalog "%1" już istnieje. Instalacja do tego katalogu spowoduje usunięcie całej jego zawartości. + +Czy kontynuować instalację? - Maemo Device - Qt4 Maemo Device target display name - Urządzenie Maemo + Checking existence of "%1" + Sprawdzanie obecności "%1" - - - ProjectExplorer::TargetSetupPage - <span style=" font-weight:600;">No valid kits found.</span> - <span style=" font-weight:600;">Brak poprawnych zestawów narzędzi.</span> + Removing "%1" + Usuwanie "%1" + + + Qnx::Internal::QnxSettingsWidget - Please add a kit in the <a href="buildandrun">options</a> or via the maintenance tool of the SDK. - Dodaj zestaw w <a href="buildandrun">opcjach</a> lub poprzez narzędzie kontrolne SDK. + Form + Formularz - Select all kits - Zaznacz wszystkie zestawy narzędzi + Generate kits + Wygeneruj zestawy narzędzi - Select Kits for Your Project - Wybierz zestawy narzędzi dla projektu + Configuration Information: + Informacje o konfiguracji: - Kit Selection - Wybór zestawu narzędzi + Name: + Nazwa: - Kits - Zestawy narzędzi + Version: + Wersja: - Qt Creator can use the following kits for project <b>%1</b>: - %1: Project name - Qt Creator może ustawić następujące zestawy narzędzi dla projektu <b>%1</b>: + Host: + Host: - - - ProjectExplorer::Internal::TargetSetupWidget - <b>Error:</b> - Severity is Task::Error - <b>Błąd:</b> + Target: + Cel: - <b>Warning:</b> - Severity is Task::Warning - <b>Ostrzeżenie:</b> + Remove + Usuń - - - ProjectExplorer::Internal::UnconfiguredProjectPanel - Configure Project - Skonfiguruj projekt + Select QNX Environment File + Wybierz plik ze środowiskiem QNX - - - ProjectExplorer::Internal::TargetSetupPageWrapper - Configure Project - Skonfiguruj projekt + Warning + Ostrzeżenie - Cancel - Anuluj + Configuration already exists or is invalid. + Konfiguracja już istnieje lub jest niepoprawna. - The project <b>%1</b> is not yet configured.<br/>Qt Creator cannot parse the project, because no kit has been set up. - Project <b>%1</b> nie jest jeszcze skonfigurowany.<br/>Qt Creator nie może sparsować projektu, ponieważ nie ustawiono żadnych zestawów narzędzi. + Remove QNX Configuration + Usuń konfigurację QNX - The project <b>%1</b> is not yet configured.<br/>Qt Creator uses the kit <b>%2</b> to parse the project. - Project <b>%1</b> nie jest jeszcze skonfigurowany.<br/>Qt Creator użyje zestawu narzędzi <b>%2</b> do parsowania projektu. + Are you sure you want to remove: + %1? + Czy usunąć: +%1? - The project <b>%1</b> is not yet configured.<br/>Qt Creator uses the <b>invalid</b> kit <b>%2</b> to parse the project. - Project <b>%1</b> nie jest jeszcze skonfigurowany.<br/>Qt Creator użyje <b>niepoprawnego</b> zestawu narzędzi <b>%2</b> do parsowania projektu. + Add... + Dodaj... - PythonEditor::Internal::ClassNamePage + QtSupport::Internal::CodeGenSettingsPageWidget - Enter Class Name - Wprowadź nazwę klasy + Form + Formularz - The source file name will be derived from the class name - Nazwa pliku źródłowego zostanie zaproponowana na podstawie nazwy klasy + Embedding of the UI Class + Osadzanie klas UI - - - PythonEditor::Internal::ClassWizardDialog - Python Class Wizard - Kreator klasy Pythona + Aggregation as a pointer member + Agregacja poprzez wskaźnik do składnika - Details - Szczegóły + Aggregation + Agregacja - - - QmakeProjectManager::Internal::DesktopQmakeRunConfiguration - The .pro file '%1' is currently being parsed. - Trwa parsowanie pliku .pro "%1". + Multiple inheritance + Dziedziczenie wielokrotne - The .pro file "%1" is currently being parsed. - Trwa parsowanie pliku .pro "%1". + Code Generation + Generowanie kodu - Qt Run Configuration - Konfiguracja uruchamiania Qt + Support for changing languages at runtime + Obsługa zmian języków w trakcie wykonywania programu + + + Use Qt module name in #include-directive + Używaj nazwy modułu Qt w dyrektywach #include + + + Add Qt version #ifdef for module names + Generuj odpowiednie dyrektywy #include w zależności od wersji Qt - QmakeProjectManager::Internal::DesktopQmakeRunConfigurationWidget + RemoteLinux::Internal::RemoteLinuxCustomRunConfigurationWidget - Executable: - Plik wykonywalny: + Form + Formularz - Arguments: - Argumenty: + Local executable: + Lokalny plik wykonywalny: - Select Working Directory - Wybierz katalog roboczy + Remote executable: + Zdalny plik wykonywalny: - Reset to default - Przywróć domyślne + Arguments: + Argumenty: Working directory: Katalog roboczy: + + + ColorEditor - Run in terminal - Uruchom w terminalu - - - Run on QVFb - Uruchom na QVFb + Solid Color + Kolor jednolity - Check this option to run the application on a Qt Virtual Framebuffer. - Zaznacz tę opcję aby uruchomić aplikację na Qt Virtual Framebuffer. + Gradient + Gradient - Use debug version of frameworks (DYLD_IMAGE_SUFFIX=_debug) - Użyj pakietów w wersji do debugowania (DYLD_IMAGE_SUFFIX=_debug) + Transparent + Przezroczystość - QmakeProjectManager::Internal::QmakeProjectImporter + AnchorRow - Debug - Debug + Target + Cel + + + StatesList - Release - Release + Collapse + Zwiń - No Build Found - Brak zbudowanej wersji + Expand + Rozwiń - No build found in %1 matching project %2. - Brak zbudowanej wersji w %1 dla projektu %2. + Add a new state. + Dodaje nowy stan. - QmakeProjectManager::Internal::QtQuickComponentSetPage + QmlDebug::QmlDebugConnectionPrivate - Select Qt Quick Component Set - Wybierz zestaw komponentów Qt Quick + Error: (%1) %2 + %1=error code, %2=error message + Błąd: (%1) %2 - Qt Quick component set: - Zestaw komponentów Qt Quick: + <device is gone> + <brak urządzenia> - Component Set - Zestaw komponentów + Network connection dropped + Utracono połączenie sieciowe - - - TabViewToolAction - Add Tab... - Dodaj zakładkę... + Resolving host + Rozwiązywanie adresu hosta. - Step into Tab - Przejdź do zakładki + Establishing network connection ... + Ustanawianie połączenia sieciowego... - - - QmlDesigner::TabViewDesignerAction - Naming Error - Błąd nazwy + Network connection established + Ustanowiono połączenie sieciowe - Component already exists. - Komponent już istnieje. + Network connection closing + Zamykanie połączenia sieciowego + + + Socket state changed to BoundState. This should not happen! + + + + Socket state changed to ListeningState. This should not happen! + - QmlDesigner::ImportLabel + QmlDebug::QmlDebugConnection - Remove Import - Usuń import + Connecting to debug server at %1:%2 ... + Łączenie z serwerem debugowym %1: %2 ... - ImportManagerComboBox + QDockWidget - Add new import - Dodaj nowy import + Float + - <Add Import> - <Dodaj Import> + Undocks and re-attaches the dock widget + - - - QmlDesigner::ImportsWidget - Import Manager - Zarządzanie importami + Close + Zamknij + + + Closes the dock widget + Zamyka okno dokowalne - FileResourcesModel + Utils::FileWizardPage - Open File - Otwórz plik + Location + Położenie - QmlDesigner::PropertyEditorView + Utils::MacroExpander - Properties - Właściwości + Infinite recursion error + Błąd: nieskończona pętla - Invalid Id - Niepoprawny identyfikator + %1: Full path including file name. + %1: Pełna ścieżka zawierająca nazwę pliku. - %1 is an invalid id. - %1 nie jest poprawnym identyfikatorem. + %1: Full path excluding file name. + %1: Pełna ścieżka bez nazwy pliku. - %1 already exists. - %1 już istnieje. + %1: Full path including file name, with native path separator (backslash on Windows). + - - - QmlProfiler::Internal::LocalQmlProfilerRunner - No executable file to launch. - Brak pliku do uruchomienia. + %1: Full path excluding file name, with native path separator (backslash on Windows). + - - - QmlProfiler::Internal::QmlProfilerRunControl - Qt Creator - Qt Creator + %1: File name without path. + %1: Nazwa pliku bez ścieżki. - Could not connect to the in-process QML debugger: -%1 - %1 is detailed error message - Nie można podłączyć się do wewnątrzprocesowego debuggera QML: -%1 + %1: File base name without path and suffix. + %1: Bazowa nazwa pliku bez ścieżki i rozszerzenia. - QML Profiler - Profiler QML + Global variables + Zmienne globalne + + + Access environment variables. + Dostęp do zmiennych środowiskowych. - QmlProfiler::Internal::QmlProfilerEventsModelProxy + Android::AndroidBuildApkStep - <program> - <program> + Build Android APK + AndroidBuildApkStep default display name + Zbuduj Android APK - Main Program - Główny program + Warning: Signing a debug package. + Ostrzeżenie: podpisywanie pakietu debugowego. - - - QmlProfiler::Internal::QmlProfilerEventParentsModelProxy - <program> - <program> + Error + Błąd - Main Program - Główny program + Failed to run keytool. + - - - QmlProfiler::Internal::QmlProfilerEventChildrenModelProxy - <program> - <program> + Invalid password. + Niepoprawne hasło. - - - QmlProfiler::Internal::QmlProfilerEventRelativesView - <bytecode> - <kod bajtowy> + Keystore + - Source code not available - Kod źródłowy nie jest dostępny. + Keystore password: + - Part of binding loop. - Część powiązanej pętli. + Certificate + Certyfikat - - - QmlProfiler::Internal::QmlProfilerDataState - Trying to set unknown state in events list. - Próba ustawienia nieznanego stanu na liście zdarzeń. + Certificate password (%1): + Hasło dla certyfikatu (%1): - QmlProfiler::QmlProfilerModelManager + Android::AndroidBuildApkWidget - Unexpected complete signal in data model. + Keystore files (*.keystore *.jks) - Could not open %1 for writing. - Nie można otworzyć "%1" do zapisu. + Select Keystore File + - Could not open %1 for reading. - Nie można otworzyć "%1" do odczytu. + <b>Build Android APK</b> + - QmlProfiler::Internal::PaintEventsModelProxy - - Painting - Rysowanie - + Android::AndroidConfigurations - Animations - Animacje + Android Debugger for %1 + Debugger Androida dla %1 - GUI Thread - Wątek GUI + Android for %1 (GCC %2, Qt %3) + Android dla %1 (GCC %2, Qt %3) + + + Android::AndroidManager - Render Thread - Wątek renderingu + Unknown Android version. API Level: %1 + Nieznana wersja Androida. Poziom API: %1 - Duration - Czas trwania + Error creating Android templates. + Błąd tworzenia szablonów Androida. - Framerate - Klatki na sekundę + Cannot parse "%1". + Nie można sparsować "%1". - Context - Kontekst + Starting Android virtual device failed. + Nie można uruchomić wirtualnego urządzenia Android. - QmlProfiler::Internal::QmlProfilerPlugin - - QML Profiler - Profiler QML - + Android::Internal::AvdDialog - QML Profiler (External) - Profiler QML (zewnętrzny) + Cannot create a new AVD. No sufficiently recent Android SDK available. +Install an SDK of at least API version %1. + Nie można utworzyć AVD. Brak wystarczająco nowego Android SDK. +Zainstaluj SDK o wersji %1 lub wyższej. - - - QmlProfiler::Internal::QmlProfilerFileReader - Error while parsing trace data file: %1 - Błąd parsowania pliku z danymi stosu: %1 + Cannot create a AVD for ABI %1. Install an image for it. + - - - QmlProjectManager::QmlProjectFileFormat - Invalid root element: %1 - Niepoprawny główny element: %1 + Allowed characters are: a-z A-Z 0-9 and . _ - + Dozwolone znaki to: a-z A-Z 0-9 i . _ - - QmlProjectManager::Internal::QmlComponentSetPage + BareMetal - Select Qt Quick Component Set - Wybierz zestaw komponentów Qt Quick + BareMetal + - Qt Quick component set: - Zestaw komponentów Qt Quick: + Enter GDB commands to reset the board and to write the nonvolatile memory. + - Component Set - Zestaw komponentów + Enter GDB commands to reset the hardware. The MCU should be halted after these commands. + - Qnx::Internal::BlackBerryConfigurationManager - - NDK Already Known - NDK już znane - + BareMetal::Internal::BareMetalDeviceConfigurationFactory - The NDK already has a configuration. - NDK już jest skonfigurowane. + Bare Metal Device + Urządzenie Bare Metal - Qnx::Internal::BlackBerryInstallWizard + BareMetal::Internal::BareMetalDeviceConfigurationWidget - BlackBerry NDK Installation Wizard - Kreator instalacji NDK BlackBerry + GDB server provider: + + + + BareMetal::Internal::BareMetalDeviceConfigurationWizard - Confirmation - Potwierdzenie + New Bare Metal Device Configuration Setup + Nowa konfiguracja urządzenia Bare Metal + + + BareMetal::Internal::BareMetalGdbCommandsDeployStep - Are you sure you want to cancel? - Czy anulować? + GDB commands + Komendy GDB: - Qnx::Internal::BlackBerryInstallWizardOptionPage + BareMetal::Internal::BareMetalRunConfiguration - Options - Opcje + %1 (via GDB server or hardware debugger) + %1 (poprzez serwer GDB lub debugger sprzętowy) - Form - Formularz + Run on GDB server or hardware debugger + Bare Metal run configuration default run name + Uruchom na serwerze GDB lub debuggerze sprzętowym + + + BareMetal::Internal::BareMetalRunConfigurationWidget - Install API level - + Executable: + Plik wykonywalny: - Install new target - + Arguments: + Argumenty: - Add existing target - + <default> + <domyślny> - Install simulator - Zainstaluj symulator + Working directory: + Katalog roboczy: - Install runtime + Unknown - Qnx::Internal::BlackBerryInstallWizardFinalPage + Bazaar::Internal::BazaarEditorWidget - Summary - Podsumowanie + &Annotate %1 + Dołącz &adnotację do %1 - An error has occurred while adding target from: - %1 - + Annotate &parent revision %1 + Dołącz adnotację do &poprawki macierzystej "%1" + + + BinEditor::BinEditorWidget - Target %1 is being added. - + Memory at 0x%1 + Pamięć w 0x%1 - Target %1 is already added. - + Decimal&nbsp;unsigned&nbsp;value: + Wartość&nbsp;dziesiętna&nbsp;bez&nbsp;znaku: - Finished uninstalling %1 version: - %2 - Zakończono dezinstalowanie %1 wersja: - %2 + Decimal&nbsp;signed&nbsp;value: + Wartość&nbsp;dziesiętna&nbsp;ze&nbsp;znakiem: - Finished installing %1 version: - %2 - Zakończono instalowanie %1 wersja: - %2 + Previous&nbsp;decimal&nbsp;unsigned&nbsp;value: + Poprzednia&nbsp;wartość&nbsp;dziesiętna&nbsp;bez&nbsp;znaku: - An error has occurred while uninstalling %1 version: - %2 - Wystąpił błąd podczas dezinstalowania %1 wersja: - %2 + Previous&nbsp;decimal&nbsp;signed&nbsp;value: + Poprzednia&nbsp;wartość&nbsp;dziesiętna&nbsp;ze&nbsp;znakiem: - An error has occurred while installing %1 version: - %2 - Wystąpił błąd podczas instalowania %1 wersja: - %2 + %1-bit&nbsp;Integer&nbsp;Type + %1-bitowy&nbsp;typ&nbsp;całkowity - - - Qnx::Internal::BlackBerryLogProcessRunner - Cannot show debug output. Error: %1 - Nie można pokazać komunikatów debugowych. Błąd: %1 + Little Endian + Little Endian - - - Qnx::Internal::BlackBerrySigningUtils - Please provide your BlackBerry ID Token PIN. - Podaj BlackBerry ID Token PIN. + Big Endian + Big Endian - Please enter your certificate password. - Podaj hasło do certyfikatu. + Binary&nbsp;value: + Wartość&nbsp;binarna: - Qt Creator - Qt Creator + Octal&nbsp;value: + Wartość&nbsp;ósemkowa: - - - BarDescriptorConverter - Setting asset path: %1 to %2 type: %3 entry point: %4 - + Previous&nbsp;binary&nbsp;value: + Poprzednia&nbsp;wartość&nbsp;binarna: - Removing asset path: %1 - + Previous&nbsp;octal&nbsp;value: + Poprzednia&nbsp;wartość&nbsp;ósemkowa: - Replacing asset source path: %1 -> %2 - + <i>double</i>&nbsp;value: + Wartość&nbsp;<i>double</i>: - Cannot find image asset definition: <%1> - + Previous <i>double</i>&nbsp;value: + Poprzednia&nbsp;wartość&nbsp;<i>double</i>: - Error parsing XML file "%1": %2 - Błąd parsowania pliku XML "%1": %2 + <i>float</i>&nbsp;value: + Wartość&nbsp;<i>float</i>: - Error parsing XML file '%1': %2 - Błąd parsowania pliku XML "%1": %2 + Previous <i>float</i>&nbsp;value: + Poprzednia&nbsp;wartość&nbsp;<i>float</i>: - - - Qnx::Internal::CascadesImportWizardDialog - Import Existing Momentics Cascades Project - Import istniejącego projektu Momentics Cascades + Copying Failed + Błąd kopiowania - Momentics Cascades Project Name and Location - Nazwa projektu Momentics Cascades i położenie + You cannot copy more than 4 MB of binary data. + Nie można skopiować więcej niż 4 MB danych binarnych. - Project Name and Location - Nazwa projektu i położenie + Copy Selection as ASCII Characters + Skopiuj jako znaki ASCII - Momentics - Momentics + Copy Selection as Hex Values + Skopiuj jako wartości szesnastkowe - Qt Creator - Qt Creator + Set Data Breakpoint on Selection + Ustaw pułapkę warunkową na selekcji - - - Qnx::Internal::CascadesImportWizard - Momentics Cascades Project - Projekt Momentics Cascades + Jump to Address in This Window + Skocz do adresu w tym oknie - Imports existing Cascades projects created within QNX Momentics IDE. This allows you to use the project in Qt Creator. - Importuje istniejące projekty Cascades utworzone przy pomocy QNX Momentics IDE. + Jump to Address in New Window + Skocz do adresu w nowym oknie - Error generating file "%1": %2 - Błąd generowania pliku "%1": %2 + Jump to Address 0x%1 in This Window + Skocz do adresu 0x%1 w tym oknie - Error generating file '%1': %2 - Błąd podczas generowania pliku "%1": %2 + Jump to Address 0x%1 in New Window + Skocz do adresu 0x%1 w nowym oknie - FileConverter + BinEditor::Internal::BinEditorDocument - ===== Converting file: %1 - ===== Konwersja pliku: %1 + The Binary Editor cannot open empty files. + Edytor plików binarnych nie może otwierac pustych plików. - - - ImportLogConverter - Generated by cascades importer ver: %1, %2 - Wygenerowany przez importer cascades w wersji: %1, %2 + File Error + Błąd pliku - - - ProjectFileConverter - File '%1' not listed in '%2' file, should it be? - Plik "%1" nie występuje w pliku "%2", czy powinien? + The file is too big for the Binary Editor (max. 2GB). + Plik jest zbyt wielki dla edytora binarnego (maks. 2GB). - File "%1" not listed in "%2" file, should it be? - Plik "%1" nie wymieniony wewnątrz pliku "%2", czy powinien zostać wymieniony? + Cannot open %1: %2 + Nie można otworzyć %1: %2 - Qnx::Internal::QnxRunControl + BinEditor::Internal::BinEditorPlugin - Warning: "slog2info" is not found on the device, debug output not available! - Ostrzeżenie: brak"slog2info" na urządzeniu, komunikaty debugowe nie będą dostępne. + &Undo + &Cofnij - Warning: "slog2info" is not found on the device, debug output not available. - Ostrzeżenie: brak"slog2info" na urządzeniu, komunikaty debugowe nie będą dostępne. + &Redo + &Przywróć - Qnx::Internal::QnxToolChainFactory + ClearCase::Internal::ClearCaseEditorWidget - QCC - QCC + Annotate version "%1" + Dołącz adnotację do wersji "%1" - Qnx::Internal::QnxToolChainConfigWidget - - &Compiler path: - Ścieżka do &kompilatora: - - - NDK/SDP path: - SDP refers to 'Software Development Platform'. - Ścieżka NDK/SDP: - + Core::BaseFileWizardFactory - &ABI: - &ABI: + Failed to open an editor for "%1". + Nie można otworzyć edytora dla "%1". - - - Qnx::Internal::Slog2InfoRunner - Cannot show slog2info output. Error: %1 - Nie można pokazać komunikatów slog2info. Błąd: %1 + [read only] + [tylko do odczytu] - - - Qt4ProjectManager - Qt Versions - Wersje Qt + [folder] + [katalog] - - - RemoteLinux::RemoteLinuxSignalOperation - Exit code is %1. stderr: - Kod wyjściowy: %1. stderr: + [symbolic link] + [dowiązanie symboliczne] - - - Update - Update - Uaktualnij + The project directory %1 contains files which cannot be overwritten: +%2. + Katalog projektu %1 zawiera pliki, które nie moga być nadpisane: +%2. - Valgrind::Internal::CallgrindRunControl + Core::Internal::CorePlugin - Profiling - Profilowanie + The current date (ISO). + Bieżąca data (ISO). - Profiling %1 - Profilowanie %1 + The current time (ISO). + Bieżący czas (ISO). - - - Valgrind::Memcheck::MemcheckRunner - No network interface found for remote analysis. - Brak interfejsu sieciowego do zdalnej analizy. + The current date (RFC2822). + Bieżąca data (RFC2822). - Select Network Interface - Wybierz interfejs sieciowy + The current time (RFC2822). + Bieżący czas (RFC2822). - More than one network interface was found on your machine. Please select the one you want to use for remote analysis. - Znaleziono kilka interfejsów sieciowych. Wybierz ten, który ma zostać użyty do zdalnej analizy. + The current date (Locale). + Bieżąca data (Ustawienia lokalne). - No network interface was chosen for remote analysis. - Nie wybrano interfejsu sieciowego do zdalnej analizy. + The current time (Locale). + Bieżący czas (Ustawienia lokalne). - XmlServer on %1: - XmlServer na %1: + The configured default directory for projects. + Skonfigurowany domyślny katalog projektów. - LogServer on %1: - LogServer na %1: + The directory last visited in a file dialog. + Katalog ostatnio widoczny w przeglądarce plików. - - - Valgrind::Internal::MemcheckRunControl - Analyzing Memory - Analiza pamięci + Is Qt Creator running on Windows? + Czy Qt Creator jest uruchomiony na Windows? - Analyzing memory of %1 - Analiza pamięci w %1 - - - - AnalyzerManager - - Memory Analyzer Tool finished, %n issues were found. - - Zakończono analizę pamięci, znaleziono %n problem. - Zakończono analizę pamięci, znaleziono %n problemy. - Zakończono analizę pamięci, znaleziono %n problemów. - + Is Qt Creator running on OS X? + Czy Qt Creator jest uruchomiony na OS X? - Memory Analyzer Tool finished, no issues were found. - Zakończono analizę pamięci, nie znaleziono żadnych problemów. - - - Log file processed, %n issues were found. - - Przetworzono plik loga, znaleziono %n problem. - Przetworzono plik loga, znaleziono %n problemy. - Przetworzono plik loga, znaleziono %n problemów. - + Is Qt Creator running on Linux? + Czy Qt Creator jest uruchomiony na Linux'ie? - Log file processed, no issues were found. - Przetworzono plik loga, nie znaleziono żadnych problemów. + Is Qt Creator running on any unix-based platform? + Czy Qt Creator jest uruchomiony na platformnie unix'owej? - Debug - Debug + The current date (QDate formatstring). + Bieżący dzień (QDate fromatstring). - Release - Release + The current time (QTime formatstring). + Bieżący czas (QTime formatstring). - Tool - Narzędzie + A comment. + Komentarz. + + + Core::PromptOverwriteDialog - Run %1 in %2 Mode? - Uruchomić %1 w trybie %2? + Overwrite Existing Files + Nadpisz istniejące pliki - <html><head/><body><p>You are trying to run the tool "%1" on an application in %2 mode. The tool is designed to be used in %3 mode.</p><p>Debug and Release mode run-time characteristics differ significantly, analytical findings for one mode may or may not be relevant for the other.</p><p>Do you want to continue and run the tool in %2 mode?</p></body></html> - <html><head/><body><p>Próba uruchomienia narzędzia "%1" na aplikacji w trybie %2. Narzędzie nie jest zaprojektowane do użycia w trybie %3.</p><p>Charakterystyki uruchamiania w trybach Debug i Release znacznie się różnią, analityczne dane z jednego trybu nie będą odpowiadały drugiemu trybowi.</p><p>Czy kontynuować i uruchomić je w trybie %2?</p></body></html> + The following files already exist in the folder +%1. +Would you like to overwrite them? + Następujące pliki istnieją już w katalogu +%1. +Czy nadpisać je? - Valgrind::Internal::ValgrindRunControl + Core::ReadOnlyFilesDialog - Valgrind options: %1 - Opcje valgrinda: %1 + Mixed + Mieszane - Working directory: %1 - Katalog roboczy: %1 + Make Writable + Uczyń plik zapisywalnym - Command line arguments: %1 - Argumenty linii komend: %1 + Open with VCS + Otwórz przy pomocy VCS - Analyzing finished. - Zakończono analizę. + Save As + Zachowaj jako - Error: "%1" could not be started: %2 - Błąd: nie można uruchomić "%1": %2 + Failed to %1 File + Horror!!! + Nie można %1 pliku - Error: no Valgrind executable set. - Błąd: nie ustawiono pliku wykonywalnego valgrind. + %1 file %2 from version control system %3 failed. + Horror!!! + - Process terminated. - Zakończono proces. + No Version Control System Found + Brak systemu kontroli wersji (VCS) - - - Valgrind::Internal::ValgrindOptionsPage - Valgrind - Valgrind + Cannot open file %1 from version control system. +No version control system found. + Nie można otworzyć pliku %1 z systemu kontroli wersji. +Brak systemu kontroli wersji. - - - Valgrind::Internal::ValgrindPlugin - Valgrind Function Profile uses the "callgrind" tool to record function calls when a program runs. - Profiler funkcji Valgrinda używa narzędzia "callgrind" do rejestrowania wywołań funkcji w trakcie działania programu. + Cannot Set Permissions + Nie można ustawić praw dostępu - Valgrind Analyze Memory uses the "memcheck" tool to find memory leaks. - Analiza pamięci Valgrinda używa narzędzia "memcheck" do znajdywania wycieków pamięci. + Cannot set permissions for %1 to writable. + Nie można uczynić pliku %1 zapisywalnym. - Valgrind Memory Analyzer - Analizator pamięci Valgrind + Cannot Save File + Nie można zachować pliku - Valgrind Function Profiler - Profiler funkcji Valgrind + Cannot save file %1 + Nie można zachować pliku %1 - Valgrind Memory Analyzer (External Remote Application) - Analizator pamięci Valgrind (zewnętrza zdalna aplikacja) + Canceled Changing Permissions + Anulowano zmianę praw dostępu - Valgrind Function Profiler (External Remote Application) - Profiler funkcji Valgrind (zewnętrzna zdalna aplikacja) + Could Not Change Permissions on Some Files + Nie można zmienić praw dostępu niektórych plików - Valgrind Memory Analyzer (Remote) - Analizator pamięci Valgrind (zdalny) + See details for a complete list of files. + W szczegółach pełna lista plików. - Valgrind Function Profiler (Remote) - Profiler funkcji Valgrind (zdalny) + Change &Permission + Zmień &prawa dostępu - Profile Costs of This Function and Its Callees + The following files are not checked out yet. +Do you want to check them out now? - Valgrind::ValgrindProcess + Core::DocumentModelPrivate - Could not determine remote PID. - Nie można określić zdalnego PID. + <no document> + <brak dokumentu> - - - Valgrind::Internal::ValgrindRunConfigurationAspect - Valgrind Settings - Ustawienia Valgrinda + No document is selected. + Brak zaznaczonego dokumenty. - QmakeProjectManager::QtQuickAppWizard + Core::Internal::EditorManagerPrivate - Creates a deployable Qt Quick 1 application using the QtQuick 1.1 import. Requires Qt 4.8 or newer. - Tworzy aplikację Qt Quick 1, która importuje QtQuick 1.1. Wymaga Qt 4.8 lub nowszej wersji. + Revert File to Saved + Odwróć zmiany w pliku - Qt Quick 1.1 - Qt Quick 1.1 + Ctrl+W + Ctrl+W - Creates a deployable Qt Quick 2 application using the QtQuick 2.1 import. Requires Qt 5.1 or newer. - Tworzy aplikację Qt Quick 2, która importuje QtQuick 2.1. Wymaga Qt 5.1 lub nowszej wersji. + Alternative Close + - Qt Quick 2.1 - Qt Quick 2.1 + Ctrl+F4 + Ctrl+F4 - Creates a deployable Qt Quick 2 application using the QtQuick 2.2 import. Requires Qt 5.2 or newer. - Tworzy aplikację Qt Quick 2, która importuje QtQuick 2.2. Wymaga Qt 5.2 lub nowszej wersji. + Ctrl+Shift+W + Ctrl+Shift+W - Qt Quick 2.2 - Qt Quick 2.2 + Alt+Tab + Alt+Tab - Creates a deployable Qt Quick 2 application using the QtQuick 2.3 import. Requires Qt 5.3 or newer. - Tworzy aplikację Qt Quick 2, która importuje QtQuick 2.3. Wymaga Qt 5.3 lub nowszej wersji. + Ctrl+Tab + Ctrl+Tab - Qt Quick 2.3 - Qt Quick 2.3 + Alt+Shift+Tab + Alt+Shift+Tab - Creates a deployable Qt Quick 2 application that contains a .ui.qml file using the QtQuick 2.4 import. Requires Qt 5.4 or newer. - Tworzy aplikację Qt Quick 2, zawierającą plik .ui.qml i importuje QtQuick 2.4. Wymaga Qt 5.4 lub nowszej wersji. + Ctrl+Shift+Tab + Ctrl+Shift+Tab - Qt Quick 2.4 - Qt Quick 2.4 + Ctrl+Alt+Left + Ctrl+Alt+Left - Creates a deployable Qt Quick 2 application using Qt Quick Controls. Requires Qt 5.2 or newer. - Tworzy aplikację Qt Quick 2, która używa Qt Quick Controls. Wymaga Qt 5.2 lub nowszej wersji. + Alt+Left + Alt+Left - Qt Quick Controls 1.1 - Qt Quick Controls 1.1 + Ctrl+Alt+Right + Ctrl+Alt+Right - Creates a deployable Qt Quick 2 application using Qt Quick Controls. Requires Qt 5.3 or newer. - Tworzy aplikację Qt Quick 2, która używa Qt Quick Controls. Wymaga Qt 5.3 lub nowszej wersji. + Alt+Right + Alt+Right - Qt Quick Controls 1.2 - Qt Quick Controls 1.2 + Split + Podziel - Creates a deployable Qt Quick 2 application that contains a .ui.qml file and uses Qt Quick Controls. You can review Qt Quick 2 UI projects in the QML Scene and you need not build them. This project requires that you have installed Qt Quick Controls for your Qt version. Requires Qt 5.4 or newer. - Tworzy aplikację Qt Quick 2 zawierającą plik .ui.qml i używającą Qt Quick Controls. Projekty Qt Quick 2 można przeglądać przy pomocy QML Scene, bez ich uprzedniego budowania. Takie projekty wymagają instalacji Qt Quick Controls. Wymagana jest również wersja Qt 5.4 lub nowsza. + Meta+E,2 + Meta+E,2 - Qt Quick Controls 1.3 - Qt Quick Controls 1.3 + Ctrl+E,2 + Ctrl+E,2 - Creates a deployable Qt Quick 2 application using Qt Quick Controls. Requires Qt 5.1 or newer. - Tworzy aplikację Qt Quick 2, która używa Qt Quick Controls. Wymaga Qt 5.1 lub nowszej wersji. + Split Side by Side + Podziel sąsiadująco - Qt Quick Controls 1.0 - Qt Quick Controls 1.0 + Meta+E,3 + Meta+E,3 - - - Bazaar::Internal::UnCommitDialog - Uncommit - + Ctrl+E,3 + Ctrl+E,3 - Keep tags that point to removed revisions - + Open in New Window + Otwórz w nowym oknie - Only remove the commits from the local branch when in a checkout - + Meta+E,4 + Meta+E,4 - Revision: - Poprawka: + Ctrl+E,4 + Ctrl+E,4 - If a revision is specified, uncommits revisions to leave the branch at the specified revision. -For example, "Revision: 15" will leave the branch at revision 15. - + Remove Current Split + Usuń bieżący podział - Last committed - Ostatnia zmiana + Meta+E,0 + Meta+E,0 - Dry Run - Na sucho + Ctrl+E,0 + Ctrl+E,0 - Test the outcome of removing the last committed revision, without actually removing anything. - Testuje rezultat usunięcia ostatniej poprawki bez faktycznego usunięcia czegokolwiek. + Remove All Splits + Usuń wszystkie podziały - - - Beautifier::Internal::ArtisticStyle::ArtisticStyleOptionsPage - Form - Formularz + Meta+E,1 + Meta+E,1 - Configuration - Konfiguracja + Ctrl+E,1 + Ctrl+E,1 - Artistic Style command: - Komendy stylu Artistic: + Go to Next Split or Window + Przejdź do kolejnego podzielonego okna - Options - Opcje + Meta+E,o + Meta+E,o - Use file *.astylerc defined in project files - Używaj plików *.astylerc zdefiniowanych w plikach projektów + Ctrl+E,o + Ctrl+E,o - Use self-defined style: - Używaj własnego stylu: + Ad&vanced + Zaa&wansowane - Artistic Style - Styl Artistic + Current document + Bieżący dokument - Use file .astylerc or astylerc in HOME - HOME is replaced by the user's home directory - + X-coordinate of the current editor's upper left corner, relative to screen. + Współrzędna X lewego górnego rogu bieżącego edytora względem ekranu. - Use customized style: - Używaj własnego stylu: + Y-coordinate of the current editor's upper left corner, relative to screen. + Współrzędna Y lewego górnego rogu bieżącego edytora względem ekranu. - - - Beautifier::Internal::ClangFormat::ClangFormatOptionsPage - Form - Formularz + Could not open "%1": Cannot open files of type "%2". + Nie można otworzyć "%1". Nie można otwierać plików typu "%2". - Configuration - Konfiguracja + Could not open "%1" for reading. Either the file does not exist or you do not have the permissions to open it. + Nie można otworzyć "%1" do odczytu. Albo plik nie istnieje, albo brak praw dostępu do niego. - Clang Format command: - Komenda formatowania Clang: + Could not open "%1": Unknown error. + Nie można otworzyć "%1": nieznany błąd. - Options - Opcje + <b>Warning:</b> This file was not opened in %1 yet. + <b>Ostrzeżenie:</b> Ten plik nie był jeszcze otwarty w %1. - Use Predefined Style: - Używaj stylu predefiniowanego: + Open + Otwórz - Use Customized Style: - Używaj własnego stylu: + <b>Warning:</b> You are changing a read-only file. + <b>Ostrzeżenie:</b> Zmieniasz plik, który jest tylko do odczytu. - Format entire file if no text was selected. (For action Format Selected Text) - Formatuj cały plik w przypadku braku zaznaczonego tekstu. (Dla akcji "Sformatuj zaznaczony tekst") + Make Writable + Uczyń plik zapisywalnym - Clang Format - Formatowanie Clang + &Save %1 + &Zachowaj %1 - Use predefined style: - Używaj predefiniowanego stylu: + Save %1 &As... + Zachowaj %1 j&ako... - Use customized style: - Używaj własnego stylu: + Revert %1 to Saved + Przywróc stan ostatnio zapisany w %1 - - - Beautifier::Internal::ConfigurationDialog - Name - Nazwa + Reload %1 + Przeładuj %1 - Value - Wartość + Close %1 + Zamknij %1 - Documentation - Dokumentacja + Close All Except %1 + Zamknij wszystko z wyjątkiem %1 - Documentation for '%1' - Dokumentacja dla "%1" + Close Others + Zamknij inne - Documentation for "%1" - Dokumentacja dla "%1" + Qt Creator + Qt Creator - - - Beautifier::Internal::ConfigurationPanel - Form - Formularz + Cannot Open File + Nie można otworzyć pliku - Edit - Zmodyfikuj + Cannot open the file for editing with VCS. + Nie można otworzyć pliku do edycji przy pomocy VCS. - Remove - Usuń + File Error + Błąd pliku - Add - Dodaj + Revert to Saved + Odwróć zmiany - Add Configuration - Dodaj konfigurację + You will lose your current changes if you proceed reverting %1. + Utracisz swoje bieżące zmiany w %1 jeśli potwierdzisz wykonanie tego polecenia. - Edit Configuration - Zmodyfikuj konfigurację + Proceed + Wykonaj + + + Cancel + Anuluj - Beautifier::Internal::Uncrustify::UncrustifyOptionsPage + Core::JsExpander - Form - Formularz + Error in "%1": %2 + Błąd w "%1": %2 - Configuration - Konfiguracja + Cannot convert result of "%1" to string. + Nie można skonwertować rezultatu "%1" do ciągu znakowego. - Uncrustify command: - + Evaluate simple Javascript statements. +The statements may not contain '{' nor '}' characters. + Wykonaj proste wyrażenia Javascript. +Wyrażenia nie mogą zawierać znaków "{" i "}". + + + Core::PatchTool - Options - Opcje + There is no patch-command configured in the general "Environment" settings. + Brak skonfigurowanej komendy "patch" w głównych ustawieniach środowiska. - Use file uncrustify.cfg defined in project files - Używaj plików uncrustify.cfg zdefiniowanych w plikach projektów + Executing in %1: %2 %3 + Wykonywanie w %1: %2 %3 - Use self-defined style: - Używaj własnego stylu: + Unable to launch "%1": %2 + Nie można uruchomić "%1": %2 - Uncrustify - + A timeout occurred running "%1" + Przekroczony czas oczekiwania na odpowiedź od uruchomionego "%1" - Use file uncrustify.cfg in HOME - HOME is replaced by the user's home directory - + "%1" crashed. + "%1" zakończył pracę błędem. - Use customized style: - Używaj własnego stylu: + "%1" failed (exit code %2). + '%1' zakończone błędem (kod wyjściowy %2). - ClangCodeModel::Internal::ClangProjectSettingsPropertiesPage + Core::Internal::ThemeEditor::ThemeSettingsItemDelegate - Pre-compiled headers: - Nagłówki prekompilowane: + <Unnamed> (Current) + <Nienazwany> (bieżący) - None - Brak + (Current) + (bieżący) - Build system (exact) - + Remove Variable Name + Usuń nazwę zmiennej - Build system (fuzzy) - + Add Variable Name... + Dodaj nazwę zmiennej... - Custom - Własne + Add Variable Name + Dodaj nazwę zmiennej - Choose... - Wybierz... + Variable name: + Nazwa zmiennej: - Core::Internal::FindDialog - - &Search - Wy&szukaj - - - Search && &Replace - Wyszukaj i &zastąp - + Core::Internal::ThemeEditor::ThemeSettingsTableModel - Sear&ch for: - Wysz&ukaj: + Widget Style + Styl widżetów - Case sensiti&ve - Uwzględniaj wielkość &liter + Colors + Kolory - Whole words o&nly - Tylko &całe słowa + Flags + Flagi - Use re&gular expressions - Używaj wyrażeń &regularnych + Role + Rola - Sco&pe: - Z&akres: + Value + Wartość - Core::Internal::FindWidget - - Find - Znajdź - + QCoreApplication - Find: - Znajdź: + unnamed + nienazwany - ... - ... + %1 (built-in) + %1 (wbudowany) + + + Core::Internal::ThemeSettingsWidget - Replace with: - Zastąp: + Delete Theme + Usuń motyw - Replace - Zastąp + Are you sure you want to delete the theme "%1" permanently? + Czy na pewno usunąć motyw "%1" na stałe? - Replace && Find - Zastąp i znajdź + Delete + Usuń - Replace All - Zastąp wszystkie + Copy Theme + Skopiuj motyw - Advanced... - Zaawansowane... + Theme name: + Nazwa motywu: - - - Core::Internal::DirectoryFilterOptions - Name: - Nazwa: + Theme Changed + Motyw został zmieniony - File types: - Typy plików: + The theme "%1" was modified, do you want to save the changes? + Motyw "%1" został zmodyfikowany, czy zachować zmiany? - Specify file name filters, separated by comma. Filters may contain wildcards. - Podaj filtry nazw plików. oddzielone przecinkiem. Filtry mogą zawierać dżokery. + Discard + Porzuć - Prefix: - Przedrostek: + Rename Theme + Zmień nazwę motywu + + + Core::Internal::WindowSupport - Specify a short word/abbreviation that can be used to restrict completions to files from this directory tree. -To do this, you type this shortcut and a space in the Locator entry field, and then the word to search for. - Podaj krótkie słowo lub skrót, który zostanie użyty do odfiltrowania plików w podanych katalogach. -Aby uaktywnić ten filtr, wpisz w lokalizatorze powyższy skrót i po spacji podaj szukane słowo. + Exit Full Screen + Wyłącz tryb pełnoekranowy - Limit to prefix - Ogranicz aktywność filtru: -aktywny tylko po wpisaniu przedrostka + Enter Full Screen + Włącz tryb pełnoekranowy + + + CppEditor::Internal::CppEditorWidget - Add... - Dodaj... + &Refactor + &Refaktoryzacja + + + CppSourceProcessor - Edit... - Modyfikuj... + %1: No such file or directory + %1: Brak pliku lub katalogu - Remove - Usuń + %1: Could not get file contents + %1: Nie można odczytać zawartości pliku + + + Cvs::Internal::CvsEditorWidget - Directories: - Katalogi: + Annotate revision "%1" + Dołącz adnotację do poprawki "%1" - Core::Internal::FileSystemFilterOptions + Debugger::Internal::LocalsAndExpressionsOptionsPage - Add Filter Configuration - Dodaj konfigurację filtra + Use Debugging Helper + Używaj asystenta debuggera - Prefix: - Przedrostek: + The debugging helpers are used to produce a nice display of objects of certain types like QString or std::map in the &quot;Locals and Expressions&quot; view. + Asystenci debuggera pomagają lepiej wizualizować obiekty pewnych typów, jak np. QString lib std::map w widoku &quot;Zmienne lokalne i wyrażenia&quot;. - Limit to prefix - Ogranicz aktywność filtru: -aktywny tylko po wpisaniu przedrostka + <unlimited> + <nieograniczona> - Include hidden files - Włącz ukryte pliki + Maximum string length: + Maksymalna długość ciągu tekstowego: - Filter: - Filtr: + Display string length: + Wyświetlaj długości ciągów tekstowych: - Core::Internal::LocatorSettingsWidget + Debugger::Internal::DebuggerPlugin - Configure Filters - Konfiguracja filtrów + Debug + Debug - Add... - Dodaj... + Option "%1" is missing the parameter. + Brak parametru w opcji "%1". - Remove - Usuń + Only one executable allowed. + Dozwolony jest tylko jeden plik wykonywalny. - Edit... - Modyfikuj... + The parameter "%1" of option "%2" does not match the pattern <handle>:<pid>. + Parametr "%1" opcji "%2" nie pasuje do wzoru <uchwyt>:<pid>. - Locator filters that do not update their cached data immediately, such as the custom directory filters, update it after this time interval. - Jest to czas, po którym zostaną odświeżone filtry lokalizatora. Dotyczy to filtów, które nie odświeżają swoich danych natychmiast, takich jak własne filtry katalogów. + Invalid debugger option: %1 + Niepoprawna opcja debuggera: %1 - Refresh interval: - Odświeżanie co: + Process %1 + Proces %1 - min - min + Symbol + Symbol - - - Qnx::Internal::BlackBerryCheckDeviceStatusStepConfigWidget - Form - Formularz + Address + Adres - Check device runtime - + Code + Kod - Check debug token - + Section + Sekcja - <b>Check device status</b> - <b>Sprawdź stan urządzenia</b> + Name + Nazwa - - - Qnx::Internal::BlackBerryDebugTokenPinsDialog - Dialog - Dialog + Symbols in "%1" + Symbole w "%1" - <html><head/><body><p><span style=" font-weight:600;">Debug token: </span></p></body></html> - + From + Od - Add - Dodaj + To + Do - Edit - Zmodyfikuj + Flags + Flagi - Remove - Usuń + Sections in "%1" + Sekcje w "%1" - Debug Token PINs - + Some breakpoints cannot be handled by the debugger languages currently active, and will be ignored. +Affected are breakpoints %1 + Niektóre pułapki nie mogą być obsłużone przez aktywne języki debuggera i zostaną zignorowane. +Dotyczy to następujących pułapek: %1 - Confirmation - Potwierdzenie + Not enough free ports for QML debugging. + Niewystarczająca ilość wolnych portów do debugowania QML. - Are you sure you want to remove PIN: %1? - Czy usunąć PIN: %1? + Unknown debugger type "%1" + Nieznany typ debuggera "%1" - Debug Token PIN - + Unable to create a debugger engine of the type "%1" + Nie można utworzyć silnika debuggera typu "%1" - Qnx::Internal::BlackBerryDeployQtLibrariesDialog + Debugger::Internal::DebuggerToolTipManager - Deploy Qt to BlackBerry Device - Instalacja Qt na urządzeniu BlackBerry + %1 (Previous) + %1 (poprzedni) - Qt library to deploy: - Biblioteka Qt do zainstalowania: + Name + Nazwa - Deploy - Zainstaluj + Value + Wartość - Remote directory: - Zdalny katalog: + Type + Typ - /accounts/devuser/ - /accounts/devuser/ + Copy Contents to Clipboard + Skopiuj zawartość do schowka - qt - qt + Expression %1 in function %2 from line %3 to %4 + Wyrażenie %1 w funkcji %2 od linii %3 do %4 - Close - Zamknij + No valid expression + Brak poprawnego wyrażenia - Closing the dialog will stop the deployment. Are you sure you want to do this? - Zamknięcie dialogu spowoduje zatrzymanie instalacji. Czy zamknąć dialog? + %1 (Restored) + %1 (przywrócony) - Please input a remote directory to deploy to. - Wprowadź zdalny katalog instalacji. + Expression too complex + Wyrażenie zbyt skomplikowane + + + FormEditorW - Connection failed: %1 - Błąd połączenia: %1 + Widget box + Panel widżetów - The remote directory '%1' already exists. Deploying to that directory will remove any files already present. - -Are you sure you want to continue? - Zdalny katalog "%1" już istnieje. Instalacja do tego katalogu spowoduje usunięcie całej jego zawartości. - -Czy kontynuować instalację? + Object Inspector + Hierarchia obiektów - Checking existence of '%1' - Sprawdzanie obecności "%1" + Property Editor + Edytor właściwości - Removing '%1' - Usuwanie "%1" + Signals && Slots Editor + Edytor sygnałów / slotów - - - WinRt::Internal::WinRtRunConfigurationWidget - Arguments: - Argumenty: + Action Editor + Edytor akcji - Uninstall package after stop - Zdezinstaluj pakiet po zatrzymaniu + Widget Box + Panel widżetów - Launch App - Uruchom Aplikację + Edit Widgets + Modyfikuj widżety - - - QmlJS::ModelManagerInterface - Indexing - Indeksowanie + F3 + F3 - QML import scan - Skanowanie importów QML + Edit Signals/Slots + Modyfikuj sygnały / sloty - Parsing QML Files - Parsowanie plików QML + F4 + F4 - Scanning QML Imports - Skanowanie importów QML - - - - QmlJS::PluginDumper - - QML module does not contain information about components contained in plugins. - -Module path: %1 -See "Using QML Modules with Plugins" in the documentation. - Moduł QML nie zawiera informacji o komponentach we wtyczkach. - -Ścieżka do modułu: %1 -Zobacz "Using QML Modules with Plugins" w dokumentacji. - - - Automatic type dump of QML module failed. -Errors: -%1 - Automatyczne zrzucenie typów modułu QML niepoprawnie zakończone. -Błędy: -%1 - - - Automatic type dump of QML module failed. -First 10 lines or errors: - -%1 -Check 'General Messages' output pane for details. - Automatyczny zrzut typów modułu QML niepoprawnie zakończony. -Pierwsze 10 linii błędów: - -%1 -Sprawdź szczegóły w panelu "Komunikaty ogólne". - - - Warnings while parsing QML type information of %1: -%2 - Ostrzeżenia podczas parsowania informacji o typach QML w %1: -%2 - - - "%1" failed to start: %2 - Nie można uruchomić "%1": %2 - - - "%1" crashed. - "%1" zakończył pracę błędem. - - - "%1" timed out. - Przekroczony czas oczekiwania na "%1". - - - I/O error running "%1". - Błąd wejścia / wyjścia przy uruchamianiu "%1". - - - "%1" returned exit code %2. - "%1" zwrócił kod wyjściowy %2. - - - Arguments: %1 - Argumenty: %1 - - - Failed to parse "%1". -Error: %2 - Nie można sparsować "%1". -Błąd: %2 - - - Failed to parse '%1'. -Error: %2 - Nie można sparsować "%1". -Błąd: %2 - - - Errors while reading typeinfo files: - Błędy podczas czytania plików typeinfo: - - - Could not locate the helper application for dumping type information from C++ plugins. -Please build the qmldump application on the Qt version options page. - Nie można ustalić położenia aplikacji pomocniczej zrzucającej informacje o typach z wtyczek C++. -Zbuduj aplikację qmldump na stronie z opcjami wersji Qt. - - - - Utils::FancyLineEdit - - Filter - Filtr - - - Clear text - Wyczyść tekst - - - - AndroidConfiguration - - Could not run: %1 - Nie można uruchomić: %1 - - - No devices found in output of: %1 - Brak urządzeń na wyjściu %1 - - - - AndroidConfig - - Error Creating AVD - Błąd w trakcie tworzenia AVD - - - Cannot create a new AVD. No sufficiently recent Android SDK available. -Please install an SDK of at least API version %1. - Nie można utworzyć nowego AVD. Brak aktualnego Android SDK. -Zainstaluj SDK z wersją API %1 lub nowszą. - - - Could not start process "%1 %2" - Nie można uruchomić procesu "%1 %2" - - - - Android::Internal::AndroidPotentialKit - - Configure Android... - Konfiguruj Androida... - - - - Android::Internal::JavaEditorFactory - - Java Editor - Edytor Java - - - - Android::Internal::JavaFileWizard - - Creates a Java file with boilerplate code. - Tworzy plik Java ze wstępnym kodem. - - - Java File - Plik Java - - - - AbstractSettings - - Cannot save styles. %1 does not exist. - Nie można zachować stylów. %1 nie istnieje. - - - Cannot open file "%1": %2. - Nie można otworzyć pliku "%1": %2. - - - Cannot save file "%1": %2. - Nie można zachować pliku "%1": %2. - - - No documentation file specified. - Nie podano pliku z dokumentacją. - - - Cannot open documentation file "%1". - Nie można otworzeć pliku z dokumentacją "%1". - - - The file "%1" is not a valid documentation file. - Plik "%1" nie jest poprawnym plikiem z dokumentacją. - - - Cannot read documentation file "%1": %2. - Nie można odczytać pliku z dokumentacją "%1": %2. - - - - Beautifier - - Beautifier - Upiększarka - - - - Beautifier::Internal::BeautifierPlugin - - Cannot create temporary file "%1": %2. - Nie można utworzyć tymczasowego pliku "%1": %2. - - - Cannot call %1 or some other error occurred. - Nie można wywołać %1 lub wystąpił inny błąd. - - - Cannot read file "%1": %2. - Nie można odczytać pliku "%1": %2. - - - File was modified. - Zmodyfikowano plik. - - - Time out reached while formatting file %1. - Przekroczono czas oczekiwania na sformatowanie pliku %1. - - - File %1 was closed. - Zamknięto plik %1. - - - Error in Beautifier: %1 - Błąd upiększarki: %1 - - - Cannot get configuration file for %1. - Brak pliku z konfiguracją dla %1. - - - Format Current File - Menu entry - Sformatuj bieżący plik - - - Format Selected Text - Menu entry - Sformatuj zaznaczony tekst - - - %1 Command - File dialog title for path chooser when choosing binary - Komenda %1 - - - - ClangFormatSettings - - No description available. - Brak opisu. - - - - ClangCodeModel::Internal::ClangCompletionAssistProcessor - - Location: %1 - Parent folder for proposed #include completion - Położenie: %1 - - - - ClangCodeModel::Internal::ClangIndexer - - C++ Indexing - Indeksowanie C++ - - - Parsing C/C++/ObjC Files - Parsowanie plików C / C++ / ObjC - - - - ClangCodeModel::Internal::ModelManagerSupport - - Clang - Display name - Clang - - - - ClangCodeModel::Internal::ClangProjectSettingsWidget - - Clang Settings - Ustawienia Clang - - - Header Files (*.h) - Pliki nagłówkowe (*.h) - - - All Files (*) - Wszystkie pliki (*) - - - - ClangCodeModel::CompletionProposalsBuilder - - Is deprecated - deprecated C++ symbol - Jest przestarzały - - - Slot of %1, returns %2 - Slot w %1, zwraca %2 - - - Signal of %1, returns %2 - Sygnał w %1, zwraca %2 - - - - ClangCodeModel::Diagnostic - - ignored - - - - note - - - - warning - - - - error - - - - fatal - - - - - ClangCodeModel::Internal::PchManager - - Successfully generated PCH file "%1". - Wygenerowano poprawnie plik PCH "%1". - - - Failed to generate PCH file "%1". - Nie można wygenerować pliku PCH "%1". - - - Precompiling - Prekompilacja - - - Precompiling... - Prekompilacja... - - - - Core::FindPlugin - - &Find/Replace - Z&najdź / zastąp - - - Advanced Find - Zaawansowane przeszukiwanie - - - Open Advanced Find... - Otwórz zaawansowane przeszukiwanie... - - - Advanced... - Zaawansowane... - - - Ctrl+Shift+F - Ctrl+Shift+F - - - - Core::Internal::FindToolBar - - Shift+Enter - Shift+Enter - - - Shift+Return - Shift+Return - - - Find/Replace - Znajdź / zastąp - - - Enter Find String - Podaj ciąg do znalezienia - - - Ctrl+E - Ctrl+E - - - Find Next - Znajdź następne - - - Find Previous - Znajdź poprzednie - - - Find Next (Selected) - Znajdź następny (zaznaczony) - - - Ctrl+F3 - Ctrl+F3 - - - Find Previous (Selected) - Znajdź poprzedni (zaznaczony) - - - Ctrl+Shift+F3 - Ctrl+Shift+F3 - - - Replace - Zastąp - - - Replace && Find - Zastąp i znajdź - - - Ctrl+= - Ctrl+= - - - Replace && Find Previous - Zastąp i znajdź poprzednie - - - Replace All - Zastąp wszystkie - - - Case Sensitive - Uwzględniaj wielkość liter - - - Whole Words Only - Tylko całe słowa - - - Use Regular Expressions - Używaj wyrażeń regularnych - - - Preserve Case when Replacing - Zachowuj wielkość liter przy zastępowaniu - - - Search for... - Wyszukiwanie... - - - Replace with... - Zastępowanie... - - - - Core::IFindFilter - - Case sensitive - Uwzględniaj wielkość liter - - - Whole words - Całe słowa - - - Regular expressions - Wyrażenia regularne - - - Preserve case - Zachowuj wielkość liter - - - Flags: %1 - Flagi: %1 - - - None - Brak - - - , - , - - - - Core::Internal::SearchResultWidget - - Search was canceled. - Anulowano przeszukiwanie. - - - Cancel - Anuluj - - - Repeat the search with same parameters. - Powtórz przeszukiwanie z tymi samymi parametrami. - - - Search again - Przeszukaj ponownie - - - Replace with: - Zastąp: - - - Replace all occurrences. - Zastąp wszystkie wystąpienia. - - - Replace - Zastąp - - - Preserve case - Zachowuj wielkość liter - - - This change cannot be undone. - Ta zmiana nie może być cofnięta. - - - The search resulted in more than %n items, do you still want to continue? - - Odnaleziono wiecej niż %n element, czy kontynuować? - Odnaleziono wiecej niż %n elementy, czy kontynuować? - Odnaleziono wiecej niż %n elementów, czy kontynuować? - - - - Continue - Kontynuuj - - - No matches found. - Brak pasujących wyników. - - - %n matches found. - - Znaleziono %n pasujący wynik. - Znaleziono %n pasujące wyniki. - Znaleziono %n pasujących wyników. - - - - - Core::SearchResultWindow - - History: - Historia: - - - New Search - Nowe wyszukiwanie - - - Expand All - Rozwiń wszystko - - - %1 %2 - %1 %2 - - - Collapse All - Zwiń wszystko - - - Search Results - Wyniki wyszukiwań - - - - Core::Internal::DirectoryFilter - - Generic Directory Filter - Ogólny filtr katalogów - - - Filter Configuration - Konfiguracja filtra - - - Select Directory - Wybierz katalog - - - %1 filter update: 0 files - Uaktualnienie filtra %1: 0 plików - - - %1 filter update: %n files - - Uaktualnienie filtra %1: %n plik - Uaktualnienie filtra %1: %n pliki - Uaktualnienie filtra %1: %n plików - - - - %1 filter update: canceled - Uaktualnienie filtra %1: anulowano - - - - Core::Internal::ExecuteFilter - - Execute Custom Commands - Wykonanie własnej komendy - - - Previous command is still running ("%1"). -Do you want to kill it? - Poprzednia komenda jest wciąż uruchomiona ("%1"). -Czy przerwać ją? - - - Command "%1" finished. - Komenda "%1" zakończona. - - - Command "%1" failed. - Komenda "%1" zakończona błędem. - - - Starting command "%1". - Uruchamianie komendy "%1". - - - Previous command is still running ('%1'). -Do you want to kill it? - Poprzednia komenda jest wciąż uruchomiona ("%1"). -Czy przerwać ją? - - - Kill Previous Process? - Czy przerwać poprzedni proces? - - - Command '%1' finished. - Komenda "%1" zakończona. - - - Command '%1' failed. - Komenda "%1" zakończona błędem. - - - Could not find executable for '%1'. - Nie można odnaleźć pliku wykonywalnego dla "%1". - - - Starting command '%1'. - Uruchamianie komendy "%1". - - - Could not start process: %1. - Nie można uruchomić procesu %1. - - - Could not find executable for "%1". - Nie można odnaleźć pliku wykonywalnego dla "%1". - - - - Core::Internal::FileSystemFilter - - Files in File System - Pliki w systemie plików - - - Create and Open "%1" - Utwórz i otwórz "%1" - - - - Core::ILocatorFilter - - Filter Configuration - Konfiguracja filtra - - - Limit to prefix - Ogranicz aktywność filtru: -aktywny tylko po wpisaniu przedrostka - - - Prefix: - Przedrostek: - - - - Core::Internal::Locator - - Ctrl+K - Ctrl+K - - - Type to locate - Wpisz aby znaleźć - - - Type to locate (%1) - Wpisz aby znaleźć (%1) - - - Updating Locator Caches - - - - Indexing - Indeksowanie - - - - Core::Internal::LocatorFiltersFilter - - Available filters - Dostępne filtry - - - - Core::Internal::LocatorWidget - - Refresh - Odśwież - - - Locate... - Znajdź... - - - Options - Opcje - - - <type here> - <wpisz tutaj> - - - - Core::Internal::OpenDocumentsFilter - - Open Documents - Otwarte dokumenty - - - - Core::Internal::SettingsPage - - %1 (prefix: %2) - %1 (przedrostek: %2) - - - - Debugger::Internal::UnstartedAppWatcherDialog - - Attach to Process Not Yet Started - Dołącz do nieuruchomionego procesu - - - Reopen dialog when application finishes - Ponownie otwórz dialog po zakończeniu aplikacji - - - Reopens this dialog when application finishes. - Ponownie otwórz ten dialog po zakończeniu aplikacji. - - - Continue on attach - Kontynuuj po dołączeniu - - - Debugger does not stop the application after attach. - Debugger nie zatrzyma aplikacji po dołączeniu. - - - Start Watching - Rozpocznij obserwację - - - Close - Zamknij - - - Kit: - Zestaw narzędzi: - - - Executable: - Plik wykonywalny: - - - Select valid executable. - Wybierz poprawny plik wykonywalny. - - - Not watching. - Brak obserwacji. - - - Waiting for process to start... - Oczekiwanie na uruchomienie procesu... - - - Attach - Dołącz - - - - DiffEditor::DiffEditorController - - No difference - Brak różnic - - - and %n more - Displayed after the untranslated message "Branches: branch1, branch2 'and %n more'" - - i jeszcze %n gałąź - i jeszcze %n gałęzie - i jeszcze %n gałęzi - - - - - DiffEditor::DiffEditorManager - - Waiting for data... - Oczekiwanie na dane... - - - - DiffEditor::SideDiffEditorWidget - - Skipped %n lines... - - Opuszczono %n linię... - Opuszczono %n linie... - Opuszczono %n linii... - - - - [%1] %2 - [%1] %2 - - - - DiffEditor::SideBySideDiffEditorWidget - - Skipped %n lines... - - Opuszczono %n linię... - Opuszczono %n linie... - Opuszczono %n linii... - - - - Binary files differ - Pliki binarne różnią się - - - Skipped unknown number of lines... - Pominięto nieznaną ilość linii... - - - No controller - Brak kontrolera - - - No difference - Brak różnic - - - Send Chunk to CodePaster... - Wyślij fragment do Codepaster... - - - Apply Chunk... - Zastosuj fragment... - - - Revert Chunk... - Zastosuj odwrotny fragment... - - - Unable to Paste - Nie można wkleić - - - Code pasting services are not available. - Usługi wklejania kodu są niedostępne. - - - Revert Chunk - Odwróć zmiany we fragmencie - - - Apply Chunk - Zastosuj fragment - - - Would you like to revert the chunk? - Czy zastosować odwrotny fragment? - - - Would you like to apply the chunk? - Czy zastosować fragment? - - - - ProjectExplorer::KitConfigWidget - - Manage... - Zarządzaj... - - - - ProjectExplorer::SelectableFilesDialogEditFiles - - Edit Files - Zmodyfikuj pliki - - - Hide files matching: - Ukryj pliki pasujące do: - - - Show files matching: - Pokaż pliki pasujące do: - - - Apply Filter - Zastosuj filtr - - - Generating file list... - -%1 - Generowanie listy plików... - -%1 - - - Not showing %n files that are outside of the base directory. -These files are preserved. - - Ukryto %n plik który jest na zewnątrz katalogu bazowego. -Ten plik jest zabezpieczony. - Ukryto %n pliki które są na zewnątrz katalogu bazowego. -Te pliki są zabezpieczone. - Ukryto %n plików które są na zewnątrz katalogu bazowego. -Te pliki są zabezpieczone. - - - - - ProjectExplorer::SelectableFilesDialogAddDirectory - - Add Existing Directory - Dodaj istniejący katalog - - - Source directory: - Katalog źródłowy: - - - Start Parsing - Rozpocznij parsowanie - - - - QmlDesigner - - Error - Błąd - - - - QmlJSEditor::Internal::QmlJSTextEditorWidget - - Show Qt Quick ToolBar - Pokaż pasek narzędzi Qt Quick - - - Refactoring - Refaktoryzacja - - - - QmlProfiler::QmlProfilerBaseModel - - µs - µs - - - ms - ms - - - s - s - - - - QmlProfiler::QmlProfilerDataModel - - <bytecode> - <kod bajtowy> - - - GUI Thread - Wątek GUI - - - Source code not available. - Kod źródłowy nie jest dostępny. - - - anonymous function - anonimowa funkcja - - - Animations - Animacje - - - - QmlProfiler::QV8ProfilerDataModel - - <program> - <program> - - - Main Program - Główny program - - - - Qnx::Internal::BlackBerryApiLevelConfiguration - - Qt %1 for %2 - Qt %1 dla %2 - - - QCC for %1 - QCC dla %1 - - - Debugger for %1 - Debugger dla %1 - - - - No Qt version found. - - Brak wersji Qt. - - - - No GCC compiler found. - - Brak kompilatora GCC. - - - - No GDB debugger found for BB10 Device. - - Brak debuggera GDB dla urządzenia BB10. - - - - No GDB debugger found for BB10 Simulator. - - Brak debuggera GDB dla symulatora BB10. - - - Qt %{Qt:Version} for %2 - Qt %{Qt:Version} dla %2 - - - - No auto detection source found. - - - - - No sysroot found. - - - - The following errors occurred while activating target "%1": - - - - - Cannot Set up BB10 Configuration - Nie można skonfigurować BB10 - - - BlackBerry %1 Device - Urządzenie BlackBerry %1 - - - BlackBerry %1 Simulator - Symulator BlackBerry %1 - - - - Qnx::Internal::BlackBerryCheckDeviceStatusStep - - Check Device Status - Kontrola stanu urządzenia - - - Authentication failed. - Brak autoryzacji. - - - Cannot connect to device. - Nie można połączyć się z urządzeniem - - - Device is not in the development mode. - Urządzenie nie jest w trybie deweloperskim. - - - Timeout querying device information. - Przekroczony czas oczekiwania na informacje o urządzeniu. - - - Failed to query device information. - Nie można uzyskać informacji o urządzeniu. - - - Process to query device information has crashed. - Proces uzyskujący informacje o urządzeniu zakończył pracę błędem. - - - Cannot query device information. - Nie można uzyskać informacji o urządzeniu. - - - %1. Upload a valid debug token into the device. - %1: Error message from BlackBerryDeviceInformation - - - - Cannot determine device runtime version. - - - - Cannot determine API level version. - Nie można określić wersji poziomu API. - - - The device runtime version (%1) is inferior to the API level version (%2) - - - - Checking device status... - Kontrola stanu urządzenia... - - - Confirmation - Potwierdzenie - - - The device runtime version (%1) does not match the API level version (%2). -Do you want to continue anyway? - - - - No hostname specified for the device - - - - - Qnx::Internal::BlackBerryCheckDeviceStatusStepFactory - - Check Device Status - Kontrola stanu urządzenia - - - - BlackBerryPotentialKit - - Configure BlackBerry... - Konfiguracja BlackBerry... - - - - BlackBerryPotentialKitWidget - - <b>BlackBerry has not been configured. Create BlackBerry kits.</b> - <b>BlackBerry nie został skonfigurowany. Utwórz zestawy narzędzi BlackBerry.</b> - - - Qt Creator needs additional settings to enable BlackBerry support. You can configure those settings in the Options dialog. - Wymagane są dodatkowe ustawienia do obsługi BlackBerry. Można je skonfigurować w dialogu z opcjami. - - - - Qnx::Internal::BlackBerryRuntimeConfiguration - - Runtime %1 - - - - - Qnx::Internal::BlackBerrySetupPage - - Setup - Ustawienia - - - - Qnx::Internal::APILevelSetupItem - - API Level defines kits, Qt versions, compilers, debuggers needed for building BlackBerry applications. - - - - No API Level is installed. - - - - Install - Zainstaluj - - - No valid API Level is installed. - - - - Valid API Level is not activated. - - - - Activate - Uaktywnij - - - Valid API Level 10.2 or newer is not installed. - - - - Valid API Level 10.2 or newer is not set as default. - - - - Set - Ustaw - - - API Level is configured. - - - - - Qnx::Internal::SigningKeysSetupItem - - Signing keys are needed for signing BlackBerry applications and managing debug tokens. - - - - Found legacy BlackBerry signing keys. - Znaleziono stare klucze podpisujące BlackBerry. - - - Update - Uaktualnij - - - Cannot find BlackBerry signing keys. - Brak kluczy podpisujących BlackBerry. - - - Request - Zażądaj - - - Cannot find developer certificate. - Brak certyfikatu deweloperskiego. - - - Create - Utwórz - - - Developer certificate is not opened. - Certyfikat deweloperski nie jest otwarty. - - - Open - Otwórz - - - Signing keys are ready to use. - Klucze podpisujące gotowe do użycia. - - - Opening certificate... - Otwieranie certyfikatu... - - - Qt Creator - Qt Creator - - - Invalid certificate password. - Niepoprawne hasło certyfikatu. - - - Error loading certificate. - Błąd ładowania certyfikatu. - - - - Qnx::Internal::DeviceSetupItem - - BlackBerry 10 device or simulator is needed for running BlackBerry applications. - Aby uruchamiać aplikacje BlackBerry wymagane jest urządzenie BlackBerry 10 lub symulator. - - - No BlackBerry 10 device or simulator is registered. - Brak zarejestrowanego urządzenia BlackBerry 10 lub symulatora. - - - Add - Dodaj - - - BlackBerry 10 device or simulator is registered. - Istnieje zarejestrowane urządzenie BlackBerry 10 lub symulator. - - - - Qnx::Internal::BlackBerrySetupWidget - - <a href="%1">How to Setup Qt Creator for BlackBerry 10 development</a> - <a href="%1">Jak skonfigurować Qt Creatora do tworzenia oprogramowania dla BlackBerry</a> - - - - BlackBerrySetupWizardWelcomePage - - Welcome to the BlackBerry Development Environment Setup Wizard. -This wizard will guide you through the essential steps to deploy a ready-to-go development environment for BlackBerry 10 devices. - Kreator konfiguracji środowiska deweloperskiego BlackBerry. -Kreator ten składa się z etapów prowadzących do instalacji gotowego środowiska deweloperskiego dla urządzeń BlackBerry 10. - - - BlackBerry Development Environment Setup - Konfiguracja środowiska deweloperskiego BlackBerry - - - - BlackBerrySetupWizardNdkPage - - Configure the NDK Path - Skonfiguruj ścieżkę NDK - - - - BlackBerrySetupWizardKeysPage - - Setup Signing Keys - Ustawienia kluczy - - - Qt Creator - Qt Creator - - - This wizard will be closed and you will be taken to the BlackBerry key request web page. Do you want to continue? - Ten kreator zostanie zamknięty i otwarta zostanie strona webowa BlackBerry, na której można zamówić klucze. Kontynuować? - - - - BlackBerrySetupWizardCertificatePage - - Create Developer Certificate - Utwórz certyfikat deweloperski - - - The entered passwords do not match. - Wprowadzone hasła nie zgadzają się. - - - - BlackBerrySetupWizardDevicePage - - Configure BlackBerry Device Connection - Skonfiguruj połączenie z urządzeniem BlackBerry - - - BlackBerry Device - Urządzenie BlackBerry - - - - BlackBerrySetupWizardFinishPage - - Your environment is ready to be configured. - Środowisko gotowe do konfiguracji. - - - - Qnx::Internal::SrcProjectPathChooser - - Choose imported Cascades project directory - - - - Directory does not seem to be a valid Cascades project. - - - - - Qnx::Internal::QnxAttachDebugDialog - - Project source directory: - Katalog ze źródłami projektu: - - - Local executable: - Lokalny plik wykonywalny: - - - - Qnx::Internal::QnxAttachDebugSupport - - No free ports for debugging. - Brak wolnych portów do debugowania. - - - Remote: "%1:%2" - Process %3 - - - - - Qnx::Internal::QNXPlugin - - BAR descriptor file (BlackBerry) - Plik deskryptora BAR (BlackBerry) - - - BAR Descriptor - Deskryptor BAR - - - Attach to remote QNX application... - Dołącz do zdalnej aplikacji QNX... - - - - PrefixLangDialog - - Prefix: - Przedrostek: - - - Language: - Język: - - - - ResourceEditor::ResourceTopLevelNode - - %1 Prefix: %2 - %1 Przedrostek: %2 - - - - ResourceEditor::Internal::ResourceFolderNode - - %1 Prefix: %2 - %1 Przedrostek: %2 - - - - FontSettings_C_OCCURRENCES_UNUSED - - Unused variable - Nieużywana zmienna - - - - VcsBase::Internal::VcsPlugin - - Name of the version control system in use by the current project. - Nazwa systemu kontroli wersji używana w bieżącym projekcie. - - - The current version control topic (branch or tag) identification of the current project. - - - - The top level path to the repository the current project is in. - Ścieżka do repozytorium do którego przynależy bieżący projekt. - - - - WinRt::Internal::WinRtDeployConfiguration - - Run windeployqt - Uruchom windeployqt - - - Deploy to Windows Phone - Zainstaluj na Windows Phone - - - Deploy to Windows Phone Emulator - Zainstaluj na emulatorze Windows Phone - - - - WinRt::Internal::WinRtDeployStepFactory - - Run windeployqt - Uruchom windeployqt - - - - WinRt::Internal::WinRtDevice - - Windows Runtime (Local) - - - - Windows Phone - Windows Phone - - - Windows Phone Emulator - Emulator Windows Phone - - - - WinRt::Internal::WinRtDeviceFactory - - Running Windows Runtime device detection. - - - - No winrtrunner.exe found. - Brak winrtrunner.exe. - - - Error while executing winrtrunner: %1 - Błąd uruchamiania winrtrunner: %1 - - - winrtrunner returned with exit code %1. - winrtrunner zakończył pracę kodem wyjściowym %1. - - - Windows Runtime local UI - - - - Found %n Windows Runtime devices. - - - - - - - - %n of them are new. - - %n z nich jest nowe. - %n z nich są nowe. - %n z nich jest nowych. - - - - - WinRt::Internal::WinRtPackageDeploymentStep - - Run windeployqt - Uruchom windeployqt - - - No executable to deploy found in %1. - Brak pliku wykonawczego w %1 do zainstalowania. - - - Cannot parse manifest file %1. - Nie można sparsować pliku manifest %1. - - - File %1 is outside of the executable's directory. These files cannot be installed. - "These files cannot be installed." - this should be singular, like the first sentence: "This file". - Plik %1 leży poza katalogiem pliku wykonywalnego. Plik ten nie zostanie zainstalowany. - - - Cannot open mapping file %1 for writing. - Nie można otworzyć pliku z mapowaniem %1 do zapisu. - - - - WinRt::Internal::WinRtQtVersion - - Windows Phone - Windows Phone - - - Windows Runtime - Windows Runtime - - - - WinRt::Internal::WinRtRunConfiguration - - Run App Package - Uruchom pakiet App - - - - WinRt::Internal::WinRtRunControl - - The current kit has no Qt version. - Brak wersji Qt w bieżącym zestawie narzędzi. - - - Cannot find winrtrunner.exe in "%1". - Brak winrtrunner.exe w "%1". - - - winrtrunner crashed. - winrtrunner zakończony błędem. - - - winrtrunner returned with exit code %1. - winrtrunner zakończył pracę kodem wyjściowym %1. - - - winrtrunner finished successfully. - winrtrunner poprawnie zakończony. - - - Error while executing winrtrunner: %1 - - Błąd podczas uruchamiania winrtrunner: %1 - - - - - WinRt::Internal::WinRtRunConfigurationFactory - - Run App Package - Uruchom pakiet App - - - - WinRt::Internal::WinRtRunControlFactory - - Unsupported run mode %1. - Nieobsługiwany tryb uruchamiania %1. - - - WinRT Run Control Factory - - - - - WinRt::Internal::WinRtPackageDeploymentStepWidget - - Arguments: - Argumenty: - - - Restore Default Arguments - Przywróć domyślne argumenty - - - - Utils::ProxyCredentialsDialog - - Proxy Credentials - Pośrednie listy uwierzytelniające - - - The proxy %1 requires a username and password. - Pośrednik %1 wymaga nazwy użytkownika i hasła. - - - Username: - Nazwa użytkownika: - - - Username - Nazwa użytkownika - - - Password: - Hasło: - - - Password - Hasło - - - - AndroidBuildApkWidget - - Form - Formularz - - - Sign package - Podpisz pakiet - - - Keystore: - - - - Create... - Utwórz... - - - Signing a debug package - extra space on the end - Podpisywanie pakietu debugowego - - - Certificate alias: - Alias certyfikatu: - - - Signing an APK that uses "Deploy local Qt libraries" is not allowed. -Deploying local Qt libraries is incompatible with Android 5 - Podpisywanie APK, które używa "Zainstaluj lokalne biblioteki Qt" jest niedozwolone. -Instalowanie lokalnych bibliotek Qt nie jest kompatybilne z Androidem 5 - - - Application - Aplikacja - - - Android build SDK: - - - - Advanced Actions - Zaawansowane akcje - - - Verbose output - Gadatliwe komunikaty - - - Open package location after build - Po zakończeniu budowania otwórz w położeniu pakietu - - - Use Gradle - Używaj Gradle - - - Qt Deployment - Instalacja Qt - - - Uses the external Ministro application to download and maintain Qt libraries. - Używa zewnętrznej aplikacji Ministro do pobierania bibliotek Qt i zarządzania nimi. - - - Use Ministro service to install Qt - Użyj usługi Ministro do zainstalowania Qt - - - Creates a standalone APK. - Tworzy samodzielny APK. - - - Bundle Qt libraries in APK - Dołącz biblioteki Qt do APK - - - Pushes local Qt libraries to device. You must have Qt libraries compiled for that platform. -The APK will not be usable on any other device. - Przesyła lokalne biblioteki Qt do urządzenia. -Należy przesłać biblioteki skompilowane dla tej platformy. -APK nie będzie przydatne na innych urządzeniach. - - - Deploy local Qt libraries to temporary directory - Zainstaluj lokalne biblioteki Qt do tymczasowego katalogu - - - - Core::Internal::ThemeEditor::ThemeEditorWidget - - Theme Editor - Edytor motywów - - - Filter: - Filtr: - - - - Core::Internal::ThemeSettings - - Rename... - Zmień nazwę... - - - Copy... - Kopiuj... - - - Delete - Usuń - - - Theme - Motyw - - - - Ios::Internal::IosPresetBuildStep - - Reset to Default - Przywróć domyślny - - - Command: - Komenda: - - - Arguments: - Argumenty: - - - - ProjectExplorer::DeploymentDataView - - Form - Formularz - - - Files to deploy: - Pliki do zainstalowania: - - - - QmakeAndroidSupport::Internal::QmakeAndroidBuildApkWidget - - Form - Formularz - - - Android - Android - - - Create Templates - Utwórz szablony - - - Input file for androiddeployqt: - Plik wejściowy dla androiddeployqt: - - - Additional Libraries - Dodatkowe biblioteki - - - List of extra libraries to include in Android package and load on startup. - Lista dodatkowych bibliotek dołączanych do pakietu Android i ładowanych przy uruchamianiu. - - - Select library to include in package. - Wybierz bibliotekę, którą dołączyć do pakietu. - - - Add... - Dodaj... - - - Remove currently selected library from list. - Usuń zaznaczoną bibliotekę z listy. - - - Remove - Usuń - - - Select additional libraries - Wybierz dodatkowe biblioteki - - - Libraries (*.so) - Biblioteki (*.so) - - - <b>Build Android APK</b> - + Edit Buddies + Modyfikuj skojarzone etykiety - - - SliderSpecifics - Value - Wartość + Edit Tab Order + Modyfikuj kolejność tabulacji - Current value of the Slider. The default value is 0.0. - Bieżąca wartość suwaka. Domyślną wartością jest 0.0. + Meta+Shift+H + Meta+Shift+H - Maximum value - Maksymalna wartość + Ctrl+H + Ctrl+H - Maximum value of the slider. The default value is 1.0. - Maksymalna wartość suwaka. Domyślną wartością jest 1.0. + Meta+L + Meta+L - Minimum value - Minimalna wartość + Ctrl+L + Ctrl+L - Minimum value of the slider. The default value is 0.0. - Minimalna wartość suwaka. Domyślną wartością jest 0.0. + Meta+Shift+G + Meta+Shift+G - Orientation - Orientacja + Ctrl+G + Ctrl+G - Layout orientation of the slider. - Orientacja pozioma / pionowa suwaka. + Meta+J + Meta+J - Step size - Rozmiar kroku + Ctrl+J + Ctrl+J - Indicates the slider step size. - Określa rozmiar kroku suwaka. + Alt+Shift+R + Alt+Shift+R - Active focus on press - Uaktywnij fokus po naciśnięciu + About Qt Designer Plugins... + Informacje o wtyczkach Qt Designera... - Indicates whether the slider should receive active focus when pressed. - Określa, czy suwak powinien otrzymać fokus po naciśnięciu. + Preview in + Podgląd w stylu - Tick marks enabled - Skala włączona + Designer + Designer - Indicates whether the slider should display tick marks at step intervals. - Określa, czy suwak powinien wyświetlać skalę z naniesionymi znacznikami kroków. + This file can only be edited in <b>Design</b> mode. + Ten plik może być modyfikowany jedynie w trybie <b>Design</b>. - Update value while dragging - Odświeżaj wartość podczaś przeciągania + Switch Mode + Przełącz tryb - Determines whether the current value should be updated while the user is moving the slider handle, or only when the button has been released. - Określa, czy bieżąca wartość powinna być odświeżana w trakcie przesuwania uchwytu suwaka, czy jedynie po zwolnieniu uchwytu. + The image could not be created: %1 + Nie można utworzyć pliku graficznego: %1 - SplitViewSpecifics + ProjectExplorer::JsonWizard - Split View - + "data" for a "Form" page needs to be unset or an empty object. + "data" na stronie "Form" powinna pozostać nieustawiona lub być pustym obiektem. - Orientation - Orientacja + Check whether a variable exists. Returns "true" if it does and an empty string if not. + Sprawdź, czy zmienna istnieje. Zwraca "prawdę" jeśli istnieje lub pusty ciąg tekstowy w przeciwnym razie. - Orientation of the split view. + Could not determine target path. "TargetPath" was not set on any page. - - - TabViewSpecifics - - Tab View - Widok z zakładkami - - Current index - Bieżący indeks - - - Frame visible - Ramka widoczna - - - Determines the visibility of the tab frame around contents. - Określa, czy widoczna jest ramka zakładki wokół zawartości. - - - Tabs visible - Zakładki widoczne + File Generation Failed + Błąd generowania pliku - Determines the visibility of the the tab bar. - Określa, czy widoczny jest pasek z zakładkami. + The wizard failed to generate files.<br>The error message was: "%1". + Kreator nie wygenerował plików.<br>Komunikat z błędem: "%1". - Tab position - Pozycja zakładek + Failed to Overwrite Files + Nie można nadpisać plików - Determines the position of the tabs. - Określa pozycję zakładek. + Failed to Format Files + Nie można sformatować plików - - - PuppetBuildProgressDialog - Build Progress - Postęp budowania + Failed to Write Files + Nie można zapisać plików - Build Adapter for the current Qt. Happens only once for every Qt installation. - Budowanie adaptera dla bieżącego Qt. Wymane tylko raz dla każdej instalacji Qt. + Failed to Post-Process Files + Nie można przetworzyć wygenerowanych plików - Use Fallback QML Emulation Layer + Failed to Polish Files - - - PuppetDialog - - Dialog - Dialog - - - - ButtonsBar - - Jump to previous event. - Skocz do poprzedniego zdarzenia. - - - Jump to next event. - Skocz do następnego zdarzenia. - - - Show zoom slider. - Pokaż suwak powiększania. - - - Filter Categories - Przefiltruj kategorie - - - Select range. - Wybierz zakres. - - - View event information on mouseover. - Pokazuj informacje o zdarzeniach po najechaniu myszą. - - - - CategoryLabel - - <bytecode> - <kod bajtowy> - - Collapse category - Zwiń kategorię - - - Expand category. - Rozwiń kategorię - - - - Qnx::Internal::QnxDeployQtLibrariesDialog - - Deploy Qt to BlackBerry Device - Instalacja Qt na urządzeniu BlackBerry + Failed to Open Files + Nie można otworzyć plików - Qt library to deploy: - Biblioteka Qt do zainstalowania: + "%1" does not exist in the file system. + Brak "%1" w systemie plików. - Deploy - Zainstaluj + No file to open found in "%1". + Brak plików do otwarcia w "%1". - Remote directory: - Zdalny katalog: + Failed to open project. + Nie można otworzyć projektu. - Close - Zamknij + Failed to open project in "%1". + Nie można otworzyć projektu w "%1". - Closing the dialog will stop the deployment. Are you sure you want to do this? - Zamknięcie dialogu spowoduje zatrzymanie instalacji. Czy zamknąć dialog? + Cannot Open Project + Nie można otworzyć projektu - Please input a remote directory to deploy to. - Wprowadź zdalny katalog w którym ma zostać dokonana instalacja. + When processing "%1":<br>%2 + W trakcie przetwarzania "%1":<br>%2 - Connection failed: %1 - Błąd połączenia: %1 + Failed to open "%1" as a project. + Nie można otworzyć "%1" jako projekt. - The remote directory "%1" already exists. Deploying to that directory will remove any files already present. - -Are you sure you want to continue? - Zdalny katalog "%1" już istnieje. Instalacja do tego katalogu spowoduje usunięcie całej jego zawartości. - -Czy kontynuować instalację? + Failed to open an editor for "%1". + Nie można otworzyć edytora dla "%1". - Checking existence of "%1" - Sprawdzanie obecności "%1" + When parsing fields of page '%1': %2 + W trakcie parsowania pól strony "%1": %2 - Removing "%1" - Usuwanie "%1" + "data" for a "File" page needs to be unset or an empty object. + "data" na stronie "File" powinna pozostać nieustawiona lub być pustym obiektem. - - - Qnx::Internal::QnxSettingsWidget - Form - Formularz + Error parsing "%1" in "Kits" page: %2 + Błąd parsowania "%1" na stronie "Zestawy narzędzi": %2 - Generate kits - Wygeneruj zestawy narzędzi + "data" must be a JSON object for "Kits" pages. + "data" musi być obiektem JSON dla stron "Kits". - Configuration Information: - Informacje o konfiguracji: + "Kits" page requires a "%1" set. + Strona "Zestawy narzędzi" wymaga ustawionego "%1". - Name: - Nazwa: + "data" must be empty or a JSON object for "Project" pages. + "data" na stronach "Project" powinna pozostać nieustawiona lub być obiektem JSON. - Version: - Wersja: + "data" for a "Summary" page needs to be unset or an empty object. + "data" na stronie "Summary" powinna pozostać nieustawiona lub być pustym obiektem. - Host: - Host: + "data" must be a JSON object for "VcsConfiguration" pages. + Do not translate "VcsConfiguration", because it is the id of a page. + "data" na stronach "VcsConfiguration" powinna być obiektem JSON. - Target: - Cel: + "VcsConfiguration" page requires a "vcsId" set. + Do not translate "VcsConfiguration", because it is the id of a page. + Strona "VcsConfiguration" wymaga ustawienia "vcsId". + + + EmacsKeys::Internal::EmacsKeysPlugin - Add - Dodaj + Delete Character + Usuń znak - Remove - Usuń + Kill Word + Skasuj słowo - Select QNX Environment File - Wybierz plik ze środowiskiem QNX + Kill Line + Skasuj linię - Warning - Ostrzeżenie + Insert New Line and Indent + Wstaw nową linię i dopasuj wcięcie - Configuration already exists or is invalid. - Konfiguracja już istnieje lub jest niepoprawna. + Go to File Start + Przejdź do początku pliku - Remove QNX Configuration - Usuń konfigurację QNX + Go to File End + Przejdź do końca pliku - Are you sure you want to remove: - %1? - Czy usunąć: -%1? + Go to Line Start + Przejdź do początku linii - - - QtSupport::Internal::CodeGenSettingsPageWidget - Form - Formularz + Go to Line End + Przejdź do końca linii - Embedding of the UI Class - Osadzanie klas UI + Go to Next Line + Przejdź do następnej linii - Aggregation as a pointer member - Agregacja poprzez wskaźnik do składnika + Go to Previous Line + Przejdź do poprzedniej linii - Aggregation - Agregacja + Go to Next Character + Przejdź do następnego znaku - Multiple inheritance - Dziedziczenie wielokrotne + Go to Previous Character + Przejdź do poprzedniego znaku - Code Generation - Generowanie kodu + Go to Next Word + Przejdź do następnego słowa - Support for changing languages at runtime - Obsługa zmian języków w trakcie wykonywania programu + Go to Previous Word + Przejdź do poprzedniego słowa - Use Qt module name in #include-directive - Używaj nazwy modułu Qt w dyrektywach #include + Mark + Wstaw znacznik - Add Qt version #ifdef for module names - Generuj odpowiednie dyrektywy #include w zależności od wersji Qt + Exchange Cursor and Mark + Wymień kursor i wstaw znacznik - - - RemoteLinux::Internal::RemoteLinuxCustomRunConfigurationWidget - Form - Formularz + Copy + Skopiuj - Local executable: - Lokalny plik wykonywalny: + Cut + Wytnij - Remote executable: - Zdalny plik wykonywalny: + Yank + - Arguments: - Argumenty: + Scroll Half Screen Down + Przewiń o pół ekranu w dół - Working directory: - Katalog roboczy: + Scroll Half Screen Up + Przewiń o pół ekranu w górę - ColorEditor + FakeVim - Solid Color - Kolor jednolity + Unknown option: %1 + Nieznana opcja: %1 - Gradient - Gradient + Argument must be positive: %1=%2 + Argument musi być dodatni: %1=%2 - Transparent - Przezroczystość + Use Vim-style Editing + Włącz edycję w stylu vim - - - AnchorRow - Target - Cel + Read .vimrc + Odczytuj .vimrc - - - StatesList - Collapse - Zwiń + Path to .vimrc + Ścieżka do .vimrc - Expand - Rozwiń + Mark "%1" not set. + Nie ustawiono znacznika "%1". - - - QmlDebug::QmlDebugConnectionPrivate - Error: (%1) %2 - %1=error code, %2=error message - Błąd: (%1) %2 + Recursive mapping + Mapowanie rekurencyjne - <device is gone> - <brak urządzenia> + %1%2% + %1%2% - Network connection dropped - Utracono połączenie sieciowe + %1All + %1Wszystkie - Resolving host - Rozwiązywanie adresu hosta. + Not implemented in FakeVim. + Nieobsługiwane w FakeVim. - Establishing network connection ... - Ustanawianie połączenia sieciowego... + Type Alt-V, Alt-V to quit FakeVim mode. + Naciśnij Alt-V, Alt-V aby wyjść z trybu FakeVim. - Network connection established - Ustanowiono połączenie sieciowe + Unknown option: + Nieznana opcja: - Network connection closing - Zamykanie połączenia sieciowego + Invalid argument: + Niepoprawny argument: - Socket state changed to BoundState. This should not happen! - + Trailing characters: + Białe znaki na końcu linii: - Socket state changed to ListeningState. This should not happen! + Move lines into themselves. - - - QmlDebug::QmlDebugConnection + + %n lines moved. + + %n linia przesunięta. + %n linie przesunięte. + %n linii przesuniętych. + + - Connecting to debug server at %1:%2 ... - Łączenie z serwerem debugowym %1: %2 ... + File "%1" exists (add ! to override) + Plik "%1" istnieje (dodaj ! aby go nadpisać) - - - QDockWidget - Float - + Cannot open file "%1" for writing + Nie można otworzyć pliku "%1" do zapisu - Undocks and re-attaches the dock widget - + "%1" %2 %3L, %4C written. + "%1" %2 zapisano: %3 linii, %4 znaków. - Close - Zamknij + [New] + [Nowy] - Closes the dock widget - Zamyka okno dokowalne + Cannot open file "%1" for reading + Nie można otworzyć pliku "%1" do odczytu - - - Utils::FileWizardPage - Location - Położenie + "%1" %2L, %3C + "%1" %2L, %3C + + + %n lines filtered. + + Przefiltrowano %n linię. + Przefiltrowano %n linie. + Przefiltrowano %n linii. + - - - Utils::MacroExpander - Infinite recursion error - Błąd: nieskończona pętla + Cannot open file %1 + Nie można otworzyć pliku %1 - %1: Full path including file name. - %1: Pełna ścieżka zawierająca nazwę pliku. + Not an editor command: %1 + %1 nie jest komendą edytora - %1: Full path excluding file name. - %1: Pełna ścieżka bez nazwy pliku. + Invalid regular expression: %1 + Niepoprawne wyrażenie regularne: %1 - %1: File name without path. - %1: Nazwa pliku bez ścieżki. + Pattern not found: %1 + Brak dopasowań do wzorca: %1 - %1: File base name without path and suffix. - %1: Bazowa nazwa pliku bez ścieżki i rozszerzenia. + Search hit BOTTOM, continuing at TOP. + Przeszukano do KOŃCA, wznowiono od POCZĄTKU. - Global variables - Zmienne globalne + Search hit TOP, continuing at BOTTOM. + Przeszukano do POCZĄTKU, wznowiono od KOŃCA. - - - Utils::GlobalMacroExpander - Access environment variables. - Dostęp do zmiennych środowiskowych. + Search hit BOTTOM without match for: %1 + Przeszukano do KOŃCA, brak wyników pasujących do: %1 - - - Android::AndroidBuildApkStep - Build Android APK - AndroidBuildApkStep default display name - + Search hit TOP without match for: %1 + Przeszukano do POCZĄTKU, brak wyników pasujących do: %1 + + + %n lines indented. + + Wyrównano %n linię. + Wyrównano %n linie. + Wyrównano %n linii. + + + + %n lines %1ed %2 time. + %1ed - crazy!!! + + + + + + + + %n lines yanked. + + + + + - Warning: Signing a debug package. - Ostrzeżenie: podpisywanie pakietu debugowego. + Already at oldest change. + Osiągnięto najstarszą zmianę. - Error - Błąd + Already at newest change. + Osiągnięto najnowszą zmianę. - Failed to run keytool. - + General + Ogólne - Invalid password. - Niepoprawne hasło. + FakeVim + FakeVim - Keystore - + Keep empty to use the default path, i.e. %USERPROFILE%\_vimrc on Windows, ~/.vimrc otherwise. + Pozostaw pustym aby użyć domyślnej ścieżki, tzn.%USERPROFILE%\_vimrc na Windows i ~/.vimrc w pozostałych przypadkach. - Keystore password: - + Default: %1 + Domyślnie: %1 - Certificate - Certyfikat + Ex Command Mapping + Mapowanie komend Ex - Certificate password (%1): - Hasło dla certyfikatu (%1): + Ex Trigger Expression + Wyzwalacz Ex - - - Android::AndroidBuildApkWidget - Keystore files (*.keystore *.jks) + Reset - Select Keystore File + Reset to default. - <b>Build Android APK</b> - + Regular expression: + Wyrażenie regularne: - - - Android::AndroidConfigurations - Android Debugger for %1 - Debugger Androida dla %1 + Ex Command + Komenda Ex - Android for %1 (GCC %2, Qt %3) - Android dla %1 (GCC %2, Qt %3) + Action + Akcja - - - Android::AndroidManager - Unknown Android version. API Level: %1 - + Command + Komenda - Error creating Android templates. - Błąd tworzenia szablonów Androida. + User Command Mapping + Mapa komend użytkownika - Cannot parse "%1". - Nie można sparsować "%1". + User command #%1 + Komenda użytkownika #%1 - Starting Android virtual device failed. - Nie można uruchomić wirtualnego urządzenia Android. + Alt+V,Alt+V + Alt+V,Alt+V - - - Android::Internal::AvdDialog - Cannot create a new AVD. No sufficiently recent Android SDK available. -Install an SDK of at least API version %1. - + Meta+Shift+V,Meta+Shift+V + Meta+Shift+V,Meta+Shift+V - Cannot create a AVD for ABI %1. Install an image for it. - + Execute User Action #%1 + Wykonaj akcję użytkownika #%1 - - - BareMetal - Example: - Przykład: + Alt+V,%1 + Alt+V,%1 - Enter your hostname like "localhost" or "192.0.2.1" or a command which must support GDB pipelining starting with a pipe symbol. - Wprowadź nazwę swojego hosta, np. "localhost", "192.0.2.1" lub komendę, która obsługuje potoki GDB, rozpoczynając symbolem potoku. + Meta+Shift+V,%1 + Meta+Shift+V,%1 - Enter the hardware reset command here.<br>The CPU should be halted after this command. - Wprowadź tutaj komendę resetującą sprzęt.<br>Procesor powinien się zatrzymać. + "%1" %2 %3L, %4C written + "%1" %2 zapisano: %3 linii, %4 znaków - Enter commands to reset the board, and write the nonvolatile memory. - + File not saved + Plik nie został zachowany - - - BareMetal::Internal::BareMetalDeviceConfigurationFactory - Bare Metal Device - Urządzenie Bare Metal + Saving succeeded + Zachowywanie poprawnie zakończone + + + %n files not saved + + Nie zachowano %n pliku + Nie zachowano %n plików + Nie zachowano %n plików + - BareMetal::Internal::BareMetalDeviceConfigurationWidget + Git::Internal::GitEditorWidget - GDB host: - Host GDB: + &Blame %1 + - GDB port: - Port GDB: + Blame &Parent Revision %1 + - Init commands: - Komendy inicjalizujące: + Chunk successfully staged + - Reset commands: - Komendy resetujące: + Stage Chunk... + - - - BareMetal::Internal::BareMetalDeviceConfigurationWizard - New Bare Metal Device Configuration Setup - Nowa konfiguracja urządzenia Bare Metal + Unstage Chunk... + - - - BareMetal::Internal::BareMetalGdbCommandsDeployStep - GDB commands - Komendy GDB: + Cherr&y-Pick Change %1 + - - - BareMetal::Internal::BareMetalRunConfiguration - %1 (via GDB server or hardware debugger) - %1 (poprzez serwer GDB lub debugger sprzętowy) + Re&vert Change %1 + - Run on GDB server or hardware debugger - Bare Metal run configuration default run name - Uruchom na serwerze GDB lub debuggerze sprzętowym + C&heckout Change %1 + - - - BareMetal::Internal::BareMetalRunConfigurationWidget - Executable: - Plik wykonywalny: + &Log for Change %1 + - Arguments: - Argumenty: + &Reset to Change %1 + - <default> - <domyślny> + &Hard + - Working directory: - Katalog roboczy: + &Mixed + - Unknown + &Soft - Bazaar::Internal::BazaarEditorWidget - - Annotate %1 - Dołącz adnotację do %1 - + Git::Internal::GitSubmitEditor - Annotate parent revision %1 - Dołącz adnotację do poprawki macierzystej "%1" + Refreshing Commit Data + - BinEditor::BinEditorWidget + Git::Internal::RemoteModel - Memory at 0x%1 - Pamięć w 0x%1 + Name + Nazwa - Decimal&nbsp;unsigned&nbsp;value: - Wartość&nbsp;dziesiętna&nbsp;bez&nbsp;znaku: + URL + URL + + + GlslEditor::Internal::GlslEditorPlugin - Decimal&nbsp;signed&nbsp;value: - Wartość&nbsp;dziesiętna&nbsp;ze&nbsp;znakiem: + GLSL + GLSL sub-menu in the Tools menu + GLSL + + + + Help::Internal::HelpWidget + + Go to Help Mode + Przejdź do trybu pomocy - Previous&nbsp;decimal&nbsp;unsigned&nbsp;value: - Poprzednia&nbsp;wartość&nbsp;dziesiętna&nbsp;bez&nbsp;znaku: + Home + Strona startowa - Previous&nbsp;decimal&nbsp;signed&nbsp;value: - Poprzednia&nbsp;wartość&nbsp;dziesiętna&nbsp;ze&nbsp;znakiem: + Back + Wstecz - %1-bit&nbsp;Integer&nbsp;Type - %1-bitowy&nbsp;typ&nbsp;całkowity + Forward + Do przodu - Little Endian - Little Endian + Add Bookmark + Dodaj zakładkę - Big Endian - Big Endian + Meta+M + Meta+M - Binary&nbsp;value: - Wartość&nbsp;binarna: + Ctrl+M + Ctrl+M - Octal&nbsp;value: - Wartość&nbsp;ósemkowa: + Increase Font Size + Zwiększ rozmiar czcionki - Previous&nbsp;binary&nbsp;value: - Poprzednia&nbsp;wartość&nbsp;binarna: + Decrease Font Size + Zmniejsz rozmiar czcionki - Previous&nbsp;octal&nbsp;value: - Poprzednia&nbsp;wartość&nbsp;ósemkowa: + Reset Font Size + Zresetuj rozmiar czcionki - <i>double</i>&nbsp;value: - Wartość&nbsp;<i>double</i>: + Meta+Shift+C + Meta+Shift+C - Previous <i>double</i>&nbsp;value: - Poprzednia&nbsp;wartość&nbsp;<i>double</i>: + Ctrl+Shift+C + Ctrl+Shift+C - <i>float</i>&nbsp;value: - Wartość&nbsp;<i>float</i>: + Meta+I + Meta+I - Previous <i>float</i>&nbsp;value: - Poprzednia&nbsp;wartość&nbsp;<i>float</i>: + Ctrl+Shift+I + Ctrl+Shift+I - Copying Failed - Błąd kopiowania + Activate Help Bookmarks View + Uaktywnij widok z zakładkami pomocy - You cannot copy more than 4 MB of binary data. - Nie można skopiować więcej niż 4 MB danych binarnych. + Alt+Meta+M + Alt+Meta+M - Copy Selection as ASCII Characters - Skopiuj jako znaki ASCII + Ctrl+Shift+B + Ctrl+Shift+B - Copy Selection as Hex Values - Skopiuj jako wartości szesnastkowe + Activate Help Search View + Uaktywnij widok z przeszukiwaniem pomocy - Set Data Breakpoint on Selection - Ustaw pułapkę warunkową na selekcji + Meta+/ + Meta+/ - Jump to Address in This Window - Skocz do adresu w tym oknie + Ctrl+Shift+/ + Ctrl+Shift+/ - Jump to Address in New Window - Skocz do adresu w nowym oknie + Activate Open Help Pages View + Uaktywnij widok ze stronami otwartej pomocy - Jump to Address 0x%1 in This Window - Skocz do adresu 0x%1 w tym oknie + Meta+O + Meta+O - Jump to Address 0x%1 in New Window - Skocz do adresu 0x%1 w nowym oknie + Ctrl+Shift+O + Ctrl+Shift+O - - - BinEditor::Internal::BinEditorDocument - The Binary Editor cannot open empty files. - Edytor plików binarnych nie może otwierac pustych plików. + Help + Pomoc - File Error - Błąd pliku + Help - %1 + Pomoc - %1 - Cannot open %1: %2 - Nie można otworzyć %1: %2 + Print Documentation + Wydruk dokumentacji - BinEditor::Internal::BinEditorPlugin - - &Undo - &Cofnij - + Help::Internal::QtWebKitHelpWidget - &Redo - &Przywróć + Open Link as New Page + Otwórz odsyłacz na nowej stronie - ClearCase::Internal::ClearCaseEditorWidget + Help::Internal::SearchTaskHandler - Annotate version "%1" - Dołącz adnotację do wersji "%1" + Get Help Online + Sięgnij po pomoc online - Core::BaseFileWizardFactory - - File Generation Failure - Błąd w trakcie generowania pliku - - - Existing files - Istniejące pliki - + Help::Internal::SearchSideBarItem - Failed to open an editor for "%1". - Nie można otworzyć edytora dla "%1". + Regenerate Index + Ponownie wygeneruj indeks + + + Help::Internal::TextBrowserHelpWidget - [read only] - [tylko do odczytu] + Open Link + Otwórz odsyłacz - [folder] - [katalog] + Copy Link + Skopiuj odsyłacz - [symbolic link] - [dowiązanie symboliczne] + Copy + Skopiuj - The project directory %1 contains files which cannot be overwritten: -%2. - Katalog projektu %1 zawiera pliki, które nie moga być nadpisane: -%2. + Reload + Przeładuj - Core::Internal::CorePlugin - - The current date (ISO). - Bieżąca data (ISO). - - - The current time (ISO). - Bieżący czas (ISO). - - - The current date (RFC2822). - Bieżąca data (RFC2822). - + Ios::Internal::IosAnalyzeSupport - The current time (RFC2822). - Bieżący czas (RFC2822). + Run ended with error. + Praca zakończona błędem. - The current date (Locale). - Bieżąca data (Ustawienia lokalne). + Run ended. + Praca zakończona. + + + Mercurial::Internal::MercurialEditorWidget - The current time (Locale). - Bieżący czas (Ustawienia lokalne). + &Annotate %1 + Dołącz &adnotację do %1 - The current date (QDate formatstring) - Bieżąca data (QDate formatstring). + Annotate &parent revision %1 + Dołącz adnotację do &poprawki macierzystej "%1" + + + Perforce::Internal::PerforceEditorWidget - The current time (QTime formatstring) - Bieżący czas (QTime formatstring). + Annotate change list "%1" + Dołącz adnotację do listy zmian "%1" - Core::PromptOverwriteDialog + ProjectExplorer::DeploymentDataModel - Overwrite Existing Files - Nadpisz istniejące pliki + Local File Path + Ścieżka do lokalnego pliku - The following files already exist in the folder -%1. -Would you like to overwrite them? - Następujące pliki istnieją już w katalogu -%1. -Czy nadpisać je? + Remote Directory + Zdalny katalog - Core::ReadOnlyFilesDialog + ProjectExplorer::JsonFieldPage - Mixed - Mieszane + Field is not an object. + Pole nie jest obiektem. - Make Writable - Uczyń plik zapisywalnym + Field has no name. + Pole nie posiada nazwy. - Open with VCS - Otwórz przy pomocy VCS + Label data is not an object. + Dane etykiety nie są obiektem. - Save As - Zachowaj jako + No text given for Label. + Brak tekstu na etykiecie. - Failed to %1 File - Horror!!! - Nie można %1 pliku + Spacer data is not an object. + Dane dystansu nie są obiektem. - %1 file %2 from version control system %3 failed. - Horror!!! + Line Edit Validator Expander - No Version Control System Found - Brak systemu kontroli wersji (VCS) - - - Cannot open file %1 from version control system. -No version control system found. - Nie można otworzyć pliku %1 z systemu kontroli wersji. -Brak systemu kontroli wersji. + The text edit input to fix up. + - Cannot Set Permissions - Nie można ustawić praw dostępu + Field "%1" has no type. + Pole "%1" nie posiada typu. - Cannot set permissions for %1 to writable. - Nie można uczynić pliku %1 zapisywalnym. + Field "%1" has unsupported type "%2". + Pole "%1" posiada nieobsługiwany type "%2". - Cannot Save File - Nie można zachować pliku + When parsing Field "%1": %2 + Podczas parsowania pola "%1": %2 - Cannot save file %1 - Nie można zachować pliku %1 + "factor" is no integer value. + "factor" nie jest liczbą całkowitą. - Canceled Changing Permissions - Anulowano zmianę praw dostępu + LineEdit data is not an object. + Dane LineEdit nie są obiektem. - Could Not Change Permissions on Some Files - Nie można zmienić praw dostępu niektórych plików + Invalid regular expression "%1" in "validator". + Niepoprawne wyrażenie regularne "%1" w polu "validator". - See details for a complete list of files. - W szczegółach pełna lista plików. + TextEdit data is not an object. + Dane TextEdit nie są obiektem. - Change &Permission - Zmień &prawa dostępu + PathChooser data is not an object. + Dane PatchChooser nie są obiektem. - The following files are not checked out yet. -Do you want to check them out now? + kind "%1" is not one of the supported "existingDirectory", "directory", "file", "saveFile", "existingCommand", "command", "any". - - - Core::DocumentModelPrivate - - <no document> - <brak dokumentu> - - No document is selected. - Brak zaznaczonego dokumenty. - - - - Core::Internal::EditorManagerPrivate - - Revert File to Saved - Odwróć zmiany w pliku + No "key" found in ComboBox items. + - Ctrl+W - Ctrl+W + ComboBox "index" is not an integer value. + - Alternative Close + ComboBox "disabledIndex" is not an integer value. - Ctrl+F4 - Ctrl+F4 + ComboBox "items" missing. + - Ctrl+Shift+W - Ctrl+Shift+W + ComboBox "items" is not a list. + - Alt+Tab - Alt+Tab + Internal Error: ComboBox items lists got mixed up. + - Ctrl+Tab - Ctrl+Tab + CheckBox data is not an object. + Dane CheckBox nie są obiektem. - Alt+Shift+Tab - Alt+Shift+Tab + CheckBox values for checked and unchecked state are identical. + Jednakowe wartości CheckBox dla stanów: zaznaczony i niezaznaczony. - Ctrl+Shift+Tab - Ctrl+Shift+Tab + No lists allowed inside ComboBox items list. + Listy są niedozwolone wewnątrz listy elementów ComboBox. - Ctrl+Alt+Left - Ctrl+Alt+Left + ComboBox data is not an object. + Dane ComboBox nie są obiektem. - Alt+Left - Alt+Left + Files data list entry is not an object. + - Ctrl+Alt+Right - Ctrl+Alt+Right + Source and target are both empty. + + + + ProjectExplorer::JsonProjectPage - Alt+Right - Alt+Right + untitled + File path suggestion for a new project. If you choose to translate it, make sure it is a valid path name without blanks and using only ascii chars. + nienazwany + + + ProjectExplorer::JsonSummaryPage - Split - Podziel + Failed to Commit to Version Control + - Meta+E,2 - Meta+E,2 + Error message from Version Control System: "%1". + Komunikat o błędzie z systemu kontroli wersji: "%1". - Ctrl+E,2 - Ctrl+E,2 + Failed to Add to Project + Nie można dodać do projektu - Split Side by Side - Podziel sąsiadująco + Failed to add subproject "%1" +to project "%2". + Nie można dodać podprojektu "%1" +do projektu "%2". - Meta+E,3 - Meta+E,3 + Failed to add one or more files to project +"%1" (%2). + Nie można dodać jednego lub więcej plików do projektu +"%1" (%2). + + + ProjectExplorer::JsonWizardFactory - Ctrl+E,3 - Ctrl+E,3 + Generator is not a object. + Generator nie jest obiektem. - Open in New Window - Otwórz w nowym oknie + Generator has no typeId set. + Brak ustawionego typeId w generatorze. - Meta+E,4 - Meta+E,4 + TypeId "%1" of generator is unknown. Supported typeIds are: "%2". + Nieznany typeid "%1" generatora. Obsługiwane typy: "%2". - Ctrl+E,4 - Ctrl+E,4 + Page is not an object. + Strona nie jest obiektem. - Remove Current Split - Usuń bieżący podział + Page has no typeId set. + Brak ustawionego typeId w stronie. - Meta+E,0 - Meta+E,0 + TypeId "%1" of page is unknown. Supported typeIds are: "%2". + Nieznany typeid "%1" strony. Obsługiwane typy: "%2". - Ctrl+E,0 - Ctrl+E,0 + Page with typeId "%1" has invalid "index". + Strona z typeid "%1" posiada niepoprawny "index". - Remove All Splits - Usuń wszystkie podziały + Path "%1" does not exist when checking Json wizard search paths. + + - Meta+E,1 - Meta+E,1 + Checking "%1" for %2. + + Sprawdzanie "%1" dla "%2". + - Ctrl+E,1 - Ctrl+E,1 + * Failed to parse "%1":%2:%3: %4 + + * Nie można sparsować "%1":%2:%3: %4 + - Go to Next Split or Window - Przejdź do kolejnego podzielonego okna + * Did not find a JSON object in "%1". + + * Nie odnaleziono obiektu JSON w "%1". + - Meta+E,o - Meta+E,o + * Configuration found and parsed. + + * Konfiguracja odnaleziona i przeparsowana. + - Ctrl+E,o - Ctrl+E,o + * Version %1 not supported. + + * Wersja %1 nieobsługiwana. + - Ad&vanced - Zaa&wansowane + The platform selected for the wizard. + Wybrana platforma dla kreatora. - Current document - Bieżący dokument + The features available to this wizard. + Funkcje dostępne w tym kreatorze. - X-coordinate of the current editor's upper left corner, relative to screen. - Współrzędna X lewego górnego rogu bieżącego edytora względem ekranu. + The plugins loaded. + Załadowane wtyczki. - Y-coordinate of the current editor's upper left corner, relative to screen. - Współrzędna Y lewego górnego rogu bieżącego edytora względem ekranu. + "kind" value "%1" is not "class" (deprecated), "file" or "project". + - <b>Warning:</b> This file was not opened in %1 yet. - <b>Ostrzeżenie:</b> Ten plik nie był jeszcze otwarty w %1. + Icon file "%1" not found. + Brak ikony "%1". - Open - Otwórz + Image file "%1" not found. + Brak pliku graficznego "%1". - <b>Warning:</b> You are changing a read-only file. - <b>Ostrzeżenie:</b> Zmieniasz plik, który jest tylko do odczytu. + Value for "options" is not a list. + Wartością "options" nie jest lista.. - Make Writable - Uczyń plik zapisywalnym + * Failed to create: %1 + + * Nie można utworzyć: %1 + - &Save %1 - &Zachowaj %1 + JsonWizard: "%1" not found + + JsonWizard: Nie znaleziono "%1" + - Save %1 &As... - Zachowaj %1 j&ako... + key not found. + brak klucza. - Revert %1 to Saved - Przywróc stan ostatnio zapisany w %1 + Expected an object or a list. + Oczekiwano obiektu lub listy. - Reload %1 - Przeładuj %1 + No id set. + Brak ustawionego identyfikatora. - Close %1 - Zamknij %1 + No category is set. + Brak ustawionej kategorii. - Close All Except %1 - Zamknij wszystko z wyjątkiem %1 + No displayName set. + Brak ustawionego pola displayName. - Close Others - Zamknij inne + No displayCategory set. + Brak ustawionego pola displayCategory. - Qt Creator - Qt Creator + No description set. + Brak ustawionego opisu. - Cannot Open File - Nie można otworzyć pliku + When parsing "generators": %1 + W trakcie parsowania "generators": %1 - Cannot open the file for editing with VCS. - Nie można otworzyć pliku do edycji przy pomocy VCS. + When parsing "pages": %1 + W trakcie parsowania "pages": %1 - File Error - Błąd pliku + List element of "options" is not an object. + Element lista w "options" nie jest obiektem. - Revert to Saved - Odwróć zmiany + No "key" given for entry in "options". + - You will lose your current changes if you proceed reverting %1. - Utracisz swoje bieżące zmiany w %1 jeśli potwierdzisz wykonanie tego polecenia. + When parsing "options": Key "%1" set more than once. + W trakcie parsowania "options": klucz "%1" ustawiony wielokrotnie. + + + ProjectExplorer::JsonWizardGenerator - Proceed - Wykonaj + %1 [folder] + %1 [katalog] - Cancel - Anuluj + %1 [symbolic link] + %1 [dowiązanie symboliczne] - - - Core::JsExpander - Error in "%1": %2 - Błąd w "%1": %2 + %1 [read only] + %1 [tylko do odczytu] - Cannot convert result of "%1" to string. - Nie można skonwertować rezultatu "%1" do ciągu znakowego. + The directory %1 contains files which cannot be overwritten: +%2. + Katalog %1 zawiera pliki które nie mogą być nadpisane: +%2. + + + ProjectExplorer::EnvironmentKitInformation - Evaluate simple Javascript statements. -The statements may not contain '{' nor '}' characters. + The environment setting value is invalid. - Core::PatchTool - - There is no patch-command configured in the general "Environment" settings. - Brak skonfigurowanej komendy "patch" w głównych ustawieniach środowiska. - + ProjectExplorer::Internal::KitEnvironmentConfigWidget - Executing in %1: %2 %3 - Wykonywanie w %1: %2 %3 + Change... + Zmień... - Unable to launch "%1": %2 - Nie można uruchomić "%1": %2 + Environment: + Środowisko: - A timeout occurred running "%1" - Przekroczony czas oczekiwania na odpowiedź od uruchomionego "%1" + Additional environment settings when using this kit. + Dodatkowe ustawienia środowiska w czasie używania tego zestawu narzędzi. - "%1" crashed. - "%1" zakończył pracę błędem. + No changes to apply. + Brak zmian do zastosowania. - "%1" failed (exit code %2). - '%1' zakończone błędem (kod wyjściowy %2). + Edit Environment Changes + - Core::Internal::ThemeEditor::ThemeSettingsItemDelegate - - <Unnamed> (Current) - - + ProjectExplorer::Project - (Current) - + Project + Projekt - Remove Variable Name - Usuń nazwę zmiennej + Project Name + Nazwa projektu + + + ProjectWizard - Add Variable Name... - Dodaj nazwę zmiennej... + The files are implicitly added to the projects: + Pliki, które zostały niejawnie dodane do projektów: - Add Variable Name - Dodaj nazwę zmiennej + <None> + <Brak> - Variable name: - Nazwa zmiennej: + <Implicitly Add> + <Niejawnie dodaj> - Core::Internal::ThemeEditor::ThemeSettingsTableModel + Utils::SettingsAccessor - Widget Style - Styl widżetów + No Valid Settings Found + Brak poprawnych ustawień - Colors - Kolory + <p>No valid settings file could be found.</p><p>All settings files found in directory "%1" were either too new or too old to be read.</p> + <p>Brak poprawnego pliku z ustawieniami.</p><p>Napotkane pliki z ustawieniami w katalogu "%1" były albo zbyt nowe, albo zbyt stare, aby je odczytać.</p> - Flags - Flagi + Using Old Settings + Użycie starych ustawień - Image Files - Pliki graficzne + <p>The versioned backup "%1" of the settings file is used, because the non-versioned file was created by an incompatible version of Qt Creator.</p><p>Settings changes made since the last time this version of Qt Creator was used are ignored, and changes made now will <b>not</b> be propagated to the newer version.</p> + <p>Użyta zostanie kopia zapasowa "%1" pliku z ustawieniami .user, ponieważ w międzyczasie oryginalny plik z ustawieniami został zachowany przez niekompatybilną wersję Qt Creatora.</p><p>Jeżeli nastąpią teraz zmiany w ustawieniach projektu to <b>nie</b> zostaną one zastosowane w nowszej wersji Qt Creatora.</p> + + + ProjectExplorer::EnvironmentIdAccessor - Role - + <p>No .user settings file created by this instance of Qt Creator was found.</p><p>Did you work with this project on another machine or using a different settings path before?</p><p>Do you still want to load the settings file "%1"?</p> + <p>Brak pliku .user z ustawieniami, utworzonego przez tego Qt Creatora.</p><p>Czy pracowałeś z tym projektem na innej maszynie lub używałeś innej ścieżki do ustawień?</p><p>Czy załadować plik "%1" z ustawieniami?</p> - Value - Wartość + Settings File for "%1" from a different Environment? + Plik z ustawieniami dla "%1" z innego środowiska? - QCoreApplication + ProjectExplorer::Target - unnamed - nienazwany + Target Settings + Katalog docelowy - %1 (built-in) - %1 (wbudowany) + Source directory + Katalog źródłowy - Core::Internal::ThemeSettingsWidget + ProjectExplorer::Task - Delete Theme - Usuń motyw + Qt Creator needs a compiler set up to build. Configure a compiler in the kit options. + Do budowy Qt Creator wymaga ustawionego kompilatora. Skonfiguruj go w opcjach zestawu narzędzi. - Are you sure you want to delete the theme '%1' permanently? - Czy na pewno usunąć motyw "%1" na stałe? + Qt Creator needs a build configuration set up to build. Configure a build configuration in the project settings. + Do budowy Qt Creator wymaga konfiguracji budowania. Dodaj konfigurację w opcjach zestawu narzędzi. + + + ProjectExplorer::XcodebuildParser - Delete - Usuń + Replacing signature + - Copy Theme - Skopiuj motyw + Xcodebuild failed. + + + + QmakeAndroidSupport::Internal::AndroidPackageInstallationFactory - Theme name: - Nazwa motywu: + Deploy to device + Zainstaluj na urządzeniu + + + QmakeAndroidSupport::Internal::AndroidPackageInstallationStep - Theme Changed - Motyw został zmieniony + Copy application data + Skopiuj dane aplikacji - The theme "%1" was modified, do you want to save the changes? - Motyw "%1" został zmodyfikowany, czy zachować zmiany? + Removing directory %1 + Usuwanie katalogu %1 + + + QmakeAndroidSupport::Internal::AndroidPackageInstallationStepWidget - Discard - Porzuć + <b>Make install</b> + - Rename Theme - Zmień nazwę motywu + Make install + - Core::Internal::VariableChooserPrivate + QmakeAndroidSupport::Internal::NoApplicationProFilePage - Insert variable - Wstaw zmienną + No application .pro file found in this project. + Brak pliku .pro aplikacji w tym projekcie. + + + No Application .pro File + Brak pliku .pro aplikacji - Core::Internal::VariableTreeView + QmakeAndroidSupport::Internal::ChooseProFilePage - Insert unexpanded value - Wstaw zwiniętą wartość + Select the .pro file for which you want to create the Android template files. + Wybierz plik .pro dla którego utworzyć pliki szablonu Android. - Insert "%1" - Wstaw "%1" + .pro file: + Plik .pro: - Insert expanded value - Wstaw rozwiniętą wartość + Select a .pro File + Wybierz plik .pro - Core::Internal::WindowSupport + QmakeAndroidSupport::Internal::ChooseDirectoryPage - Exit Full Screen - Wyłącz tryb pełnoekranowy + The Android package source directory cannot be the same as the project directory. + Katalog ze źródłami pakietu Android nie może być taki sam jak katalog projetku. - Enter Full Screen - Włącz tryb pełnoekranowy + Android package source directory: + Katalog źródłowy pakietu Android: - - - CppEditor::Internal::CppEditorWidget - &Refactor - &Refaktoryzacja + It is highly recommended if you are planning to extend the Java part of your Qt application. + Jest to rekomendowane w przypadku rozszerzania kodu Java w aplikacji Qt. - - - CppEditor::Internal::CppEditorOutline - Sort Alphabetically - Posortuj alfabetycznie + Select the Android package source directory. + +The files in the Android package source directory are copied to the build directory's Android directory and the default files are overwritten. + Wybierz katalog źródłowy pakietu Android. + +Pliki z katalogu źródłowego pakietu Android są kopiowane do katalogu budowania i domyślne pliki są nadpisywane. - - - CppSourceProcessor - %1: No such file or directory - %1: Brak pliku lub katalogu + The Android template files will be created in the ANDROID_PACKAGE_SOURCE_DIR set in the .pro file. + Pliki z szablonami Android będą utworzone w ANDROID_PACKAGE_SOURCE_DIR, który jest ustawiony w pliku .pro. - %1: Could not get file contents - %1: Nie można odczytać zawartości pliku + Copy the Gradle files to Android directory + Skopiuj pliki Gradle do katalogu Android - Cvs::Internal::CvsEditorWidget + QmakeAndroidSupport::Internal::CreateAndroidManifestWizard - Annotate revision "%1" - Dołącz adnotację do poprawki "%1" + Create Android Template Files Wizard + - - - Debugger::Internal::LocalsAndExpressionsOptionsPage - Use Debugging Helper - Używaj asystenta debuggera + Overwrite %1 file + Nadpisz plik %1 - The debugging helpers are used to produce a nice display of objects of certain types like QString or std::map in the &quot;Locals and Expressions&quot; view. - Asystenci debuggera pomagają lepiej wizualizować obiekty pewnych typów, jak np. QString lib std::map w widoku &quot;Zmienne lokalne i wyrażenia&quot;. + Overwrite existing "%1"? + Nadpisać istniejący "%1"? - Use code model - Używaj modelu kodu + File Creation Error + Błąd tworzenia pliku - Makes use of Qt Creator's code model to find out if a variable has already been assigned a value at the point the debugger interrupts. - Korzysta z modelu kodu Qt Creatora w celu zbadania czy wartość została już przypisana do zmiennej w chwili przerwania debuggera. + Could not copy file "%1" to "%2". + Nie można skopiować pliku "%1" do "%2". - Displays names of QThread based threads. - Wyświetla nazwy wątków dziedziczących z QThread. + Project File not Updated + Nieaktualny plik projektu - Display thread names - Wyświetlaj nazwy wątków + Could not update the .pro file %1. + Nie można uaktualnić pliku .pro %1. + + + QmakeAndroidSupport::Internal::QmakeAndroidBuildApkStepFactory - Shows "std::" prefix for types from the standard library. - Pokazuje przedrostek "std::" dla typów z biblioteki standardowej. + Build Android APK + Zbuduj Android APK + + + QmakeAndroidSupport::Internal::QmakeAndroidBuildApkStep - Show "std::" namespace for types - Pokazuj przestrzeń nazw "std::" dla typów + Found old folder "android" in source directory. Qt 5.2 does not use that folder by default. + Odnaleziono folder "android" w katalogu źródłowym. Qt 5.2 domyślnie nie używa tego katalogu. - Shows Qt namespace prefix for Qt types. This is only relevant if Qt was configured with '-qtnamespace'. - Pokazuje przestrzeń nazw Qt dla typów Qt. Ma to zastosowanie jedynie dla Qt skonfigurowanego z "-qtnamespace". + No application .pro file found, not building an APK. + Brak pliku .pro aplikacji, budowanie APK wstrzymane. - Qt's namespace for types - Pokazuj przestrzeń nazw Qt dla typów + Starting: "%1" %2 + Uruchamianie "%1" %2 + + + QmakeAndroidSupport::Internal::QmakeAndroidRunConfiguration - <unlimited> - <nieograniczona> + The .pro file "%1" is currently being parsed. + Trwa parsowanie pliku .pro "%1". + + + QmlDesigner::CrumbleBar - Maximum string length: - Maksymalna długość ciągu tekstowego: + Save the changes to preview them correctly. + Zachowaj zmiany aby utworzyć poprawny podgląd. - Display string length: - Wyświetlaj długości ciągów tekstowych: + Always save when leaving subcomponent + Zawsze zachowuj przy opuszczaniu podkomponentu - Debugger::Internal::DebuggerPlugin + NavigatorTreeModel - Debug - Debug + Warning + Ostrzeżenie - Option "%1" is missing the parameter. - Brak parametru w opcji "%1". + Reparenting the component %1 here will cause the component %2 to be deleted. Do you want to proceed? + Przeniesienie komponentu %1 tutaj spowoduje usunięcie komponentu %2. Czy kontynuować? + + + QmlDesigner::AddTabDesignerAction - Only one executable allowed. - Dozwolony jest tylko jeden plik wykonywalny. + Naming Error + Błąd nazwy - The parameter "%1" of option "%2" does not match the pattern <handle>:<pid>. - Parametr "%1" opcji "%2" nie pasuje do wzoru <uchwyt>:<pid>. + Component already exists. + Komponent już istnieje. + + + NodeInstanceServerProxy - Invalid debugger option: %1 - Niepoprawna opcja debuggera: %1 + Cannot Connect to QML Emulation Layer (QML Puppet) + Nie można podłączyć emulatora QML (QML Puppet) - Process %1 - Proces %1 + The executable of the QML emulation layer (QML Puppet) may not be responding. Switching to another kit might help. + Emulator QML (QML Puppet) pozostaje bez odpowiedzi. Pomocne może być przełączenie się na inny zestaw narzędzi. + + + PuppetCreator - Symbol - Symbol + QML Emulation Layer (QML Puppet) Building was Unsuccessful + Nie można zbudować emulatora QML (QML Puppet) - Address - Adres + The QML emulation layer (QML Puppet) cannot be built. The fallback emulation layer, which does not support all features, will be used. + - Code - Kod + Qt Version is not supported + Wersja Qt nie jest obsługiwana - Section - Sekcja + The QML emulation layer (QML Puppet) cannot be built because the Qt version is too old or it cannot run natively on your computer. The fallback emulation layer, which does not support all features, will be used. + - Name - Nazwa + Kit is invalid + Niepoprawny zestaw narzędzi - Symbols in "%1" - Symbole w "%1" + The QML emulation layer (QML Puppet) cannot be built because the kit is not configured correctly. For example the compiler can be misconfigured. Fix the kit configuration and restart Qt Creator. Otherwise, the fallback emulation layer, which does not support all features, will be used. + + + + QmlJSEditor::Internal::QmlJSEditorWidget - From - Od + Show Qt Quick ToolBar + Pokaż pasek narzędzi Qt Quick - To - Do + Code Model Not Available + Model kodu niedostępny - Flags - Flagi + Code model not available. + Model kodu niedostępny - Sections in "%1" - Sekcje w "%1" + Code Model of %1 + Model kodu "%1" - Some breakpoints cannot be handled by the debugger languages currently active, and will be ignored. -Affected are breakpoints %1 - Niektóre pułapki nie mogą być obsłużone przez aktywne języki debuggera i zostaną zignorowane. -Dotyczy to następujących pułapek: %1 + Refactoring + Refaktoryzacja - Not enough free ports for QML debugging. - Niewystarczająca ilość wolnych portów do debugowania QML. + This file should only be edited in <b>Design</b> mode. + Ten plik powinien być modyfikowany jedynie w trybie <b>Design</b>. - Unable to create a debugger engine of the type "%1" - Nie można utworzyć silnika debuggera typu "%1" + Switch Mode + Przełącz tryb - Debugger::Internal::DebuggerToolTipManager - - %1 (Previous) - %1 (poprzedni) - + QmlJSEditor::Internal::QmlJSHoverHandler - %1 (Restored - %1 (Przywrócony) + Library at %1 + Biblioteka w %1 - No valid expression - Brak poprawnego wyrażenia + Dumped plugins successfully. + Wtyczki poprawnie zrzucone. - Expression too complex - Wyrażenie zbyt skomplikowane + Read typeinfo files successfully. + Pliki typeinfo poprawnie odczytane. - FormEditorW - - Widget box - Panel widżetów - - - Object Inspector - Hierarchia obiektów - + Qnx::Internal::QnxConfiguration - Property Editor - Edytor właściwości + The following errors occurred while activating the QNX configuration: + Wystąpiły następujące błędy podczas aktywowania konfiguracji QNX: - Signals && Slots Editor - Edytor sygnałów / slotów + Cannot Set Up QNX Configuration + Nie można ustawić konfiguracji QNX - Action Editor - Edytor akcji + QCC for %1 (armv7) + QCC dla %1 (armv7) - Widget Box - Panel widżetów + QCC for %1 (x86) + QCC dla %1 (x86) - Edit Widgets - Modyfikuj widżety + Debugger for %1 (armv7) + Debugger dla %1 (armv7) - F3 - F3 + Debugger for %1 (x86) + Debugger dla %1 (x86) - Edit Signals/Slots - Modyfikuj sygnały / sloty + Kit for %1 (armv7) + Zestaw narzędzi dla %1 (armv7) - F4 - F4 + Kit for %1 (x86) + Zestaw narzędzi dla %1 (x86) - Edit Buddies - Modyfikuj skojarzone etykiety + - No GCC compiler found. + - Brak kompilatora GCC. - Edit Tab Order - Modyfikuj kolejność tabulacji + - No GDB debugger found for armvle7. + - Brak debuggera GDB dla urządzenia armvle7. - Meta+Shift+H - Meta+Shift+H + - No GDB debugger found for x86. + - Brak debuggera dla urządzenia x86. + + + QNX - Ctrl+H - Ctrl+H + QNX + QNX + + + Qnx::Internal::QnxPlugin - Meta+L - Meta+L + Attach to remote QNX application... + Dołącz do zdalnej aplikacji QNX... + + + Qnx::Internal::QnxSettingsPage - Ctrl+L - Ctrl+L + QNX + QNX + + + RemoteLinux::Internal::RemoteLinuxCustomRunConfiguration - Meta+Shift+G - Meta+Shift+G + The remote executable must be set in order to run a custom remote run configuration. + W celu uruchomienia własnej, zdalnej konfiguracji uruchamiania, należy ustawić zdalny plik wykonywalny. - Ctrl+G - Ctrl+G + Run "%1" on Linux Device + Uruchom "%1" na urządzeniu linuksowym - Meta+J - Meta+J + Custom Executable (on Remote Generic Linux Host) + Własny plik wykonywalny (na zdalnym ogólnym hoście linuksowym) + + + ResourceEditor::Internal::PrefixLangDialog - Ctrl+J - Ctrl+J + Prefix: + Przedrostek: - Alt+Shift+R - Alt+Shift+R + Language: + Język: + + + Subversion::Internal::SubversionEditorWidget - About Qt Designer Plugins... - Informacje o wtyczkach Qt Designera... + Annotate revision "%1" + Dołącz adnotację do poprawki "%1" + + + TaskList::Internal::TaskListPlugin - Preview in - Podgląd w stylu + Cannot open task file %1: %2 + Nie można otworzyć pliku z zadaniem %1: %2 - Designer - Designer + File Error + Błąd pliku - This file can only be edited in <b>Design</b> mode. - Ten plik może być modyfikowany jedynie w trybie <b>Design</b>. + My Tasks + Moje zadania + + + TextEditor::Internal::MultiDefinitionDownloader - Switch Mode - Przełącz tryb + Downloading Highlighting Definitions + Pobieranie definicji podświetleń - The image could not be created: %1 - Nie można utworzyć pliku graficznego: %1 + Error downloading selected definition(s). + Błąd pobierania wybranych definicji. - - - ProjectExplorer::JsonWizard - "data" for a "Form" page needs to be unset or an empty object. - "data" na stronie "Form" powinna pozostać nieustawiona lub być pustym obiektem. + Error downloading one or more definitions. + Błąd pobierania jednej lub wielu definicji. - Check whether a variable exists. Returns "true" if it does and an empty string if not. - Sprawdź, czy zmienna istnieje. Zwraca "prawdę" jeśli istnieje lub pusty ciąg tekstowy w przeciwnym razie. + Please check the directory's access rights. + Sprawdź prawa dostępu do katalogu. - Could not determine target path. "TargetPath" was not set on any page. - + Download Error + Błąd pobierania + + + TextEditor::TextDocument - File Generation Failed - Błąd generowania pliku + Opening File + Otwieranie pliku + + + TextEditor::TextEditorWidget - The wizard failed to generate files.<br>The error message was: "%1". - Kreator nie wygenerował plików.<br>Komunikat z błędem: "%1". + CTRL+D + Ctrl+D - Failed to Overwrite Files - Nie można nadpisać plików + Print Document + Wydruk dokumentu - Failed to Format Files - Nie można sformatować plików + File Error + Błąd pliku - Failed to Write Files - Nie można zapisać plików + The text is too large to be displayed (%1 MB). + Tekst jest zbyt obszerny aby mógł zostać wyświetlony (%1 MB). - Failed to Post-Process Files - Nie można przetworzyć wygenerowanych plików + <b>Error:</b> Could not decode "%1" with "%2"-encoding. Editing not possible. + <b>Błąd:</b> Nie można odkodować "%1" używając kodowania "%2". Edycja nie jest możliwa. - Failed to Open Files - Nie można otworzyć plików + Select Encoding + Wybierz kodowanie - When processing "%1":<br>%2 - W trakcie przetwarzania "%1":<br>%2 + Delete UTF-8 BOM on Save + Usuwaj UTF-8 BOM przy zachowywaniu - Failed to open "%1" as a project. - Nie można otworzyć "%1" jako projekt. + Add UTF-8 BOM on Save + Dodawaj UTF-8 BOM przy zachowywaniu - Failed to open an editor for "%1". - Nie można otworzyć edytora dla "%1". + Line: %1, Col: %2 + Linia: %1, kolumna: %2 - When parsing fields of page '%1': %2 - W trakcie parsowania pól strony "%1": %2 + Line: 9999, Col: 999 + Linia: 9999, kolumna: 999 + + + VcsBase::VcsOutputWindow - "data" for a "File" page needs to be unset or an empty object. - "data" na stronie "File" powinna pozostać nieustawiona lub być pustym obiektem. + Open "%1" + Otwórz "%1" - "data" must be a JSON object for "Kits" pages. - "data" musi być obiektem JSON dla stron "Kits". + Clear + Wyczyść - "Kits" page requires a "projectFilePath" set. - Strona "Kits" wymaga ustawienia "projectFilePath". + Version Control + System kontroli wersji - "data" for a "Project" page needs to be unset or an empty object. - "data" na stronie "Project" powinna pozostać nieustawiona lub być pustym obiektem. + Executing: %1 %2 + Wykonywanie: %1 %2 - "data" for a "Summary" page needs to be unset or an empty object. - "data" na stronie "Summary" powinna pozostać nieustawiona lub być pustym obiektem. + Executing in %1: %2 %3 + Wykonywanie w %1: %2 %3 - DiffEditor::DiffEditorDocument + WinRt::Internal::WinRtDebugSupport - Could not parse patch file "%1". The content is not of unified diff format. - Nie można sparsować pliku z łatami "%1". Zawartość nie jest w formacie ujednoliconym (unified diff). + The WinRT debugging helper is missing from your Qt Creator installation. It was assumed to be located at %1 + - - - DiffEditor::UnifiedDiffEditorWidget - No controller - Brak kontrolera + Cannot start the WinRT Runner Tool. + - Send Chunk to CodePaster... - Wyślij fragment do Codepaster... + Cannot establish connection to the WinRT debugging helper. + - Apply Chunk... - Zastosuj fragment... + Cannot extract the PID from the WinRT debugging helper. (output: %1) + - Revert Chunk... - Zastosuj odwrotny fragment... + Cannot create an appropriate run control for the current run configuration. + + + + WinRt::Internal::WinRtRunnerHelper - Unable to Paste - Nie można wkleić + The current kit has no Qt version. + Brak wersji Qt w bieżącym zestawie narzędzi. - Code pasting services are not available. - Usługi wklejania kodu są niedostępne. + Cannot find winrtrunner.exe in "%1". + Brak winrtrunner.exe w "%1". - Revert Chunk - Odwróć zmiany we fragmencie + Cannot determine the executable file path for "%1". + Nie można określić ścieżki do pliku wykonywalnego dla "%1". - Apply Chunk - Zastosuj fragment + Error while executing the WinRT Runner Tool: %1 + + + + + Help::Internal::IndexWindow - Would you like to revert the chunk? - Czy zastosować odwrotny fragment? + &Look for: + Wy&szukaj: - Would you like to apply the chunk? - Czy zastosować fragment? + Open Link + Otwórz odsyłacz - No difference - Brak różnic + Open Link as New Page + Otwórz odsyłacz na nowej stronie - EmacsKeys::Internal::EmacsKeysPlugin - - Delete Character - Usuń znak - + RowLabel - Kill Word - Skasuj słowo + [unknown] + [nieznany] + + + QbsProjectManager::Internal::CustomQbsPropertiesDialog - Kill Line - Skasuj linię + Custom Properties + Własne właściwości - Insert New Line and Indent - Wstaw nową linię i dopasuj wcięcie + &Add + &Dodaj - Go to File Start - Przejdź do początku pliku + &Remove + &Usuń - Go to File End - Przejdź do końca pliku + Key + Klucz - Go to Line Start - Przejdź do początku linii + Value + Wartość + + + QbsProjectManager::Internal::QbsProfilesSettingsWidget - Go to Line End - Przejdź do końca linii + Form + Formularz - Go to Next Line - Przejdź do następnej linii + Kit: + Zestaw narzędzi: - Go to Previous Line - Przejdź do poprzedniej linii + Associated profile: + Skojarzony profil: - Go to Next Character - Przejdź do następnego znaku + Profile properties: + Właściwości profilu: - Go to Previous Character - Przejdź do poprzedniego znaku + E&xpand All + &Rozwiń wszystko - Go to Next Word - Przejdź do następnego słowa + &Collapse All + &Zwiń wszystko - Go to Previous Word - Przejdź do poprzedniego słowa + &Edit... + &Modyfikuj... + + + Todo::Internal::TodoProjectSettingsWidget - Mark - Wstaw znacznik + Excluded Files + Wyłączone pliki - Exchange Cursor and Mark - Wymień kursor i wstaw znacznik + Regular expressions for file paths to be excluded from scanning. + Wyrażenie regularne dla plików, które mają być wyłączone ze skanowania. - Copy - Skopiuj + Add + Dodaj - Cut - Wytnij + Remove + Usuń - Yank + To-Do Settings - - Scroll Half Screen Down - Przewiń o pół ekranu w dół - - - Scroll Half Screen Up - Przewiń o pół ekranu w górę - - FakeVim + LayoutPoperties - Unknown option: %1 - Nieznana opcja: %1 + Alignment + Wyrównanie - Argument must be positive: %1=%2 - Argument musi być dodatni: %1=%2 + Alignment of an item within the cells it occupies. + - Use Vim-style Editing - Włącz edycję w stylu vim + Fill layout + - Read .vimrc - Odczytuj .vimrc + The item will expand as much as possible while respecting the given constraints if true. + - Path to .vimrc - Ścieżka do .vimrc + Fill width + - Mark "%1" not set. - Nie ustawiono znacznika "%1". + Fill height + - Recursive mapping - Mapowanie rekurencyjne + Preferred size + Preferowany rozmiar - %1%2% - %1%2% + Preferred height of an item in a layout. If the preferred height is -1, it will be ignored. + - %1All - %1Wszystkie + Minimum size + Minimalny rozmiar - Not implemented in FakeVim. - Nieobsługiwane w FakeVim. + Minimum size of an item in a layout. + Minimalny rozmiar elementu w rozmieszczeniu. - Type Alt-V, Alt-V to quit FakeVim mode. - Naciśnij Alt-V, Alt-V aby wyjść z trybu FakeVim. + Maximum size + Maksymalny rozmiar - Unknown option: - Nieznana opcja: + Maximum size of an item in a layout. + Maksymalny rozmiar elementu w rozmieszczeniu. - Invalid argument: - Niepoprawny argument: + Row span + - Trailing characters: - Białe znaki na końcu linii: + Row span of an item in a GridLayout. + - Move lines into themselves. + Column span - - %n lines moved. - - %n linia przesunięta. - %n linie przesunięte. - %n linii przesuniętych. - - - File "%1" exists (add ! to override) - Plik "%1" istnieje (dodaj ! aby go nadpisać) + Column span of an item in a GridLayout. + + + + Utils::ShellCommand - Cannot open file "%1" for writing - Nie można otworzyć pliku "%1" do zapisu + UNKNOWN + NIEZNANY - "%1" %2 %3L, %4C written. - "%1" %2 zapisano: %3 linii, %4 znaków. + Unknown + Nieznany - [New] - [Nowy] + Error: Executable timed out after %1 s. + Błąd: plik wykonywalny nie odpowiada po upływie %1 s. + + + Utils::ShellCommandPage - Cannot open file "%1" for reading - Nie można otworzyć pliku "%1" do odczytu + Command started... + Komenda uruchomiona... - "%1" %2L, %3C - "%1" %2L, %3C - - - %n lines filtered. - - Przefiltrowano %n linię. - Przefiltrowano %n linie. - Przefiltrowano %n linii. - + Run Command + Uruchom komendę - Cannot open file %1 - Nie można otworzyć pliku %1 + No job running, please abort. + Brak uruchomionych zadań, przerwij. - Not an editor command: %1 - %1 nie jest komendą edytora + Succeeded. + Poprawnie zakończone. - Invalid regular expression: %1 - Niepoprawne wyrażenie regularne: %1 + Failed. + Niepoprawnie zakończone. + + + Analyzer::AnalyzerManager - Pattern not found: %1 - Brak dopasowań do wzorca: %1 + Analyze + Analiza - Search hit BOTTOM, continuing at TOP. - Przeszukano do KOŃCA, wznowiono od POCZĄTKU. + &Analyze + &Analiza - Search hit TOP, continuing at BOTTOM. - Przeszukano do POCZĄTKU, wznowiono od KOŃCA. + Start + Uruchom - Search hit BOTTOM without match for: %1 - Przeszukano do KOŃCA, brak wyników pasujących do: %1 + Stop + Zatrzymaj - Search hit TOP without match for: %1 - Przeszukano do POCZĄTKU, brak wyników pasujących do: %1 - - - %n lines indented. - - Wyrównano %n linię. - Wyrównano %n linie. - Wyrównano %n linii. - - - - %n lines %1ed %2 time. - %1ed - crazy!!! - - - - - - - - %n lines yanked. - - - - - + Analyzer Toolbar + Pasek narzędzi analizatora - Already at oldest change. - Osiągnięto najstarszą zmianę. + An analysis is still in progress. + Nadal trwa analiza. - Already at newest change. - Osiągnięto najnowszą zmianę. + No analyzer tool selected. + Brak wybranego narzędzia analizy. - General - Ogólne + Debug + Debug - FakeVim - FakeVim + Release + Release - Keep empty to use the default path, i.e. %USERPROFILE%\_vimrc on Windows, ~/.vimrc otherwise. - Pozostaw pustym aby użyć domyślnej ścieżki, tzn.%USERPROFILE%\_vimrc na Windows i ~/.vimrc w pozostałych przypadkach. + Tool + Narzędzie - Default: %1 - Domyślnie: %1 + Run %1 in %2 Mode? + Uruchomić %1 w trybie %2? - Ex Command Mapping - Mapowanie komend Ex + <html><head/><body><p>You are trying to run the tool "%1" on an application in %2 mode. The tool is designed to be used in %3 mode.</p><p>Debug and Release mode run-time characteristics differ significantly, analytical findings for one mode may or may not be relevant for the other.</p><p>Do you want to continue and run the tool in %2 mode?</p></body></html> + <html><head/><body><p>Próba uruchomienia narzędzia "%1" dla aplikacji w trybie %2. Narzędzie nie jest zaprojektowane do użycia w trybie %3.</p><p>Charakterystyki uruchamiania w trybach Debug i Release znacznie się różnią, analityczne dane z jednego trybu nie będą odpowiadały drugiemu trybowi.</p><p>Czy kontynuować i uruchomić je w trybie %2?</p></body></html> + + + Analyzer::DetailedErrorView - Ex Trigger Expression - Wyzwalacz Ex + Copy + Skopiuj + + + Android::Internal::AndroidDeviceModelDelegate - Regular expression: - Wyrażenie regularne: + OpenGL enabled + OpenGL aktywny - Ex Command - Komenda Ex + OpenGL disabled + OpenGL nieaktywny + + + BareMetal::Internal::BareMetalCustomRunConfigWidget - Action - Akcja + Executable: + Plik wykonywalny: - Command - Komenda + Arguments: + Argumenty: - User Command Mapping - Mapa komend użytkownika + Work directory: + Katalog roboczy: + + + BareMetal::Internal::BareMetalCustomRunConfiguration - User command #%1 - Komenda użytkownika #%1 + The remote executable must be set in order to run a custom remote run configuration. + W celu uruchomienia własnej, zdalnej konfiguracji uruchamiania, należy ustawić zdalny plik wykonywalny. - Meta+V,Meta+V - Meta+V,Meta+V + Custom Executable (on GDB server or hardware debugger) + Własny plik wykonywalny (na serwerze GDB lub debuggerze sprzętowym) + + + BareMetal::Internal::BareMetalDebugSupport - Alt+V,Alt+V - Alt+V,Alt+V + Debugging failed. + Błąd debugowania. - Execute User Action #%1 - Wykonaj akcję użytkownika #%1 + Initial setup failed: %1 + Błąd wstępnej konfiguracji: %1 - Meta+V,%1 - Meta+V,%1 + Starting GDB server... + Uruchamianie serwera GDB... + + + BareMetal::Internal::DefaultGdbServerProviderFactory - Alt+V,%1 - Alt+V,%1 + Default + Domyślny + + + BareMetal::Internal::DefaultGdbServerProviderConfigWidget - "%1" %2 %3L, %4C written - "%1" %2 zapisano: %3 linii, %4 znaków + Host: + Host: - File not saved - Plik nie został zachowany + Init commands: + Komendy inicjalizujące: - Saving succeeded - Zachowywanie poprawnie zakończone - - - %n files not saved - - Nie zachowano %n pliku - Nie zachowano %n plików - Nie zachowano %n plików - + Reset commands: + Komendy resetujące: - Git::Internal::GitEditorWidget + BareMetal::GdbServerProvider - Blame %1 - Blame %1 + Clone of %1 + Klon %1 + + + BareMetal::Internal::GdbServerProviderConfigWidget - Blame Parent Revision %1 + Enter the name of the GDB server provider. - Reset - Zresetuj - - - All changes in working directory will be discarded. Are you sure? - Wszystkie zmiany w katalogu roboczym zostaną utracone. Czy kontynuować? + Name: + Nazwa: - Chunk successfully staged + Choose the desired startup mode of the GDB server provider. - Stage Chunk... - + Startup mode: + Tryb startowy: - Unstage Chunk... + No Startup - Cherry-Pick Change %1 + Startup in TCP/IP Mode - Revert Change %1 - Odwróć zmianę %1 + Startup in Pipe Mode + + + + BareMetal::Internal::HostWidget - Checkout Change %1 + Enter TCP/IP hostname of the GDB server provider, like "localhost" or "192.0.2.1". - Hard Reset to Change %1 + Enter TCP/IP port which will be listened by the GDB server provider. - Git::Internal::GitSubmitEditor + BareMetal::Internal::GdbServerProviderChooser - Refreshing Commit Data - + Manage... + Zarządzaj... + + + None + Brak - Git::Internal::RemoteModel + BareMetal::Internal::GdbServerProviderModel Name Nazwa - URL - URL + Type + Typ + + + Duplicate Providers Detected + + + + The following providers were already configured:<br>&nbsp;%1<br>They were not configured again. + - GlslEditor::Internal::GlslEditorPlugin + BareMetal::Internal::GdbServerProvidersSettingsPage - GLSL - GLSL sub-menu in the Tools menu - GLSL + Add + Dodaj + + + Clone + Sklonuj + + + Remove + Usuń + + + GDB Server Providers + - Help::Internal::HelpWidget + BareMetal::Internal::OpenOcdGdbServerProviderFactory - Go to Help Mode - Przejdź do trybu pomocy + OpenOCD + OpenOCD + + + BareMetal::Internal::OpenOcdGdbServerProviderConfigWidget - Home - Strona startowa + Host: + Host: - Back - Wstecz + Executable file: + Plik wykonywalny: - Forward - Do przodu + Root scripts directory: + Korzeń katalogu ze skryptami: - Add Bookmark - Dodaj zakładkę + Configuration file: + Plik z konfiguracją: - Meta+M - Meta+M + Additional arguments: + Dodatkowe argumenty: - Ctrl+M - Ctrl+M + Init commands: + Komendy inicjalizujące: - Increase Font Size - Zwiększ rozmiar czcionki + Reset commands: + Komendy resetujące: + + + BareMetal::Internal::StLinkUtilGdbServerProviderFactory - Decrease Font Size - Zmniejsz rozmiar czcionki + ST-LINK Utility + Narzędzie ST-LINK + + + BareMetal::Internal::StLinkUtilGdbServerProviderConfigWidget - Reset Font Size - Zresetuj rozmiar czcionki + Host: + Host: - Meta+Shift+C - Meta+Shift+C + Executable file: + Plik wykonywalny: - Ctrl+Shift+C - Ctrl+Shift+C + Specify the verbosity level (0..99). + Poziom gadatliwości (0..99). - Meta+I - Meta+I + Verbosity level: + Poziom gadatliwości: - Ctrl+Shift+I - Ctrl+Shift+I + Continue listening for connections after disconnect. + Kontynuuj nasłuchiwanie nowych połączeń po rozłączeniu. - Activate Help Bookmarks View - Uaktywnij widok z zakładkami pomocy + Extended mode: + Tryb rozszerzony: - Meta+B - Meta+B + Reset board on connection. + - Ctrl+Shift+B - Ctrl+Shift+B + Reset on connection: + Zresetuj po połączeniu: - Activate Help Search View - Uaktywnij widok z przeszukiwaniem pomocy + Transport layer type. + - Meta+/ - Meta+/ + Version: + Wersja: - Ctrl+Shift+/ - Ctrl+Shift+/ + Init commands: + Komendy inicjalizujące: - Activate Open Help Pages View - Uaktywnij widok ze stronami otwartej pomocy + Reset commands: + Komendy resetujące: - Meta+O - Meta+O + ST-LINK/V1 + ST-LINK/V1 - Ctrl+Shift+O - Ctrl+Shift+O + ST-LINK/V2 + ST-LINK/V2 + + + CMakeProjectManager::Internal::CMakeKitConfigWidget - Help - Pomoc + CMake Tool: + Narzędzie CMake: - Help - %1 - Pomoc - %1 + The CMake Tool to use when building a project with CMake.<br>This setting is ignored when using other build systems. + Narzędzie CMake używane podczas budowania projektu CMake.<br>Ustawienie to jest ignorowane podczas budowania za pomocą innych systemów budowania. - Print Documentation - Wydruk dokumentacji + <No CMake Tool available> + <Brak narzędzia CMake> - Help::Internal::QtWebKitHelpWidget + CMakeProjectManager::CMakeKitInformation - Open Link as New Page - Otwórz odsyłacz na nowej stronie + CMake + CMake - - - Help::Internal::SearchTaskHandler - Get Help Online - Sięgnij po pomoc online + Unconfigured + Nieskonfigurowane - Help::Internal::SearchSideBarItem + CMakeProjectManager::Internal::NoCMakePage - Regenerate Index - Ponownie wygeneruj indeks + Check CMake Tools + Sprawdź narzędzia CMake - - - Help::Internal::TextBrowserHelpWidget - Open Link - Otwórz odsyłacz + There are CMake Tools registered. + Istnieją zarejestrowane narzędzia CMake. - Copy Link - Skopiuj odsyłacz + Qt Creator has no CMake Tools that are required for CMake projects. Please configure at least one. + Qt Creator nie posiada skonfigurowanych narzędzi CMake. Skonfiguruj przynajmniej jedno. + + + CMakeProjectManager::CMakeSettingsPage - Copy - Skopiuj + (Default) + what default??? + (domyślny) - Reload - Przeładuj + Name + Nazwa - - - Ios::Internal::IosAnalyzeSupport - Run ended with error. - Praca zakończona błędem. + Location + Położenie - Run ended. - Praca zakończona. + Auto-detected + Automatycznie wykryte - - - Mercurial::Internal::MercurialEditorWidget - Annotate %1 - Dołącz adnotację do %1 + Manual + Ustawione ręcznie - Annotate parent revision %1 - Dołącz adnotację do poprawki macierzystej "%1" + Name: + Nazwa: - - - Perforce::Internal::PerforceEditorWidget - Annotate change list "%1" - Dołącz adnotację do listy zmian "%1" + Path: + Ścieżka: - ProjectExplorer::DeploymentDataModel + CMakeProjectManager::Internal::CMakeToolConfigWidget - Local File Path - Ścieżka do lokalnego pliku + Add + Dodaj - Remote Directory - Zdalny katalog + Clone + Sklonuj - - - ProjectExplorer::LineEditValidator - Line Edit Validator Expander - + Remove + Usuń - The text edit input to fix up. + Make Default + Ustaw jako domyślny + + + Set as the default CMake Tool to use when creating a new Kit, or no value is set. - - - ProjectExplorer::JsonFieldPage - Field is not an object. - Pole nie jest obiektem. + Prefer Ninja generator (CMake 2.8.9 or higher required) + Preferuj generator Ninja (wymagany CMake 2.8.9 lub nowszy) - Field has no name. - Pole nie posiada nazwy. + Clone of %1 + Klon %1 - Field '%1' has no type. - Pole "%1" nie posiada typu. + New CMake + Nowy CMake + + + + CMakeProjectManager::CMakeToolManager + + CMake at %1 + CMake w %1 - Field '%1' has unsupported type '%2'. - Pole "%1" posiada nieobsługiwany typ "%2". + System CMake at %1 + Systemowy CMake w %1 + + + Core::Internal::EnvironmentChangesDialog - When parsing Field '%1': %2 - W trakcie parsowania pola "%1": %2 + Edit Environment Changes + - Label data is not an object. - Dane etykiety nie są obiektem. + Change system environment by assigning one environment variable per line: + - No text given for Label. - Brak tekstu na etykiecie. + PATH=C:\dev\bin;${PATH} + PATH=C:\dev\bin;${PATH} - Spacer data is not an object. - Dane dystansu nie są obiektem. + PATH=/opt/bin:${PATH} + PATH=/opt/bin:${PATH} + + + Core::Internal::ShortcutSettingsWidget - 'factor' is no integer value. - "factor" nie jest liczbą całkowitą. + Keyboard Shortcuts + Skróty klawiszowe - LineEdit data is not an object. - Dane LineEdit nie są obiektem. + Shortcut + Skrót - Invalid regular expression "%1" in "validator". - Niepoprawne wyrażenie regularne "%1" w polu "validator". + Enter key sequence as text + Wprowadź sekwencję klawiszy jako tekst - TextEdit data is not an object. - Dane TextEdit nie są obiektem. + Key sequence: + Sekwencja klawiszy: - PathChooser data is not an object. - Dane PatchChooser nie są obiektem. + Use "Cmd", "Opt", "Ctrl", and "Shift" for modifier keys. Use "Escape", "Backspace", "Delete", "Insert", "Home", and so on, for special keys. Combine individual keys with "+", and combine multiple shortcuts to a shortcut sequence with ",". For example, if the user must hold the Ctrl and Shift modifier keys while pressing Escape, and then release and press A, enter "Ctrl+Shift+Escape,A". + - kind '%1' is not one of the supported 'existingDirectory', 'directory', 'file', 'saveFile', 'existingCommand', 'command', 'any'. + Use "Ctrl", "Alt", "Meta", and "Shift" for modifier keys. Use "Escape", "Backspace", "Delete", "Insert", "Home", and so on, for special keys. Combine individual keys with "+", and combine multiple shortcuts to a shortcut sequence with ",". For example, if the user must hold the Ctrl and Shift modifier keys while pressing Escape, and then release and press A, enter "Ctrl+Shift+Escape,A". - CheckBox data is not an object. - Dane CheckBox nie są obiektem. + Reset + Reset - CheckBox values for checked and unchecked state are identical. - Jednakowe wartości CheckBox dla stanów: zaznaczony i niezaznaczony. + Reset to default. + Przywróć domyślny. - No lists allowed inside ComboBox items list. - Listy są niedozwolone wewnątrz listy elementów ComboBox. + Key sequence has potential conflicts. <a href="#conflicts">Show.</a> + Sekwencja klawiszy potencjalnie w konflikcie. <a href="#conflicts">Pokaż.</a> - No 'key' found in ComboBox items. - Brak pola "key" w elementach ComboBox. + Invalid key sequence. + Niepoprawna sekwencja klawiszy. - ComboBox data is not an object. - Dane ComboBox nie są obiektem. + Import Keyboard Mapping Scheme + Zaimportuj schemat mapowania klawiatury - ComboBox 'index' is not a integer value. - "index" w ComboBox nie jest liczbą całkowitą. + Keyboard Mapping Scheme (*.kms) + Schemat mapowania klawiatury (*.kms) - ComboBox 'disabledIndex' is not a integer value. - "disabledIndex" w ComboBox nie jest liczbą całkowitą. + Export Keyboard Mapping Scheme + Wyeksportuj schemat mapowania klawiatury + + + Core::Internal::CurrentDocumentFind - ComboBox 'items' missing. - Brak "items" w ComboBox. + %1 occurrences replaced. + Zastąpiono %1 wystąpień. + + + Core::IWizardFactory - ComboBox 'items' is not a list. - "items" w ComboBox nie jest listą. + Factory with id="%1" already registered. Deleting. + Fabryka o identyfikatorze "%1" już zarejestrowana. Nowa fabryka zostanie usunięta. - Files data list entry is not an object. - + Reload All Wizards + Przeładuj wszystkie kreatory - No source given for file in file list. - Brak źródła pliku w liście plików. + Inspect Wizard State + - ProjectExplorer::JsonProjectPage + Core::Internal::ExternalToolsFilter - untitled - File path suggestion for a new project. If you choose to translate it, make sure it is a valid path name without blanks and using only ascii chars. - nienazwany + Run External Tool + Uruchom zewnętrzne narzędzie - ProjectExplorer::JsonSummaryPage + Core::Internal::LocatorSettingsPage - Failed to Commit to Version Control - + Name + Nazwa - Error message from Version Control System: '%1'. - Komunikat o błędzie z systemu kontroli wersji: "%1". + Prefix + Przedrostek - Failed to Add to Project - Nie można dodać do projektu + Default + Domyślny - Failed to add subproject "%1" -to project "%2". - Nie można dodać podprojektu "%1" -do projektu "%2". + Built-in + Wbudowany - Failed to add one or more files to project -"%1" (%2). - Nie można dodać jednego lub więcej plików do projektu -"%1" (%2). + Custom + Własny - ProjectExplorer::JsonWizardFactory + QuickFixFactory - Generator is not a object. - Generator nie jest obiektem. + Create Getter and Setter Member Functions + Dodaj metodę zwracającą (getter) i ustawiającą (setter) - Generator has no typeId set. - Brak ustawionego typeId w generatorze. + Create Getter Member Function + Dodaj metodę zwracającą (getter) - TypeId "%1" of generator is unknown. Supported typeIds are: "%2". - Nieznany typeid "%1" generatora. Obsługiwane typy: "%2". + Create Setter Member Function + Dodaj metodę ustawiającą (setter) - Page is not a object. - Strona nie jest obiektem. + Convert to Stack Variable + Przekształć do zmiennej na stosie - Page has no typeId set. - Brak ustawionego typeId w stronie. + Convert to Pointer + Przekształć do wskaźnika - TypeId "%1" of page is unknown. Supported typeIds are: "%2". - Nieznany typeid "%1" strony. Obsługiwane typy: "%2". + Generate Missing Q_PROPERTY Members... + Wygeneruj brakujące składniki Q_PROPERTY... + + + CppTools::CppEditorOutline - Page with typeId "%1" has invalid "index". - Strona z typeid "%1" posiada niepoprawny "index". + Sort Alphabetically + Posortuj alfabetycznie + + + CppTools::Internal::CppIncludesFilter - Path "%1" does not exist when checking Json wizard search paths. - - + All Included C/C++ Files + Wszystkie dołączone pliki C/C++ + + + Debugger::Internal::DebuggerEnginePrivate - Checking "%1" for %2. - - + Debugged executable + Debugowany program - * Failed to parse "%1":%2:%3: %4 - - * Nie można sparsować "%1":%2:%3: %4 - + Attempting to interrupt. + Próba przerwania. + + + Debugger::Internal::DebuggerEngine - * Did not find a JSON object in "%1". - - * Nie odnaleziono obiektu JSON w "%1". - + Launching Debugger + Uruchamianie debuggera - * Configuration found and parsed. - - * Konfiguracja odnaleziona i przeparsowana. - + Setup failed. + Niepoprawna konfiguracja. - * Version %1 not supported. - - * Wersja %1 nieobsługiwana. - + Loading finished. + Zakończono ładowanie. - * Wizard is disabled. - - * Kreator jest niedostępny. - + Run failed. + Nieudane uruchomienie. - * Failed to create: %1 - - * Nie można utworzyć: %1 - + Running. + Uruchomiono. - JsonWizard: "%1" not found - - JsonWizard: Nie znaleziono "%1" - + Stopped. + Zatrzymano. - Expected an object or a list. - Oczekiwano obiektu lub listy. + Run requested... + Zażądano uruchomienia... - "kind" value "%1" is not "class", "file" or "project". - + The %1 process terminated. + Proces %1 zakończył pracę. - No id set. - Brak ustawionego identyfikatora. + The %2 process terminated unexpectedly (exit code %1). + Proces %2 nieoczekiwanie zakończył pracę (kod %1). - No category is set. - Brak ustawionej kategorii. + Unexpected %1 Exit + Nieoczekiwane zakończenie %1 - Icon "%1" not found. - Brak ikony "%1". + Taking notice of pid %1 + Zwracanie uwagi na pid %1 - No displayName set. - Brak ustawionego pola displayName. + This debugger cannot handle user input. + Ten debugger nie obsługuje poleceń wejściowych użytkownika. - No displayCategory set. - Brak ustawionego pola displayCategory. + Stopped: "%1". + Zatrzymano: "%1". - No description set. - Brak ustawionego opisu. + Stopped: %1 (Signal %2). + Zatrzymano: %1 (sygnał %2). - When parsing "generators": %1 - W trakcie parsowania "generators": %1 + Stopped in thread %1 by: %2. + Zatrzymano w wątku %1 przez %2. - When parsing "pages": %1 - W trakcie parsowania "pages": %1 + Interrupted. + Przerwano. - List element of "options" is not an object. - Element lista w "options" nie jest obiektem. + <Unknown> + name + <Nieznana> - No "key" given for entry in "options". - + <Unknown> + meaning + <Nieznane> - When parsing "options": Key "%1" set more than once. - W trakcie parsowania "options": klucz "%1" ustawiony wielokrotnie. + <p>The inferior stopped because it received a signal from the operating system.<p><table><tr><td>Signal name : </td><td>%1</td></tr><tr><td>Signal meaning : </td><td>%2</td></tr></table> + <p>Podproces zatrzymany, ponieważ otrzymał on sygnał z systemu operacyjnego.<p><table><tr><td>Nazwa sygnału: </td><td>%1</td></tr><tr><td>Znaczenie sygnału: </td><td>%2</td></tr></table> - Value for "options" is not a list - Wartością "options" nie jest lista + Signal Received + Otrzymano sygnał - - - ProjectExplorer::JsonWizardGenerator - %1 [folder] - %1 [katalog] + <p>The inferior stopped because it triggered an exception.<p>%1 + <p>Podproces zatrzymany z powodu rzuconego wyjątku.<p>%1 - %1 [symbolic link] - %1 [dowiązanie symboliczne] + Exception Triggered + Rzucono wyjątek - %1 [read only] - %1 [tylko do odczytu] + Found. + Znaleziono. - The directory %1 contains files which cannot be overwritten: -%2. - Katalog %1 zawiera pliki które nie mogą być nadpisane: -%2. + Not found. + Nie znaleziono. - - - ProjectExplorer::EnvironmentKitInformation - The environment setting value is invalid. - + Section %1: %2 + Sekcja %1: %2 - - - ProjectExplorer::Internal::KitEnvironmentConfigWidget - Change ... - Zmień ... + Warning + Ostrzeżenie - Environment: - Środowisko: + This does not seem to be a "Debug" build. +Setting breakpoints by file name and line number may fail. + To nie jest wersja debugowa. +Ustawianie pułapek w liniach plików może się nie udać. - Additional environment settings when using this kit. - Dodatkowe ustawienia środowiska w czasie używania tego zestawu narzędzi. + Run to Address 0x%1 + Uruchom do adresu 0x%1 - No Changes to apply - Brak zmian do zastosowania + Run to Line %1 + Uruchom do linii %1 - Edit Environment Changes - + Jump to Address 0x%1 + Skocz do adresu 0x%1 + + + Jump to Line %1 + Skocz do linii %1 - ProjectExplorer::Project + Debugger::DebuggerOptionsPage - Project - Projekt + Not recognized + Nierozpoznany - Project Name - Nazwa projektu + Name + Nazwa - - - ProjectExplorer::ProjectExplorerPluginPrivate - Build Without Dependencies - Zbuduj bez zależności + Location + Położenie - Rebuild Without Dependencies - Przebuduj bez zależności + Type + Typ - Clean Without Dependencies - Wyczyść bez zależności + Auto-detected + Automatycznie wykryte - Build - Zbuduj + Manual + Ustawione ręcznie - Rebuild - Przebuduj + Unknown + Nieznany - Clean - Wyczyść + Name: + Nazwa: - The project %1 is not configured, skipping it. - Projekt %1 nie jest skonfigurowany, zostaje pominięty. + Path: + Ścieżka: - No project loaded. - Nie załadowano projektu. + Type: + Typ: - Currently building the active project. - Trwa budowanie aktywnego projektu. + ABIs: + ABIs: - The project %1 is not configured. - Projekt %1 nie jest skonfigurowany. + Version: + Wersja: - Project has no build settings. - Brak ustawień budowania w projekcie. + 64-bit version + w wersji 64 bitowej - Building "%1" is disabled: %2<br> - Budowanie "%1" jest wyłączone: %2<br> + 32-bit version + w wersji 32 bitowej - No project loaded - Nie załadowano projektu + <html><body><p>Specify the path to the <a href="%1">Windows Console Debugger executable</a> (%2) here.</p></body></html> + Label text for path configuration. %2 is "x-bit version". + <html><body><p>Podaj ścieżkę do <a href="%1">pliku wykonywalnego Windows Console Debugger</a> (%2).</p></body></html> - A build is in progress - Trwa budowanie + Add + Dodaj - Project has no build settings - Brak ustawień budowania w projekcie + Clone + Sklonuj - Building "%1" is disabled: %2 - Budowanie "%1" jest wyłączone: %2 + Remove + Usuń - Run %1 - Uruchom %1 + Clone of %1 + Klon %1 - - - ProjectWizard - The files are implicitly added to the projects: - Pliki, które zostały niejawnie dodane do projektów: + New Debugger + Nowy debugger - <None> - <Brak> + Debuggers + Debuggery + + + DeviceProcessesDialog - <Implicitly Add> - <Niejawnie dodaj> + &Attach to Process + &Dołącz do procesu - Utils::SettingsAccessor + Debugger::Internal::RunConfigWidget - No Valid Settings Found - Brak poprawnych ustawień + Debugger Settings + Ustawienia debuggera - <p>No valid settings file could be found.</p><p>All settings files found in directory "%1" were either too new or too old to be read.</p> - <p>Brak poprawnego pliku z ustawieniami.</p><p>Napotkane pliki z ustawieniami w katalogu "%1" były albo zbyt nowe, albo zbyt stare, aby je odczytać.</p> + Enable C++ + Uaktywnij C++ - Using Old Settings - Użycie starych ustawień + Enable QML + Uaktywnij QML - <p>The versioned backup "%1" of the settings file is used, because the non-versioned file was created by an incompatible version of Qt Creator.</p><p>Settings changes made since the last time this version of Qt Creator was used are ignored, and changes made now will <b>not</b> be propagated to the newer version.</p> - <p>Użyta zostanie kopia zapasowa "%1" pliku z ustawieniami .user, ponieważ w międzyczasie oryginalny plik z ustawieniami został zachowany przez niekompatybilną wersję Qt Creatora.</p><p>Jeżeli nastąpią teraz zmiany w ustawieniach projektu to <b>nie</b> zostaną one zastosowane w nowszej wersji Qt Creatora.</p> + Debug port: + Port debugowania: - - - ProjectExplorer::EnvironmentIdAccessor - <p>No .user settings file created by this instance of Qt Creator was found.</p><p>Did you work with this project on another machine or using a different settings path before?</p><p>Do you still want to load the settings file "%1"?</p> - <p>Brak pliku .user z ustawieniami, utworzonego przez tego Qt Creatora.</p><p>Czy pracowałeś z tym projektem na innej maszynie lub używałeś innej ścieżki do ustawień?</p><p>Czy załadować plik "%1" z ustawieniami?</p> + <a href="qthelp://org.qt-project.qtcreator/doc/creator-debugging-qml.html">What are the prerequisites?</a> + <a href="qthelp://org.qt-project.qtcreator/doc/creator-debugging-qml.html">Jakie są wymagania?</a> - Settings File for "%1" from a different Environment? - Plik z ustawieniami dla "%1" z innego środowiska? + Enable Debugging of Subprocesses + Uaktywnij debugowanie podprocesów - ProjectExplorer::Target - - Target Settings - Katalog docelowy - + Debugger::Internal::Terminal - Source directory - Katalog źródłowy + Terminal: Cannot open /dev/ptmx: %1 + Terminal: Nie można otworzyć /dev/ptmx: %1 - - - ProjectExplorer::Task - Qt Creator needs a compiler set up to build. Configure a compiler in the kit options. - Do budowy Qt Creator wymaga ustawionego kompilatora. Skonfiguruj go w opcjach zestawu narzędzi. + Terminal: ptsname failed: %1 + Terminal: ptsname zakończył pracę błędem: %1 - Qt Creator needs a build configuration set up to build. Configure a build configuration in the project settings. - Do budowy Qt Creator wymaga konfiguracji budowania. Dodaj konfigurację w opcjach zestawu narzędzi. + Terminal: Error: %1 + Terminal: Błąd: %1 - - - ProjectExplorer::XcodebuildParser - Replacing signature + Terminal: Slave is no character device. - Xcodebuild failed. - + Terminal: grantpt failed: %1 + Terminal: grantpt zakończył pracę błędem: %1 - - - QbsProjectManager::Internal::QbsRootProjectNode - Qbs files - Pliki qbs + Terminal: unlock failed: %1 + Terminal: unlock zakończył pracę błędem: %1 - - - QmakeAndroidSupport::Internal::AndroidPackageInstallationFactory - Deploy to device - Zainstaluj na urządzeniu + Terminal: Read failed: %1 + Terminal: błąd odczytu: %1 - QmakeAndroidSupport::Internal::AndroidPackageInstallationStep + DiffEditor::Internal::DiffEditor - Copy application data - Skopiuj dane aplikacji + Context lines: + Linie z kontekstem: - Removing directory %1 - Usuwanie katalogu %1 + Ignore Whitespace + Ignoruj białe znaki - - - QmakeAndroidSupport::Internal::AndroidPackageInstallationStepWidget - <b>Make install</b> - + Reload Diff + Przeładuj różnice - Make install - + [%1] vs. [%2] %3 + [%1] vs [%2] %3 - - - QmakeAndroidSupport::Internal::NoApplicationProFilePage - No application .pro file found in this project. - Brak pliku .pro aplikacji w tym projekcie. + %1 vs. %2 + %1 vs %2 - No Application .pro File - Brak pliku .pro aplikacji + [%1] %2 vs. [%3] %4 + [%1] %2 vs [%3] %4 + + + Hide Change Description + Ukryj opis zmiany + + + Show Change Description + Pokaż opis zmiany - QmakeAndroidSupport::Internal::ChooseProFilePage + DiffEditor::Internal::DiffEditorDocument - Select the .pro file for which you want to create the Android template files. - Wybierz plik .pro dla którego utworzyć pliki szablonu Android. + Could not parse patch file "%1". The content is not of unified diff format. + Nie można sparsować pliku z łatami "%1". Zawartość nie jest w formacie ujednoliconym (unified diff). + + + DiffEditor::UnifiedView - .pro file: - Plik .pro: + Switch to Unified Diff Editor + Przełącz do edytora różnic wyświetlającego zawartość w formacie ujednoliconym (unified diff) + + + DiffEditor::Internal::UnifiedView - Select a .pro File - Wybierz plik .pro + Waiting for data... + Oczekiwanie na dane... - QmakeAndroidSupport::Internal::ChooseDirectoryPage + DiffEditor::SideBySideView - The Android package source directory cannot be the same as the project directory. - Katalog ze źródłami pakietu Android nie może być taki sam jak katalog projetku. + Switch to Side By Side Diff Editor + Przełącz do edytora różnic wyświetlającego zawartość sąsiadująco + + + DiffEditor::Internal::SideBySideView - Android package source directory: - Katalog źródłowy pakietu Android: + Synchronize Horizontal Scroll Bars + Synchronizuj poziome paski przesuwania - Select the Android package source directory. - -The files in the Android package source directory are copied to the build directory's Android directory and the default files are overwritten. - Wybierz katalog źródłowy pakietu Android. - -Pliki z katalogu źródłowego pakietu Android są kopiowane do katalogu budowania i domyślne pliki są nadpisywane. + Waiting for data... + Oczekiwanie na dane... + + + + DiffEditor::Internal::SideBySideDiffEditorWidget + + Skipped %n lines... + + Opuszczono %n linię... + Opuszczono %n linie... + Opuszczono %n linii... + - The Android template files will be created in the ANDROID_PACKAGE_SOURCE_DIR set in the .pro file. - Pliki z szablonami Android będą utworzone w ANDROID_PACKAGE_SOURCE_DIR, który jest ustawiony w pliku .pro. + Binary files differ + Pliki binarne różnią się - Copy the Gradle files to Android directory - Skopiuj pliki Gradle do katalogu Android + Skipped unknown number of lines... + Pominięto nieznaną ilość linii... - It is highly recommended if you are plannig to extend the Java part of your Qt application. - Jest to rekomendowane w przypadku planowania rozszerzania częsci Java aplikacji Qt. + No difference + Brak różnic - - - QmakeAndroidSupport::Internal::CreateAndroidManifestWizard - Create Android Template Files Wizard - + Send Chunk to CodePaster... + Wyślij fragment do Codepaster... - Overwrite %1 file - Nadpisz plik %1 + Apply Chunk... + Zastosuj fragment... - Overwrite existing "%1"? - Nadpisać istniejący "%1"? + Revert Chunk... + Zastosuj odwrotny fragment... - File Creation Error - Błąd tworzenia pliku + Revert Chunk + Odwróć zmiany we fragmencie - Could not copy file "%1" to "%2". - Nie można skopiować pliku "%1" do "%2". + Apply Chunk + Zastosuj fragment - Project File not Updated - Nieaktualny plik projektu + Would you like to revert the chunk? + Czy zastosować odwrotny fragment? - Could not update the .pro file %1. - Nie można uaktualnić pliku .pro %1. + Would you like to apply the chunk? + Czy zastosować fragment? - QmakeAndroidSupport::Internal::QmakeAndroidBuildApkStepFactory + DiffEditor::Internal::SideDiffEditorWidget - Build Android APK - + [%1] %2 + [%1] %2 - QmakeAndroidSupport::Internal::QmakeAndroidBuildApkStep + DiffEditor::Internal::UnifiedDiffEditorWidget - Found old folder "android" in source directory. Qt 5.2 does not use that folder by default. - Odnaleziono folder "android" w katalogu źródłowym. Qt 5.2 domyślnie nie używa tego katalogu. + No document + Brak dokumentu - Internal Error: Could not find .pro file. - Błąd wewnętrzny: brak pliku .pro. + Send Chunk to CodePaster... + Wyślij fragment do Codepaster... - Internal Error: Unknown Android deployment JSON file location. - + Apply Chunk... + Zastosuj fragment... - Starting: "%1" %2 - Uruchamianie "%1" %2 + Revert Chunk... + Zastosuj odwrotny fragment... - - - QmakeAndroidSupport::Internal::QmakeAndroidRunConfiguration - The .pro file "%1" is currently being parsed. - Trwa parsowanie pliku .pro "%1". + Revert Chunk + Odwróć zmiany we fragmencie - - - QmlDesigner::CrumbleBar - Save the changes to preview them correctly. - Zachowaj zmiany aby utworzyć poprawny podgląd. + Apply Chunk + Zastosuj fragment - Always save when leaving subcomponent - Zawsze zachowuj przy opuszczaniu podkomponentu + Would you like to revert the chunk? + Czy zastosować odwrotny fragment? - - - NavigatorTreeModel - Warning - Ostrzeżenie + Would you like to apply the chunk? + Czy zastosować fragment? - Reparenting the component %1 here will cause the component %2 to be deleted. Do you want to proceed? - Przeniesienie komponentu %1 tutaj spowoduje usunięcie komponentu %2. Czy kontynuować? + No difference. + Brak różnic. - QmlDesigner::AddTabDesignerAction + ImageViewer::Internal::ImageViewerFile - Naming Error - Błąd nazwy - - - Component already exists. - Komponent już istnieje. + Image format not supported. + Nieobsługiwany format pliku graficznego. - - - NodeInstanceServerProxy - Cannot Connect to QML Emulation Layer (QML Puppet) - + Failed to read SVG image. + Błąd odczytu pliku graficznego SVG. - The executable of the QML emulation layer (QML Puppet) may not be responding. Switching to another kit might help. - + Failed to read image. + Błąd odczytu pliku graficznego. - PuppetCreator + ProjectExplorer::JsonKitsPage - QML Emulation Layer (QML Puppet) Building was Unsuccessful + Feature list is set and not of type list. - The QML emulation layer (QML Puppet) cannot be built. The fallback emulation layer, which does not support all features, will be used. + No "%1" key found in feature list object. - Qt Version is not supported - Wersja Qt nie jest obsługiwana + Feature list element is not a string or object. + + + + ProjectExplorer::Internal::JsonWizard - The QML emulation layer (QML Puppet) cannot be built because the Qt version is too old or it cannot run natively on your computer. The fallback emulation layer, which does not support all features, will be used. - + Key is not an object. + Klucz nie jest obiektem. - Kit is invalid - Niepoprawny zestaw narzędzi + Pattern "%1" is no valid regular expression. + Wzorzec "%1" jest niepoprawnym wyrażeniem regularnym. - The QML emulation layer (QML Puppet) cannot be built because the kit is not configured correctly. For example the compiler can be misconfigured. Fix the kit configuration and restart Qt Creator. Otherwise, the fallback emulation layer, which does not support all features, will be used. + ScannerGenerator: Binary pattern "%1" not valid. - QmlJSEditor::Internal::QmlJSEditorWidget - - Show Qt Quick ToolBar - Pokaż pasek narzędzi Qt Quick - - - Refactoring - Refaktoryzacja - + ProjectExplorer::LocalApplicationRunControl - This file should only be edited in <b>Design</b> mode. - Ten plik powinien być modyfikowany jedynie w trybie <b>Design</b>. + No executable specified. + Nie podano pliku wykonywalnego. - Switch Mode - Przełącz tryb + Executable %1 does not exist. + Brak pliku wykonywalnego %1. - - - QmlJSEditor::Internal::QmlJSHoverHandler - Library at %1 - Biblioteka w %1 + Starting %1... + Uruchamianie %1... - Dumped plugins successfully. - Wtyczki poprawnie zrzucone. + %1 crashed + %1 zakończył pracę błędem - Read typeinfo files successfully. - Pliki typeinfo poprawnie odczytane. + %1 exited with code %2 + %1 zakończone kodem %2 - QmlProfiler::Internal::RangeTimelineModel + ProjectExplorer::ProjectTree - Duration - Czas trwania + <b>Warning:</b> This file is outside the project directory. + <b>Ostrzeżenie:</b> Ten plik leży poza katalogiem projektu. + + + ProjectExplorer::TerminalAspect - Details - Szczegóły + Terminal + Terminal - Location - Położenie + Run in terminal + Uruchom w terminalu - Qnx::Internal::BarDescriptorFileNodeManager + ProjectExplorer::WorkingDirectoryAspect - Cannot save bar descriptor file: %1 - Nie można zachować pliku deskryptora "bar": %1 + Working Directory + Katalog roboczy - Cannot reload bar descriptor file: %1 - Nie można przeładować pliku deskryptora "bar": %1 + Select Working Directory + Wybierz katalog roboczy - Setup Application Descriptor File - Ustaw plik deskryptora aplikacji + Reset to Default + Przywróć domyślny - You need to set up a bar descriptor file to enable packaging. -Do you want Qt Creator to generate it for your project (%1)? - Należy ustawić plik deskryptora aplikacji "bar" aby umożliwić utorzenie pakietu. -Czy wygenerować plik "bar" dla projektu (%1)? + Working directory: + Katalog roboczy: + + + ProjectExplorer::ArgumentsAspect - Don't ask again for this project - Nie pytaj więcej o ten projekt + Arguments + Argumenty - Cannot set up application descriptor file: Reading the bar descriptor template failed. - Nie można ustawić pliku deskryptora "bar": odczyt szablonu deskryptora "bar" zakończony błędem. + Command line arguments: + Argumenty linii komend: + + + PythonEditor::Internal::PythonRunConfiguration - Cannot set up application descriptor file: Writing the bar descriptor file failed. - Nie można ustawić pliku deskryptora "bar": zapis deskryptora "bar" zakończony błędem. + Run %1 + Uruchom %1 - Error - Błąd + (disabled) + (nieaktywny) - Cannot open BAR application descriptor file - Nie można otworzyć pliku deskryptora BAR aplikacji + The script is currently disabled. + Skrypt jest aktualnie wyłączony. - Qnx::Internal::QnxBaseConfiguration - - - No GCC compiler found. - - Brak kompilatora GCC. - + PythonEditor::Internal::PythonRunConfigurationWidget - - No GDB debugger found for armvle7. - - Brak debuggera GDB dla urządzenia armvle7. + Interpreter: + Interpreter: - - No GDB debugger found for x86. - - Brak debuggera dla urządzenia x86. + Script: + Skrypt: - Qnx::Internal::QnxConfiguration + PythonEditor::Internal::PythonProjectManager - The following errors occurred while activating the QNX configuration: - Wystąpiły następujące błędy podczas aktywowania konfiguracji QNX: + Failed opening project "%1": Project is not a file. + Nie można otworzyć projektu "%1": Ścieżka projektu nie wskazuje na plik. + + + PythonEditor::Internal::PythonRunControl - Cannot Set Up QNX Configuration - Nie można ustawić konfiguracji QNX + No Python interpreter specified. + Brak interpretera Pythona - QCC for %1 (armv7) - QCC dla %1 (armv7) + Python interpreter %1 does not exist. + Interpreter Pythona %1 nie istnieje. - QCC for %1 (x86) - QCC dla %1 (x86) + Starting %1... + Uruchamianie %1... - Debugger for %1 (armv7) - Debugger dla %1 (armv7) + %1 crashed + %1 zakończył pracę błędem - Debugger for %1 (x86) - Debugger dla %1 (x86) + %1 exited with code %2 + %1 zakończone kodem %2 + + + QbsProjectManager - Kit for %1 (armv7) - Zestaw narzędzi dla %1 (armv7) + Qbs + Qbs - Kit for %1 (x86) - Zestaw narzędzi dla %1 (x86) + Profiles + Profile - QNX + QbsRootProjectNode - QNX - QNX + Qbs files + Pliki qbs - Qnx::Internal::QnxPlugin - - BAR descriptor file (BlackBerry) - Plik deskryptora BAR (BlackBerry) - - - Could not add MIME type for bar-descriptor.xml editor. - Nie można dodać typu MIME dla edytora bar-descriptor.xml. - - - BAR Descriptor - Deskryptor BAR - + QbsProjectManager::Internal::QbsManager - Attach to remote QNX application... - Dołącz do zdalnej aplikacji QNX... + Failed opening project "%1": Project is not a file. + Nie można otworzyć projektu "%1": Ścieżka projektu nie wskazuje na plik. - - - Qnx::Internal::QnxSettingsPage - QNX - QNX + Failed to set up kit for Qbs: %1 + Nie można ustawić zestawu narzędzi dla Qbs: %1 - RemoteLinux::Internal::RemoteLinuxCustomRunConfiguration + QmakePriFileNode - The remote executable must be set in order to run a custom remote run configuration. - W celu uruchomienia własnej, zdalnej konfiguracji uruchamiania, należy ustawić zdalny plik wykonywalny. + Failed + Niepoprawnie zakończone - Run "%1" on Linux Device - Uruchom "%1" na urządzeniu linuksowym + Could not write project file %1. + Nie można zapisać pliku projektu %1. - Custom Executable (on Remote Generic Linux Host) - Własny plik wykonywalny (na zdalnym ogólnym hoście linuksowym) + File Error + Błąd pliku - ResourceEditor::Internal::PrefixLangDialog + QmakeProFileNode - Prefix: - Przedrostek: + Error while parsing file %1. Giving up. + Błąd parsowania pliku %1. Przetwarzanie przerwane. - Language: - Język: + Could not find .pro file for subdirectory "%1" in "%2". + Nie można odnaleźć pliku .pro w podkatalogu "%1" w "%2". - Subversion::Internal::SubversionEditorWidget + QmlProfiler::LocalQmlProfilerRunner - Annotate revision "%1" - Dołącz adnotację do poprawki "%1" + No executable file to launch. + Brak pliku do uruchomienia. - TaskList::Internal::TaskListPlugin + QmlProfiler::Internal::QmlProfilerAnimationsModel - Cannot open task file %1: %2 - Nie można otworzyć pliku z zadaniem %1: %2 + Animations + Animacje - File Error - Błąd pliku + GUI Thread + Wątek GUI - My Tasks - Moje zadania + Render Thread + Wątek renderingu - - - TextEditor::Internal::MultiDefinitionDownloader - Downloading Highlighting Definitions - Pobieranie definicji podświetleń + Duration + Czas trwania - Error downloading selected definition(s). - Błąd pobierania wybranych definicji. + Framerate + Klatki na sekundę - Error downloading one or more definitions. - Błąd pobierania jednej lub wielu definicji. + Context + Kontekst + + + + QmlProfiler::QmlProfilerRunControl + + Qt Creator + Qt Creator - Please check the directory's access rights. - Sprawdź prawa dostępu do katalogu. + Could not connect to the in-process QML debugger: +%1 + %1 is detailed error message + Nie można podłączyć się do wewnątrzprocesowego debuggera QML: +%1 - Download Error - Błąd pobierania + QML Profiler + Profiler QML - TextEditor::TextDocument + QmlProfiler::Internal::QmlProfilerRangeModel - Opening File - Otwieranie pliku + Duration + Czas trwania - - - TextEditor::Internal::TextEditorWidgetPrivate - CTRL+D - Ctrl+D + Details + Szczegóły - Line: %1, Col: %2 - Linia: %1, kolumna: %2 + Location + Położenie + + + ResourceTopLevelNode - Line: 9999, Col: 999 - Linia: 9999, kolumna: 999 + %1 Prefix: %2 + %1 Przedrostek: %2 - TextEditor::TextEditorWidget + Subversion::Internal::SubversionLogParameterWidget - Print Document - Wydruk dokumentu + Verbose + Gadatliwy - File Error - Błąd pliku + Show files changed in each revision + Pokazuj pliki zmienione w każdej poprawce + + + GenericHighlighter - The text is too large to be displayed (%1 MB). - Tekst jest zbyt obszerny aby mógł zostać wyświetlony (%1 MB). + Element name is empty. + Nazwa elementu jest pusta. - <b>Error:</b> Could not decode "%1" with "%2"-encoding. Editing not possible. - <b>Błąd:</b> Nie można odkodować "%1" używając kodowania "%2". Edycja nie jest możliwa. + Duplicate element name "%1". + Powielona nazwa elementu "%1". - Select Encoding - Wybierz kodowanie + Name "%1" not found. + Brak nazwy "%1". - Delete UTF-8 BOM on Save - Usuwaj UTF-8 BOM przy zachowywaniu + Generic highlighter error: + Błąd ogólnego podświetlacza: - Add UTF-8 BOM on Save - Dodawaj UTF-8 BOM przy zachowywaniu + Reached empty context. + - TextEditor::Internal::TextEditorActionHandlerPrivate + TextEditor::Internal::TextEditorActionHandler &Undo &Cofnij @@ -44433,7 +37093,7 @@ Czy wygenerować plik "bar" dla projektu (%1)? Move the View a Page Up and Keep the Cursor Position - + Przesuń widok o cały ekran do góry i zachowaj pozycję kursora Ctrl+PgUp @@ -44441,7 +37101,7 @@ Czy wygenerować plik "bar" dla projektu (%1)? Move the View a Page Down and Keep the Cursor Position - + Przesuń widok o cały ekran na dół i zachowaj pozycję kursora Ctrl+PgDown @@ -44449,7 +37109,7 @@ Czy wygenerować plik "bar" dla projektu (%1)? Move the View a Line Up and Keep the Cursor Position - + Przesuń widok o jedną linię do góry i zachowaj pozycję kursora Ctrl+Up @@ -44457,7 +37117,7 @@ Czy wygenerować plik "bar" dla projektu (%1)? Move the View a Line Down and Keep the Cursor Position - + Przesuń widok o jedną linię na dół i zachowaj pozycję kursora Ctrl+Down @@ -44729,114 +37389,117 @@ Czy wygenerować plik "bar" dla projektu (%1)? - VcsBase::BaseCheckoutWizardFactory + QObject - Cannot Open Project - Nie można otworzyć projektu + <Enter regular expression to exclude> + + + + UpdateInfo::Internal::SettingsPage - Failed to open project in "%1". - Nie można otworzyć projektu w "%1". + Daily + Codziennie - Could not find any project files matching (%1) in the directory "%2". - Nie można odnaleźć żadnych plików z projektami, pasujących do (%1) w katalogu "%2". + Weekly + Cotygodniowo - "%1" does not exist. - "%1" nie istnieje. + Monthly + Comiesięcznie - - - VcsBase::VcsCommand - Unable to start process, binary is empty - Nie można uruchomić procesu, plik binarny jest pusty + New updates are available. + Dostępne są nowe aktualizacje. - Error: Executable timed out after %1s. - Błąd: plik wykonywalny nie odpowiada po upływie %1s. + No new updates are available. + Brak nowych aktualizacji. - - - VcsBase::VcsOutputWindow - Open "%1" - Otwórz "%1" + Checking for updates... + Sprawdzanie dostępności aktualizacji... - Clear - Wyczyść + Not checked yet + Jeszcze nie sprawdzano + + + VcsBase::VcsBaseClientImpl - Version Control - System kontroli wersji + Working... + Przetwarzanie... + + + VcsBase::Internal::VcsCommandPage - Executing: %1 %2 - Wykonywanie: %1 %2 + "data" is no JSON object in "VcsCommand" page. + - Executing in %1: %2 %3 - Wykonywanie w %1: %2 %3 + "%1" not set in "data" section of "VcsCommand" page. + - - - WinRt::Internal::WinRtDebugSupport - The WinRT debugging helper is missing from your Qt Creator installation. It was assumed to be located at %1 + "%1" in "data" section of "VcsCommand" page has unexpected type (unset, String or List). - Cannot start the WinRT Runner Tool. + "%1" in "data" section of "VcsCommand" page has unexpected type (unset or List). - Cannot establish connection to the WinRT debugging helper. + Job in "VcsCommand" page is empty. - Cannot extract the PID from the WinRT debugging helper. (output: %1) + Job in "VcsCommand" page is not an object. - Cannot create an appropriate run control for the current run configuration. + Job in "VcsCommand" page has no "%1" set. + + Checkout + Kopia robocza + - WinRt::Internal::WinRtRunnerHelper + VcsBase::VcsCommandPage - The current kit has no Qt version. - Brak wersji Qt w bieżącym zestawie narzędzi. + "%1" (%2) not found. + "%1" brak (%2). - Cannot find winrtrunner.exe in "%1". - Brak winrtrunner.exe w "%1". + Version control "%1" is not configured. + System kontroli wersji "%1" nie jest skonfigurowany. - Cannot determine the executable file path for "%1". - Nie można określić ścieżki do pliku wykonywalnego dla "%1". + Version control "%1" does not support initial checkouts. + - Error while executing the WinRT Runner Tool: %1 - + "%1" is empty when trying to run checkout. - - - Help::Internal::IndexWindow - &Look for: - Wy&szukaj: + "%1" (%2) does not exist. + "%1" (%2) nie istnieje. + + + QmlEngine - Open Link - Otwórz odsyłacz + JS Source for %1 + Źródło JS dla %1 - Open Link as New Page - Otwórz odsyłacz na nowej stronie + Anonymous Function + Anonimowa funkcja diff --git a/share/share.qbs b/share/share.qbs index 61876232810..eea8a00aed5 100644 --- a/share/share.qbs +++ b/share/share.qbs @@ -10,6 +10,7 @@ Product { qbs.installSourceBase: "qtcreator" prefix: "qtcreator/" files: [ + "cplusplus/**/*", "debugger/**/*", "designer/**/*", "generic-highlighter/**/*", diff --git a/src/libs/3rdparty/cplusplus/Scope.cpp b/src/libs/3rdparty/cplusplus/Scope.cpp index 107df10dffd..783eff77ae3 100644 --- a/src/libs/3rdparty/cplusplus/Scope.cpp +++ b/src/libs/3rdparty/cplusplus/Scope.cpp @@ -117,6 +117,7 @@ void SymbolTable::enterSymbol(Symbol *symbol) _allocatedSymbols = DefaultInitialSize; _symbols = reinterpret_cast(realloc(_symbols, sizeof(Symbol *) * _allocatedSymbols)); + memset(_symbols + _symbolCount, 0, sizeof(Symbol *) * (_allocatedSymbols - _symbolCount)); } symbol->_index = _symbolCount; @@ -214,7 +215,7 @@ unsigned SymbolTable::symbolCount() const Symbol *SymbolTable::symbolAt(unsigned index) const { - if (! _symbols) + if (! _symbols || index >= symbolCount()) return 0; return _symbols[index]; } diff --git a/src/libs/clangbackendipc/clangbackendipc-lib.pri b/src/libs/clangbackendipc/clangbackendipc-lib.pri index 50c5974d4e8..8dda2d1f591 100644 --- a/src/libs/clangbackendipc/clangbackendipc-lib.pri +++ b/src/libs/clangbackendipc/clangbackendipc-lib.pri @@ -36,7 +36,8 @@ SOURCES += $$PWD/ipcserverinterface.cpp \ $$PWD/codecompletionchunk.cpp \ $$PWD/projectpartcontainer.cpp \ $$PWD/projectpartsdonotexistcommand.cpp \ - $$PWD/lineprefixer.cpp + $$PWD/lineprefixer.cpp \ + $$PWD/clangbackendipcdebugutils.cpp HEADERS += \ $$PWD/ipcserverinterface.h \ @@ -67,6 +68,7 @@ HEADERS += \ $$PWD/projectpartsdonotexistcommand.h \ $$PWD/container_common.h \ $$PWD/clangbackendipc_global.h \ - $$PWD/lineprefixer.h + $$PWD/lineprefixer.h \ + $$PWD/clangbackendipcdebugutils.h contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols diff --git a/src/libs/clangbackendipc/clangbackendipcdebugutils.cpp b/src/libs/clangbackendipc/clangbackendipcdebugutils.cpp new file mode 100644 index 00000000000..09bd066d187 --- /dev/null +++ b/src/libs/clangbackendipc/clangbackendipcdebugutils.cpp @@ -0,0 +1,114 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing +** +** 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 The Qt Company. For licensing terms and +** conditions see http://www.qt.io/terms-conditions. For further information +** use the contact form at http://www.qt.io/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 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#include "clangbackendipcdebugutils.h" + +#include "filecontainer.h" + +#include + +#include +#include +#include +#include +#include + +namespace { + +Q_LOGGING_CATEGORY(timersLog, "qtc.clangbackend.timers"); + +class DebugInspectionDir : public QTemporaryDir +{ +public: + DebugInspectionDir() + : QTemporaryDir(QDir::tempPath() + QLatin1String("/qtc-clangbackendipc-XXXXXX")) + { + setAutoRemove(false); // Keep around for later inspection. + } +}; + +class DebugInspectionFile : public QTemporaryFile +{ +public: + DebugInspectionFile(const QString &directoryPath, + const Utf8String &id, + const Utf8String &fileContent) + : QTemporaryFile(directoryPath + QString::fromUtf8("/%1-XXXXXX").arg(id.toString())) + { + setAutoRemove(false); // Keep around for later inspection. + m_isValid = open() && write(fileContent.constData(), fileContent.byteSize()); + } + + bool isValid() const + { + return m_isValid; + } + +private: + bool m_isValid = false; +}; + +} + +namespace ClangBackEnd { + +Utf8String debugWriteFileForInspection(const Utf8String &fileContent, const Utf8String &id) +{ + static DebugInspectionDir debugInspectionDir; + if (!debugInspectionDir.isValid()) + return Utf8String(); + + DebugInspectionFile file(debugInspectionDir.path(), id, fileContent); + if (file.isValid()) + return Utf8String::fromString(file.fileName()); + return Utf8String(); +} + +Utf8String debugId(const FileContainer &fileContainer) +{ + const Utf8String filePath = fileContainer.filePath(); + Utf8String id(Utf8StringLiteral("unsavedfilecontent-")); + id.append(QFileInfo(filePath).fileName()); + return id; +} + +VerboseScopeDurationTimer::VerboseScopeDurationTimer(const char *id) + : id(id) +{ + if (timersLog().isDebugEnabled()) + timer.start(); +} + +VerboseScopeDurationTimer::~VerboseScopeDurationTimer() +{ + qCDebug(timersLog) << id << "needed" << timer.elapsed() << "ms"; +} + +} // namespace ClangBackEnd diff --git a/src/plugins/projectexplorer/devicesupport/devicetypekitchooser.h b/src/libs/clangbackendipc/clangbackendipcdebugutils.h similarity index 65% rename from src/plugins/projectexplorer/devicesupport/devicetypekitchooser.h rename to src/libs/clangbackendipc/clangbackendipcdebugutils.h index 98a45f9cb8e..a086ae5c129 100644 --- a/src/plugins/projectexplorer/devicesupport/devicetypekitchooser.h +++ b/src/libs/clangbackendipc/clangbackendipcdebugutils.h @@ -1,7 +1,7 @@ /**************************************************************************** ** -** Copyright (C) 2015 Klarälvdalens Datakonsult AB, a KDAB Group company -** Contact: info@kdab.com +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing ** ** This file is part of Qt Creator. ** @@ -28,29 +28,34 @@ ** ****************************************************************************/ -#ifndef PROJECTEXPLORER_DEVICETYPEKITCHOOSER_H -#define PROJECTEXPLORER_DEVICETYPEKITCHOOSER_H +#ifndef CLANGBACKENDIPCDEBUGUTILS_H +#define CLANGBACKENDIPCDEBUGUTILS_H -#include "../kitchooser.h" -#include "../projectexplorer_export.h" +#include "clangbackendipc_global.h" -#include +#include -namespace ProjectExplorer { +class FileContainer; +class Utf8String; -class PROJECTEXPLORER_EXPORT DeviceTypeKitChooser : public KitChooser +namespace ClangBackEnd { + +Utf8String debugWriteFileForInspection(const Utf8String &fileContent, const Utf8String &id); +Utf8String debugId(const FileContainer &fileContainer); + +class CMBIPC_EXPORT VerboseScopeDurationTimer { - Q_OBJECT public: - explicit DeviceTypeKitChooser(Core::Id deviceType, QWidget *parent = 0); - -protected: - bool kitMatches(const Kit *k) const; + VerboseScopeDurationTimer(const char *id = 0); + ~VerboseScopeDurationTimer(); private: - Core::Id m_deviceType; + const char * const id; + QElapsedTimer timer; }; -} // namespace ProjectExplorer +} // namespace ClangBackEnd + +#define TIME_SCOPE_DURATION(id) ClangBackEnd::VerboseScopeDurationTimer scopeDurationTimer(id) -#endif // PROJECTEXPLORER_DEVICETYPEKITCHOOSER_H +#endif // CLANGBACKENDIPCDEBUGUTILS_H diff --git a/src/libs/clangbackendipc/cmbcodecompletedcommand.cpp b/src/libs/clangbackendipc/cmbcodecompletedcommand.cpp index af4fe57e612..c378e88ba2b 100644 --- a/src/libs/clangbackendipc/cmbcodecompletedcommand.cpp +++ b/src/libs/clangbackendipc/cmbcodecompletedcommand.cpp @@ -37,13 +37,13 @@ namespace ClangBackEnd { -CodeCompletedCommand::CodeCompletedCommand(const QVector &codeCompletions, quint64 ticketNumber) +CodeCompletedCommand::CodeCompletedCommand(const CodeCompletions &codeCompletions, quint64 ticketNumber) : codeCompletions_(codeCompletions), ticketNumber_(ticketNumber) { } -const QVector &CodeCompletedCommand::codeCompletions() const +const CodeCompletions &CodeCompletedCommand::codeCompletions() const { return codeCompletions_; } diff --git a/src/libs/clangbackendipc/cmbcodecompletedcommand.h b/src/libs/clangbackendipc/cmbcodecompletedcommand.h index 0550b14af01..f4e8abf2e39 100644 --- a/src/libs/clangbackendipc/cmbcodecompletedcommand.h +++ b/src/libs/clangbackendipc/cmbcodecompletedcommand.h @@ -48,14 +48,14 @@ class CMBIPC_EXPORT CodeCompletedCommand friend void PrintTo(const CodeCompletedCommand &command, ::std::ostream* os); public: CodeCompletedCommand() = default; - CodeCompletedCommand(const QVector &codeCompletions, quint64 ticketNumber); + CodeCompletedCommand(const CodeCompletions &codeCompletions, quint64 ticketNumber); - const QVector &codeCompletions() const; + const CodeCompletions &codeCompletions() const; quint64 ticketNumber() const; private: - QVector codeCompletions_; + CodeCompletions codeCompletions_; quint64 ticketNumber_ = 0; }; diff --git a/src/libs/clangbackendipc/codecompletion.cpp b/src/libs/clangbackendipc/codecompletion.cpp index e9c5ad569f2..3a04192d23b 100644 --- a/src/libs/clangbackendipc/codecompletion.cpp +++ b/src/libs/clangbackendipc/codecompletion.cpp @@ -70,12 +70,12 @@ CodeCompletion::Kind CodeCompletion::completionKind() const return completionKind_; } -void CodeCompletion::setChunks(const QVector &chunks) +void CodeCompletion::setChunks(const CodeCompletionChunks &chunks) { chunks_ = chunks; } -const QVector &CodeCompletion::chunks() const +const CodeCompletionChunks &CodeCompletion::chunks() const { return chunks_; } diff --git a/src/libs/clangbackendipc/codecompletion.h b/src/libs/clangbackendipc/codecompletion.h index 5c7064b5e5b..7bc1e59332f 100644 --- a/src/libs/clangbackendipc/codecompletion.h +++ b/src/libs/clangbackendipc/codecompletion.h @@ -37,9 +37,13 @@ #include #include +#include namespace ClangBackEnd { +class CodeCompletion; +using CodeCompletions = QVector; + class CMBIPC_EXPORT CodeCompletion { friend CMBIPC_EXPORT QDataStream &operator<<(QDataStream &out, const CodeCompletion &command); @@ -91,8 +95,8 @@ class CMBIPC_EXPORT CodeCompletion void setCompletionKind(Kind completionKind); Kind completionKind() const; - void setChunks(const QVector &chunks); - const QVector &chunks() const; + void setChunks(const CodeCompletionChunks &chunks); + const CodeCompletionChunks &chunks() const; void setAvailability(Availability availability); Availability availability() const; @@ -109,7 +113,7 @@ class CMBIPC_EXPORT CodeCompletion private: Utf8String text_; - QVector chunks_; + CodeCompletionChunks chunks_; quint32 priority_ = 0; Kind completionKind_ = Other; Availability availability_ = NotAvailable; diff --git a/src/libs/clangbackendipc/codecompletionchunk.cpp b/src/libs/clangbackendipc/codecompletionchunk.cpp index d6affedfa4a..55869534906 100644 --- a/src/libs/clangbackendipc/codecompletionchunk.cpp +++ b/src/libs/clangbackendipc/codecompletionchunk.cpp @@ -44,7 +44,7 @@ CodeCompletionChunk::CodeCompletionChunk() CodeCompletionChunk::CodeCompletionChunk(CodeCompletionChunk::Kind kind, const Utf8String &text, - const QVector &optionalChunks) + const CodeCompletionChunks &optionalChunks) : text_(text), optionalChunks_(optionalChunks), kind_(kind) @@ -61,7 +61,7 @@ const Utf8String &CodeCompletionChunk::text() const return text_; } -const QVector &CodeCompletionChunk::optionalChunks() const +const CodeCompletionChunks &CodeCompletionChunk::optionalChunks() const { return optionalChunks_; } diff --git a/src/libs/clangbackendipc/codecompletionchunk.h b/src/libs/clangbackendipc/codecompletionchunk.h index fd25880d92b..72df089f289 100644 --- a/src/libs/clangbackendipc/codecompletionchunk.h +++ b/src/libs/clangbackendipc/codecompletionchunk.h @@ -39,6 +39,9 @@ namespace ClangBackEnd { +class CodeCompletionChunk; +using CodeCompletionChunks = QVector; + class CMBIPC_EXPORT CodeCompletionChunk { friend CMBIPC_EXPORT QDataStream &operator<<(QDataStream &out, const CodeCompletionChunk &chunk); @@ -73,18 +76,18 @@ class CMBIPC_EXPORT CodeCompletionChunk CodeCompletionChunk(); CodeCompletionChunk(Kind kind, const Utf8String &text, - const QVector &optionalChunks = QVector()); + const CodeCompletionChunks &optionalChunks = CodeCompletionChunks()); Kind kind() const; const Utf8String &text() const; - const QVector &optionalChunks() const; + const CodeCompletionChunks &optionalChunks() const; private: quint32 &kindAsInt(); private: Utf8String text_; - QVector optionalChunks_; + CodeCompletionChunks optionalChunks_; Kind kind_ = Invalid; }; diff --git a/src/libs/clangbackendipc/connectionclient.cpp b/src/libs/clangbackendipc/connectionclient.cpp index 83b01fc4a23..f13e889f8f2 100644 --- a/src/libs/clangbackendipc/connectionclient.cpp +++ b/src/libs/clangbackendipc/connectionclient.cpp @@ -30,6 +30,7 @@ #include "connectionclient.h" +#include "clangbackendipcdebugutils.h" #include "cmbcompletecodecommand.h" #include "cmbregistertranslationunitsforcodecompletioncommand.h" #include "cmbunregistertranslationunitsforcodecompletioncommand.h" @@ -55,8 +56,8 @@ QString connectionName() ConnectionClient::ConnectionClient(IpcClientInterface *client) : serverProxy_(client, &localSocket), isAliveTimerResetted(false), - stdErrPrefixer("ClangBackEnd-StdErr: "), - stdOutPrefixer("ClangBackEnd: ") + stdErrPrefixer("clangbackend.stderr: "), + stdOutPrefixer("clangbackend.stdout: ") { processAliveTimer.setInterval(10000); @@ -76,6 +77,8 @@ ConnectionClient::~ConnectionClient() bool ConnectionClient::connectToServer() { + TIME_SCOPE_DURATION("ConnectionClient::connectToServer"); + startProcess(); resetProcessAliveTimer(); const bool isConnected = connectToLocalSocket(); @@ -123,6 +126,8 @@ void ConnectionClient::setProcessAliveTimerInterval(int processTimerInterval) void ConnectionClient::startProcess() { + TIME_SCOPE_DURATION("ConnectionClient::startProcess"); + if (!isProcessIsRunning()) { connectProcessFinished(); connectStandardOutputAndError(); @@ -216,6 +221,8 @@ void ConnectionClient::printStandardError() void ConnectionClient::finishProcess() { + TIME_SCOPE_DURATION("ConnectionClient::finishProcess"); + processAliveTimer.stop(); disconnectProcessFinished(); diff --git a/src/libs/clangbackendipc/filecontainer.cpp b/src/libs/clangbackendipc/filecontainer.cpp index 65f81a1ea04..a158a6721e2 100644 --- a/src/libs/clangbackendipc/filecontainer.cpp +++ b/src/libs/clangbackendipc/filecontainer.cpp @@ -30,6 +30,8 @@ #include "filecontainer.h" +#include "clangbackendipcdebugutils.h" + #include #include @@ -108,9 +110,13 @@ QDebug operator<<(QDebug debug, const FileContainer &container) << ", " << container.projectPartId(); - if (container.hasUnsavedFileContent()) + if (container.hasUnsavedFileContent()) { + const Utf8String fileWithContent = debugWriteFileForInspection( + container.unsavedFileContent(), + debugId(container)); debug.nospace() << ", " - << container.unsavedFileContent(); + << "<" << fileWithContent << ">"; + } debug.nospace() << ")"; diff --git a/src/libs/clangbackendipc/projectpartcontainer.cpp b/src/libs/clangbackendipc/projectpartcontainer.cpp index 50b4bcc6a40..85bb60a8e21 100644 --- a/src/libs/clangbackendipc/projectpartcontainer.cpp +++ b/src/libs/clangbackendipc/projectpartcontainer.cpp @@ -30,9 +30,10 @@ #include "projectpartcontainer.h" -#include +#include "clangbackendipcdebugutils.h" #include +#include #include @@ -91,10 +92,15 @@ static Utf8String quotedArguments(const Utf8StringVector &arguments) QDebug operator<<(QDebug debug, const ProjectPartContainer &container) { + const Utf8String arguments = quotedArguments(container.arguments()); + const Utf8String fileWithArguments = debugWriteFileForInspection( + arguments, + Utf8StringLiteral("projectpartargs-")); + debug.nospace() << "ProjectPartContainer(" << container.projectPartId() << "," - << quotedArguments(container.arguments()) + << "<" << fileWithArguments << ">" << ")"; return debug; diff --git a/src/libs/cplusplus/ASTPath.cpp b/src/libs/cplusplus/ASTPath.cpp index a38c5eadc1a..9a4ef293a7f 100644 --- a/src/libs/cplusplus/ASTPath.cpp +++ b/src/libs/cplusplus/ASTPath.cpp @@ -65,8 +65,8 @@ void ASTPath::dump(const QList nodes) bool ASTPath::preVisit(AST *ast) { - unsigned firstToken = ast->firstToken(); - unsigned lastToken = ast->lastToken(); + const unsigned firstToken = firstNonGeneratedToken(ast); + const unsigned lastToken = lastNonGeneratedToken(ast); if (firstToken > 0) { if (lastToken <= firstToken) @@ -89,3 +89,24 @@ bool ASTPath::preVisit(AST *ast) return false; } + +unsigned ASTPath::firstNonGeneratedToken(AST *ast) const +{ + const unsigned lastTokenIndex = ast->lastToken(); + unsigned tokenIndex = ast->firstToken(); + while (tokenIndex <= lastTokenIndex && tokenAt(tokenIndex).generated()) + ++tokenIndex; + return tokenIndex; +} + +unsigned ASTPath::lastNonGeneratedToken(AST *ast) const +{ + const unsigned firstTokenIndex = ast->firstToken(); + const unsigned lastTokenIndex = ast->lastToken(); + unsigned tokenIndex = lastTokenIndex; + while (firstTokenIndex <= tokenIndex && tokenAt(tokenIndex).generated()) + --tokenIndex; + return tokenIndex != lastTokenIndex + ? tokenIndex + 1 + : tokenIndex; +} diff --git a/src/libs/cplusplus/ASTPath.h b/src/libs/cplusplus/ASTPath.h index 8a3eb43a5e2..49bc6a8d7ac 100644 --- a/src/libs/cplusplus/ASTPath.h +++ b/src/libs/cplusplus/ASTPath.h @@ -62,7 +62,11 @@ class CPLUSPLUS_EXPORT ASTPath: public ASTVisitor #endif protected: - virtual bool preVisit(AST *ast); + bool preVisit(AST *ast) override; + +private: + unsigned firstNonGeneratedToken(AST *ast) const; + unsigned lastNonGeneratedToken(AST *ast) const; private: Document::Ptr _doc; diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp index f9660ac26bb..a034e169db5 100644 --- a/src/libs/cplusplus/LookupContext.cpp +++ b/src/libs/cplusplus/LookupContext.cpp @@ -41,6 +41,7 @@ #include #include #include +#include #include #include @@ -1255,12 +1256,14 @@ LookupScopePrivate *LookupScopePrivate::nestedType(const Name *name, LookupScope if (baseTemplate) break; } - if (LookupScopePrivate *specialization = - findSpecialization(baseTemplate, templId, specializations, origin)) { - reference = specialization; - if (Q_UNLIKELY(debug)) { - Overview oo; - qDebug() << "picked specialization" << oo(specialization->_name); + if (baseTemplate) { + if (LookupScopePrivate *specialization = + findSpecialization(baseTemplate, templId, specializations, origin)) { + reference = specialization; + if (Q_UNLIKELY(debug)) { + Overview oo; + qDebug() << "picked specialization" << oo(specialization->_name); + } } } } @@ -1970,9 +1973,11 @@ FullySpecifiedType CreateBindings::resolveTemplateArgument(Clone &cloner, unsigned index) { FullySpecifiedType ty; + CPP_ASSERT(specialization && instantiation, return ty); - const TypenameArgument *tParam - = specialization->templateParameterAt(index)->asTypenameArgument(); + const TypenameArgument *tParam = 0; + if (Symbol *tArgument = specialization->templateParameterAt(index)) + tParam = tArgument->asTypenameArgument(); if (!tParam) return ty; diff --git a/src/libs/sqlite/utf8string.h b/src/libs/sqlite/utf8string.h index 4a7c8512ccb..70531db218f 100644 --- a/src/libs/sqlite/utf8string.h +++ b/src/libs/sqlite/utf8string.h @@ -115,27 +115,7 @@ SQLITE_EXPORT QDataStream &operator>>(QDataStream &datastream, Utf8String &text) SQLITE_EXPORT QDebug operator<<(QDebug debug, const Utf8String &text); SQLITE_EXPORT void PrintTo(const Utf8String &text, ::std::ostream* os); -#if defined(Q_COMPILER_LAMBDA) - -# define Utf8StringLiteral(str) \ - ([]() -> Utf8String { \ - enum { Size = sizeof(str) - 1 }; \ - static const QStaticByteArrayData qbytearray_literal = { \ - Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER(Size), \ - str }; \ - QByteArrayDataPtr holder = { qbytearray_literal.data_ptr() }; \ - const QByteArray byteArray(holder); \ - return Utf8String::fromByteArray(byteArray); \ - }()) \ - /**/ - -#endif - -#ifndef Utf8StringLiteral -// no lambdas, not GCC, just return a temporary QByteArray - -# define Utf8StringLiteral(str) Utf8String(str, sizeof(str) - 1) -#endif +#define Utf8StringLiteral(str) Utf8String::fromByteArray(QByteArrayLiteral(str)) Q_DECLARE_METATYPE(Utf8String) diff --git a/src/plugins/analyzerbase/startremotedialog.cpp b/src/plugins/analyzerbase/startremotedialog.cpp index e971e6a7ee2..6f18fa8d0f9 100644 --- a/src/plugins/analyzerbase/startremotedialog.cpp +++ b/src/plugins/analyzerbase/startremotedialog.cpp @@ -46,24 +46,10 @@ using namespace Utils; namespace Analyzer { namespace Internal { -class SshKitChooser : public KitChooser -{ -public: - SshKitChooser(QWidget *parent = 0) : KitChooser(parent) { } - -private: - bool kitMatches(const Kit *kit) const { - if (!KitChooser::kitMatches(kit)) - return false; - const IDevice::ConstPtr device = DeviceKitInformation::device(kit); - return device && !device->sshParameters().host.isEmpty(); - } -}; - class StartRemoteDialogPrivate { public: - SshKitChooser *kitChooser; + KitChooser *kitChooser; QLineEdit *executable; QLineEdit *arguments; QLineEdit *workingDirectory; @@ -79,7 +65,11 @@ StartRemoteDialog::StartRemoteDialog(QWidget *parent) setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); setWindowTitle(tr("Start Remote Analysis")); - d->kitChooser = new Internal::SshKitChooser(this); + d->kitChooser = new KitChooser(this); + d->kitChooser->setKitMatcher([](const Kit *kit) { + const IDevice::ConstPtr device = DeviceKitInformation::device(kit); + return kit->isValid() && device && !device->sshParameters().host.isEmpty(); + }); d->executable = new QLineEdit(this); d->arguments = new QLineEdit(this); d->workingDirectory = new QLineEdit(this); diff --git a/src/plugins/android/androiddevicedialog.cpp b/src/plugins/android/androiddevicedialog.cpp index 45bdecdc904..ca0ac7e27ae 100644 --- a/src/plugins/android/androiddevicedialog.cpp +++ b/src/plugins/android/androiddevicedialog.cpp @@ -109,6 +109,7 @@ class AndroidDeviceModelNode class AndroidDeviceModelDelegate : public QStyledItemDelegate { + Q_OBJECT public: AndroidDeviceModelDelegate(QObject * parent = 0) : QStyledItemDelegate(parent) @@ -239,6 +240,7 @@ class AndroidDeviceModelDelegate : public QStyledItemDelegate class AndroidDeviceModel : public QAbstractItemModel { + Q_OBJECT public: AndroidDeviceModel(int apiLevel, const QString &abi, AndroidConfigurations::Options options); QModelIndex index(int row, int column, @@ -663,3 +665,5 @@ void AndroidDeviceDialog::defaultDeviceClear() m_ui->lookingForDeviceCancel->setVisible(false); m_defaultDevice.clear(); } + +#include "androiddevicedialog.moc" diff --git a/src/plugins/android/androidqtsupport.cpp b/src/plugins/android/androidqtsupport.cpp index 8527ca8b6b2..2f4c2dafe50 100644 --- a/src/plugins/android/androidqtsupport.cpp +++ b/src/plugins/android/androidqtsupport.cpp @@ -48,9 +48,9 @@ Utils::FileName Android::AndroidQtSupport::apkPath(ProjectExplorer::Target *targ QString apkPath; if (buildApkStep->useGradle()) - apkPath = QLatin1String("/build/outputs/apk/android-build-"); + apkPath = QLatin1String("build/outputs/apk/android-build-"); else - apkPath = QLatin1String("/bin/QtApp-"); + apkPath = QLatin1String("bin/QtApp-"); if (buildApkStep->signPackage()) apkPath += QLatin1String("release.apk"); else diff --git a/src/plugins/clangcodemodel/activationsequencecontextprocessor.cpp b/src/plugins/clangcodemodel/activationsequencecontextprocessor.cpp new file mode 100644 index 00000000000..1b03f0e5b75 --- /dev/null +++ b/src/plugins/clangcodemodel/activationsequencecontextprocessor.cpp @@ -0,0 +1,272 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing +** +** 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 The Qt Company. For licensing terms and +** conditions see http://www.qt.io/terms-conditions. For further information +** use the contact form at http://www.qt.io/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 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#include "activationsequencecontextprocessor.h" + +#include "activationsequenceprocessor.h" + +#include +#include +#include + +#include +#include + +namespace ClangCodeModel { +namespace Internal { + +ActivationSequenceContextProcessor::ActivationSequenceContextProcessor(const ClangCompletionAssistInterface *assistInterface) + : m_textCursor(assistInterface->textDocument()), + m_assistInterface(assistInterface), + m_positionInDocument(assistInterface->position()), + m_startOfNamePosition(m_positionInDocument), + m_operatorStartPosition(m_positionInDocument) + +{ + m_textCursor.setPosition(m_positionInDocument); + + process(); +} + +CPlusPlus::Kind ActivationSequenceContextProcessor::completionKind() const +{ + return m_completionKind; +} + +const QTextCursor &ActivationSequenceContextProcessor::textCursor_forTestOnly() const +{ + return m_textCursor; +} + +int ActivationSequenceContextProcessor::startOfNamePosition() const +{ + return m_startOfNamePosition; +} + +int ActivationSequenceContextProcessor::operatorStartPosition() const +{ + return m_operatorStartPosition; +} + +void ActivationSequenceContextProcessor::process() +{ + goBackToStartOfName(); + processActivationSequence(); + + if (m_completionKind != CPlusPlus::T_EOF_SYMBOL) { + processStringLiteral(); + processComma(); + generateTokens(); + processDoxygenComment(); + processComment(); + processInclude(); + processSlashOutsideOfAString(); + processLeftParen(); + processPreprocessorInclude(); + } + + resetPositionsForEOFCompletionKind(); +} + +void ActivationSequenceContextProcessor::processActivationSequence() +{ + const int nonSpacePosition = skipPrecedingWhitespace(m_assistInterface, m_startOfNamePosition); + const auto activationSequence = m_assistInterface->textAt(nonSpacePosition - 3, 3); + ActivationSequenceProcessor activationSequenceProcessor(activationSequence, + nonSpacePosition, + true); + + m_completionKind = activationSequenceProcessor.completionKind(); + m_operatorStartPosition = activationSequenceProcessor.operatorStartPosition(); +} + +void ActivationSequenceContextProcessor::processStringLiteral() +{ + if (m_completionKind == CPlusPlus::T_STRING_LITERAL) { + QTextCursor selectionTextCursor = m_textCursor; + selectionTextCursor.movePosition(QTextCursor::StartOfLine, QTextCursor::KeepAnchor); + QString selection = selectionTextCursor.selectedText(); + if (selection.indexOf(QLatin1Char('"')) < selection.length() - 1) + m_completionKind = CPlusPlus::T_EOF_SYMBOL; + } +} + +void ActivationSequenceContextProcessor::processComma() +{ + if (m_completionKind == CPlusPlus::T_COMMA) { + CPlusPlus::ExpressionUnderCursor expressionUnderCursor(m_assistInterface->languageFeatures()); + if (expressionUnderCursor.startOfFunctionCall(m_textCursor) == -1) + m_completionKind = CPlusPlus::T_EOF_SYMBOL; + } +} + +void ActivationSequenceContextProcessor::generateTokens() +{ + CPlusPlus::SimpleLexer tokenize; + tokenize.setLanguageFeatures(m_assistInterface->languageFeatures()); + tokenize.setSkipComments(false); + auto state = CPlusPlus::BackwardsScanner::previousBlockState(m_textCursor.block()); + m_tokens = tokenize(m_textCursor.block().text(), state); + int leftOfCursorTokenIndex = std::max(0, m_textCursor.positionInBlock() - 1); + m_tokenIndex= CPlusPlus::SimpleLexer::tokenBefore(m_tokens, leftOfCursorTokenIndex); // get the token at the left of the cursor + if (m_tokenIndex > -1) + m_token = m_tokens.at(m_tokenIndex); +} + +void ActivationSequenceContextProcessor::processDoxygenComment() +{ + if (m_completionKind == CPlusPlus::T_DOXY_COMMENT + && !(m_token.is(CPlusPlus::T_DOXY_COMMENT) + || m_token.is(CPlusPlus::T_CPP_DOXY_COMMENT))) + m_completionKind = CPlusPlus::T_EOF_SYMBOL; +} + +void ActivationSequenceContextProcessor::processComment() +{ + if (m_token.is(CPlusPlus::T_COMMENT) || m_token.is(CPlusPlus::T_CPP_COMMENT)) + m_completionKind = CPlusPlus::T_EOF_SYMBOL; +} + +void ActivationSequenceContextProcessor::processInclude() +{ + if (m_token.isLiteral() && !isCompletionKindStringLiteralOrSlash()) + m_completionKind = CPlusPlus::T_EOF_SYMBOL; +} + +void ActivationSequenceContextProcessor::processSlashOutsideOfAString() +{ + if (m_completionKind ==CPlusPlus::T_SLASH + && (m_token.isNot(CPlusPlus::T_STRING_LITERAL) + && m_token.isNot(CPlusPlus::T_ANGLE_STRING_LITERAL))) + m_completionKind = CPlusPlus::T_EOF_SYMBOL; +} + +void ActivationSequenceContextProcessor::processLeftParen() +{ + if (m_completionKind == CPlusPlus::T_LPAREN) { + if (m_tokenIndex > 0) { + // look at the token at the left of T_LPAREN + const CPlusPlus::Token &previousToken = m_tokens.at(m_tokenIndex - 1); + switch (previousToken.kind()) { + case CPlusPlus::T_IDENTIFIER: + case CPlusPlus::T_GREATER: + case CPlusPlus::T_SIGNAL: + case CPlusPlus::T_SLOT: + break; // good + + default: + // that's a bad token :) + m_completionKind = CPlusPlus::T_EOF_SYMBOL; + } + } + } +} + +bool ActivationSequenceContextProcessor::isCompletionKindStringLiteralOrSlash() const +{ + return m_completionKind == CPlusPlus::T_STRING_LITERAL + || m_completionKind == CPlusPlus::T_ANGLE_STRING_LITERAL + || m_completionKind == CPlusPlus::T_SLASH; +} + +bool ActivationSequenceContextProcessor::isProbablyPreprocessorIncludeDirective() const +{ + return m_tokens.size() >= 3 + && m_tokens.at(0).is(CPlusPlus::T_POUND) + && m_tokens.at(1).is(CPlusPlus::T_IDENTIFIER) + && (m_tokens.at(2).is(CPlusPlus::T_STRING_LITERAL) + || m_tokens.at(2).is(CPlusPlus::T_ANGLE_STRING_LITERAL)); +} + +void ActivationSequenceContextProcessor::processPreprocessorInclude() +{ + if (isCompletionKindStringLiteralOrSlash()) { + if (isProbablyPreprocessorIncludeDirective()) { + const CPlusPlus::Token &directiveToken = m_tokens.at(1); + QString directive = m_textCursor.block().text().mid(directiveToken.bytesBegin(), + directiveToken.bytes()); + if (directive != QStringLiteral("include") + && directive != QStringLiteral("include_next") + && directive != QStringLiteral("import")) + m_completionKind = CPlusPlus::T_EOF_SYMBOL; + } else { + m_completionKind = CPlusPlus::T_EOF_SYMBOL; + } + } +} + +void ActivationSequenceContextProcessor::resetPositionsForEOFCompletionKind() +{ + if (m_completionKind == CPlusPlus::T_EOF_SYMBOL) + m_operatorStartPosition = m_positionInDocument; +} + +int ActivationSequenceContextProcessor::skipPrecedingWhitespace( + const TextEditor::AssistInterface *assistInterface, + int startPosition) +{ + int position = startPosition; + while (assistInterface->characterAt(position - 1).isSpace()) + --position; + return position; +} + +static bool isValidIdentifierChar(const QChar &character) +{ + return character.isLetterOrNumber() + || character == QLatin1Char('_') + || character.isHighSurrogate() + || character.isLowSurrogate(); +} + +int ActivationSequenceContextProcessor::findStartOfName( + const TextEditor::AssistInterface *assistInterface, + int startPosition) +{ + int position = startPosition; + QChar character; + do { + character = assistInterface->characterAt(--position); + } while (isValidIdentifierChar(character)); + + return position + 1; +} + +void ActivationSequenceContextProcessor::goBackToStartOfName() +{ + m_startOfNamePosition = findStartOfName(m_assistInterface, m_positionInDocument); + + if (m_startOfNamePosition != m_positionInDocument) + m_textCursor.setPosition(m_startOfNamePosition); +} + +} // namespace Internal +} // namespace ClangCodeModel + diff --git a/src/plugins/clangcodemodel/activationsequencecontextprocessor.h b/src/plugins/clangcodemodel/activationsequencecontextprocessor.h new file mode 100644 index 00000000000..f63bfa2c5a7 --- /dev/null +++ b/src/plugins/clangcodemodel/activationsequencecontextprocessor.h @@ -0,0 +1,96 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing +** +** 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 The Qt Company. For licensing terms and +** conditions see http://www.qt.io/terms-conditions. For further information +** use the contact form at http://www.qt.io/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 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#ifndef CLANGCODEMODEL_INTERNAL_ACTIVATIONSEQUENCECONTEXTPROCESSOR_H +#define CLANGCODEMODEL_INTERNAL_ACTIVATIONSEQUENCECONTEXTPROCESSOR_H + +#include + +#include + +#include + +QT_BEGIN_NAMESPACE +class QTextDocument; +QT_END_NAMESPACE + +namespace ClangCodeModel { +namespace Internal { + +class ActivationSequenceContextProcessor +{ +public: + ActivationSequenceContextProcessor(const ClangCompletionAssistInterface *assistInterface); + + CPlusPlus::Kind completionKind() const; + int startOfNamePosition() const; // e.g. points to 'b' in "foo.bar" + int operatorStartPosition() const; // e.g. points to '.' for "foo.bar" + + const QTextCursor &textCursor_forTestOnly() const; + + static int findStartOfName(const TextEditor::AssistInterface *assistInterface, + int startPosition); + static int skipPrecedingWhitespace(const TextEditor::AssistInterface *assistInterface, + int startPosition); + +protected: + void process(); + void goBackToStartOfName(); + void processActivationSequence(); + void processStringLiteral(); + void processComma(); + void generateTokens(); + void processDoxygenComment(); + void processComment(); + void processInclude(); + void processSlashOutsideOfAString(); + void processLeftParen(); + void processPreprocessorInclude(); + void resetPositionsForEOFCompletionKind(); + + bool isCompletionKindStringLiteralOrSlash() const; + bool isProbablyPreprocessorIncludeDirective() const; + +private: + QVector m_tokens; + QTextCursor m_textCursor; + CPlusPlus::Token m_token; + const ClangCompletionAssistInterface *m_assistInterface; + int m_tokenIndex; + const int m_positionInDocument; + int m_startOfNamePosition; + int m_operatorStartPosition; + CPlusPlus::Kind m_completionKind; +}; + +} // namespace Internal +} // namespace ClangCodeModel + +#endif // CLANGCODEMODEL_INTERNAL_ACTIVATIONSEQUENCECONTEXTPROCESSOR_H diff --git a/src/plugins/clangcodemodel/activationsequenceprocessor.cpp b/src/plugins/clangcodemodel/activationsequenceprocessor.cpp index fac5a58c28b..a7f4ea948d0 100644 --- a/src/plugins/clangcodemodel/activationsequenceprocessor.cpp +++ b/src/plugins/clangcodemodel/activationsequenceprocessor.cpp @@ -71,7 +71,7 @@ int ActivationSequenceProcessor::offset() const return m_offset; } -int ActivationSequenceProcessor::position() const +int ActivationSequenceProcessor::operatorStartPosition() const { return m_positionInDocument - m_offset; } @@ -164,8 +164,8 @@ void ActivationSequenceProcessor::processArrowStar() void ActivationSequenceProcessor::processDoxyGenComment() { - if ((m_char2 == QLatin1Char('\\') || m_char2 == QLatin1Char('@')) - && (m_char3.isNull() || m_char3.isSpace())) { + if ((m_char2.isNull() || m_char2.isSpace()) + && (m_char3 == QLatin1Char('\\') || m_char3 == QLatin1Char('@'))) { m_completionKind = CPlusPlus::T_DOXY_COMMENT; m_offset = 1; } diff --git a/src/plugins/clangcodemodel/activationsequenceprocessor.h b/src/plugins/clangcodemodel/activationsequenceprocessor.h index eacc81af203..2c6350dbafc 100644 --- a/src/plugins/clangcodemodel/activationsequenceprocessor.h +++ b/src/plugins/clangcodemodel/activationsequenceprocessor.h @@ -47,7 +47,7 @@ class ActivationSequenceProcessor CPlusPlus::Kind completionKind() const; int offset() const; - int position() const; + int operatorStartPosition() const; // e.g. points to '.' for "foo.bar" private: void extractCharactersBeforePosition(const QString &activationString); diff --git a/src/plugins/clangcodemodel/clangassistproposalitem.cpp b/src/plugins/clangcodemodel/clangassistproposalitem.cpp index 41cb7702075..474d2d2b6ef 100644 --- a/src/plugins/clangcodemodel/clangassistproposalitem.cpp +++ b/src/plugins/clangcodemodel/clangassistproposalitem.cpp @@ -54,8 +54,6 @@ bool ClangAssistProposalItem::prematurelyApplies(const QChar &typedChar) const applies = QString::fromLatin1("(,").contains(typedChar); else if (m_completionOperator == T_STRING_LITERAL || m_completionOperator == T_ANGLE_STRING_LITERAL) applies = (typedChar == QLatin1Char('/')) && text().endsWith(QLatin1Char('/')); - else if (!isCodeCompletion()) - applies = (typedChar == QLatin1Char('(')); /* && data().canConvert()*/ //### else if (codeCompletion().completionKind() == CodeCompletion::ObjCMessageCompletionKind) applies = QString::fromLatin1(";.,").contains(typedChar); else @@ -247,18 +245,14 @@ void ClangAssistProposalItem::addOverload(const CodeCompletion &ccr) m_overloads.append(ccr); } -CodeCompletion ClangAssistProposalItem::codeCompletion() const +void ClangAssistProposalItem::setCodeCompletion(const CodeCompletion &codeCompletion) { - const QVariant &value = data(); - if (value.canConvert()) - return value.value(); - else - return CodeCompletion(); + m_codeCompletion = codeCompletion; } -bool ClangAssistProposalItem::isCodeCompletion() const +const ClangBackEnd::CodeCompletion &ClangAssistProposalItem::codeCompletion() const { - return data().canConvert(); + return m_codeCompletion; } } // namespace Internal diff --git a/src/plugins/clangcodemodel/clangassistproposalitem.h b/src/plugins/clangcodemodel/clangassistproposalitem.h index b636f6d81b0..3aedd8c0b7a 100644 --- a/src/plugins/clangcodemodel/clangassistproposalitem.h +++ b/src/plugins/clangcodemodel/clangassistproposalitem.h @@ -52,13 +52,14 @@ class ClangAssistProposalItem : public TextEditor::AssistProposalItem bool isOverloaded() const; void addOverload(const ClangBackEnd::CodeCompletion &ccr); - ClangBackEnd::CodeCompletion codeCompletion() const; + void setCodeCompletion(const ClangBackEnd::CodeCompletion &codeCompletion); + const ClangBackEnd::CodeCompletion &codeCompletion() const; - bool isCodeCompletion() const; private: + ClangBackEnd::CodeCompletion m_codeCompletion; + QList m_overloads; unsigned m_completionOperator; mutable QChar m_typedChar; - QList m_overloads; }; } // namespace Internal diff --git a/src/plugins/clangcodemodel/clangbackendipcintegration.cpp b/src/plugins/clangcodemodel/clangbackendipcintegration.cpp index d03b56b89a6..3d44710072c 100644 --- a/src/plugins/clangcodemodel/clangbackendipcintegration.cpp +++ b/src/plugins/clangcodemodel/clangbackendipcintegration.cpp @@ -145,8 +145,11 @@ void IpcReceiver::codeCompleted(const CodeCompletedCommand &command) const quint64 ticket = command.ticketNumber(); QScopedPointer processor(m_assistProcessorsTable.take(ticket)); - if (processor) - processor->asyncCompletionsAvailable(command.codeCompletions()); + if (processor) { + const bool finished = processor->handleAvailableAsyncCompletions(command.codeCompletions()); + if (!finished) + processor.take(); + } } void IpcReceiver::translationUnitDoesNotExist(const TranslationUnitDoesNotExistCommand &command) @@ -233,13 +236,10 @@ static bool areCommandsRegistered = false; void IpcCommunicator::initializeBackend() { - // TODO: Add a asynchron API to ConnectionClient, otherwise we might hang here - if (!areCommandsRegistered) { areCommandsRegistered = true; Commands::registerCommands(); } - QElapsedTimer timer; timer.start(); const QString clangBackEndProcessPath = backendProcessPath(); qCDebug(log) << "Starting" << clangBackEndProcessPath; @@ -251,12 +251,9 @@ void IpcCommunicator::initializeBackend() connect(&m_connection, &ConnectionClient::processRestarted, this, &IpcCommunicator::onBackendRestarted); - if (m_connection.connectToServer()) { - qCDebug(log) << "...started and connected in" << timer.elapsed() << "ms."; + // TODO: Add a asynchron API to ConnectionClient, otherwise we might hang here + if (m_connection.connectToServer()) initializeBackendWithCurrentData(); - } else { - qCDebug(log) << "...failed."; - } } void IpcCommunicator::registerEmptyProjectForProjectLessFiles() @@ -310,8 +307,7 @@ static ClangBackEnd::ProjectPartContainer toProjectPartContainer( const CppTools::ProjectPart::Ptr &projectPart) { const QStringList arguments = projectPartCommandLine(projectPart); - return ClangBackEnd::ProjectPartContainer(projectPart->projectFile, - Utf8StringVector(arguments)); + return ClangBackEnd::ProjectPartContainer(projectPart->id(), Utf8StringVector(arguments)); } static QVector toProjectPartContainers( @@ -339,13 +335,13 @@ void IpcCommunicator::updateUnsavedFileFromCppEditorDocument(const QString &file void IpcCommunicator::updateUnsavedFile(const QString &filePath, const QByteArray &contents) { - const QString projectFilePath = Utils::projectFilePathForFile(filePath); + const QString projectPartId = Utils::projectPartIdForFile(filePath); const bool hasUnsavedContent = true; // TODO: Send new only if changed registerFilesForCodeCompletion({ ClangBackEnd::FileContainer(filePath, - projectFilePath, + projectPartId, Utf8String::fromByteArray(contents), hasUnsavedContent) }); @@ -432,12 +428,12 @@ void IpcCommunicator::registerProjectPartsForCodeCompletion( m_ipcSender->registerProjectPartsForCodeCompletion(command); } -void IpcCommunicator::unregisterProjectPartsForCodeCompletion(const QStringList &filePaths) +void IpcCommunicator::unregisterProjectPartsForCodeCompletion(const QStringList &projectPartIds) { if (m_sendMode == IgnoreSendRequests) return; - const UnregisterProjectPartsForCodeCompletionCommand command((Utf8StringVector(filePaths))); + const UnregisterProjectPartsForCodeCompletionCommand command((Utf8StringVector(projectPartIds))); qCDebug(log) << ">>>" << command; m_ipcSender->unregisterProjectPartsForCodeCompletion(command); } diff --git a/src/plugins/clangcodemodel/clangbackendipcintegration.h b/src/plugins/clangcodemodel/clangbackendipcintegration.h index 4a4ca40ab0f..70aaf7c88d0 100644 --- a/src/plugins/clangcodemodel/clangbackendipcintegration.h +++ b/src/plugins/clangcodemodel/clangbackendipcintegration.h @@ -112,7 +112,7 @@ class IpcCommunicator : public QObject void registerFilesForCodeCompletion(const FileContainers &fileContainers); void unregisterFilesForCodeCompletion(const FileContainers &fileContainers); void registerProjectPartsForCodeCompletion(const ProjectPartContainers &projectPartContainers); - void unregisterProjectPartsForCodeCompletion(const QStringList &filePaths); + void unregisterProjectPartsForCodeCompletion(const QStringList &projectPartIds); void completeCode(ClangCompletionAssistProcessor *assistProcessor, const QString &filePath, quint32 line, quint32 column, diff --git a/src/plugins/clangcodemodel/clangcodemodel.pro b/src/plugins/clangcodemodel/clangcodemodel.pro index 9ad3b7a989a..b4758730d88 100644 --- a/src/plugins/clangcodemodel/clangcodemodel.pro +++ b/src/plugins/clangcodemodel/clangcodemodel.pro @@ -12,6 +12,7 @@ DEFINES += "\"CLANG_RESOURCE_DIR=\\\"$${LLVM_LIBDIR}/clang/$${LLVM_VERSION}/incl unix:QMAKE_LFLAGS += -Wl,-rpath,\'$$LLVM_LIBDIR\' SOURCES += \ + activationsequencecontextprocessor.cpp \ activationsequenceprocessor.cpp \ clangassistproposal.cpp \ clangassistproposalitem.cpp \ @@ -48,6 +49,7 @@ SOURCES += \ HEADERS += \ + activationsequencecontextprocessor.h \ activationsequenceprocessor.h \ clangassistproposal.h \ clangassistproposalitem.h \ @@ -107,13 +109,10 @@ equals(TEST, 1) { test/clang_tests_database.qrc HEADERS += \ - test/clangcodecompletion_test.h \ - test/clangcompletioncontextanalyzertest.h + test/clangcodecompletion_test.h SOURCES += \ - test/clangcodecompletion_test.cpp \ - test/clangcompletioncontextanalyzertest.cpp - + test/clangcodecompletion_test.cpp DISTFILES += \ test/mysource.cpp \ diff --git a/src/plugins/clangcodemodel/clangcodemodel.qbs b/src/plugins/clangcodemodel/clangcodemodel.qbs index e0ba967fb76..cc41d8ebd2d 100644 --- a/src/plugins/clangcodemodel/clangcodemodel.qbs +++ b/src/plugins/clangcodemodel/clangcodemodel.qbs @@ -1,6 +1,7 @@ import qbs import qbs.File import QtcClangInstallation as Clang +import QtcFunctions import QtcProcessOutputReader QtcPlugin { @@ -23,7 +24,7 @@ QtcPlugin { property bool clangHighlighting: true property bool clangIndexing: false - property string llvmConfig: Clang.llvmConfig(qbs) + property string llvmConfig: Clang.llvmConfig(qbs, QtcFunctions, QtcProcessOutputReader) property string llvmIncludeDir: Clang.includeDir(llvmConfig, QtcProcessOutputReader) property string llvmLibDir: Clang.libDir(llvmConfig, QtcProcessOutputReader) property string llvmLibs: Clang.libraries(qbs.targetOS) @@ -53,6 +54,8 @@ QtcPlugin { name: "Completion support" condition: product.clangCompletion files: [ + "activationsequencecontextprocessor.cpp", + "activationsequencecontextprocessor.h", "activationsequenceprocessor.cpp", "activationsequenceprocessor.h", "clangassistproposal.cpp", @@ -104,8 +107,6 @@ QtcPlugin { "clang_tests_database.qrc", "clangcodecompletion_test.cpp", "clangcodecompletion_test.h", - "clangcompletioncontextanalyzertest.cpp", - "clangcompletioncontextanalyzertest.h", ] } diff --git a/src/plugins/clangcodemodel/clangcodemodelplugin.cpp b/src/plugins/clangcodemodel/clangcodemodelplugin.cpp index 8f68803eb0c..c6c42855a93 100644 --- a/src/plugins/clangcodemodel/clangcodemodelplugin.cpp +++ b/src/plugins/clangcodemodel/clangcodemodelplugin.cpp @@ -36,7 +36,6 @@ #ifdef WITH_TESTS # include "test/clangcodecompletion_test.h" -# include "test/clangcompletioncontextanalyzertest.h" #endif #include @@ -93,7 +92,6 @@ QList ClangCodeModelPlugin::createTestObjects() const { return { new Tests::ClangCodeCompletionTest, - new Tests::ClangCompletionContextAnalyzerTest }; } #endif diff --git a/src/plugins/clangcodemodel/clangcodemodelunittestfiles.pri b/src/plugins/clangcodemodel/clangcodemodelunittestfiles.pri index e40a4c8fa4b..71055941787 100644 --- a/src/plugins/clangcodemodel/clangcodemodelunittestfiles.pri +++ b/src/plugins/clangcodemodel/clangcodemodelunittestfiles.pri @@ -1,7 +1,11 @@ INCLUDEPATH += $$PWD SOURCES += $$PWD/completionchunkstotextconverter.cpp \ - $$PWD/activationsequenceprocessor.cpp + $$PWD/activationsequenceprocessor.cpp \ + $$PWD/activationsequencecontextprocessor.cpp \ + $$PWD/clangcompletioncontextanalyzer.cpp HEADERS += $$PWD/completionchunkstotextconverter.h \ - $$PWD/activationsequenceprocessor.h + $$PWD/activationsequenceprocessor.h \ + $$PWD/activationsequencecontextprocessor.h \ + $$PWD/clangcompletioncontextanalyzer.h diff --git a/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp b/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp index 505b5fcc223..bff0c4577e7 100644 --- a/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp +++ b/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp @@ -61,6 +61,7 @@ namespace ClangCodeModel { namespace Internal { +using ClangBackEnd::CodeCompletion; using TextEditor::AssistProposalItem; namespace { @@ -72,8 +73,6 @@ QList toAssistProposalItems(const CodeCompletions &complet { static CPlusPlus::Icons m_icons; // de-deduplicate - QList result; - bool signalCompletion = false; // TODO bool slotCompletion = false; // TODO @@ -105,11 +104,10 @@ QList toAssistProposalItems(const CodeCompletions &complet if (ccr.completionKind() == CodeCompletion::KeywordCompletionKind) item->setDetail(CompletionChunksToTextConverter::convertToToolTip(ccr.chunks())); - item->setData(QVariant::fromValue(ccr)); + item->setCodeCompletion(ccr); } // FIXME: show the effective accessebility instead of availability - using ClangBackEnd::CodeCompletion; using CPlusPlus::Icons; switch (ccr.completionKind()) { @@ -179,10 +177,11 @@ QList toAssistProposalItems(const CodeCompletions &complet } } - foreach (ClangAssistProposalItem *item, items.values()) - result.append(item); + QList results; + results.reserve(items.size()); + std::copy(items.cbegin(), items.cend(), std::back_inserter(results)); - return result; + return results; } bool isFunctionHintLikeCompletion(CodeCompletion::Kind kind) @@ -194,10 +193,10 @@ bool isFunctionHintLikeCompletion(CodeCompletion::Kind kind) || kind == CodeCompletion::SlotCompletionKind; } -QVector matchingFunctionCompletions(const QVector completions, - const QString &functionName) +CodeCompletions matchingFunctionCompletions(const CodeCompletions completions, + const QString &functionName) { - QVector matching; + CodeCompletions matching; foreach (const CodeCompletion &completion, completions) { if (isFunctionHintLikeCompletion(completion.completionKind()) @@ -227,25 +226,32 @@ IAssistProposal *ClangCompletionAssistProcessor::perform(const AssistInterface * { m_interface.reset(static_cast(interface)); - if (interface->reason() != ExplicitlyInvoked && !accepts()) + if (interface->reason() != ExplicitlyInvoked && !accepts()) { + setPerformWasApplicable(false); return 0; + } return startCompletionHelper(); // == 0 if results are calculated asynchronously } -void ClangCompletionAssistProcessor::asyncCompletionsAvailable(const CodeCompletions &completions) +bool ClangCompletionAssistProcessor::handleAvailableAsyncCompletions( + const CodeCompletions &completions) { + bool handled = true; + switch (m_sentRequestType) { case CompletionRequestType::NormalCompletion: - onCompletionsAvailable(completions); + handleAvailableCompletions(completions); break; case CompletionRequestType::FunctionHintCompletion: - onFunctionHintCompletionsAvailable(completions); + handled = handleAvailableFunctionHintCompletions(completions); break; default: QTC_CHECK(!"Unhandled ClangCompletionAssistProcessor::CompletionRequestType"); break; } + + return handled; } const TextEditorWidget *ClangCompletionAssistProcessor::textEditorWidget() const @@ -302,8 +308,6 @@ static QByteArray modifyInput(QTextDocument *doc, int endOfExpression) { IAssistProposal *ClangCompletionAssistProcessor::startCompletionHelper() { - sendFileContent(Utils::projectFilePathForFile(m_interface->fileName()), QByteArray()); // TODO: Remoe - ClangCompletionContextAnalyzer analyzer(m_interface.data(), m_interface->languageFeatures()); analyzer.analyze(); m_completionOperator = analyzer.completionOperator(); @@ -361,7 +365,7 @@ int ClangCompletionAssistProcessor::startOfOperator(int positionInDocument, *kind = activationSequenceProcessor.completionKind(); - int start = activationSequenceProcessor.position(); + int start = activationSequenceProcessor.operatorStartPosition(); if (start != positionInDocument) { QTextCursor tc(m_interface->textDocument()); tc.setPosition(positionInDocument); @@ -648,34 +652,44 @@ void ClangCompletionAssistProcessor::addCompletionItem(const QString &text, m_completions.append(item); } -void ClangCompletionAssistProcessor::sendFileContent(const QString &projectFilePath, - const QByteArray &modifiedFileContent) +ClangCompletionAssistProcessor::UnsavedFileContentInfo +ClangCompletionAssistProcessor::unsavedFileContent(const QByteArray &customFileContent) const { - const QString filePath = m_interface->fileName(); - const QByteArray unsavedContent = modifiedFileContent.isEmpty() - ? m_interface->textDocument()->toPlainText().toUtf8() - : modifiedFileContent; - const bool hasUnsavedContent = true; // TODO + const bool hasCustomModification = !customFileContent.isEmpty(); + + UnsavedFileContentInfo info; + info.isDocumentModified = hasCustomModification || m_interface->textDocument()->isModified(); + info.unsavedContent = hasCustomModification + ? customFileContent + : m_interface->textDocument()->toPlainText().toUtf8(); + return info; +} + +void ClangCompletionAssistProcessor::sendFileContent(const QString &projectPartId, + const QByteArray &customFileContent) +{ + // TODO: Revert custom modification after the completions + const UnsavedFileContentInfo info = unsavedFileContent(customFileContent); IpcCommunicator &ipcCommunicator = m_interface->ipcCommunicator(); ipcCommunicator.registerFilesForCodeCompletion( - {ClangBackEnd::FileContainer(filePath, - projectFilePath, - Utf8String::fromByteArray(unsavedContent), - hasUnsavedContent)}); + {ClangBackEnd::FileContainer(m_interface->fileName(), + projectPartId, + Utf8String::fromByteArray(info.unsavedContent), + info.isDocumentModified)}); } void ClangCompletionAssistProcessor::sendCompletionRequest(int position, - const QByteArray &modifiedFileContent) + const QByteArray &customFileContent) { int line, column; TextEditor::Convenience::convertPosition(m_interface->textDocument(), position, &line, &column); ++column; const QString filePath = m_interface->fileName(); - const QString projectFilePath = Utils::projectFilePathForFile(filePath); - sendFileContent(projectFilePath, modifiedFileContent); - m_interface->ipcCommunicator().completeCode(this, filePath, line, column, projectFilePath); + const QString projectPartId = Utils::projectPartIdForFile(filePath); + sendFileContent(projectPartId, customFileContent); + m_interface->ipcCommunicator().completeCode(this, filePath, line, column, projectPartId); } TextEditor::IAssistProposal *ClangCompletionAssistProcessor::createProposal() const @@ -685,7 +699,7 @@ TextEditor::IAssistProposal *ClangCompletionAssistProcessor::createProposal() co return new ClangAssistProposal(m_positionForProposal, model); } -void ClangCompletionAssistProcessor::onCompletionsAvailable(const CodeCompletions &completions) +void ClangCompletionAssistProcessor::handleAvailableCompletions(const CodeCompletions &completions) { QTC_CHECK(m_completions.isEmpty()); @@ -696,20 +710,24 @@ void ClangCompletionAssistProcessor::onCompletionsAvailable(const CodeCompletion setAsyncProposalAvailable(createProposal()); } -void ClangCompletionAssistProcessor::onFunctionHintCompletionsAvailable( +bool ClangCompletionAssistProcessor::handleAvailableFunctionHintCompletions( const CodeCompletions &completions) { QTC_CHECK(!m_functionName.isEmpty()); const auto relevantCompletions = matchingFunctionCompletions(completions, m_functionName); if (!relevantCompletions.isEmpty()) { - TextEditor::IFunctionHintProposalModel *model = new ClangFunctionHintModel(relevantCompletions); - TextEditor::FunctionHintProposal *proposal = new FunctionHintProposal(m_positionForProposal, model); + auto *model = new ClangFunctionHintModel(relevantCompletions); + auto *proposal = new FunctionHintProposal(m_positionForProposal, model); setAsyncProposalAvailable(proposal); + return true; } else { - QTC_CHECK(!"Function completion failed. Would fallback to global completion here..."); - // TODO: If we need this, the processor can't be deleted in IpcClient. + m_addSnippets = false; + m_functionName.clear(); + m_sentRequestType = NormalCompletion; + sendCompletionRequest(m_interface->position(), QByteArray()); + return false; // We are not yet finished. } } diff --git a/src/plugins/clangcodemodel/clangcompletionassistprocessor.h b/src/plugins/clangcodemodel/clangcompletionassistprocessor.h index f712246406f..c76987c8f04 100644 --- a/src/plugins/clangcodemodel/clangcompletionassistprocessor.h +++ b/src/plugins/clangcodemodel/clangcompletionassistprocessor.h @@ -34,20 +34,16 @@ #include "clangcompletionassistinterface.h" #include - #include -#include +#include -namespace ClangBackEnd { -class CodeCompletion; -} +#include namespace ClangCodeModel { namespace Internal { -using CodeCompletions = QVector; -using ClangBackEnd::CodeCompletion; +using ClangBackEnd::CodeCompletions; class ClangCompletionAssistProcessor : public CppTools::CppCompletionAssistProcessor { @@ -59,7 +55,7 @@ class ClangCompletionAssistProcessor : public CppTools::CppCompletionAssistProce TextEditor::IAssistProposal *perform(const TextEditor::AssistInterface *interface) override; - void asyncCompletionsAvailable(const CodeCompletions &completions); + bool handleAvailableAsyncCompletions(const CodeCompletions &completions); const TextEditor::TextEditorWidget *textEditorWidget() const; @@ -81,11 +77,17 @@ class ClangCompletionAssistProcessor : public CppTools::CppCompletionAssistProce int order = 0, const QVariant &data = QVariant()); - void sendFileContent(const QString &projectFilePath, const QByteArray &modifiedFileContent); - void sendCompletionRequest(int position, const QByteArray &modifiedFileContent); + struct UnsavedFileContentInfo { + QByteArray unsavedContent; + bool isDocumentModified = false; + }; + UnsavedFileContentInfo unsavedFileContent(const QByteArray &customFileContent) const; + + void sendFileContent(const QString &projectPartId, const QByteArray &customFileContent); + void sendCompletionRequest(int position, const QByteArray &customFileContent); - void onCompletionsAvailable(const CodeCompletions &completions); - void onFunctionHintCompletionsAvailable(const CodeCompletions &completions); + void handleAvailableCompletions(const CodeCompletions &completions); + bool handleAvailableFunctionHintCompletions(const CodeCompletions &completions); private: QScopedPointer m_interface; diff --git a/src/plugins/clangcodemodel/clangcompletioncontextanalyzer.cpp b/src/plugins/clangcodemodel/clangcompletioncontextanalyzer.cpp index 568eb9e1e8f..eaa2b3d90a6 100644 --- a/src/plugins/clangcodemodel/clangcompletioncontextanalyzer.cpp +++ b/src/plugins/clangcodemodel/clangcompletioncontextanalyzer.cpp @@ -31,6 +31,9 @@ #include "clangcompletioncontextanalyzer.h" +#include "activationsequenceprocessor.h" +#include "activationsequencecontextprocessor.h" + #include #include @@ -47,80 +50,6 @@ using namespace CPlusPlus; namespace { -int activationSequenceChar(const QChar &ch, const QChar &ch2, const QChar &ch3, - unsigned *kind, bool wantFunctionCall) -{ - int referencePosition = 0; - int completionKind = T_EOF_SYMBOL; - switch (ch.toLatin1()) { - case '.': - if (ch2 != QLatin1Char('.')) { - completionKind = T_DOT; - referencePosition = 1; - } - break; - case ',': - completionKind = T_COMMA; - referencePosition = 1; - break; - case '(': - if (wantFunctionCall) { - completionKind = T_LPAREN; - referencePosition = 1; - } - break; - case ':': - if (ch3 != QLatin1Char(':') && ch2 == QLatin1Char(':')) { - completionKind = T_COLON_COLON; - referencePosition = 2; - } - break; - case '>': - if (ch2 == QLatin1Char('-')) { - completionKind = T_ARROW; - referencePosition = 2; - } - break; - case '*': - if (ch2 == QLatin1Char('.')) { - completionKind = T_DOT_STAR; - referencePosition = 2; - } else if (ch3 == QLatin1Char('-') && ch2 == QLatin1Char('>')) { - completionKind = T_ARROW_STAR; - referencePosition = 3; - } - break; - case '\\': - case '@': - if (ch2.isNull() || ch2.isSpace()) { - completionKind = T_DOXY_COMMENT; - referencePosition = 1; - } - break; - case '<': - completionKind = T_ANGLE_STRING_LITERAL; - referencePosition = 1; - break; - case '"': - completionKind = T_STRING_LITERAL; - referencePosition = 1; - break; - case '/': - completionKind = T_SLASH; - referencePosition = 1; - break; - case '#': - completionKind = T_POUND; - referencePosition = 1; - break; - } - - if (kind) - *kind = completionKind; - - return referencePosition; -} - bool isTokenForIncludePathCompletion(unsigned tokenKind) { return tokenKind == T_STRING_LITERAL @@ -143,7 +72,7 @@ namespace ClangCodeModel { namespace Internal { ClangCompletionContextAnalyzer::ClangCompletionContextAnalyzer( - const TextEditor::AssistInterface *assistInterface, + const ClangCompletionAssistInterface *assistInterface, CPlusPlus::LanguageFeatures languageFeatures) : m_interface(assistInterface) , m_languageFeatures(languageFeatures) @@ -153,79 +82,33 @@ ClangCompletionContextAnalyzer::ClangCompletionContextAnalyzer( void ClangCompletionContextAnalyzer::analyze() { QTC_ASSERT(m_interface, return); - const int startOfName = findStartOfName(); - m_positionForProposal = startOfName; setActionAndClangPosition(PassThroughToLibClang, -1); - const int endOfOperator = skipPrecedingWhitespace(startOfName); - m_completionOperator = T_EOF_SYMBOL; - m_positionEndOfExpression = startOfOperator(endOfOperator, &m_completionOperator, - /*want function call =*/ true); + ActivationSequenceContextProcessor activationSequenceContextProcessor(m_interface); + m_completionOperator = activationSequenceContextProcessor.completionKind(); + int afterOperatorPosition = activationSequenceContextProcessor.startOfNamePosition(); + m_positionEndOfExpression = activationSequenceContextProcessor.operatorStartPosition(); + m_positionForProposal = activationSequenceContextProcessor.startOfNamePosition(); - if (isTokenForPassThrough(m_completionOperator)) { - setActionAndClangPosition(PassThroughToLibClang, endOfOperator); - return; - } else if (m_completionOperator == T_DOXY_COMMENT) { - setActionAndClangPosition(CompleteDoxygenKeyword, -1); - return; - } else if (m_completionOperator == T_POUND) { - // TODO: Check if libclang can complete preprocessor directives - setActionAndClangPosition(CompletePreprocessorDirective, -1); - return; - } else if (isTokenForIncludePathCompletion(m_completionOperator)) { - setActionAndClangPosition(CompleteIncludePath, -1); - return; + const bool actionIsSet = handleNonFunctionCall(afterOperatorPosition); + if (!actionIsSet) { + handleCommaInFunctionCall(); + handleFunctionCall(afterOperatorPosition); } - - ExpressionUnderCursor expressionUnderCursor(m_languageFeatures); - QTextCursor textCursor(m_interface->textDocument()); - - if (m_completionOperator == T_COMMA) { // For function hints - textCursor.setPosition(m_positionEndOfExpression); - const int start = expressionUnderCursor.startOfFunctionCall(textCursor); - QTC_ASSERT(start != -1, setActionAndClangPosition(PassThroughToLibClang, startOfName); return); - m_positionEndOfExpression = start; - m_positionForProposal = start + 1; // After '(' of function call - m_completionOperator = T_LPAREN; - } - - if (m_completionOperator == T_LPAREN) { - textCursor.setPosition(m_positionEndOfExpression); - const QString expression = expressionUnderCursor(textCursor); - - if (expression.endsWith(QLatin1String("SIGNAL"))) { - setActionAndClangPosition(CompleteSignal, endOfOperator); - } else if (expression.endsWith(QLatin1String("SLOT"))) { - setActionAndClangPosition(CompleteSlot, endOfOperator); - } else if (m_interface->position() != endOfOperator) { - // No function completion if cursor is not after '(' or ',' - m_positionForProposal = startOfName; - setActionAndClangPosition(PassThroughToLibClang, endOfOperator); - } else { - const FunctionInfo functionInfo = analyzeFunctionCall(endOfOperator); - m_functionName = functionInfo.functionName; - setActionAndClangPosition(PassThroughToLibClangAfterLeftParen, - functionInfo.functionNamePosition); - } - - return; - } - - QTC_CHECK(!"Unexpected completion context"); - setActionAndClangPosition(PassThroughToLibClang, startOfName); - return; } -ClangCompletionContextAnalyzer::FunctionInfo ClangCompletionContextAnalyzer::analyzeFunctionCall( - int endOfOperator) const +ClangCompletionContextAnalyzer::FunctionInfo +ClangCompletionContextAnalyzer::analyzeFunctionCall(int endOfOperator) const { - int index = skipPrecedingWhitespace(endOfOperator); + int index = ActivationSequenceContextProcessor::skipPrecedingWhitespace(m_interface, + endOfOperator); QTextCursor textCursor(m_interface->textDocument()); textCursor.setPosition(index); ExpressionUnderCursor euc(m_languageFeatures); index = euc.startOfFunctionCall(textCursor); - const int functionNameStart = findStartOfName(index); + const int functionNameStart = ActivationSequenceContextProcessor::findStartOfName(m_interface, + index); QTextCursor textCursor2(m_interface->textDocument()); textCursor2.setPosition(functionNameStart); @@ -237,133 +120,76 @@ ClangCompletionContextAnalyzer::FunctionInfo ClangCompletionContextAnalyzer::ana return info; } -int ClangCompletionContextAnalyzer::findStartOfName(int position) const +void ClangCompletionContextAnalyzer::setActionAndClangPosition(CompletionAction action, + int position) { - if (position == -1) - position = m_interface->position(); - QChar chr; - - do { - chr = m_interface->characterAt(--position); - // TODO: Check also chr.isHighSurrogate() / ch.isLowSurrogate()? - // See also CppTools::isValidFirstIdentifierChar - } while (chr.isLetterOrNumber() || chr == QLatin1Char('_')); - - return position + 1; + QTC_CHECK(position >= -1); + m_completionAction = action; + m_positionForClang = position; } -int ClangCompletionContextAnalyzer::skipPrecedingWhitespace(int position) const +void +ClangCompletionContextAnalyzer::setAction(ClangCompletionContextAnalyzer::CompletionAction action) { - QTC_ASSERT(position >= 0, return position); - while (m_interface->characterAt(position - 1).isSpace()) - --position; - return position; + setActionAndClangPosition(action, -1); } -int ClangCompletionContextAnalyzer::startOfOperator(int pos, - unsigned *kind, - bool wantFunctionCall) const +void ClangCompletionContextAnalyzer::handleCommaInFunctionCall() { - const QChar ch = pos > -1 ? m_interface->characterAt(pos - 1) : QChar(); - const QChar ch2 = pos > 0 ? m_interface->characterAt(pos - 2) : QChar(); - const QChar ch3 = pos > 1 ? m_interface->characterAt(pos - 3) : QChar(); - - int start = pos - activationSequenceChar(ch, ch2, ch3, kind, wantFunctionCall); - if (start != pos) { - QTextCursor tc(m_interface->textDocument()); - tc.setPosition(pos); - - // Include completion: make sure the quote character is the first one on the line - if (*kind == T_STRING_LITERAL) { - QTextCursor s = tc; - s.movePosition(QTextCursor::StartOfLine, QTextCursor::KeepAnchor); - QString sel = s.selectedText(); - if (sel.indexOf(QLatin1Char('"')) < sel.length() - 1) { - *kind = T_EOF_SYMBOL; - start = pos; - } - } else if (*kind == T_COMMA) { - ExpressionUnderCursor expressionUnderCursor(m_languageFeatures); - if (expressionUnderCursor.startOfFunctionCall(tc) == -1) { - *kind = T_EOF_SYMBOL; - start = pos; - } - } - - SimpleLexer tokenize; - tokenize.setLanguageFeatures(m_languageFeatures); - tokenize.setSkipComments(false); - const Tokens &tokens = tokenize(tc.block().text(), BackwardsScanner::previousBlockState(tc.block())); - const int tokenIdx = SimpleLexer::tokenBefore(tokens, qMax(0, tc.positionInBlock() - 1)); // get the token at the left of the cursor - const Token tk = (tokenIdx == -1) ? Token() : tokens.at(tokenIdx); - - if (*kind == T_DOXY_COMMENT && !(tk.is(T_DOXY_COMMENT) || tk.is(T_CPP_DOXY_COMMENT))) { - *kind = T_EOF_SYMBOL; - start = pos; - } - // Don't complete in comments or strings, but still check for include completion - else if (tk.is(T_COMMENT) || tk.is(T_CPP_COMMENT) || - (tk.isLiteral() && (*kind != T_STRING_LITERAL - && *kind != T_ANGLE_STRING_LITERAL - && *kind != T_SLASH))) { - *kind = T_EOF_SYMBOL; - start = pos; - } - // Include completion: can be triggered by slash, but only in a string - else if (*kind == T_SLASH && (tk.isNot(T_STRING_LITERAL) && tk.isNot(T_ANGLE_STRING_LITERAL))) { - *kind = T_EOF_SYMBOL; - start = pos; - } - else if (*kind == T_LPAREN) { - if (tokenIdx > 0) { - const Token &previousToken = tokens.at(tokenIdx - 1); // look at the token at the left of T_LPAREN - switch (previousToken.kind()) { - case T_IDENTIFIER: - case T_GREATER: - case T_SIGNAL: - case T_SLOT: - break; // good + if (m_completionOperator == T_COMMA) { + ExpressionUnderCursor expressionUnderCursor(m_languageFeatures); + QTextCursor textCursor(m_interface->textDocument()); + textCursor.setPosition(m_positionEndOfExpression); + const int start = expressionUnderCursor.startOfFunctionCall(textCursor); + m_positionEndOfExpression = start; + m_positionForProposal = start + 1; // After '(' of function call + m_completionOperator = T_LPAREN; + } +} - default: - // that's a bad token :) - *kind = T_EOF_SYMBOL; - start = pos; - } - } - } - // Check for include preprocessor directive - else if (*kind == T_STRING_LITERAL || *kind == T_ANGLE_STRING_LITERAL || *kind == T_SLASH) { - bool include = false; - if (tokens.size() >= 3) { - if (tokens.at(0).is(T_POUND) && tokens.at(1).is(T_IDENTIFIER) && (tokens.at(2).is(T_STRING_LITERAL) || - tokens.at(2).is(T_ANGLE_STRING_LITERAL))) { - const Token &directiveToken = tokens.at(1); - QString directive = tc.block().text().mid(directiveToken.bytesBegin(), - directiveToken.bytes()); - if (directive == QLatin1String("include") || - directive == QLatin1String("include_next") || - directive == QLatin1String("import")) { - include = true; - } - } - } +void ClangCompletionContextAnalyzer::handleFunctionCall(int afterOperatorPosition) +{ + if (m_completionOperator == T_LPAREN) { + ExpressionUnderCursor expressionUnderCursor(m_languageFeatures); + QTextCursor textCursor(m_interface->textDocument()); + textCursor.setPosition(m_positionEndOfExpression); + const QString expression = expressionUnderCursor(textCursor); - if (!include) { - *kind = T_EOF_SYMBOL; - start = pos; - } + if (expression.endsWith(QLatin1String("SIGNAL"))) { + setActionAndClangPosition(CompleteSignal, afterOperatorPosition); + } else if (expression.endsWith(QLatin1String("SLOT"))) { + setActionAndClangPosition(CompleteSlot, afterOperatorPosition); + } else if (m_interface->position() != afterOperatorPosition) { + // No function completion if cursor is not after '(' or ',' + m_positionForProposal = afterOperatorPosition; + setActionAndClangPosition(PassThroughToLibClang, afterOperatorPosition); + } else { + const FunctionInfo functionInfo = analyzeFunctionCall(afterOperatorPosition); + m_functionName = functionInfo.functionName; + setActionAndClangPosition(PassThroughToLibClangAfterLeftParen, + functionInfo.functionNamePosition); } } - - return start; } -void ClangCompletionContextAnalyzer::setActionAndClangPosition(CompletionAction action, - int position) +bool ClangCompletionContextAnalyzer::handleNonFunctionCall(int position) { - QTC_CHECK(position >= -1); - m_completionAction = action; - m_positionForClang = position; + if (isTokenForPassThrough(m_completionOperator)) { + setActionAndClangPosition(PassThroughToLibClang, position); + return true; + } else if (m_completionOperator == T_DOXY_COMMENT) { + setAction(CompleteDoxygenKeyword); + return true; + } else if (m_completionOperator == T_POUND) { + // TODO: Check if libclang can complete preprocessor directives + setAction(CompletePreprocessorDirective); + return true; + } else if (isTokenForIncludePathCompletion(m_completionOperator)) { + setAction(CompleteIncludePath); + return true; + } + + return false; } } // namespace Internal diff --git a/src/plugins/clangcodemodel/clangcompletioncontextanalyzer.h b/src/plugins/clangcodemodel/clangcompletioncontextanalyzer.h index 3a0a8f21ff3..3df4041675f 100644 --- a/src/plugins/clangcodemodel/clangcompletioncontextanalyzer.h +++ b/src/plugins/clangcodemodel/clangcompletioncontextanalyzer.h @@ -40,10 +40,12 @@ namespace TextEditor { class AssistInterface; } namespace ClangCodeModel { namespace Internal { +class ClangCompletionAssistInterface; + class ClangCompletionContextAnalyzer { public: - ClangCompletionContextAnalyzer(const TextEditor::AssistInterface *assistInterface, + ClangCompletionContextAnalyzer(const ClangCompletionAssistInterface *assistInterface, CPlusPlus::LanguageFeatures languageFeatures); void analyze(); @@ -70,18 +72,20 @@ class ClangCompletionContextAnalyzer struct FunctionInfo { int functionNamePosition; QString functionName; }; FunctionInfo analyzeFunctionCall(int endOfExpression) const; - int findStartOfName(int position = -1) const; - int skipPrecedingWhitespace(int position) const; - int startOfOperator(int position, unsigned *kind, bool wantFunctionCall) const; - void setActionAndClangPosition(CompletionAction action, int position); + void setAction(CompletionAction action); - const TextEditor::AssistInterface * const m_interface; // Not owned + bool handleNonFunctionCall(int position); + void handleCommaInFunctionCall(); + void handleFunctionCall(int endOfOperator); + +private: + const ClangCompletionAssistInterface *m_interface; // Not owned const CPlusPlus::LanguageFeatures m_languageFeatures; // TODO: Get from assistInterface?! // Results CompletionAction m_completionAction = PassThroughToLibClang; - unsigned m_completionOperator = CPlusPlus::T_EOF_SYMBOL; + CPlusPlus::Kind m_completionOperator = CPlusPlus::T_EOF_SYMBOL; int m_positionForProposal = -1; int m_positionForClang = -1; int m_positionEndOfExpression = -1; diff --git a/src/plugins/clangcodemodel/clangeditordocumentparser.cpp b/src/plugins/clangcodemodel/clangeditordocumentparser.cpp index c4897befbcb..694de45f206 100644 --- a/src/plugins/clangcodemodel/clangeditordocumentparser.cpp +++ b/src/plugins/clangcodemodel/clangeditordocumentparser.cpp @@ -86,6 +86,9 @@ ClangEditorDocumentParser::ClangEditorDocumentParser(const QString &filePath) : BaseEditorDocumentParser(filePath) , m_marker(new ClangCodeModel::SemanticMarker) { + BaseEditorDocumentParser::Configuration config = configuration(); + config.stickToPreviousProjectPart = false; + setConfiguration(config); } void ClangEditorDocumentParser::updateHelper(const BaseEditorDocumentParser::InMemoryInfo &info) diff --git a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp index 5ca055b0a14..f8a4191513b 100644 --- a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp +++ b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp @@ -44,10 +44,6 @@ #include #include -#include - -static Q_LOGGING_CATEGORY(log, "qtc.clangcodemodel.clangeditordocumentprocessor") - namespace { typedef CPlusPlus::Document::DiagnosticMessage CppToolsDiagnostic; @@ -59,8 +55,6 @@ QList toCppToolsDiagnostics( QList converted; foreach (const ClangCodeModel::Diagnostic &d, diagnostics) { - qCDebug(log) << "diagnostic" << d.severityAsString() << d.location() << d.spelling(); - if (d.location().fileName() != filePath) continue; @@ -112,6 +106,9 @@ ClangEditorDocumentProcessor::ClangEditorDocumentProcessor( connect(&m_builtinProcessor, &CppTools::BuiltinEditorDocumentProcessor::semanticInfoUpdated, this, &ClangEditorDocumentProcessor::semanticInfoUpdated); + connect(CppTools::CppModelManager::instance(), &CppTools::CppModelManager::projectPartsRemoved, + this, &ClangEditorDocumentProcessor::onProjectPartsRemoved); + m_semanticHighlighter.setHighlightingRunner( [this]() -> QFuture { const int firstLine = 1; @@ -129,16 +126,11 @@ ClangEditorDocumentProcessor::~ClangEditorDocumentProcessor() m_parserWatcher.cancel(); m_parserWatcher.waitForFinished(); - const CppTools::ProjectPart::Ptr projectPart = m_parser.projectPart(); - QTC_ASSERT(projectPart, return); - - QString projectFilePath; - if (Utils::isProjectPartValid(projectPart)) - projectFilePath = projectPart->projectFile; // OK, Project Part is still loaded - - QTC_ASSERT(m_modelManagerSupport, return); - m_modelManagerSupport->ipcCommunicator().unregisterFilesForCodeCompletion( - {ClangBackEnd::FileContainer(filePath(), projectFilePath)}); + if (m_projectPart) { + QTC_ASSERT(m_modelManagerSupport, return); + m_modelManagerSupport->ipcCommunicator().unregisterFilesForCodeCompletion( + {ClangBackEnd::FileContainer(filePath(), m_projectPart->id())}); + } } void ClangEditorDocumentProcessor::run() @@ -192,6 +184,25 @@ bool ClangEditorDocumentProcessor::isParserRunning() const return m_parserWatcher.isRunning(); } +CppTools::ProjectPart::Ptr ClangEditorDocumentProcessor::projectPart() const +{ + return m_projectPart; +} + +ClangEditorDocumentProcessor *ClangEditorDocumentProcessor::get(const QString &filePath) +{ + return qobject_cast(BaseEditorDocumentProcessor::get(filePath)); +} + +void ClangEditorDocumentProcessor::updateProjectPartAndTranslationUnitForCompletion() +{ + const CppTools::ProjectPart::Ptr projectPart = m_parser.projectPart(); + QTC_ASSERT(projectPart, return); + + updateTranslationUnitForCompletion(*projectPart.data()); + m_projectPart = projectPart; +} + void ClangEditorDocumentProcessor::onParserFinished() { if (revision() != m_parserRevision) @@ -208,6 +219,34 @@ void ClangEditorDocumentProcessor::onParserFinished() // Run semantic highlighter m_semanticHighlighter.run(); + + updateProjectPartAndTranslationUnitForCompletion(); +} + +void ClangEditorDocumentProcessor::onProjectPartsRemoved(const QStringList &projectPartIds) +{ + if (m_projectPart && projectPartIds.contains(m_projectPart->id())) + m_projectPart.clear(); +} + +void ClangEditorDocumentProcessor::updateTranslationUnitForCompletion( + CppTools::ProjectPart &projectPart) +{ + QTC_ASSERT(m_modelManagerSupport, return); + IpcCommunicator &ipcCommunicator = m_modelManagerSupport->ipcCommunicator(); + + if (m_projectPart) { + if (projectPart.id() != m_projectPart->id()) { + auto container1 = {ClangBackEnd::FileContainer(filePath(), m_projectPart->id())}; + ipcCommunicator.unregisterFilesForCodeCompletion(container1); + + auto container2 = {ClangBackEnd::FileContainer(filePath(), projectPart.id())}; + ipcCommunicator.registerFilesForCodeCompletion(container2); + } + } else { + auto container = {ClangBackEnd::FileContainer(filePath(), projectPart.id())}; + ipcCommunicator.registerFilesForCodeCompletion(container); + } } } // namespace Internal diff --git a/src/plugins/clangcodemodel/clangeditordocumentprocessor.h b/src/plugins/clangcodemodel/clangeditordocumentprocessor.h index d62ff455d12..4d8564685ca 100644 --- a/src/plugins/clangcodemodel/clangeditordocumentprocessor.h +++ b/src/plugins/clangcodemodel/clangeditordocumentprocessor.h @@ -63,13 +63,23 @@ class ClangEditorDocumentProcessor : public CppTools::BaseEditorDocumentProcesso CPlusPlus::Snapshot snapshot() override; bool isParserRunning() const override; + CppTools::ProjectPart::Ptr projectPart() const; + +public: + static ClangEditorDocumentProcessor *get(const QString &filePath); + private slots: void onParserFinished(); + void onProjectPartsRemoved(const QStringList &projectPartIds); private: + void updateProjectPartAndTranslationUnitForCompletion(); + void updateTranslationUnitForCompletion(CppTools::ProjectPart &projectPart); + QPointer m_modelManagerSupport; ClangEditorDocumentParser m_parser; + CppTools::ProjectPart::Ptr m_projectPart; QFutureWatcher m_parserWatcher; unsigned m_parserRevision; diff --git a/src/plugins/clangcodemodel/clangfunctionhintmodel.cpp b/src/plugins/clangcodemodel/clangfunctionhintmodel.cpp index f950947448e..d037186b995 100644 --- a/src/plugins/clangcodemodel/clangfunctionhintmodel.cpp +++ b/src/plugins/clangcodemodel/clangfunctionhintmodel.cpp @@ -39,7 +39,7 @@ namespace Internal { using namespace CPlusPlus; -ClangFunctionHintModel::ClangFunctionHintModel(const CodeCompletions &functionSymbols) +ClangFunctionHintModel::ClangFunctionHintModel(const ClangBackEnd::CodeCompletions &functionSymbols) : m_functionSymbols(functionSymbols) , m_currentArg(-1) { diff --git a/src/plugins/clangcodemodel/clangfunctionhintmodel.h b/src/plugins/clangcodemodel/clangfunctionhintmodel.h index c1e9f656b35..65a9c0affa2 100644 --- a/src/plugins/clangcodemodel/clangfunctionhintmodel.h +++ b/src/plugins/clangcodemodel/clangfunctionhintmodel.h @@ -38,12 +38,10 @@ namespace ClangCodeModel { namespace Internal { -using CodeCompletions = QVector; - class ClangFunctionHintModel : public TextEditor::IFunctionHintProposalModel { public: - ClangFunctionHintModel(const CodeCompletions &functionSymbols); + ClangFunctionHintModel(const ClangBackEnd::CodeCompletions &functionSymbols); void reset() override; int size() const override; @@ -51,7 +49,7 @@ class ClangFunctionHintModel : public TextEditor::IFunctionHintProposalModel int activeArgument(const QString &prefix) const override; private: - CodeCompletions m_functionSymbols; + ClangBackEnd::CodeCompletions m_functionSymbols; mutable int m_currentArg; }; diff --git a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp index 8115b52577d..f28c0d215dd 100644 --- a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp +++ b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp @@ -159,9 +159,9 @@ void ModelManagerSupportClang::onAbstractEditorSupportRemoved(const QString &fil { QTC_ASSERT(!filePath.isEmpty(), return); if (!cppModelManager()->cppEditorDocument(filePath)) { - const QString projectFilePath = Utils::projectFilePathForFile(filePath); + const QString projectPartId = Utils::projectPartIdForFile(filePath); m_ipcCommunicator.unregisterFilesForCodeCompletion( - {ClangBackEnd::FileContainer(filePath, projectFilePath)}); + {ClangBackEnd::FileContainer(filePath, projectPartId)}); } } @@ -173,9 +173,10 @@ void ModelManagerSupportClang::onProjectPartsUpdated(ProjectExplorer::Project *p m_ipcCommunicator.registerProjectsParts(projectInfo.projectParts()); } -void ModelManagerSupportClang::onProjectPartsRemoved(const QStringList &projectFiles) +void ModelManagerSupportClang::onProjectPartsRemoved(const QStringList &projectPartIds) { - m_ipcCommunicator.unregisterProjectPartsForCodeCompletion(projectFiles); + if (!projectPartIds.isEmpty()) + m_ipcCommunicator.unregisterProjectPartsForCodeCompletion(projectPartIds); } #ifdef QT_TESTLIB_LIB diff --git a/src/plugins/clangcodemodel/clangmodelmanagersupport.h b/src/plugins/clangcodemodel/clangmodelmanagersupport.h index 7269e925dc3..c3f04576603 100644 --- a/src/plugins/clangcodemodel/clangmodelmanagersupport.h +++ b/src/plugins/clangcodemodel/clangmodelmanagersupport.h @@ -73,7 +73,7 @@ class ModelManagerSupportClang: void onAbstractEditorSupportRemoved(const QString &filePath); void onProjectPartsUpdated(ProjectExplorer::Project *project); - void onProjectPartsRemoved(const QStringList &projectFiles); + void onProjectPartsRemoved(const QStringList &projectPartIds); IpcCommunicator m_ipcCommunicator; ClangCompletionAssistProvider m_completionAssistProvider; diff --git a/src/plugins/clangcodemodel/clangutils.cpp b/src/plugins/clangcodemodel/clangutils.cpp index 257d3c966e5..02f448644fe 100644 --- a/src/plugins/clangcodemodel/clangutils.cpp +++ b/src/plugins/clangcodemodel/clangutils.cpp @@ -114,53 +114,27 @@ static bool maybeIncludeBorlandExtensions() class LibClangOptionsBuilder : public CompilerOptionsBuilder { public: - static QStringList build(const ProjectPart::Ptr &pPart, ProjectFile::Kind fileKind) + static QStringList build(const ProjectPart::Ptr &projectPart, ProjectFile::Kind fileKind) { - if (pPart.isNull()) + if (projectPart.isNull()) return QStringList(); - LibClangOptionsBuilder optionsBuilder(pPart); + LibClangOptionsBuilder optionsBuilder(projectPart); if (verboseRunLog().isDebugEnabled()) optionsBuilder.add(QLatin1String("-v")); optionsBuilder.addLanguageOption(fileKind); optionsBuilder.addOptionsForLanguage(maybeIncludeBorlandExtensions()); - optionsBuilder.addToolchainAndProjectDefines(); - static const QString resourceDir = getResourceDir(); - if (!resourceDir.isEmpty()) { - optionsBuilder.add(QLatin1String("-nostdlibinc")); - optionsBuilder.add(QLatin1String("-I") + resourceDir); - optionsBuilder.add(QLatin1String("-undef")); - } + optionsBuilder.addToolchainAndProjectDefines(); + optionsBuilder.addResourceDirOptions(); + optionsBuilder.addWrappedQtHeadersIncludePath(); optionsBuilder.addHeaderPathOptions(); + optionsBuilder.addProjectConfigFileInclude(); - // Inject header file - static const QString injectedHeader = ICore::instance()->resourcePath() - + QLatin1String("/cplusplus/qt%1-qobjectdefs-injected.h"); - -// if (pPart->qtVersion == ProjectPart::Qt4) { -// builder.addOption(QLatin1String("-include")); -// builder.addOption(injectedHeader.arg(QLatin1Char('4'))); -// } - - if (pPart->qtVersion == ProjectPart::Qt5) { - optionsBuilder.add(QLatin1String("-include")); - optionsBuilder.add(injectedHeader.arg(QLatin1Char('5'))); - } - - if (!pPart->projectConfigFile.isEmpty()) { - optionsBuilder.add(QLatin1String("-include")); - optionsBuilder.add(pPart->projectConfigFile); - } - - optionsBuilder.add(QLatin1String("-fmessage-length=0")); - optionsBuilder.add(QLatin1String("-fdiagnostics-show-note-include-stack")); - optionsBuilder.add(QLatin1String("-fmacro-backtrace-limit=0")); - optionsBuilder.add(QLatin1String("-fretain-comments-from-system-headers")); - // TODO: -Xclang -ferror-limit -Xclang 0 ? + optionsBuilder.addExtraOptions(); return optionsBuilder.options(); } @@ -175,6 +149,44 @@ class LibClangOptionsBuilder : public CompilerOptionsBuilder { return path.contains(QLatin1String("lib/gcc/i686-apple-darwin")); } + + void addResourceDirOptions() + { + static const QString resourceDir = getResourceDir(); + if (!resourceDir.isEmpty()) { + add(QLatin1String("-nostdlibinc")); + add(QLatin1String("-I") + resourceDir); + add(QLatin1String("-undef")); + } + } + + void addWrappedQtHeadersIncludePath() + { + static const QString wrappedQtHeaders = ICore::instance()->resourcePath() + + QLatin1String("/cplusplus/wrappedQtHeaders"); + + if (m_projectPart->qtVersion != ProjectPart::NoQt) { + add(QLatin1String("-I") + wrappedQtHeaders); + add(QLatin1String("-I") + wrappedQtHeaders + QLatin1String("/QtCore")); + } + } + + void addProjectConfigFileInclude() + { + if (!m_projectPart->projectConfigFile.isEmpty()) { + add(QLatin1String("-include")); + add(m_projectPart->projectConfigFile); + } + } + + void addExtraOptions() + { + add(QLatin1String("-fmessage-length=0")); + add(QLatin1String("-fdiagnostics-show-note-include-stack")); + add(QLatin1String("-fmacro-backtrace-limit=0")); + add(QLatin1String("-fretain-comments-from-system-headers")); + // TODO: -Xclang -ferror-limit -Xclang 0 ? + } }; /** @@ -218,16 +230,16 @@ ProjectPart::Ptr projectPartForFile(const QString &filePath) bool isProjectPartValid(const ProjectPart::Ptr projectPart) { if (projectPart) - return CppModelManager::instance()->projectPartForProjectFile(projectPart->projectFile); + return CppModelManager::instance()->projectPartForId(projectPart->id()); return false; } -QString projectFilePathForFile(const QString &filePath) +QString projectPartIdForFile(const QString &filePath) { const ProjectPart::Ptr projectPart = projectPartForFile(filePath); if (isProjectPartValid(projectPart)) - return projectPart->projectFile; // OK, Project Part is still loaded + return projectPart->id(); // OK, Project Part is still loaded return QString(); } diff --git a/src/plugins/clangcodemodel/clangutils.h b/src/plugins/clangcodemodel/clangutils.h index d3a78cc45b7..fdee8af6f8b 100644 --- a/src/plugins/clangcodemodel/clangutils.h +++ b/src/plugins/clangcodemodel/clangutils.h @@ -55,7 +55,7 @@ QStringList createPCHInclusionOptions(const QString &pchFile); CppTools::ProjectPart::Ptr projectPartForFile(const QString &filePath); bool isProjectPartValid(const CppTools::ProjectPart::Ptr projectPart); -QString projectFilePathForFile(const QString &filePath); +QString projectPartIdForFile(const QString &filePath); } // namespace Utils } // namespace Clang diff --git a/src/plugins/clangcodemodel/completionchunkstotextconverter.cpp b/src/plugins/clangcodemodel/completionchunkstotextconverter.cpp index 92d9c300744..f8f76989f14 100644 --- a/src/plugins/clangcodemodel/completionchunkstotextconverter.cpp +++ b/src/plugins/clangcodemodel/completionchunkstotextconverter.cpp @@ -36,7 +36,7 @@ namespace ClangCodeModel { namespace Internal { -void CompletionChunksToTextConverter::parseChunks(const QVector &codeCompletionChunks) +void CompletionChunksToTextConverter::parseChunks(const ClangBackEnd::CodeCompletionChunks &codeCompletionChunks) { m_text.clear(); m_placeholderPositions.clear(); @@ -94,7 +94,7 @@ bool CompletionChunksToTextConverter::hasPlaceholderPositions() const return m_placeholderPositions.size() > 0; } -QString CompletionChunksToTextConverter::convertToFunctionSignature(const QVector &codeCompletionChunks) +QString CompletionChunksToTextConverter::convertToFunctionSignature(const ClangBackEnd::CodeCompletionChunks &codeCompletionChunks) { CompletionChunksToTextConverter converter; converter.setAddPlaceHolderText(true); @@ -105,7 +105,7 @@ QString CompletionChunksToTextConverter::convertToFunctionSignature(const QVecto return converter.text(); } -QString CompletionChunksToTextConverter::convertToName(const QVector &codeCompletionChunks) +QString CompletionChunksToTextConverter::convertToName(const ClangBackEnd::CodeCompletionChunks &codeCompletionChunks) { CompletionChunksToTextConverter converter; @@ -114,7 +114,7 @@ QString CompletionChunksToTextConverter::convertToName(const QVector &codeCompletionChunks) +QString CompletionChunksToTextConverter::convertToToolTip(const ClangBackEnd::CodeCompletionChunks &codeCompletionChunks) { CompletionChunksToTextConverter converter; converter.setAddPlaceHolderText(true); @@ -196,7 +196,7 @@ void CompletionChunksToTextConverter::addExtraVerticalSpaceBetweenBraces() addExtraVerticalSpaceBetweenBraces(m_codeCompletionChunks.begin()); } -void CompletionChunksToTextConverter::addExtraVerticalSpaceBetweenBraces(const QVector::iterator &begin) +void CompletionChunksToTextConverter::addExtraVerticalSpaceBetweenBraces(const ClangBackEnd::CodeCompletionChunks::iterator &begin) { using ClangBackEnd::CodeCompletionChunk; diff --git a/src/plugins/clangcodemodel/completionchunkstotextconverter.h b/src/plugins/clangcodemodel/completionchunkstotextconverter.h index 6e1e6b290fb..68c2bbcd149 100644 --- a/src/plugins/clangcodemodel/completionchunkstotextconverter.h +++ b/src/plugins/clangcodemodel/completionchunkstotextconverter.h @@ -45,7 +45,7 @@ namespace Internal { class CompletionChunksToTextConverter { public: - void parseChunks(const QVector &codeCompletionChunks); + void parseChunks(const ClangBackEnd::CodeCompletionChunks &codeCompletionChunks); void setAddPlaceHolderText(bool addPlaceHolderText); void setAddPlaceHolderPositions(bool addPlaceHolderPositions); @@ -57,9 +57,9 @@ class CompletionChunksToTextConverter const std::vector &placeholderPositions() const; bool hasPlaceholderPositions() const; - static QString convertToFunctionSignature(const QVector &codeCompletionChunks); - static QString convertToName(const QVector &codeCompletionChunks); - static QString convertToToolTip(const QVector &codeCompletionChunks); + static QString convertToFunctionSignature(const ClangBackEnd::CodeCompletionChunks &codeCompletionChunks); + static QString convertToName(const ClangBackEnd::CodeCompletionChunks &codeCompletionChunks); + static QString convertToToolTip(const ClangBackEnd::CodeCompletionChunks &codeCompletionChunks); private: void parse(const ClangBackEnd::CodeCompletionChunk & codeCompletionChunk); void parseResultType(const Utf8String &text); @@ -69,13 +69,13 @@ class CompletionChunksToTextConverter void parseLeftParen(const ClangBackEnd::CodeCompletionChunk &codeCompletionChunk); void parseLeftBrace(const ClangBackEnd::CodeCompletionChunk &codeCompletionChunk); void addExtraVerticalSpaceBetweenBraces(); - void addExtraVerticalSpaceBetweenBraces(const QVector::iterator &); + void addExtraVerticalSpaceBetweenBraces(const ClangBackEnd::CodeCompletionChunks::iterator &); bool canAddSpace() const; private: std::vector m_placeholderPositions; - QVector m_codeCompletionChunks; + ClangBackEnd::CodeCompletionChunks m_codeCompletionChunks; ClangBackEnd::CodeCompletionChunk m_previousCodeCompletionChunk; QString m_text; bool m_addPlaceHolderText = false; diff --git a/src/plugins/clangcodemodel/cppcreatemarkers.cpp b/src/plugins/clangcodemodel/cppcreatemarkers.cpp index 5a56b1e2fb2..a7518b355c3 100644 --- a/src/plugins/clangcodemodel/cppcreatemarkers.cpp +++ b/src/plugins/clangcodemodel/cppcreatemarkers.cpp @@ -32,6 +32,7 @@ #include "cppcreatemarkers.h" #include +#include #include #include @@ -77,6 +78,9 @@ CreateMarkers::~CreateMarkers() void CreateMarkers::run() { QMutexLocker lock(m_marker->mutex()); + + ::Utils::ExecuteOnDestruction reportFinishedOnDestruction([this]() { reportFinished(); }); + if (isCanceled()) return; @@ -86,23 +90,18 @@ void CreateMarkers::run() m_usages.clear(); - if (isCanceled()) { - reportFinished(); + if (isCanceled()) return; - } const QList markers = m_marker->sourceMarkersInRange(m_firstLine, m_lastLine); foreach (const ClangCodeModel::SourceMarker &m, markers) addUse(SourceMarker(m.location().line(), m.location().column(), m.length(), m.kind())); - if (isCanceled()) { - reportFinished(); + if (isCanceled()) return; - } flush(); - reportFinished(); qCDebug(log) << "Creating markers took" << t.elapsed() << "ms in total."; } diff --git a/src/plugins/clangcodemodel/semanticmarker.cpp b/src/plugins/clangcodemodel/semanticmarker.cpp index 71a5abc03d6..cb17346d109 100644 --- a/src/plugins/clangcodemodel/semanticmarker.cpp +++ b/src/plugins/clangcodemodel/semanticmarker.cpp @@ -33,6 +33,7 @@ #include "utils_p.h" #include "cxraii.h" +#include #include using namespace ClangCodeModel; @@ -131,12 +132,23 @@ static void appendDiagnostic(const CXDiagnostic &diag, } } +static bool isBlackListedDiagnostic(const Utils::MimeType &mimeType, const QString &diagnostic) +{ + static QString pragmaOnceInMainFile = QLatin1String("#pragma once in main file"); + + return diagnostic == pragmaOnceInMainFile + && mimeType.inherits(QLatin1String("text/x-chdr")); +} + QList SemanticMarker::diagnostics() const { QList diagnostics; if (!m_unit || !m_unit->isLoaded()) return diagnostics; + Utils::MimeDatabase mimeDatabase; + const Utils::MimeType mimeType = mimeDatabase.mimeTypeForFile(fileName()); + const unsigned diagCount = m_unit->getNumDiagnostics(); for (unsigned i = 0; i < diagCount; ++i) { ScopedCXDiagnostic diag(m_unit->getDiagnostic(i)); @@ -148,6 +160,9 @@ QList SemanticMarker::diagnostics() const CXSourceLocation cxLocation = clang_getDiagnosticLocation(diag); QString spelling = Internal::getQString(clang_getDiagnosticSpelling(diag)); + if (isBlackListedDiagnostic(mimeType, spelling)) + continue; + // Attach messages with Diagnostic::Note severity ScopedCXDiagnosticSet cxChildren(clang_getChildDiagnostics(diag)); const unsigned numChildren = clang_getNumDiagnosticsInSet(cxChildren); @@ -333,9 +348,8 @@ QList SemanticMarker::sourceMarkersInRange(unsigned firstLine, unsigned lastLine) { QList result; - QTC_ASSERT(m_unit, return result); - if (!m_unit->isLoaded()) + if (!m_unit || !m_unit->isLoaded()) return result; // Highlighting called asynchronously, and a few lines at the end can be deleted for this time. diff --git a/src/plugins/clangcodemodel/test/clang_tests_database.qrc b/src/plugins/clangcodemodel/test/clang_tests_database.qrc index 7cc0ac8a871..aeda67e4342 100644 --- a/src/plugins/clangcodemodel/test/clang_tests_database.qrc +++ b/src/plugins/clangcodemodel/test/clang_tests_database.qrc @@ -20,5 +20,6 @@ exampleIncludeDir/otherFile.h exampleIncludeDir/mylib/mylib.h globalCompletion.cpp + constructorCompletion.cpp diff --git a/src/plugins/clangcodemodel/test/clangcodecompletion_test.cpp b/src/plugins/clangcodemodel/test/clangcodecompletion_test.cpp index 584b47b3c21..3b5cbef89aa 100644 --- a/src/plugins/clangcodemodel/test/clangcodecompletion_test.cpp +++ b/src/plugins/clangcodemodel/test/clangcodecompletion_test.cpp @@ -34,6 +34,7 @@ #include "../clangcompletionassistinterface.h" #include "../clangmodelmanagersupport.h" +#include #include #include @@ -80,6 +81,13 @@ QString qrcPath(const QByteArray relativeFilePath) QString fileName(const QString &filePath) { return QFileInfo(filePath).fileName(); } +CppTools::Tests::TemporaryDir *globalTemporaryDir() +{ + static CppTools::Tests::TemporaryDir dir; + QTC_CHECK(dir.isValid()); + return &dir; +} + struct LogOutput { LogOutput(const QString &text) : text(text.toUtf8()) {} @@ -469,11 +477,13 @@ class OpenEditorAtCursorPosition OpenEditorAtCursorPosition(const TestDocument &testDocument); ~OpenEditorAtCursorPosition(); // Close editor - bool succeeded() const { return m_editor; } + bool succeeded() const { return m_editor && m_backendIsNotified; } + bool waitUntilBackendIsNotified(int timeout = 10000); TextEditor::BaseTextEditor *editor() const { return m_editor; } private: TextEditor::BaseTextEditor *m_editor; + bool m_backendIsNotified = false; }; OpenEditorAtCursorPosition::OpenEditorAtCursorPosition(const TestDocument &testDocument) @@ -483,6 +493,8 @@ OpenEditorAtCursorPosition::OpenEditorAtCursorPosition(const TestDocument &testD QTC_CHECK(m_editor); if (m_editor && testDocument.hasValidCursorPosition()) m_editor->setCursorPosition(testDocument.cursorPosition); + m_backendIsNotified = waitUntilBackendIsNotified(); + QTC_CHECK(m_backendIsNotified); } OpenEditorAtCursorPosition::~OpenEditorAtCursorPosition() @@ -491,6 +503,30 @@ OpenEditorAtCursorPosition::~OpenEditorAtCursorPosition() Core::EditorManager::closeEditor(m_editor, /* askAboutModifiedEditors= */ false); } +bool OpenEditorAtCursorPosition::waitUntilBackendIsNotified(int timeout) +{ + QTC_ASSERT(m_editor, return false); + + const QString filePath = m_editor->document()->filePath().toString(); + + QTime time; + time.start(); + + forever { + if (time.elapsed() > timeout) + return false; + + const auto *processor = ClangEditorDocumentProcessor::get(filePath); + if (processor && processor->projectPart()) + return true; + + QCoreApplication::processEvents(); + QThread::msleep(20); + } + + return false; +} + CppTools::ProjectPart::Ptr createProjectPart(const QStringList &files, const QString &defines) { @@ -576,7 +612,7 @@ class ProjectLessCompletionTest CppTools::Tests::TestCase garbageCollectionGlobalSnapshot; QVERIFY(garbageCollectionGlobalSnapshot.succeededSoFar()); - const TestDocument testDocument(testFileName); + const TestDocument testDocument(testFileName, globalTemporaryDir()); QVERIFY(testDocument.isCreatedAndHasValidCursorPosition()); OpenEditorAtCursorPosition openEditor(testDocument); @@ -838,6 +874,15 @@ void ClangCodeCompletionTest::testCompleteFunctions() QVERIFY(hasItem(t.proposal, "TType f(bool)")); } +void ClangCodeCompletionTest::testCompleteConstructorAndFallbackToGlobalCompletion() +{ + ProjectLessCompletionTest t("constructorCompletion.cpp"); + + QVERIFY(hasItem(t.proposal, "globalVariable")); + QVERIFY(hasItem(t.proposal, "GlobalClassWithCustomConstructor")); + QVERIFY(!hasSnippet(t.proposal, "class")); +} + void ClangCodeCompletionTest::testProjectDependentCompletion() { const TestDocument testDocument("completionWithProject.cpp"); @@ -1029,23 +1074,27 @@ void ClangCodeCompletionTest::testUpdateBackendAfterRestart() CppTools::Tests::ProjectOpenerAndCloser projectManager; const CppTools::ProjectInfo projectInfo = projectManager.open(projectFilePath, true); QVERIFY(projectInfo.isValid()); + QVERIFY(monitorGeneratedUiFile.waitUntilGenerated()); // ...and a file of the project const QString completionFile = testDir.absolutePath("mainwindow.cpp"); const TestDocument testDocument = TestDocument::fromExistingFile(completionFile); QVERIFY(testDocument.isCreatedAndHasValidCursorPosition()); OpenEditorAtCursorPosition openSource(testDocument); QVERIFY(openSource.succeeded()); - QVERIFY(monitorGeneratedUiFile.waitUntilGenerated()); // Check commands that would have been sent QVERIFY(compare(LogOutput(spy.senderLog), LogOutput( - "RegisterProjectPartsForCodeCompletionCommand\n" - " ProjectPartContainer id: qt-widgets-app.pro\n" "RegisterTranslationUnitForCodeCompletionCommand\n" " Path: myheader.h ProjectPart: \n" + "RegisterProjectPartsForCodeCompletionCommand\n" + " ProjectPartContainer id: qt-widgets-app.pro qt-widgets-app\n" "RegisterTranslationUnitForCodeCompletionCommand\n" " Path: ui_mainwindow.h ProjectPart: \n" + "RegisterTranslationUnitForCodeCompletionCommand\n" + " Path: myheader.h ProjectPart: \n" + "RegisterTranslationUnitForCodeCompletionCommand\n" + " Path: mainwindow.cpp ProjectPart: qt-widgets-app.pro qt-widgets-app\n" ))); spy.senderLog.clear(); @@ -1062,7 +1111,7 @@ void ClangCodeCompletionTest::testUpdateBackendAfterRestart() "RegisterProjectPartsForCodeCompletionCommand\n" " ProjectPartContainer id: \n" "RegisterProjectPartsForCodeCompletionCommand\n" - " ProjectPartContainer id: qt-widgets-app.pro\n" + " ProjectPartContainer id: qt-widgets-app.pro qt-widgets-app\n" "RegisterTranslationUnitForCodeCompletionCommand\n" " Path: myheader.h ProjectPart: \n" "RegisterTranslationUnitForCodeCompletionCommand\n" diff --git a/src/plugins/clangcodemodel/test/clangcodecompletion_test.h b/src/plugins/clangcodemodel/test/clangcodecompletion_test.h index 1f1bb4a8f8f..52ff5f172dc 100644 --- a/src/plugins/clangcodemodel/test/clangcodecompletion_test.h +++ b/src/plugins/clangcodemodel/test/clangcodecompletion_test.h @@ -57,6 +57,7 @@ private slots: void testCompleteGlobals(); void testCompleteMembers(); void testCompleteFunctions(); + void testCompleteConstructorAndFallbackToGlobalCompletion(); void testProjectDependentCompletion(); void testChangingProjectDependentCompletion(); diff --git a/src/plugins/clangcodemodel/test/clangcompletioncontextanalyzertest.cpp b/src/plugins/clangcodemodel/test/clangcompletioncontextanalyzertest.cpp deleted file mode 100644 index afa881eb05c..00000000000 --- a/src/plugins/clangcodemodel/test/clangcompletioncontextanalyzertest.cpp +++ /dev/null @@ -1,234 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing -** -** 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 The Qt Company. For licensing terms and -** conditions see http://www.qt.io/terms-conditions. For further information -** use the contact form at http://www.qt.io/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 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, The Qt Company gives you certain additional -** rights. These rights are described in The Qt Company LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -#include "clangcompletioncontextanalyzertest.h" - -#include -#include - -#include - -#include -#include -#include - -using namespace CPlusPlus; -using namespace ClangCodeModel; -using namespace ClangCodeModel::Internal; -using namespace ClangCodeModel::Internal::Tests; - -Q_DECLARE_METATYPE(ClangCodeModel::Internal::ClangCompletionContextAnalyzer::CompletionAction) - -QT_BEGIN_NAMESPACE -namespace QTest { - -template<> char *toString(const ClangCompletionContextAnalyzer::CompletionAction &action) -{ - using CCA = ClangCompletionContextAnalyzer; - - switch (action) { - case CCA::PassThroughToLibClang: - return qstrdup("PassThroughToLibClang"); - case CCA::PassThroughToLibClangAfterLeftParen: - return qstrdup("PassThroughToLibClangAfterLeftParen"); - case CCA::CompleteDoxygenKeyword: - return qstrdup("CompleteDoxygenKeyword"); - case CCA::CompleteIncludePath: - return qstrdup("CompleteIncludePath"); - case CCA::CompletePreprocessorDirective: - return qstrdup("CompletePreprocessorDirective"); - case CCA::CompleteSignal: - return qstrdup("CompleteSignal"); - case CCA::CompleteSlot: - return qstrdup("CompleteSlot"); - } - return qstrdup("Unexpected Value"); -} - -} // namespace QTest -QT_END_NAMESPACE - -namespace { - -typedef QByteArray _; - -class DummyAssistInterface : public TextEditor::AssistInterface -{ -public: - DummyAssistInterface(const QByteArray &text, int position) - : AssistInterface(new QTextDocument(QString::fromUtf8(text)), - position, - QLatin1String(""), - TextEditor::ActivationCharacter) - {} - ~DummyAssistInterface() { delete textDocument(); } -}; - -class TestDocument -{ -public: - TestDocument(const QByteArray &theSource) - : source(theSource) - , position(theSource.lastIndexOf('@')) // Use 'lastIndexOf' due to doxygen: "//! @keyword" - { - QTC_CHECK(position != -1); - source.remove(position, 1); - } - - QByteArray source; - int position; -}; - -bool isAPassThroughToLibClangAction(ClangCompletionContextAnalyzer::CompletionAction action) -{ - return action == ClangCompletionContextAnalyzer::PassThroughToLibClang - || action == ClangCompletionContextAnalyzer::PassThroughToLibClangAfterLeftParen; -} - -ClangCompletionContextAnalyzer runAnalyzer(const TestDocument &testDocument) -{ - DummyAssistInterface assistInterface(testDocument.source, testDocument.position); - ClangCompletionContextAnalyzer analyzer(&assistInterface, LanguageFeatures::defaultFeatures()); - analyzer.analyze(); - return analyzer; -} - -} // anonymous namespace - -void ClangCompletionContextAnalyzerTest::testPassThroughToClangAndSignalSlotRecognition_data() -{ - QTest::addColumn("givenSource"); - QTest::addColumn("expectedCompletionAction"); - QTest::addColumn("expectedDiffBetweenCursorAndCalculatedClangPosition"); - QTest::addColumn("expectedDiffBetweenCursorAndCalculatedProposalPosition"); - - using CCA = ClangCompletionContextAnalyzer; - - QTest::newRow("members - dot 1") << _("o.mem@") << CCA::PassThroughToLibClang << -3 << -3; - QTest::newRow("members - dot 2") << _("o. mem@") << CCA::PassThroughToLibClang << -4 << -3; - QTest::newRow("members - dot 3") << _("o.@mem") << CCA::PassThroughToLibClang << 0 << 0; - QTest::newRow("members - dot 4") << _("o. @ mem") << CCA::PassThroughToLibClang << -1 << 0; - QTest::newRow("members - arrow 1") << _("o->mem@") << CCA::PassThroughToLibClang << -3 << -3; - QTest::newRow("members - arrow 2") << _("o-> mem@") << CCA::PassThroughToLibClang << -4 << -3; - QTest::newRow("members - arrow 3") << _("o->@mem") << CCA::PassThroughToLibClang << 0 << 0; - QTest::newRow("members - arrow 4") << _("o-> @ mem") << CCA::PassThroughToLibClang << -1 << 0; - - QTest::newRow("call 1") << _("f(@") << CCA::PassThroughToLibClangAfterLeftParen << -2 << 0; - QTest::newRow("call 2") << _("f(1,@") << CCA::PassThroughToLibClangAfterLeftParen << -4 << -2; - QTest::newRow("call 3") << _("f(1, @") << CCA::PassThroughToLibClang << -1 << 0; - - QTest::newRow("qt4 signals 1") << _("SIGNAL(@") << CCA::CompleteSignal << 0 << 0; - QTest::newRow("qt4 signals 2") << _("SIGNAL(foo@") << CCA::CompleteSignal << -3 << -3; - QTest::newRow("qt4 slots 1") << _("SLOT(@") << CCA::CompleteSlot << 0 << 0; - QTest::newRow("qt4 slots 2") << _("SLOT(foo@") << CCA::CompleteSlot << -3 << -3; -} - -void ClangCompletionContextAnalyzerTest::testPassThroughToClangAndSignalSlotRecognition() -{ - QFETCH(QByteArray, givenSource); - QFETCH(ClangCompletionContextAnalyzer::CompletionAction, expectedCompletionAction); - QFETCH(int, expectedDiffBetweenCursorAndCalculatedClangPosition); - QFETCH(int, expectedDiffBetweenCursorAndCalculatedProposalPosition); - - const TestDocument testDocument(givenSource); - ClangCompletionContextAnalyzer analyzer = runAnalyzer(testDocument); - - QCOMPARE(analyzer.completionAction(), expectedCompletionAction); - QCOMPARE(analyzer.positionForClang() - testDocument.position, - expectedDiffBetweenCursorAndCalculatedClangPosition); - QCOMPARE(analyzer.positionForProposal() - testDocument.position, - expectedDiffBetweenCursorAndCalculatedProposalPosition); -} - -void ClangCompletionContextAnalyzerTest::testSpecialCompletionRecognition_data() -{ - QTest::addColumn("givenSource"); - QTest::addColumn("expectedCompletionAction"); - QTest::addColumn("expectedDiffBetweenCursorAndCalculatedProposalPosition"); - - using CCA = ClangCompletionContextAnalyzer; - - QTest::newRow("doxygen keywords 1") << _("//! \\@") << CCA::CompleteDoxygenKeyword << 0; - QTest::newRow("doxygen keywords 3") << _("//! @@") << CCA::CompleteDoxygenKeyword << 0; - QTest::newRow("doxygen keywords 2") << _("//! \\par@") << CCA::CompleteDoxygenKeyword << -3; - - QTest::newRow("pp directives 1") << _("#@") << CCA::CompletePreprocessorDirective << 0; - QTest::newRow("pp directives 2") << _("#if@") << CCA::CompletePreprocessorDirective << -2; - - QTest::newRow("pp include path 1") << _("#include \"foo@\"") << CCA::CompleteIncludePath << -3; - QTest::newRow("pp include path 2") << _("#include ") << CCA::CompleteIncludePath << -3; - QTest::newRow("pp include path 3") << _("#include ") << CCA::CompleteIncludePath << 0; -} - -void ClangCompletionContextAnalyzerTest::testSpecialCompletionRecognition() -{ - QFETCH(QByteArray, givenSource); - QFETCH(ClangCompletionContextAnalyzer::CompletionAction, expectedCompletionAction); - QFETCH(int, expectedDiffBetweenCursorAndCalculatedProposalPosition); - - const TestDocument testDocument(givenSource); - ClangCompletionContextAnalyzer analyzer = runAnalyzer(testDocument); - - QCOMPARE(analyzer.completionAction(), expectedCompletionAction); - QCOMPARE(analyzer.positionForClang(), -1); - QCOMPARE(analyzer.positionForProposal() - testDocument.position, - expectedDiffBetweenCursorAndCalculatedProposalPosition); -} - -void ClangCompletionContextAnalyzerTest::testAvoidSpecialCompletionRecognition_data() -{ - QTest::addColumn("givenSource"); - - QTest::newRow("no special completion for literals 1") << _("\"@"); - QTest::newRow("no special completion for literals 2") << _(" \"@"); - QTest::newRow("no special completion for literals 3") << _("\"text\"@"); - QTest::newRow("no special completion for literals 4") << _("\"hello cruel@ world\""); - QTest::newRow("no special completion for literals 5") << _("'@'"); - QTest::newRow("no special completion for literals 6") << _("'a@'"); - QTest::newRow("no special completion for comma operator") << _("a = b,@\""); - QTest::newRow("no special completion for doxygen marker not in doxygen comment 1") << _("@@"); - QTest::newRow("no special completion for doxygen marker not in doxygen comment 2") << _("\\@"); - QTest::newRow("no special completion in comments 1") << _("// text@"); - QTest::newRow("no special completion in comments 2") << _("/* text@ */"); - QTest::newRow("no special completion for slash") << _("5 /@"); - QTest::newRow("no special completion for '(' 1") << _("(@"); - QTest::newRow("no special completion for '(' 2") << _("((@"); - QTest::newRow("no special completion for '(' 3") << _("*(@"); -} - -void ClangCompletionContextAnalyzerTest::testAvoidSpecialCompletionRecognition() -{ - QFETCH(QByteArray, givenSource); - - const TestDocument testDocument(givenSource); - ClangCompletionContextAnalyzer analyzer = runAnalyzer(testDocument); - - QVERIFY(isAPassThroughToLibClangAction(analyzer.completionAction())); -} diff --git a/src/plugins/clangcodemodel/test/constructorCompletion.cpp b/src/plugins/clangcodemodel/test/constructorCompletion.cpp new file mode 100644 index 00000000000..1b19b68a105 --- /dev/null +++ b/src/plugins/clangcodemodel/test/constructorCompletion.cpp @@ -0,0 +1,9 @@ +int globalVariable; + +struct GlobalClassWithCustomConstructor { + GlobalClassWithCustomConstructor(int) {} +}; + +void f() { + GlobalClassWithCustomConstructor foo( /* COMPLETE HERE */ +} diff --git a/src/plugins/clangcodemodel/test/qt-widgets-app/mainwindow.ui b/src/plugins/clangcodemodel/test/qt-widgets-app/mainwindow.ui index 6050363fa71..f6ca1871f3f 100644 --- a/src/plugins/clangcodemodel/test/qt-widgets-app/mainwindow.ui +++ b/src/plugins/clangcodemodel/test/qt-widgets-app/mainwindow.ui @@ -9,16 +9,12 @@ 300 - - MainWindow - - diff --git a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp index b0ce2c96f58..7b621b5a8cd 100644 --- a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp +++ b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp @@ -47,6 +47,7 @@ CMakeKitInformation::CMakeKitInformation() { setObjectName(QLatin1String("CMakeKitInformation")); setId(CMakeKitInformation::id()); + setPriority(20000); //make sure the default value is set if a selected CMake is removed connect(CMakeToolManager::instance(), &CMakeToolManager::cmakeRemoved, diff --git a/src/plugins/cmakeprojectmanager/cmakesettingspage.cpp b/src/plugins/cmakeprojectmanager/cmakesettingspage.cpp index 35808e404cf..44c5624cf18 100644 --- a/src/plugins/cmakeprojectmanager/cmakesettingspage.cpp +++ b/src/plugins/cmakeprojectmanager/cmakesettingspage.cpp @@ -378,6 +378,7 @@ void CMakeToolItemConfigWidget::load(const CMakeToolTreeItem *item) class CMakeToolConfigWidget : public QWidget { + Q_OBJECT public: CMakeToolConfigWidget() : m_currentItem(0) { @@ -572,3 +573,5 @@ void CMakeSettingsPage::finish() } // namespace Internal } // namespace CMakeProjectManager + +#include "cmakesettingspage.moc" diff --git a/src/plugins/cppeditor/cppeditordocument.cpp b/src/plugins/cppeditor/cppeditordocument.cpp index 2746303cf0e..e64e4fe6462 100644 --- a/src/plugins/cppeditor/cppeditordocument.cpp +++ b/src/plugins/cppeditor/cppeditordocument.cpp @@ -254,13 +254,13 @@ void CppEditorDocument::updatePreprocessorSettings() return; const QString prefix = QLatin1String(Constants::CPP_PREPROCESSOR_PROJECT_PREFIX); - const QString &projectFile = ProjectExplorer::SessionManager::value( + const QString &projectPartId = ProjectExplorer::SessionManager::value( prefix + filePath().toString()).toString(); - const QString directivesKey = projectFile + QLatin1Char(',') + filePath().toString(); + const QString directivesKey = projectPartId + QLatin1Char(',') + filePath().toString(); const QByteArray additionalDirectives = ProjectExplorer::SessionManager::value( directivesKey).toString().toUtf8(); - setPreprocessorSettings(mm()->projectPartForProjectFile(projectFile), additionalDirectives); + setPreprocessorSettings(mm()->projectPartForId(projectPartId), additionalDirectives); } void CppEditorDocument::setPreprocessorSettings(const CppTools::ProjectPart::Ptr &projectPart, diff --git a/src/plugins/cppeditor/cppeditorplugin.h b/src/plugins/cppeditor/cppeditorplugin.h index 8745dc9bb4c..a4f4304b0cf 100644 --- a/src/plugins/cppeditor/cppeditorplugin.h +++ b/src/plugins/cppeditor/cppeditorplugin.h @@ -213,8 +213,17 @@ private slots: void test_includehierarchy_data(); void test_includehierarchy(); - // The following tests depend on the projects that are loaded on startup - // and will be skipped in case no projects are loaded. + // The following tests operate on a project and require special invocation: + // + // Ensure that the project is properly configured for a given settings path: + // $ ./qtcreator -settingspath /your/settings/path /path/to/project + // + // ...and that it builds, which might prevent blocking dialogs for not + // existing files (e.g. ui_*.h). + // + // Run a test: + // $ export QTC_TEST_WAIT_FOR_LOADED_PROJECT=1 + // $ ./qtcreator -settingspath /your/settings/path -test CppEditor,test_openEachFile /path/to/project void test_openEachFile(); void test_switchHeaderSourceOnEachFile(); void test_moveTokenWiseThroughEveryFile(); diff --git a/src/plugins/cppeditor/cpppreprocessordialog.cpp b/src/plugins/cppeditor/cpppreprocessordialog.cpp index 2b9210f04b3..fcc9f69c6dd 100644 --- a/src/plugins/cppeditor/cpppreprocessordialog.cpp +++ b/src/plugins/cppeditor/cpppreprocessordialog.cpp @@ -70,7 +70,7 @@ CppPreProcessorDialog::CppPreProcessorDialog(QWidget *parent, const QString &fil ProjectPartAddition addition; addition.projectPart = projectPart; addition.additionalDirectives = ProjectExplorer::SessionManager::value( - projectPart->projectFile + QLatin1Char(',') + m_filePath).toString(); + projectPart->id() + QLatin1Char(',') + m_filePath).toString(); if (projectPart->id() == projectPartIdToUse) currentIndex = m_ui->projectComboBox->count() - 1; m_partAdditions << addition; @@ -96,16 +96,16 @@ int CppPreProcessorDialog::exec() ProjectExplorer::SessionManager::setValue( QLatin1String(Constants::CPP_PREPROCESSOR_PROJECT_PREFIX) + m_filePath, - m_partAdditions[m_ui->projectComboBox->currentIndex()].projectPart->projectFile); + m_partAdditions[m_ui->projectComboBox->currentIndex()].projectPart->id()); foreach (ProjectPartAddition partAddition, m_partAdditions) { const QString &previousDirectives = ProjectExplorer::SessionManager::value( - partAddition.projectPart->projectFile + partAddition.projectPart->id() + QLatin1Char(',') + m_filePath).toString(); if (previousDirectives != partAddition.additionalDirectives) { ProjectExplorer::SessionManager::setValue( - partAddition.projectPart->projectFile + QLatin1Char(',') + m_filePath, + partAddition.projectPart->id() + QLatin1Char(',') + m_filePath, partAddition.additionalDirectives); } } diff --git a/src/plugins/cppeditor/cppquickfix_test.cpp b/src/plugins/cppeditor/cppquickfix_test.cpp index 4945fd8ae7f..cbc04f6a673 100644 --- a/src/plugins/cppeditor/cppquickfix_test.cpp +++ b/src/plugins/cppeditor/cppquickfix_test.cpp @@ -1720,6 +1720,23 @@ void CppEditorPlugin::test_quickfix_data() " f2(str);\n" "}\n"); + QTest::newRow("ConvertToPointerWithMacro") + << CppQuickFixFactoryPtr(new ConvertFromAndToPointer) + << _("#define BAR bar\n" + "void func()\n" + "{\n" + " int @foo = 42;\n" + " int bar;\n" + " BAR = foo;\n" + "}\n") + << _("#define BAR bar\n" + "void func()\n" + "{\n" + " int *foo = 42;\n" + " int bar;\n" + " BAR = *foo;\n" + "}\n"); + QTest::newRow("InsertQtPropertyMembers_noTriggerInvalidCode") << CppQuickFixFactoryPtr(new InsertQtPropertyMembers) << _("class C { @Q_PROPERTY(typeid foo READ foo) };\n") diff --git a/src/plugins/cppeditor/fileandtokenactions_test.cpp b/src/plugins/cppeditor/fileandtokenactions_test.cpp index 7e3e463589c..63ab5cc6882 100644 --- a/src/plugins/cppeditor/fileandtokenactions_test.cpp +++ b/src/plugins/cppeditor/fileandtokenactions_test.cpp @@ -118,17 +118,8 @@ class TestActionsTestCase : public Tests::TestCase CppEditor *editor, const Actions &tokenActions); static void undoAllChangesAndCloseAllEditors(); - - /// This function expects: - /// (1) Only Qt4 projects are loaded (qmake in PATH should point to Qt4/bin). - /// (2) No *.pro.user file exists for the projects. - static void configureAllProjects(const QList > &projects); - - static bool allProjectsConfigured; }; -bool TestActionsTestCase::allProjectsConfigured = false; - typedef TestActionsTestCase::Actions Actions; typedef TestActionsTestCase::ActionPointer ActionPointer; @@ -137,18 +128,35 @@ Actions singleAction(const ActionPointer &action) return Actions() << action; } +static bool waitUntilAProjectIsLoaded(int timeOutInMs = 30000) +{ + QElapsedTimer timer; + timer.start(); + + while (timer.elapsed() < timeOutInMs) { + if (!CppModelManager::instance()->projectInfos().isEmpty()) + return true; + + QCoreApplication::processEvents(); + QThread::msleep(20); + } + + return false; +} + TestActionsTestCase::TestActionsTestCase(const Actions &tokenActions, const Actions &fileActions) : Tests::TestCase(/*runGarbageCollector=*/false) { QVERIFY(succeededSoFar()); + if (qgetenv("QTC_TEST_WAIT_FOR_LOADED_PROJECT") != "1") + QSKIP("Environment variable QTC_TEST_WAIT_FOR_LOADED_PROJECT=1 not set."); + QVERIFY(waitUntilAProjectIsLoaded()); + // Collect files to process QStringList filesToOpen; QList > projects; - const QList projectInfos - = m_modelManager->projectInfos(); - if (projectInfos.isEmpty()) - QSKIP("No project(s) loaded. Test operates only on loaded projects."); + const QList projectInfos = m_modelManager->projectInfos(); foreach (const ProjectInfo &info, projectInfos) { QPointer project = info.project(); @@ -160,12 +168,6 @@ TestActionsTestCase::TestActionsTestCase(const Actions &tokenActions, const Acti filesToOpen << sourceFile; } - // Configure all projects on first execution of this function (= very first test) - if (!TestActionsTestCase::allProjectsConfigured) { - configureAllProjects(projects); - TestActionsTestCase::allProjectsConfigured = true; - } - Utils::sort(filesToOpen); // Process all files from the projects @@ -311,15 +313,6 @@ void TestActionsTestCase::undoAllChangesAndCloseAllEditors() QCOMPARE(DocumentModel::openedDocuments().size(), 0); } -void TestActionsTestCase::configureAllProjects(const QList > - &projects) -{ - foreach (const QPointer &project, projects) { - qDebug() << "*** Configuring project" << project->displayName(); - project->configureAsExampleProject(QStringList()); - } -} - class NoOpTokenAction : public TestActionsTestCase::AbstractAction { public: diff --git a/src/plugins/cpptools/baseeditordocumentparser.cpp b/src/plugins/cpptools/baseeditordocumentparser.cpp index 52fd64e1135..314b7f98abe 100644 --- a/src/plugins/cpptools/baseeditordocumentparser.cpp +++ b/src/plugins/cpptools/baseeditordocumentparser.cpp @@ -126,7 +126,7 @@ ProjectPart::Ptr BaseEditorDocumentParser::determineProjectPart(const QString &f CppModelManager *cmm = CppModelManager::instance(); QList projectParts = cmm->projectPart(filePath); if (projectParts.isEmpty()) { - if (projectPart) + if (projectPart && config.stickToPreviousProjectPart) // File is not directly part of any project, but we got one before. We will re-use it, // because re-calculating this can be expensive when the dependency table is big. return projectPart; diff --git a/src/plugins/cpptools/baseeditordocumentparser.h b/src/plugins/cpptools/baseeditordocumentparser.h index b9c8ecaadcd..05f210716d9 100644 --- a/src/plugins/cpptools/baseeditordocumentparser.h +++ b/src/plugins/cpptools/baseeditordocumentparser.h @@ -47,6 +47,7 @@ class CPPTOOLS_EXPORT BaseEditorDocumentParser : public QObject static BaseEditorDocumentParser *get(const QString &filePath); struct Configuration { + bool stickToPreviousProjectPart = true; bool usePrecompiledHeaders = false; QByteArray editorDefines; ProjectPart::Ptr manuallySetProjectPart; diff --git a/src/plugins/cpptools/cppcodemodelinspectordumper.cpp b/src/plugins/cpptools/cppcodemodelinspectordumper.cpp index 11ecab7b3ba..1285c40da32 100644 --- a/src/plugins/cpptools/cppcodemodelinspectordumper.cpp +++ b/src/plugins/cpptools/cppcodemodelinspectordumper.cpp @@ -491,7 +491,7 @@ void Dumper::dumpProjectInfos( const QList &projectInfos) } if (!part->projectConfigFile.isEmpty()) m_out << i3 << "Project Config File: " << part->projectConfigFile << "\n"; - m_out << i2 << "Project Part \"" << part->projectFile << "\"{{{3\n"; + m_out << i2 << "Project Part \"" << part->id() << "\"{{{3\n"; m_out << i3 << "Project Part Name : " << part->displayName << "\n"; m_out << i3 << "Project Name : " << projectName << "\n"; m_out << i3 << "Project File : " << projectFilePath << "\n"; diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index 0d1b13621d6..be1fc9e2585 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -54,6 +54,7 @@ #include #include #include +#include #include #include @@ -137,7 +138,7 @@ class CppModelManagerPrivate mutable QMutex m_projectMutex; QMap m_projectToProjectsInfo; QMap > m_fileToProjectParts; - QMap m_projectFileToProjectPart; + QMap m_projectPartIdToProjectProjectPart; // The members below are cached/(re)calculated from the projects and/or their project parts bool m_dirty; QStringList m_projectFiles; @@ -710,13 +711,11 @@ void CppModelManager::removeFilesFromSnapshot(const QSet &filesToRemove d->m_snapshot.remove(i.next()); } -static QStringList projectFilePaths(const QSet &projectParts) +static QSet projectPartIds(const QSet &projectParts) { - QStringList result; - QSetIterator it(projectParts); - while (it.hasNext()) - result << it.next()->projectFile; - return result; + return Utils::transform(projectParts, [](const ProjectPart::Ptr &projectPart) { + return projectPart->id(); + }); } class ProjectInfoComparer @@ -750,9 +749,9 @@ class ProjectInfoComparer QStringList removedProjectParts() { - QSet removed = m_old.projectParts().toSet(); - removed.subtract(m_new.projectParts().toSet()); - return projectFilePaths(removed); + QSet removed = projectPartIds(m_old.projectParts().toSet()); + removed.subtract(projectPartIds(m_new.projectParts().toSet())); + return removed.toList(); } /// Returns a list of common files that have a changed timestamp. @@ -781,13 +780,13 @@ class ProjectInfoComparer }; /// Make sure that m_projectMutex is locked when calling this. -void CppModelManager::recalculateFileToProjectParts() +void CppModelManager::recalculateProjectPartMappings() { - d->m_projectFileToProjectPart.clear(); + d->m_projectPartIdToProjectProjectPart.clear(); d->m_fileToProjectParts.clear(); foreach (const ProjectInfo &projectInfo, d->m_projectToProjectsInfo) { foreach (const ProjectPart::Ptr &projectPart, projectInfo.projectParts()) { - d->m_projectFileToProjectPart[projectPart->projectFile] = projectPart; + d->m_projectPartIdToProjectProjectPart[projectPart->id()] = projectPart; foreach (const ProjectFile &cxxFile, projectPart->files) d->m_fileToProjectParts[Utils::FileName::fromString(cxxFile.path)].append( projectPart); @@ -883,7 +882,7 @@ QFuture CppModelManager::updateProjectInfo(const ProjectInfo &newProjectIn // Update Project/ProjectInfo and File/ProjectPart table d->m_projectToProjectsInfo.insert(project, newProjectInfo); - recalculateFileToProjectParts(); + recalculateProjectPartMappings(); } // Mutex scope @@ -908,9 +907,9 @@ QFuture CppModelManager::updateProjectInfo(const ProjectInfo &newProjectIn return updateSourceFiles(filesToReindex, ForcedProgressNotification); } -ProjectPart::Ptr CppModelManager::projectPartForProjectFile(const QString &projectFile) const +ProjectPart::Ptr CppModelManager::projectPartForId(const QString &projectPartId) const { - return d->m_projectFileToProjectPart.value(projectFile); + return d->m_projectPartIdToProjectProjectPart.value(projectPartId); } QList CppModelManager::projectPart(const Utils::FileName &fileName) const @@ -981,17 +980,17 @@ void CppModelManager::delayedGC() d->m_delayedGcTimer.start(500); } -static QStringList pathsOfAllProjectParts(const ProjectInfo &projectInfo) +static QStringList idsOfAllProjectParts(const ProjectInfo &projectInfo) { QStringList projectPaths; foreach (const ProjectPart::Ptr &part, projectInfo.projectParts()) - projectPaths << part->projectFile; + projectPaths << part->id(); return projectPaths; } void CppModelManager::onAboutToRemoveProject(ProjectExplorer::Project *project) { - QStringList projectFilePaths; + QStringList projectPartIds; { QMutexLocker locker(&d->m_projectMutex); @@ -999,14 +998,14 @@ void CppModelManager::onAboutToRemoveProject(ProjectExplorer::Project *project) // Save paths const ProjectInfo projectInfo = d->m_projectToProjectsInfo.value(project, ProjectInfo()); - projectFilePaths = pathsOfAllProjectParts(projectInfo); + projectPartIds = idsOfAllProjectParts(projectInfo); d->m_projectToProjectsInfo.remove(project); - recalculateFileToProjectParts(); + recalculateProjectPartMappings(); } - if (!projectFilePaths.isEmpty()) - emit projectPartsRemoved(projectFilePaths); + if (!projectPartIds.isEmpty()) + emit projectPartsRemoved(projectPartIds); delayedGC(); } @@ -1085,7 +1084,7 @@ void CppModelManager::onAboutToUnloadSession() do { QMutexLocker locker(&d->m_projectMutex); d->m_projectToProjectsInfo.clear(); - recalculateFileToProjectParts(); + recalculateProjectPartMappings(); d->m_dirty = true; } while (0); } diff --git a/src/plugins/cpptools/cppmodelmanager.h b/src/plugins/cpptools/cppmodelmanager.h index 24b2d2d6ee7..b9ac4a9b0c6 100644 --- a/src/plugins/cpptools/cppmodelmanager.h +++ b/src/plugins/cpptools/cppmodelmanager.h @@ -94,7 +94,7 @@ class CPPTOOLS_EXPORT CppModelManager : public CPlusPlus::CppModelManagerBase QFuture updateProjectInfo(const ProjectInfo &newProjectInfo); /// \return The project part with the given project file - ProjectPart::Ptr projectPartForProjectFile(const QString &projectFile) const; + ProjectPart::Ptr projectPartForId(const QString &projectPartId) const; /// \return All project parts that mention the given file name as one of the sources/headers. QList projectPart(const Utils::FileName &fileName) const; QList projectPart(const QString &fileName) const @@ -170,7 +170,7 @@ class CPPTOOLS_EXPORT CppModelManager : public CPlusPlus::CppModelManagerBase void sourceFilesRefreshed(const QSet &files); void projectPartsUpdated(ProjectExplorer::Project *project); - void projectPartsRemoved(const QStringList &projectFiles); + void projectPartsRemoved(const QStringList &projectPartIds); void globalSnapshotChanged(); @@ -198,7 +198,7 @@ private slots: private: void delayedGC(); - void recalculateFileToProjectParts(); + void recalculateProjectPartMappings(); void updateCppEditorDocuments() const; void replaceSnapshot(const CPlusPlus::Snapshot &newSnapshot); diff --git a/src/plugins/cpptools/cppprojects.cpp b/src/plugins/cpptools/cppprojects.cpp index d04da92b750..29f8d1cd8fe 100644 --- a/src/plugins/cpptools/cppprojects.cpp +++ b/src/plugins/cpptools/cppprojects.cpp @@ -146,7 +146,10 @@ ProjectPart::Ptr ProjectPart::copy() const QString ProjectPart::id() const { - return QDir::fromNativeSeparators(projectFile) + QLatin1Char(' ') + displayName; + QString projectPartId = QDir::fromNativeSeparators(projectFile); + if (!displayName.isEmpty()) + projectPartId.append(QLatin1Char(' ') + displayName); + return projectPartId; } QByteArray ProjectPart::readProjectConfigFile(const ProjectPart::Ptr &part) @@ -669,13 +672,15 @@ void CompilerOptionsBuilder::addOptionsForLanguage(bool checkForBorlandExtension opts << (gnuExtensions ? QLatin1String("-std=gnu++98") : QLatin1String("-std=c++98")); break; case ProjectPart::CXX03: + // Clang 3.6 does not know -std=gnu++03. opts << QLatin1String("-std=c++03"); break; case ProjectPart::CXX14: - opts << QLatin1String("-std=c++1y"); // TODO: change to c++14 after 3.5 + opts << (gnuExtensions ? QLatin1String("-std=gnu++14") : QLatin1String("-std=c++14")); break; case ProjectPart::CXX17: - opts << QLatin1String("-std=c++1z"); // TODO: change to c++17 at some point in the future + // TODO: Change to (probably) "gnu++17"/"c++17" at some point in the future. + opts << (gnuExtensions ? QLatin1String("-std=gnu++1z") : QLatin1String("-std=c++1z")); break; } diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp index baaef60d340..1731f527fad 100644 --- a/src/plugins/debugger/breakhandler.cpp +++ b/src/plugins/debugger/breakhandler.cpp @@ -1331,6 +1331,8 @@ BreakpointItem::~BreakpointItem() void BreakpointItem::destroyMarker() { + if (m_engine) + m_engine->updateBreakpointMarkers(); if (m_marker) { BreakpointMarker *m = m_marker; m->m_bp = 0; diff --git a/src/plugins/debugger/commonoptionspage.cpp b/src/plugins/debugger/commonoptionspage.cpp index 7b1c8275fc3..2e7e17ea196 100644 --- a/src/plugins/debugger/commonoptionspage.cpp +++ b/src/plugins/debugger/commonoptionspage.cpp @@ -125,7 +125,7 @@ CommonOptionsPageWidget::CommonOptionsPageWidget checkBoxBringToForegroundOnInterrrupt->setText(tr("Bring Qt Creator to foreground when application interrupts")); checkBoxShowQmlObjectTree = new QCheckBox(behaviorBox); - checkBoxShowQmlObjectTree->setToolTip(tr("Shows QML object tree in Locals & Expressions when connected and not stepping.")); + checkBoxShowQmlObjectTree->setToolTip(tr("Shows QML object tree in Locals and Expressions when connected and not stepping.")); checkBoxShowQmlObjectTree->setText(tr("Show QML object tree")); checkBoxBreakpointsFullPath = new QCheckBox(behaviorBox); diff --git a/src/plugins/debugger/debuggerdialogs.cpp b/src/plugins/debugger/debuggerdialogs.cpp index 9e6417e0ed5..1971367ce4b 100644 --- a/src/plugins/debugger/debuggerdialogs.cpp +++ b/src/plugins/debugger/debuggerdialogs.cpp @@ -110,18 +110,16 @@ DebuggerKitChooser::DebuggerKitChooser(Mode mode, QWidget *parent) , m_hostAbi(Abi::hostAbi()) , m_mode(mode) { -} - -// Match valid debuggers and restrict local debugging to compatible toolchains. -bool DebuggerKitChooser::kitMatches(const Kit *k) const -{ - if (!DebuggerKitInformation::isValidDebugger(k)) - return false; - if (m_mode == LocalDebugging) { - const ToolChain *tc = ToolChainKitInformation::toolChain(k); - return tc && tc->targetAbi().os() == m_hostAbi.os(); - } - return true; + setKitMatcher([this](const Kit *k) { + // Match valid debuggers and restrict local debugging to compatible toolchains. + if (!DebuggerKitInformation::isValidDebugger(k)) + return false; + if (m_mode == LocalDebugging) { + const ToolChain *tc = ToolChainKitInformation::toolChain(k); + return tc && tc->targetAbi().os() == m_hostAbi.os(); + } + return true; + }); } QString DebuggerKitChooser::kitToolTip(Kit *k) const diff --git a/src/plugins/debugger/debuggerdialogs.h b/src/plugins/debugger/debuggerdialogs.h index ac262c962af..2b5c982bd60 100644 --- a/src/plugins/debugger/debuggerdialogs.h +++ b/src/plugins/debugger/debuggerdialogs.h @@ -69,7 +69,6 @@ class DebuggerKitChooser : public ProjectExplorer::KitChooser explicit DebuggerKitChooser(Mode mode = AnyDebugging, QWidget *parent = 0); protected: - bool kitMatches(const ProjectExplorer::Kit *k) const; QString kitToolTip(ProjectExplorer::Kit *k) const; private: diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index 96638cef077..950ffb1e86d 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -46,6 +46,7 @@ #include "gdb/gdbengine.h" // REMOVE #include "registerhandler.h" #include "sourcefileshandler.h" +#include "sourceutils.h" #include "stackhandler.h" #include "terminal.h" #include "threadshandler.h" @@ -134,28 +135,28 @@ Location::Location(const StackFrame &frame, bool marker) } -class LocationMark : public TextMark +LocationMark::LocationMark(DebuggerEngine *engine, const QString &file, int line) + : TextMark(file, line, Constants::TEXT_MARK_CATEGORY_LOCATION), m_engine(engine) { -public: - LocationMark(DebuggerEngine *engine, const QString &file, int line) - : TextMark(file, line, Constants::TEXT_MARK_CATEGORY_LOCATION), m_engine(engine) - {} + setIcon(Internal::locationMarkIcon()); + setPriority(TextMark::HighPriority); +} -private: - bool isDraggable() const { return true; } +bool LocationMark::isDraggable() const +{ + return m_engine->hasCapability(JumpToLineCapability); +} - void dragToLine(int line) - { - if (m_engine) { - ContextData data; - data.fileName = fileName(); - data.lineNumber = line; - m_engine->executeJumpToLine(data); +void LocationMark::dragToLine(int line) +{ + if (m_engine) { + if (BaseTextEditor *textEditor = BaseTextEditor::currentTextEditor()) { + ContextData location = getLocationContext(textEditor->textDocument(), line); + if (location.isValid()) + m_engine->executeJumpToLine(location); } } - - QPointer m_engine; -}; +} ////////////////////////////////////////////////////////////////////// // @@ -632,11 +633,8 @@ void DebuggerEngine::gotoLocation(const Location &loc) if (newEditor) editor->document()->setProperty(Constants::OPENED_BY_DEBUGGER, true); - if (loc.needsMarker()) { + if (loc.needsMarker()) d->m_locationMark.reset(new LocationMark(this, file, line)); - d->m_locationMark->setIcon(Internal::locationMarkIcon()); - d->m_locationMark->setPriority(TextMark::HighPriority); - } //qDebug() << "MEMORY: " << d->m_memoryAgent.hasVisibleEditor(); } @@ -1341,6 +1339,11 @@ QString DebuggerEngine::toFileInProject(const QUrl &fileUrl) return d->m_fileFinder.findFile(fileUrl); } +void DebuggerEngine::updateBreakpointMarkers() +{ + d->m_disassemblerAgent.updateBreakpointMarkers(); +} + bool DebuggerEngine::debuggerActionsEnabled() const { return debuggerActionsEnabled(d->m_state); diff --git a/src/plugins/debugger/debuggerengine.h b/src/plugins/debugger/debuggerengine.h index c830a0ded35..f62a7e381bc 100644 --- a/src/plugins/debugger/debuggerengine.h +++ b/src/plugins/debugger/debuggerengine.h @@ -36,6 +36,7 @@ #include "debuggerstartparameters.h" #include +#include #include #include @@ -169,15 +170,18 @@ class Location quint64 m_address; }; +enum LocationType { UnknownLocation, LocationByFile, LocationByAddress }; + class ContextData { public: - ContextData() : lineNumber(0), address(0) {} + bool isValid() const { return type != UnknownLocation; } public: + LocationType type = UnknownLocation; QString fileName; - int lineNumber; - quint64 address; + int lineNumber = 0; + quint64 address = 0; }; class DebuggerEngine : public QObject @@ -312,6 +316,7 @@ class DebuggerEngine : public QObject virtual void notifyInferiorIll(); QString toFileInProject(const QUrl &fileUrl); + void updateBreakpointMarkers(); signals: void stateChanged(Debugger::DebuggerState state); @@ -446,6 +451,18 @@ class DebuggerEngine : public QObject DebuggerEnginePrivate *d; }; +class LocationMark : public TextEditor::TextMark +{ +public: + LocationMark(DebuggerEngine *engine, const QString &file, int line); + +private: + bool isDraggable() const; + void dragToLine(int line); + + QPointer m_engine; +}; + DebuggerEngine *createEngine(DebuggerEngineType et, const DebuggerRunParameters &rp, QStringList *errors); DebuggerRunControl *createAndScheduleRun(const DebuggerRunParameters &rp, const ProjectExplorer::Kit *kit); diff --git a/src/plugins/debugger/debuggerinternalconstants.h b/src/plugins/debugger/debuggerinternalconstants.h index 576ed7a82aa..290edbde3f7 100644 --- a/src/plugins/debugger/debuggerinternalconstants.h +++ b/src/plugins/debugger/debuggerinternalconstants.h @@ -47,6 +47,7 @@ namespace Internal { const char OPENED_BY_DEBUGGER[] = "OpenedByDebugger"; const char OPENED_WITH_DISASSEMBLY[] = "DisassemblerView"; +const char DISASSEMBLER_SOURCE_FILE[] = "DisassemblerSourceFile"; // Debug action const char DEBUG[] = "Debugger.Debug"; diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index a79bef2e8c5..d072df0c3bd 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -552,25 +552,6 @@ static Kit *findUniversalCdbKit() return KitManager::find(cdbMatcher()); } -static bool currentTextEditorPosition(ContextData *data) -{ - BaseTextEditor *textEditor = BaseTextEditor::currentTextEditor(); - if (!textEditor) - return false; - const TextDocument *document = textEditor->textDocument(); - QTC_ASSERT(document, return false); - data->fileName = document->filePath().toString(); - if (document->property(Constants::OPENED_WITH_DISASSEMBLY).toBool()) { - int lineNumber = textEditor->currentLine(); - QString line = textEditor->textDocument()->plainText() - .section(QLatin1Char('\n'), lineNumber - 1, lineNumber - 1); - data->address = DisassemblerLine::addressFromDisassemblyLine(line); - } else { - data->lineNumber = textEditor->currentLine(); - } - return true; -} - /////////////////////////////////////////////////////////////////////// // // DebuggerPluginPrivate @@ -637,7 +618,7 @@ class DebuggerPluginPrivate : public QObject { QString message; if (isMessageOnly) { - if (data.address) { + if (data.type == LocationByAddress) { //: Message tracepoint: Address hit. message = tr("0x%1 hit").arg(data.address, 0, 16); } else { @@ -657,10 +638,7 @@ class DebuggerPluginPrivate : public QObject return; message = dialog.textValue(); } - if (data.address) - toggleBreakpointByAddress(data.address, message); - else - toggleBreakpointByFileAndLine(data.fileName, data.lineNumber, message); + toggleBreakpoint(data, message); } void updateWatchersHeader(int section, int, int newSize) @@ -706,11 +684,8 @@ class DebuggerPluginPrivate : public QObject void activatePreviousMode(); void activateDebugMode(); - void toggleBreakpoint(); - void toggleBreakpointByFileAndLine(const QString &fileName, int lineNumber, - const QString &tracePointMessage = QString()); - void toggleBreakpointByAddress(quint64 address, - const QString &tracePointMessage = QString()); + void toggleBreakpointHelper(); + void toggleBreakpoint(const ContextData &location, const QString &tracePointMessage = QString()); void onModeChanged(IMode *mode); void onCoreAboutToOpen(); void updateDebugWithoutDeployMenu(); @@ -848,17 +823,23 @@ public slots: void handleExecJumpToLine() { currentEngine()->resetLocation(); - ContextData data; - if (currentTextEditorPosition(&data)) - currentEngine()->executeJumpToLine(data); + if (BaseTextEditor *textEditor = BaseTextEditor::currentTextEditor()) { + ContextData location = getLocationContext(textEditor->textDocument(), + textEditor->currentLine()); + if (location.isValid()) + currentEngine()->executeJumpToLine(location); + } } void handleExecRunToLine() { currentEngine()->resetLocation(); - ContextData data; - if (currentTextEditorPosition(&data)) - currentEngine()->executeRunToLine(data); + if (BaseTextEditor *textEditor = BaseTextEditor::currentTextEditor()) { + ContextData location = getLocationContext(textEditor->textDocument(), + textEditor->currentLine()); + if (location.isValid()) + currentEngine()->executeRunToLine(location); + } } void handleExecRunToSelectedFunction() @@ -1383,7 +1364,6 @@ void DebuggerPluginPrivate::attachToRemoteServer() rp.startMode = AttachToRemoteServer; if (StartApplicationDialog::run(ICore::dialogParent(), &rp, &kit)) { rp.closeMode = KillAtClose; - rp.serverStartScript.clear(); createAndScheduleRun(rp, kit); } } @@ -1593,26 +1573,18 @@ void DebuggerPluginPrivate::updateBreakMenuItem(IEditor *editor) void DebuggerPluginPrivate::requestContextMenu(TextEditorWidget *widget, int lineNumber, QMenu *menu) { - ContextData args; - args.lineNumber = lineNumber; - bool contextUsable = true; - Breakpoint bp; TextDocument *document = widget->textDocument(); - args.fileName = document->filePath().toString(); - if (document->property(Constants::OPENED_WITH_DISASSEMBLY).toBool()) { - QString line = document->plainText() - .section(QLatin1Char('\n'), lineNumber - 1, lineNumber - 1); + + ContextData args = getLocationContext(document, lineNumber); + if (args.type == LocationByAddress) { BreakpointResponse needle; needle.type = BreakpointByAddress; - needle.address = DisassemblerLine::addressFromDisassemblyLine(line); - args.address = needle.address; + needle.address = args.address; needle.lineNumber = -1; bp = breakHandler()->findSimilarBreakpoint(needle); - contextUsable = args.address != 0; - } else { - bp = breakHandler() - ->findBreakpointByFileAndLine(args.fileName, lineNumber); + } else if (args.type == LocationByFile) { + bp = breakHandler()->findBreakpointByFileAndLine(args.fileName, lineNumber); if (!bp) bp = breakHandler()->findBreakpointByFileAndLine(args.fileName, lineNumber, false); } @@ -1645,7 +1617,7 @@ void DebuggerPluginPrivate::requestContextMenu(TextEditorWidget *widget, ? tr("Set Breakpoint at 0x%1").arg(args.address, 0, 16) : tr("Set Breakpoint at Line %1").arg(lineNumber); auto act = menu->addAction(text); - act->setEnabled(contextUsable); + act->setEnabled(args.isValid()); connect(act, &QAction::triggered, [this, args] { breakpointSetMarginActionTriggered(false, args); }); @@ -1655,14 +1627,14 @@ void DebuggerPluginPrivate::requestContextMenu(TextEditorWidget *widget, ? tr("Set Message Tracepoint at 0x%1...").arg(args.address, 0, 16) : tr("Set Message Tracepoint at Line %1...").arg(lineNumber); act = menu->addAction(tracePointText); - act->setEnabled(contextUsable); + act->setEnabled(args.isValid()); connect(act, &QAction::triggered, [this, args] { breakpointSetMarginActionTriggered(true, args); }); } // Run to, jump to line below in stopped state. - if (currentEngine()->state() == InferiorStopOk && contextUsable) { + if (currentEngine()->state() == InferiorStopOk && args.isValid()) { menu->addSeparator(); if (currentEngine()->hasCapability(RunToLineCapability)) { auto act = menu->addAction(args.address @@ -1698,72 +1670,58 @@ void DebuggerPluginPrivate::requestContextMenu(TextEditorWidget *widget, } } -void DebuggerPluginPrivate::toggleBreakpoint() -{ - BaseTextEditor *textEditor = BaseTextEditor::currentTextEditor(); - QTC_ASSERT(textEditor, return); - const int lineNumber = textEditor->currentLine(); - if (textEditor->property(Constants::OPENED_WITH_DISASSEMBLY).toBool()) { - QString line = textEditor->textDocument()->plainText() - .section(QLatin1Char('\n'), lineNumber - 1, lineNumber - 1); - quint64 address = DisassemblerLine::addressFromDisassemblyLine(line); - toggleBreakpointByAddress(address); - } else if (lineNumber >= 0) { - toggleBreakpointByFileAndLine(textEditor->document()->filePath().toString(), lineNumber); - } -} - -void DebuggerPluginPrivate::toggleBreakpointByFileAndLine(const QString &fileName, - int lineNumber, const QString &tracePointMessage) +void DebuggerPluginPrivate::toggleBreakpoint(const ContextData &location, const QString &tracePointMessage) { + QTC_ASSERT(location.isValid(), return); BreakHandler *handler = m_breakHandler; - Breakpoint bp = handler->findBreakpointByFileAndLine(fileName, lineNumber, true); - if (!bp) - bp = handler->findBreakpointByFileAndLine(fileName, lineNumber, false); + Breakpoint bp; + if (location.type == LocationByFile) { + bp = handler->findBreakpointByFileAndLine(location.fileName, location.lineNumber, true); + if (!bp) + bp = handler->findBreakpointByFileAndLine(location.fileName, location.lineNumber, false); + } else if (location.type == LocationByAddress) { + bp = handler->findBreakpointByAddress(location.address); + } if (bp) { bp.removeBreakpoint(); } else { - BreakpointParameters data(BreakpointByFileAndLine); - if (boolSetting(BreakpointsFullPathByDefault)) - data.pathUsage = BreakpointUseFullPath; - data.tracepoint = !tracePointMessage.isEmpty(); - data.message = tracePointMessage; - data.fileName = fileName; - data.lineNumber = lineNumber; + BreakpointParameters data; + if (location.type == LocationByFile) { + data.type = BreakpointByFileAndLine; + if (boolSetting(BreakpointsFullPathByDefault)) + data.pathUsage = BreakpointUseFullPath; + data.tracepoint = !tracePointMessage.isEmpty(); + data.message = tracePointMessage; + data.fileName = location.fileName; + data.lineNumber = location.lineNumber; + } else if (location.type == LocationByAddress) { + data.type = BreakpointByAddress; + data.tracepoint = !tracePointMessage.isEmpty(); + data.message = tracePointMessage; + data.address = location.address; + } handler->appendBreakpoint(data); } } -void DebuggerPluginPrivate::toggleBreakpointByAddress(quint64 address, - const QString &tracePointMessage) +void DebuggerPluginPrivate::toggleBreakpointHelper() { - BreakHandler *handler = m_breakHandler; - if (Breakpoint bp = handler->findBreakpointByAddress(address)) { - bp.removeBreakpoint(); - } else { - BreakpointParameters data(BreakpointByAddress); - data.tracepoint = !tracePointMessage.isEmpty(); - data.message = tracePointMessage; - data.address = address; - handler->appendBreakpoint(data); - } + BaseTextEditor *textEditor = BaseTextEditor::currentTextEditor(); + QTC_ASSERT(textEditor, return); + const int lineNumber = textEditor->currentLine(); + ContextData location = getLocationContext(textEditor->textDocument(), lineNumber); + if (location.isValid()) + toggleBreakpoint(location); } void DebuggerPluginPrivate::requestMark(TextEditorWidget *widget, int lineNumber, TextMarkRequestKind kind) { - if (kind != BreakpointRequest) - return; - - TextDocument *document = widget->textDocument(); - if (document->property(Constants::OPENED_WITH_DISASSEMBLY).toBool()) { - QString line = document->plainText() - .section(QLatin1Char('\n'), lineNumber - 1, lineNumber - 1); - quint64 address = DisassemblerLine::addressFromDisassemblyLine(line); - toggleBreakpointByAddress(address); - } else { - toggleBreakpointByFileAndLine(document->filePath().toString(), lineNumber); + if (kind == BreakpointRequest) { + ContextData location = getLocationContext(widget->textDocument(), lineNumber); + if (location.isValid()) + toggleBreakpoint(location); } } @@ -2821,7 +2779,7 @@ void DebuggerPluginPrivate::extensionsInitialized() cmd->setDefaultKeySequence(QKeySequence(UseMacShortcuts ? tr("F8") : tr("F9"))); debugMenu->addAction(cmd); connect(m_breakAction, &QAction::triggered, - this, &DebuggerPluginPrivate::toggleBreakpoint); + this, &DebuggerPluginPrivate::toggleBreakpointHelper); debugMenu->addSeparator(); @@ -3130,6 +3088,12 @@ void openTextEditor(const QString &titlePattern0, const QString &contents) IEditor *editor = EditorManager::openEditorWithContents( CC::K_DEFAULT_TEXT_EDITOR_ID, &titlePattern, contents.toUtf8(), QString(), EditorManager::IgnoreNavigationHistory); + if (auto textEditor = qobject_cast(editor)) { + QString suggestion = titlePattern; + if (!suggestion.contains(QLatin1Char('.'))) + suggestion.append(QLatin1String(".txt")); + textEditor->textDocument()->setSuggestedFileName(suggestion); + } QTC_ASSERT(editor, return); } diff --git a/src/plugins/debugger/debuggerprotocol.cpp b/src/plugins/debugger/debuggerprotocol.cpp index 5be634c83f8..ad0f9e86595 100644 --- a/src/plugins/debugger/debuggerprotocol.cpp +++ b/src/plugins/debugger/debuggerprotocol.cpp @@ -728,6 +728,36 @@ QString decodeData(const QByteArray &ba, int encoding) union { char c[8]; double d; } u = { { s[7], s[6], s[5], s[4], s[3], s[2], s[1], s[0] } }; return QString::number(u.d); } + case SpecialEmptyValue: { + return QCoreApplication::translate("Debugger::Internal::WatchHandler", ""); + } + case SpecialUninitializedValue: { + return QCoreApplication::translate("Debugger::Internal::WatchHandler", ""); + } + case SpecialInvalidValue: { + return QCoreApplication::translate("Debugger::Internal::WatchHandler", ""); + } + case SpecialNotAccessibleValue: { + return QCoreApplication::translate("Debugger::Internal::WatchHandler", ""); + } + case SpecialItemCountValue: { + return QCoreApplication::translate("Debugger::Internal::WatchHandler", "<%n items>", 0, ba.toInt()); + } + case SpecialMinimumItemCountValue: { + return QCoreApplication::translate("Debugger::Internal::WatchHandler", "", 0, ba.toInt()); + } + case SpecialNotCallableValue: { + return QCoreApplication::translate("Debugger::Internal::WatchHandler", ""); + } + case SpecialNullReferenceValue: { + return QCoreApplication::translate("Debugger::Internal::WatchHandler", ""); + } + case SpecialOptimizedOutValue: { + return QCoreApplication::translate("Debugger::Internal::WatchHandler", ""); + } + case SpecialEmptyStructureValue: { + return QLatin1String("{...}"); + } } qDebug() << "ENCODING ERROR: " << encoding; return QCoreApplication::translate("Debugger", ""); diff --git a/src/plugins/debugger/debuggerprotocol.h b/src/plugins/debugger/debuggerprotocol.h index eac5c03da28..24644610b9f 100644 --- a/src/plugins/debugger/debuggerprotocol.h +++ b/src/plugins/debugger/debuggerprotocol.h @@ -240,7 +240,17 @@ enum DebuggerEncoding Hex2EncodedFloat8 = 26, IPv6AddressAndHexScopeId = 27, Hex2EncodedUtf8WithoutQuotes = 28, - DateTimeInternal = 29 + DateTimeInternal = 29, + SpecialEmptyValue = 30, + SpecialUninitializedValue = 31, + SpecialInvalidValue = 32, + SpecialNotAccessibleValue = 33, + SpecialItemCountValue = 34, + SpecialMinimumItemCountValue = 35, + SpecialNotCallableValue = 36, + SpecialNullReferenceValue = 37, + SpecialOptimizedOutValue = 38, + SpecialEmptyStructureValue = 39 }; // Keep in sync with dumper.py, symbolgroupvalue.cpp of CDB diff --git a/src/plugins/debugger/debuggerruncontrol.cpp b/src/plugins/debugger/debuggerruncontrol.cpp index b02ddb7291c..2fb3fc12973 100644 --- a/src/plugins/debugger/debuggerruncontrol.cpp +++ b/src/plugins/debugger/debuggerruncontrol.cpp @@ -350,8 +350,8 @@ void DebuggerRunControlCreator::enrich(const RunConfiguration *runConfig, const m_kit = m_target->kit(); } - // We might have get an executable from a local PID. - if (m_rp.executable.isEmpty()) { + // We might get an executable from a local PID. + if (m_rp.executable.isEmpty() && m_rp.attachPID != InvalidPid) { foreach (const DeviceProcessItem &p, DeviceProcessList::localProcesses()) if (p.pid == m_rp.attachPID) m_rp.executable = p.exe; diff --git a/src/plugins/debugger/disassembleragent.cpp b/src/plugins/debugger/disassembleragent.cpp index a7df1f215ec..77128756936 100644 --- a/src/plugins/debugger/disassembleragent.cpp +++ b/src/plugins/debugger/disassembleragent.cpp @@ -38,6 +38,7 @@ #include "debuggerstartparameters.h" #include "debuggerstringutils.h" #include "disassemblerlines.h" +#include "sourceutils.h" #include #include @@ -98,7 +99,7 @@ typedef QPair CacheEntry; class DisassemblerAgentPrivate { public: - DisassemblerAgentPrivate(); + DisassemblerAgentPrivate(DebuggerEngine *engine); ~DisassemblerAgentPrivate(); void configureMimeType(); DisassemblerLines contentsAtCurrentLocation() const; @@ -107,22 +108,20 @@ class DisassemblerAgentPrivate QPointer document; Location location; QPointer engine; - TextMark locationMark; + LocationMark locationMark; QList breakpointMarks; QList cache; QString mimeType; bool resetLocationScheduled; }; -DisassemblerAgentPrivate::DisassemblerAgentPrivate() +DisassemblerAgentPrivate::DisassemblerAgentPrivate(DebuggerEngine *engine) : document(0), - locationMark(QString(), 0, Constants::TEXT_MARK_CATEGORY_LOCATION), + engine(engine), + locationMark(engine, QString(), 0), mimeType(_("text/x-qtcreator-generic-asm")), resetLocationScheduled(false) -{ - locationMark.setIcon(Internal::locationMarkIcon()); - locationMark.setPriority(TextMark::HighPriority); -} +{} DisassemblerAgentPrivate::~DisassemblerAgentPrivate() { @@ -157,10 +156,8 @@ DisassemblerLines DisassemblerAgentPrivate::contentsAtCurrentLocation() const */ DisassemblerAgent::DisassemblerAgent(DebuggerEngine *engine) - : QObject(0), d(new DisassemblerAgentPrivate) -{ - d->engine = engine; -} + : d(new DisassemblerAgentPrivate(engine)) +{} DisassemblerAgent::~DisassemblerAgent() { @@ -296,10 +293,13 @@ void DisassemblerAgent::setContentsToDocument(const DisassemblerLines &contents) widget->setReadOnly(true); widget->setRequestMarkEnabled(true); } + // FIXME: This is accumulating quite a bit out-of-band data. + // Make that a proper TextDocument reimplementation. d->document = qobject_cast(editor->document()); QTC_ASSERT(d->document, return); d->document->setProperty(Debugger::Constants::OPENED_BY_DEBUGGER, true); d->document->setProperty(Debugger::Constants::OPENED_WITH_DISASSEMBLY, true); + d->document->setProperty(Debugger::Constants::DISASSEMBLER_SOURCE_FILE, d->location.fileName()); d->configureMimeType(); } else { EditorManager::activateEditorForDocument(d->document); @@ -349,9 +349,19 @@ void DisassemblerAgent::updateBreakpointMarkers() const quint64 address = bp.response().address; if (!address) continue; - const int lineNumber = contents.lineForAddress(address); + int lineNumber = contents.lineForAddress(address); if (!lineNumber) continue; + + // HACK: If it's a FileAndLine breakpoint, and there's a source line + // above, move the marker up there. That allows setting and removing + // normal breakpoints from within the disassembler view. + if (bp.type() == BreakpointByFileAndLine) { + ContextData context = getLocationContext(d->document, lineNumber - 1); + if (context.type == LocationByFile) + --lineNumber; + } + TextMark *marker = new TextMark(QString(), lineNumber, Constants::TEXT_MARK_CATEGORY_BREAKPOINT); marker->setIcon(bp.icon()); diff --git a/src/plugins/debugger/disassemblerlines.cpp b/src/plugins/debugger/disassemblerlines.cpp index f769f827b3d..83d078447d6 100644 --- a/src/plugins/debugger/disassemblerlines.cpp +++ b/src/plugins/debugger/disassemblerlines.cpp @@ -29,7 +29,9 @@ ****************************************************************************/ #include "disassemblerlines.h" +#include "debuggerengine.h" #include "debuggerstringutils.h" +#include "sourceutils.h" #include #include @@ -72,13 +74,6 @@ void DisassemblerLine::fromString(const QString &unparsed) data = unparsed; } -quint64 DisassemblerLine::addressFromDisassemblyLine(const QString &line) -{ - DisassemblerLine l; - l.fromString(line); - return l.address; -} - quint64 DisassemblerLines::startAddress() const { for (int i = 0; i < m_data.size(); ++i) diff --git a/src/plugins/debugger/disassemblerlines.h b/src/plugins/debugger/disassemblerlines.h index c968546c1c9..ee91e58aaeb 100644 --- a/src/plugins/debugger/disassemblerlines.h +++ b/src/plugins/debugger/disassemblerlines.h @@ -53,9 +53,6 @@ class DisassemblerLine QString toString(int maxOp = 0) const; void fromString(const QString &unparsed); - // Return address of an assembly line "0x0dfd bla". - static quint64 addressFromDisassemblyLine(const QString &line); - public: quint64 address; // (ass) Address of instruction in memory/in binary. QString function; // (ass) Function to which current instruction belongs. diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 5eac84b1169..5af199ff156 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -241,6 +241,7 @@ GdbEngine::GdbEngine(const DebuggerRunParameters &startParameters) m_fullStartDone = false; m_systemDumpersLoaded = false; m_rerunPending = false; + m_inUpdateLocals = false; m_debugInfoTaskHandler = new DebugInfoTaskHandler(this); //ExtensionSystem::PluginManager::addObject(m_debugInfoTaskHandler); @@ -442,23 +443,31 @@ void GdbEngine::handleResponse(const QByteArray &buff) } } if (asyncClass == "stopped") { - handleStopResponse(result); - m_pendingLogStreamOutput.clear(); - m_pendingConsoleStreamOutput.clear(); + if (m_inUpdateLocals) { + showMessage(_("UNEXPECTED *stopped NOTIFICATION IGNORED"), LogWarning); + } else { + handleStopResponse(result); + m_pendingLogStreamOutput.clear(); + m_pendingConsoleStreamOutput.clear(); + } } else if (asyncClass == "running") { - GdbMi threads = result["thread-id"]; - threadsHandler()->notifyRunning(threads.data()); - if (state() == InferiorRunOk || state() == InferiorSetupRequested) { - // We get multiple *running after thread creation and in Windows terminals. - showMessage(QString::fromLatin1("NOTE: INFERIOR STILL RUNNING IN STATE %1."). - arg(QLatin1String(DebuggerEngine::stateName(state())))); - } else if (HostOsInfo::isWindowsHost() && (state() == InferiorStopRequested - || state() == InferiorShutdownRequested)) { - // FIXME: Breakpoints on Windows are exceptions which are thrown in newly - // created threads so we have to filter out the running threads messages when - // we request a stop. + if (m_inUpdateLocals) { + showMessage(_("UNEXPECTED *running NOTIFICATION IGNORED"), LogWarning); } else { - notifyInferiorRunOk(); + GdbMi threads = result["thread-id"]; + threadsHandler()->notifyRunning(threads.data()); + if (state() == InferiorRunOk || state() == InferiorSetupRequested) { + // We get multiple *running after thread creation and in Windows terminals. + showMessage(QString::fromLatin1("NOTE: INFERIOR STILL RUNNING IN STATE %1."). + arg(QLatin1String(DebuggerEngine::stateName(state())))); + } else if (HostOsInfo::isWindowsHost() && (state() == InferiorStopRequested + || state() == InferiorShutdownRequested)) { + // FIXME: Breakpoints on Windows are exceptions which are thrown in newly + // created threads so we have to filter out the running threads messages when + // we request a stop. + } else { + notifyInferiorRunOk(); + } } } else if (asyncClass == "library-loaded") { // Archer has 'id="/usr/lib/libdrm.so.2", @@ -1187,6 +1196,8 @@ void GdbEngine::handleResultRecord(DebuggerResponse *response) if (!(cmd.flags & Discardable)) --m_nonDiscardableCount; + m_inUpdateLocals = (cmd.flags & InUpdateLocals); + if (cmd.callback) cmd.callback(*response); @@ -3557,7 +3568,9 @@ void GdbEngine::reloadRegisters() if (true) { if (!m_registerNamesListed) { - postCommand("-data-list-register-names", NoFlags, CB(handleRegisterListNames)); + // The MI version does not give register size. + // postCommand("-data-list-register-names", NoFlags, CB(handleRegisterListNames)); + postCommand("maintenance print raw-registers", NoFlags, CB(handleRegisterListing)); m_registerNamesListed = true; } // Can cause i386-linux-nat.c:571: internal-error: Got request @@ -3638,15 +3651,47 @@ void GdbEngine::handleRegisterListNames(const DebuggerResponse &response) } GdbMi names = response.data["register-names"]; - m_registerNames.clear(); + m_registers.clear(); int gdbRegisterNumber = 0; foreach (const GdbMi &item, names.children()) { - if (!item.data().isEmpty()) - m_registerNames[gdbRegisterNumber] = item.data(); + if (!item.data().isEmpty()) { + Register reg; + reg.name = item.data(); + m_registers[gdbRegisterNumber] = reg; + } ++gdbRegisterNumber; } } +void GdbEngine::handleRegisterListing(const DebuggerResponse &response) +{ + if (response.resultClass != ResultDone) { + m_registerNamesListed = false; + return; + } + + // &"maintenance print raw-registers\n" + // >~" Name Nr Rel Offset Size Type Raw value\n" + // >~" rax 0 0 0 8 int64_t 0x0000000000000005\n" + // >~" rip 16 16 128 8 *1 0x000000000040232a\n" + // >~" '' 145 145 536 0 int0_t \n" + + m_registers.clear(); + QList lines = response.consoleStreamOutput.split('\n'); + for (int i = 1; i < lines.size(); ++i) { + QStringList parts = QString::fromLatin1(lines.at(i)) + .split(QLatin1Char(' '), QString::SkipEmptyParts); + if (parts.size() < 7) + continue; + int gdbRegisterNumber = parts.at(1).toInt(); + Register reg; + reg.name = parts.at(0).toLatin1(); + reg.size = parts.at(4).toInt(); + reg.reportedType = parts.at(5).toLatin1(); + m_registers[gdbRegisterNumber] = reg; + } +} + void GdbEngine::handleRegisterListValues(const DebuggerResponse &response) { if (response.resultClass != ResultDone) @@ -3656,9 +3701,8 @@ void GdbEngine::handleRegisterListValues(const DebuggerResponse &response) // 24^done,register-values=[{number="0",value="0xf423f"},...] const GdbMi values = response.data["register-values"]; foreach (const GdbMi &item, values.children()) { - Register reg; const int number = item["number"].toInt(); - reg.name = m_registerNames[number]; + Register reg = m_registers[number]; QByteArray data = item["value"].data(); if (data.startsWith("0x")) { reg.value = data; @@ -4725,7 +4769,7 @@ void GdbEngine::doUpdateLocals(const UpdateParameters ¶ms) cmd.arg("resultvarname", m_resultVarName); cmd.arg("partialVariable", params.partialVariable); cmd.arg("sortStructMembers", boolSetting(SortStructMembers)); - cmd.flags = Discardable; + cmd.flags = Discardable | InUpdateLocals; cmd.callback = [this](const DebuggerResponse &r) { handleStackFrame(r); }; runCommand(cmd); @@ -4735,6 +4779,8 @@ void GdbEngine::doUpdateLocals(const UpdateParameters ¶ms) void GdbEngine::handleStackFrame(const DebuggerResponse &response) { + m_inUpdateLocals = false; + if (response.resultClass == ResultDone) { QByteArray out = response.consoleStreamOutput; while (out.endsWith(' ') || out.endsWith('\n')) diff --git a/src/plugins/debugger/gdb/gdbengine.h b/src/plugins/debugger/gdb/gdbengine.h index d994a1cbbdd..e8d46ee4265 100644 --- a/src/plugins/debugger/gdb/gdbengine.h +++ b/src/plugins/debugger/gdb/gdbengine.h @@ -34,6 +34,7 @@ #include #include +#include #include #include #include @@ -170,7 +171,9 @@ private slots: // This command needs to be send immediately. Immediate = 256, // This is a command that needs to be wrapped into -interpreter-exec console - ConsoleCommand = 512 + ConsoleCommand = 512, + // This is the UpdateLocals commannd during which we ignore notifications + InUpdateLocals = 1024 }; Q_DECLARE_FLAGS(GdbCommandFlags, GdbCommandFlag) @@ -327,9 +330,10 @@ private slots: Q_SLOT void reloadRegisters(); void setRegisterValue(const QByteArray &name, const QString &value); void handleRegisterListNames(const DebuggerResponse &response); + void handleRegisterListing(const DebuggerResponse &response); void handleRegisterListValues(const DebuggerResponse &response); void handleMaintPrintRegisters(const DebuggerResponse &response); - QHash m_registerNames; // Map GDB register numbers to indices + QHash m_registers; // Map GDB register numbers to indices // // Disassembler specific stuff @@ -430,6 +434,10 @@ private slots: // For short-circuiting stack and thread list evaluation. bool m_stackNeeded; + // For suppressing processing *stopped and *running responses + // while updating locals. + bool m_inUpdateLocals; + bool isQFatalBreakpoint(const BreakpointResponseId &id) const; bool isHiddenBreakpoint(const BreakpointResponseId &id) const; diff --git a/src/plugins/debugger/gdb/gdboptionspage.cpp b/src/plugins/debugger/gdb/gdboptionspage.cpp index 69337925941..392ea1a3c8e 100644 --- a/src/plugins/debugger/gdb/gdboptionspage.cpp +++ b/src/plugins/debugger/gdb/gdboptionspage.cpp @@ -63,6 +63,7 @@ namespace Internal { class GdbOptionsPageWidget : public QWidget { + Q_OBJECT public: GdbOptionsPageWidget(); Utils::SavedActionSet group; @@ -70,6 +71,7 @@ class GdbOptionsPageWidget : public QWidget class GdbOptionsPage : public Core::IOptionsPage { + Q_OBJECT public: GdbOptionsPage(); @@ -337,6 +339,7 @@ void GdbOptionsPage::finish() class GdbOptionsPageWidget2 : public QWidget { + Q_OBJECT public: GdbOptionsPageWidget2(); @@ -437,6 +440,7 @@ GdbOptionsPageWidget2::GdbOptionsPageWidget2() // The "Dangerous" options. class GdbOptionsPage2 : public Core::IOptionsPage { + Q_OBJECT public: GdbOptionsPage2(); @@ -488,3 +492,5 @@ void addGdbOptionPages(QList *opts) } // namespace Internal } // namespace Debugger + +#include "gdboptionspage.moc" diff --git a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp index 95f99d136a1..0f3f4f234a2 100644 --- a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp +++ b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp @@ -78,24 +78,27 @@ void GdbRemoteServerEngine::setupEngine() { QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state()); showMessage(_("TRYING TO START ADAPTER")); - if (!runParameters().serverStartScript.isEmpty()) { + QString serverStartScript = runParameters().serverStartScript; + if (!serverStartScript.isEmpty()) { // Provide script information about the environment QString arglist; - QtcProcess::addArg(&arglist, runParameters().serverStartScript); + QtcProcess::addArg(&arglist, serverStartScript); QtcProcess::addArg(&arglist, runParameters().executable); QtcProcess::addArg(&arglist, runParameters().remoteChannel); - m_uploadProc.start(_("/bin/sh ") + arglist); + m_uploadProc.start(arglist); m_uploadProc.waitForStarted(); } if (!runParameters().workingDirectory.isEmpty()) m_gdbProc.setWorkingDirectory(runParameters().workingDirectory); - if (runParameters().remoteSetupNeeded) + if (runParameters().remoteSetupNeeded) { notifyEngineRequestRemoteSetup(); - else + } else { + m_startAttempted = true; startGdb(); + } } void GdbRemoteServerEngine::uploadProcError(QProcess::ProcessError error) @@ -151,7 +154,8 @@ void GdbRemoteServerEngine::readUploadStandardError() void GdbRemoteServerEngine::uploadProcFinished() { if (m_uploadProc.exitStatus() == QProcess::NormalExit && m_uploadProc.exitCode() == 0) { - startGdb(); + if (!m_startAttempted) + startGdb(); } else { RemoteSetupResult result; result.success = false; diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp index 735840fee12..f8dcc2372c6 100644 --- a/src/plugins/debugger/qml/qmlengine.cpp +++ b/src/plugins/debugger/qml/qmlengine.cpp @@ -1214,7 +1214,7 @@ void QmlEnginePrivate::updateScriptSource(const QString &fileName, int lineOffse } //update open editors - QString titlePattern = tr("JS Source for %1").arg(fileName); + QString titlePattern = QCoreApplication::translate("QmlEngine", "JS Source for %1").arg(fileName); //Check if there are open editors with the same title foreach (IDocument *doc, DocumentModel::openedDocuments()) { if (doc->displayName() == titlePattern) { @@ -1677,8 +1677,9 @@ QmlV8ObjectData QmlEnginePrivate::extractData(const QVariant &data) const objectData.value = dataMap.value(_(VALUE)); } else if (type == _("string")) { + QLatin1Char quote('"'); objectData.type = QByteArray("string"); - objectData.value = dataMap.value(_(VALUE)); + objectData.value = QString(quote + dataMap.value(_(VALUE)).toString() + quote); } else if (type == _("object")) { objectData.type = QByteArray("object"); @@ -2134,7 +2135,7 @@ StackFrame QmlEnginePrivate::extractStackFrame(const QVariant &bodyVal) QmlV8ObjectData objectData = extractData(body.value(_("func"))); QString functionName = objectData.value.toString(); if (functionName.isEmpty()) - functionName = tr("Anonymous Function"); + functionName = QCoreApplication::translate("QmlEngine", "Anonymous Function"); stackFrame.function = functionName; objectData = extractData(body.value(_("script"))); diff --git a/src/plugins/debugger/registerhandler.cpp b/src/plugins/debugger/registerhandler.cpp index da667a2e07d..ca2dd95706c 100644 --- a/src/plugins/debugger/registerhandler.cpp +++ b/src/plugins/debugger/registerhandler.cpp @@ -42,214 +42,22 @@ namespace Internal { // ////////////////////////////////////////////////////////////////// -static struct RegisterNameAndType -{ - const char *name; - RegisterKind kind; - int size; -} theNameAndType[] = { - // ARM - { "r0", IntegerRegister, 4 }, - { "r1", IntegerRegister, 4 }, - { "r2", IntegerRegister, 4 }, - { "r3", IntegerRegister, 4 }, - { "r4", IntegerRegister, 4 }, - { "r5", IntegerRegister, 4 }, - { "r6", IntegerRegister, 4 }, - { "r7", IntegerRegister, 4 }, - { "r8", IntegerRegister, 4 }, - { "r9", IntegerRegister, 4 }, - { "r10", IntegerRegister, 4 }, - { "r11", IntegerRegister, 4 }, - { "r12", IntegerRegister, 4 }, - { "sp", IntegerRegister, 4 }, - { "lr", IntegerRegister, 4 }, - { "pc", IntegerRegister, 4 }, - { "cpsr", FlagRegister, 4 }, - { "d0", IntegerRegister, 8 }, - { "d1", IntegerRegister, 8 }, - { "d2", IntegerRegister, 8 }, - { "d3", IntegerRegister, 8 }, - { "d4", IntegerRegister, 8 }, - { "d5", IntegerRegister, 8 }, - { "d6", IntegerRegister, 8 }, - { "d7", IntegerRegister, 8 }, - { "d8", IntegerRegister, 8 }, - { "d9", IntegerRegister, 8 }, - { "d10", IntegerRegister, 8 }, - { "d11", IntegerRegister, 8 }, - { "d12", IntegerRegister, 8 }, - { "d13", IntegerRegister, 8 }, - { "d14", IntegerRegister, 8 }, - { "d15", IntegerRegister, 8 }, - { "d16", IntegerRegister, 8 }, - { "d17", IntegerRegister, 8 }, - { "d18", IntegerRegister, 8 }, - { "d19", IntegerRegister, 8 }, - { "d20", IntegerRegister, 8 }, - { "d21", IntegerRegister, 8 }, - { "d22", IntegerRegister, 8 }, - { "d23", IntegerRegister, 8 }, - { "d24", IntegerRegister, 8 }, - { "d25", IntegerRegister, 8 }, - { "d26", IntegerRegister, 8 }, - { "d27", IntegerRegister, 8 }, - { "d28", IntegerRegister, 8 }, - { "d29", IntegerRegister, 8 }, - { "d30", IntegerRegister, 8 }, - { "d31", IntegerRegister, 8 }, - { "fpscr", FlagRegister, 4 }, - { "s0", IntegerRegister, 4 }, - { "s1", IntegerRegister, 4 }, - { "s2", IntegerRegister, 4 }, - { "s3", IntegerRegister, 4 }, - { "s4", IntegerRegister, 4 }, - { "s5", IntegerRegister, 4 }, - { "s6", IntegerRegister, 4 }, - { "s7", IntegerRegister, 4 }, - { "s8", IntegerRegister, 4 }, - { "s9", IntegerRegister, 4 }, - { "s10", IntegerRegister, 4 }, - { "s11", IntegerRegister, 4 }, - { "s12", IntegerRegister, 4 }, - { "s13", IntegerRegister, 4 }, - { "s14", IntegerRegister, 4 }, - { "s15", IntegerRegister, 4 }, - { "s16", IntegerRegister, 4 }, - { "s17", IntegerRegister, 4 }, - { "s18", IntegerRegister, 4 }, - { "s19", IntegerRegister, 4 }, - { "s20", IntegerRegister, 4 }, - { "s21", IntegerRegister, 4 }, - { "s22", IntegerRegister, 4 }, - { "s23", IntegerRegister, 4 }, - { "s24", IntegerRegister, 4 }, - { "s25", IntegerRegister, 4 }, - { "s26", IntegerRegister, 4 }, - { "s27", IntegerRegister, 4 }, - { "s28", IntegerRegister, 4 }, - { "s29", IntegerRegister, 4 }, - { "s30", IntegerRegister, 4 }, - { "s31", IntegerRegister, 4 }, - { "q0", IntegerRegister, 16 }, - { "q1", IntegerRegister, 16 }, - { "q2", IntegerRegister, 16 }, - { "q3", IntegerRegister, 16 }, - { "q4", IntegerRegister, 16 }, - { "q5", IntegerRegister, 16 }, - { "q6", IntegerRegister, 16 }, - { "q7", IntegerRegister, 16 }, - { "q8", IntegerRegister, 16 }, - { "q9", IntegerRegister, 16 }, - { "q10", IntegerRegister, 16 }, - { "q11", IntegerRegister, 16 }, - { "q12", IntegerRegister, 16 }, - { "q13", IntegerRegister, 16 }, - { "q14", IntegerRegister, 16 }, - { "q15", IntegerRegister, 16 }, - - // Intel - { "eax", IntegerRegister, 4 }, - { "ecx", IntegerRegister, 4 }, - { "edx", IntegerRegister, 4 }, - { "ebx", IntegerRegister, 4 }, - { "esp", IntegerRegister, 4 }, - { "ebp", IntegerRegister, 4 }, - { "esi", IntegerRegister, 4 }, - { "edi", IntegerRegister, 4 }, - { "eip", IntegerRegister, 4 }, - { "rax", IntegerRegister, 8 }, - { "rcx", IntegerRegister, 8 }, - { "rdx", IntegerRegister, 8 }, - { "rbx", IntegerRegister, 8 }, - { "rsp", IntegerRegister, 8 }, - { "rbp", IntegerRegister, 8 }, - { "rsi", IntegerRegister, 8 }, - { "rdi", IntegerRegister, 8 }, - { "rip", IntegerRegister, 8 }, - { "eflags", FlagRegister, 4 }, - { "cs", IntegerRegister, 2 }, - { "ss", IntegerRegister, 2 }, - { "ds", IntegerRegister, 2 }, - { "es", IntegerRegister, 2 }, - { "fs", IntegerRegister, 2 }, - { "gs", IntegerRegister, 2 }, - { "st0", FloatRegister, 10 }, - { "st1", FloatRegister, 10 }, - { "st2", FloatRegister, 10 }, - { "st3", FloatRegister, 10 }, - { "st4", FloatRegister, 10 }, - { "st5", FloatRegister, 10 }, - { "st6", FloatRegister, 10 }, - { "st7", FloatRegister, 10 }, - { "fctrl", FlagRegister, 4 }, - { "fstat", FlagRegister, 4 }, - { "ftag", FlagRegister, 4 }, - { "fiseg", FlagRegister, 4 }, - { "fioff", FlagRegister, 4 }, - { "foseg", FlagRegister, 4 }, - { "fooff", FlagRegister, 4 }, - { "fop", FlagRegister, 4 }, - { "mxcsr", FlagRegister, 4 }, - { "orig_eax", IntegerRegister, 4 }, - { "al", IntegerRegister, 1 }, - { "cl", IntegerRegister, 1 }, - { "dl", IntegerRegister, 1 }, - { "bl", IntegerRegister, 1 }, - { "ah", IntegerRegister, 1 }, - { "ch", IntegerRegister, 1 }, - { "dh", IntegerRegister, 1 }, - { "bh", IntegerRegister, 1 }, - { "ax", IntegerRegister, 2 }, - { "cx", IntegerRegister, 2 }, - { "dx", IntegerRegister, 2 }, - { "bx", IntegerRegister, 2 }, - { "bp", IntegerRegister, 2 }, - { "si", IntegerRegister, 2 }, - { "di", IntegerRegister, 2 } - }; - -////////////////////////////////////////////////////////////////// -// -// RegisterValue -// -////////////////////////////////////////////////////////////////// - -// FIXME: This should not really be needed. Instead the guessing, if any, -// should done by the engines. -static void fixup(Register *reg, RegisterKind kind, int size) -{ - reg->kind = kind; - if (!reg->size) - reg->size = size; -} - void Register::guessMissingData() { - if (name.startsWith("xmm")) { - fixup(this, VectorRegister, 16); - return; - } - - for (int i = 0; i != sizeof(theNameAndType) / sizeof(theNameAndType[0]); ++i) { - if (theNameAndType[i].name == name) { - fixup(this, theNameAndType[i].kind, theNameAndType[i].size); - return; - } - } - if (reportedType == "int") - fixup(this, IntegerRegister, 4); + kind = IntegerRegister; else if (reportedType == "float") - fixup(this, IntegerRegister, 8); + kind = FloatRegister; else if (reportedType == "_i387_ext") - fixup(this, IntegerRegister, 10); + kind = FloatRegister; else if (reportedType == "*1" || reportedType == "long") - fixup(this, IntegerRegister, 0); + kind = IntegerRegister; else if (reportedType.contains("vec")) - fixup(this, VectorRegister, 0); + kind = VectorRegister; else if (reportedType.startsWith("int")) - fixup(this, IntegerRegister, 0); + kind = IntegerRegister; + else if (name.startsWith("xmm") || name.startsWith("ymm")) + kind = VectorRegister; } static QString subTypeName(RegisterKind kind, int size, RegisterFormat format) @@ -267,7 +75,8 @@ static QString subTypeName(RegisterKind kind, int size, RegisterFormat format) switch (format) { case BinaryFormat: name += QLatin1Char('b'); break; case OctalFormat: name += QLatin1Char('o'); break; - case DecimalFormat: name += QLatin1Char('d'); break; + case DecimalFormat: name += QLatin1Char('u'); break; + case SignedDecimalFormat: name += QLatin1Char('s'); break; case HexadecimalFormat: name += QLatin1Char('x'); break; case CharacterFormat: name += QLatin1Char('c'); break; } @@ -329,6 +138,18 @@ static QByteArray formatRegister(quint64 v, int size, RegisterFormat format) } else if (format == DecimalFormat) { result = QByteArray::number(v, 10); result.prepend(QByteArray(2*size - result.size(), ' ')); + } else if (format == SignedDecimalFormat) { + qint64 sv; + if (size >= 8) + sv = qint64(v); + else if (size >= 4) + sv = qint32(v); + else if (size >= 2) + sv = qint16(v); + else + sv = qint8(v); + result = QByteArray::number(sv, 10); + result.prepend(QByteArray(2*size - result.size(), ' ')); } else if (format == CharacterFormat) { if (v >= 32 && v < 127) { result += '\''; @@ -436,8 +257,13 @@ RegisterItem::RegisterItem(const Register ®) : m_reg.guessMissingData(); if (m_reg.kind == IntegerRegister || m_reg.kind == VectorRegister) { + if (m_reg.size <= 8) { + appendChild(new RegisterSubItem(IntegerRegister, m_reg.size, 1, SignedDecimalFormat)); + appendChild(new RegisterSubItem(IntegerRegister, m_reg.size, 1, DecimalFormat)); + } for (int s = m_reg.size / 2; s; s = s / 2) { appendChild(new RegisterSubItem(IntegerRegister, s, m_reg.size / s, HexadecimalFormat)); + appendChild(new RegisterSubItem(IntegerRegister, s, m_reg.size / s, SignedDecimalFormat)); appendChild(new RegisterSubItem(IntegerRegister, s, m_reg.size / s, DecimalFormat)); if (s == 1) appendChild(new RegisterSubItem(IntegerRegister, s, m_reg.size / s, CharacterFormat)); @@ -548,8 +374,16 @@ QVariant RegisterSubItem::data(int column, int role) const if (m_subKind == IntegerRegister) { if (m_subFormat == CharacterFormat) return RegisterHandler::tr("Content as ASCII Characters"); - else - return RegisterHandler::tr("Content as %1-bit Integer Values").arg(8 * m_subSize); + if (m_subFormat == SignedDecimalFormat) + return RegisterHandler::tr("Content as %1-bit Signed Decimal Values").arg(8 * m_subSize); + if (m_subFormat == DecimalFormat) + return RegisterHandler::tr("Content as %1-bit Unsigned Decimal Values").arg(8 * m_subSize); + if (m_subFormat == HexadecimalFormat) + return RegisterHandler::tr("Content as %1-bit Hexadecimal Values").arg(8 * m_subSize); + if (m_subFormat == OctalFormat) + return RegisterHandler::tr("Content as %1-bit Octal Values").arg(8 * m_subSize); + if (m_subFormat == BinaryFormat) + return RegisterHandler::tr("Content as %1-bit Binary Values").arg(8 * m_subSize); } if (m_subKind == FloatRegister) return RegisterHandler::tr("Contents as %1-bit Floating Point Values").arg(8 * m_subSize); diff --git a/src/plugins/debugger/registerhandler.h b/src/plugins/debugger/registerhandler.h index 1d42a85edfe..3afe40bd4ca 100644 --- a/src/plugins/debugger/registerhandler.h +++ b/src/plugins/debugger/registerhandler.h @@ -71,6 +71,7 @@ enum RegisterFormat CharacterFormat, HexadecimalFormat, DecimalFormat, + SignedDecimalFormat, OctalFormat, BinaryFormat }; diff --git a/src/plugins/debugger/registerwindow.cpp b/src/plugins/debugger/registerwindow.cpp index 3862bd46e64..1cdc690f5e4 100644 --- a/src/plugins/debugger/registerwindow.cpp +++ b/src/plugins/debugger/registerwindow.cpp @@ -71,7 +71,7 @@ class RegisterDelegate : public QItemDelegate // Big integers are assumed to be hexadecimal. int base = 16; if (!big) { - if (format == DecimalFormat) + if (format == DecimalFormat || format == SignedDecimalFormat) base = 10; else if (format == OctalFormat) base = 8; diff --git a/src/plugins/debugger/sourceutils.cpp b/src/plugins/debugger/sourceutils.cpp index e70696ccc55..2e55dc8cbdc 100644 --- a/src/plugins/debugger/sourceutils.cpp +++ b/src/plugins/debugger/sourceutils.cpp @@ -30,6 +30,9 @@ #include "sourceutils.h" +#include "debuggerinternalconstants.h" +#include "debuggerengine.h" +#include "disassemblerlines.h" #include "watchdata.h" #include "watchutils.h" @@ -45,6 +48,8 @@ #include #include +#include +#include #include #include @@ -333,5 +338,37 @@ QString fixCppExpression(const QString &expIn) return removeObviousSideEffects(exp); } +ContextData getLocationContext(TextDocument *document, int lineNumber) +{ + ContextData data; + QTC_ASSERT(document, return data); + if (document->property(Constants::OPENED_WITH_DISASSEMBLY).toBool()) { + QString line = document->document()->findBlockByNumber(lineNumber - 1).text(); + DisassemblerLine l; + l.fromString(line); + if (l.address) { + data.type = LocationByAddress; + data.address = l.address; + } else { + QString fileName = document->property(Constants::DISASSEMBLER_SOURCE_FILE).toString(); + if (!fileName.isEmpty()) { + // Possibly one of the "27 [1] foo = x" lines + int pos = line.indexOf(QLatin1Char('[')); + int ln = line.left(pos - 1).toInt(); + if (ln > 0) { + data.type = LocationByFile; + data.fileName = fileName; + data.lineNumber = ln; + } + } + } + } else { + data.type = LocationByFile; + data.fileName = document->filePath().toString(); + data.lineNumber = lineNumber; + } + return data; +} + } // namespace Internal } // namespace Debugger diff --git a/src/plugins/debugger/sourceutils.h b/src/plugins/debugger/sourceutils.h index 9d3d50be97e..862ecfc9eb2 100644 --- a/src/plugins/debugger/sourceutils.h +++ b/src/plugins/debugger/sourceutils.h @@ -33,12 +33,18 @@ #include -namespace TextEditor { class TextEditorWidget; } +namespace TextEditor { +class TextDocument; +class TextEditorWidget; +} + namespace CPlusPlus { class Snapshot; } namespace Debugger { namespace Internal { +class ContextData; + // Editor tooltip support QString cppExpressionAt(TextEditor::TextEditorWidget *editorWidget, int pos, int *line, int *column, QString *function = 0, @@ -53,6 +59,8 @@ bool getUninitializedVariables(const CPlusPlus::Snapshot &snapshot, const QString &function, const QString &file, int line, QStringList *uninitializedVariables); +ContextData getLocationContext(TextEditor::TextDocument *document, int lineNumber); + } // namespace Internal } // namespace Debugger diff --git a/src/plugins/debugger/watchdata.cpp b/src/plugins/debugger/watchdata.cpp index 265d0bbc1be..98e382d9f26 100644 --- a/src/plugins/debugger/watchdata.cpp +++ b/src/plugins/debugger/watchdata.cpp @@ -300,14 +300,15 @@ QString WatchData::toString() const return res + QLatin1Char('}'); } -// Format a tooltip fow with aligned colon. -static void formatToolTipRow(QTextStream &str, - const QString &category, const QString &value) +// Format a tooltip row with aligned colon. +static void formatToolTipRow(QTextStream &str, const QString &category, const QString &value) { QString val = value.toHtmlEscaped(); val.replace(QLatin1Char('\n'), QLatin1String("
")); - str << "" << category << " : " - << val << ""; + str << "" << category << ""; + if (!category.isEmpty()) + str << ':'; + str << "" << val << ""; } QString WatchData::toToolTip() const @@ -320,20 +321,22 @@ QString WatchData::toToolTip() const formatToolTipRow(str, tr("Internal Type"), QLatin1String(type)); if (!displayedType.isEmpty()) formatToolTipRow(str, tr("Displayed Type"), displayedType); - QString val = value; - // Automatically display hex value for unsigned integers. - if (!val.isEmpty() && val.at(0).isDigit() && isIntType(type)) { - bool ok; - const quint64 intValue = val.toULongLong(&ok); - if (ok && intValue) - val += QLatin1String(" (hex) ") + QString::number(intValue, 16); - } - if (val.size() > 1000) { - val.truncate(1000); - val += QLatin1Char(' '); - val += tr("... "); + bool ok; + const quint64 intValue = value.toULongLong(&ok); + if (ok && intValue) { + formatToolTipRow(str, tr("Value"), QLatin1String("(dec) ") + value); + formatToolTipRow(str, QString(), QLatin1String("(hex) ") + QString::number(intValue, 16)); + formatToolTipRow(str, QString(), QLatin1String("(oct) ") + QString::number(intValue, 8)); + formatToolTipRow(str, QString(), QLatin1String("(bin) ") + QString::number(intValue, 2)); + } else { + QString val = value; + if (val.size() > 1000) { + val.truncate(1000); + val += QLatin1Char(' '); + val += tr("... "); + } + formatToolTipRow(str, tr("Value"), val); } - formatToolTipRow(str, tr("Value"), val); if (address) formatToolTipRow(str, tr("Object Address"), formatToolTipAddress(address)); if (origaddr) diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index b8fbacb202f..80d59291fa2 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -511,34 +511,6 @@ static QString quoteUnprintable(const QString &str) return encoded; } -static QString translate(const QString &str) -{ - if (str.startsWith(QLatin1Char('<'))) { - if (str == QLatin1String("")) - return WatchHandler::tr(""); - if (str == QLatin1String("")) - return WatchHandler::tr(""); - if (str == QLatin1String("")) - return WatchHandler::tr(""); - if (str == QLatin1String("")) - return WatchHandler::tr(""); - if (str.endsWith(QLatin1String(" items>"))) { - // '<10 items>' or '<>10 items>' (more than) - bool ok; - const bool moreThan = str.at(1) == QLatin1Char('>'); - const int numberPos = moreThan ? 2 : 1; - const int len = str.indexOf(QLatin1Char(' ')) - numberPos; - const int size = str.mid(numberPos, len).toInt(&ok); - QTC_ASSERT(ok, qWarning("WatchHandler: Invalid item count '%s'", - qPrintable(str))); - return moreThan ? - WatchHandler::tr("", 0, size) : - WatchHandler::tr("<%n items>", 0, size); - } - } - return quoteUnprintable(str); -} - QString WatchItem::formattedValue() const { if (type == "bool") { @@ -594,12 +566,11 @@ QString WatchItem::formattedValue() const if (elided) { QString v = value; v.chop(1); - v = translate(v); QString len = elided > 0 ? QString::number(elided) : QLatin1String("unknown length"); return v + QLatin1String("\"... (") + len + QLatin1Char(')'); } - return translate(value); + return quoteUnprintable(value); } // Get a pointer address from pointer values reported by the debugger. @@ -657,7 +628,7 @@ QVariant WatchItem::editValue() const stringValue.replace(QLatin1String("\n"), QLatin1String("\\n")); } } - return QVariant(translate(stringValue)); + return QVariant(quoteUnprintable(stringValue)); } bool WatchItem::canFetchMore() const diff --git a/src/plugins/ios/iosprobe.cpp b/src/plugins/ios/iosprobe.cpp index cdf0c8157ad..49634dcfbc6 100644 --- a/src/plugins/ios/iosprobe.cpp +++ b/src/plugins/ios/iosprobe.cpp @@ -131,15 +131,14 @@ void IosProbe::setupDefaultToolchains(const QString &devPath, const QString &xco foreach (const QFileInfo &fInfo, platforms) { if (fInfo.isDir() && fInfo.suffix() == QLatin1String("platform")) { qCDebug(probeLog) << indent << QString::fromLatin1("Setting up %1").arg(fInfo.fileName()); - QSettingsPtr infoSettings(new QSettings( - fInfo.absoluteFilePath() + QLatin1String("/Info.plist"), - QSettings::NativeFormat)); - if (!infoSettings->contains(QLatin1String("Name"))) { + QSettings infoSettings(fInfo.absoluteFilePath() + QLatin1String("/Info.plist"), + QSettings::NativeFormat); + if (!infoSettings.contains(QLatin1String("Name"))) { qCWarning(probeLog) << indent << QString::fromLatin1("Missing platform name in Info.plist of %1") .arg(fInfo.absoluteFilePath()); continue; } - QString name = infoSettings->value(QLatin1String("Name")).toString(); + QString name = infoSettings.value(QLatin1String("Name")).toString(); if (name != QLatin1String("macosx") && name != QLatin1String("iphoneos") && name != QLatin1String("iphonesimulator")) { @@ -147,10 +146,12 @@ void IosProbe::setupDefaultToolchains(const QString &devPath, const QString &xco continue; } + const QString platformSdkVersion = infoSettings.value(QLatin1String("Version")).toString(); + // prepare default platform properties - QVariantMap defaultProp = infoSettings->value(QLatin1String("DefaultProperties")) + QVariantMap defaultProp = infoSettings.value(QLatin1String("DefaultProperties")) .toMap(); - QVariantMap overrideProp = infoSettings->value(QLatin1String("OverrideProperties")) + QVariantMap overrideProp = infoSettings.value(QLatin1String("OverrideProperties")) .toMap(); QMapIterator i(overrideProp); while (i.hasNext()) { @@ -184,7 +185,6 @@ void IosProbe::setupDefaultToolchains(const QString &devPath, const QString &xco clangProfile.platformKind = 0; clangProfile.name = clangFullName; clangProfile.platformPath = Utils::FileName(fInfo); - clangProfile.platformInfo = infoSettings; clangProfile.compilerPath = Utils::FileName(clangFileInfo); QStringList flags = extraFlags; flags << QLatin1String("-dumpmachine"); @@ -208,7 +208,6 @@ void IosProbe::setupDefaultToolchains(const QString &devPath, const QString &xco gccProfile.platformKind = 0; // use the arm-apple-darwin10-llvm-* variant and avoid the extraFlags if available??? gccProfile.platformPath = Utils::FileName(fInfo); - gccProfile.platformInfo = infoSettings; gccProfile.compilerPath = Utils::FileName(gccFileInfo); QStringList flags = extraFlags; flags << QLatin1String("-dumpmachine"); @@ -223,23 +222,23 @@ void IosProbe::setupDefaultToolchains(const QString &devPath, const QString &xco // set SDKs/sysroot QString sysRoot; - QSettingsPtr sdkSettings; { QString sdkName; if (defaultProp.contains(QLatin1String("SDKROOT"))) sdkName = defaultProp.value(QLatin1String("SDKROOT")).toString(); QString sdkPath; + QString sdkPathWithSameVersion; QDir sdks(fInfo.absoluteFilePath() + QLatin1String("/Developer/SDKs")); QString maxVersion; foreach (const QFileInfo &sdkDirInfo, sdks.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot)) { indent = QLatin1String(" "); - QSettingsPtr sdkInfo(new QSettings(sdkDirInfo.absoluteFilePath() - + QLatin1String("/SDKSettings.plist"), - QSettings::NativeFormat)); - QString versionStr = sdkInfo->value(QLatin1String("Version")).toString(); - QVariant currentSdkName = sdkInfo->value(QLatin1String("CanonicalName")); - bool isBaseSdk = sdkInfo->value((QLatin1String("isBaseSDK"))).toString() + QSettings sdkInfo(sdkDirInfo.absoluteFilePath() + + QLatin1String("/SDKSettings.plist"), + QSettings::NativeFormat); + QString versionStr = sdkInfo.value(QLatin1String("Version")).toString(); + QVariant currentSdkName = sdkInfo.value(QLatin1String("CanonicalName")); + bool isBaseSdk = sdkInfo.value((QLatin1String("isBaseSDK"))).toString() .toLower() != QLatin1String("no"); if (!isBaseSdk) { qCDebug(probeLog) << indent << QString::fromLatin1("Skipping non base Sdk %1") @@ -250,30 +249,29 @@ void IosProbe::setupDefaultToolchains(const QString &devPath, const QString &xco if (maxVersion.isEmpty() || compareVersions(maxVersion, versionStr) > 0) { maxVersion = versionStr; sdkPath = sdkDirInfo.canonicalFilePath(); - sdkSettings = sdkInfo; } } else if (currentSdkName == sdkName) { sdkPath = sdkDirInfo.canonicalFilePath(); - sdkSettings = sdkInfo; - } + } else if (currentSdkName.toString().startsWith(sdkName) /*if sdkName doesn't contain version*/ + && compareVersions(platformSdkVersion, versionStr) == 0) + sdkPathWithSameVersion = sdkDirInfo.canonicalFilePath(); } - if (!sdkPath.isEmpty()) + if (sdkPath.isEmpty()) + sysRoot = sdkPathWithSameVersion; + else sysRoot = sdkPath; - else if (!sdkName.isEmpty()) + if (sysRoot.isEmpty() && !sdkName.isEmpty()) qCDebug(probeLog) << indent << QString::fromLatin1("Failed to find sysroot %1").arg(sdkName); } if (hasClang && !sysRoot.isEmpty()) { m_platforms[clangFullName].platformKind |= Platform::BasePlatform; m_platforms[clangFullName].sdkPath = Utils::FileName::fromString(sysRoot); - m_platforms[clangFullName].sdkSettings = sdkSettings; m_platforms[clang11FullName].platformKind |= Platform::BasePlatform; m_platforms[clang11FullName].sdkPath = Utils::FileName::fromString(sysRoot); - m_platforms[clang11FullName].sdkSettings = sdkSettings; } if (hasGcc && !sysRoot.isEmpty()) { m_platforms[gccFullName].platformKind |= Platform::BasePlatform; m_platforms[gccFullName].sdkPath = Utils::FileName::fromString(sysRoot); - m_platforms[gccFullName].sdkSettings = sdkSettings; } } indent = QLatin1String(" "); diff --git a/src/plugins/ios/iosprobe.h b/src/plugins/ios/iosprobe.h index 4e1bd0aff2e..8f70f1fa8ee 100644 --- a/src/plugins/ios/iosprobe.h +++ b/src/plugins/ios/iosprobe.h @@ -37,8 +37,6 @@ namespace Ios { -typedef QSharedPointer QSettingsPtr; - class Platform { public: @@ -56,8 +54,6 @@ class Platform Utils::FileName compilerPath; QString architecture; QStringList backendFlags; - QSettingsPtr platformInfo; - QSettingsPtr sdkSettings; }; class IosProbe diff --git a/src/plugins/projectexplorer/kitchooser.cpp b/src/plugins/projectexplorer/kitchooser.cpp index b0ad5dc62e1..6dfc1eb427c 100644 --- a/src/plugins/projectexplorer/kitchooser.cpp +++ b/src/plugins/projectexplorer/kitchooser.cpp @@ -47,7 +47,10 @@ namespace ProjectExplorer { const char lastKitKey[] = "LastSelectedKit"; KitChooser::KitChooser(QWidget *parent) : - QWidget(parent) + QWidget(parent), + m_kitMatcher([](const Kit *k) { + return k->isValid(); + }) { m_chooser = new QComboBox(this); m_chooser->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); @@ -79,11 +82,6 @@ void KitChooser::onCurrentIndexChanged(int index) emit currentIndexChanged(index); } -bool KitChooser::kitMatches(const Kit *k) const -{ - return k->isValid(); -} - QString KitChooser::kitText(const Kit *k) const { return k->displayName(); @@ -98,7 +96,7 @@ void KitChooser::populate() { m_chooser->clear(); foreach (Kit *kit, KitManager::sortKits(KitManager::kits())) { - if (kitMatches(kit)) { + if (m_kitMatcher(kit)) { m_chooser->addItem(kitText(kit), qVariantFromValue(kit->id())); m_chooser->setItemData(m_chooser->count() - 1, kitToolTip(kit), Qt::ToolTipRole); } @@ -140,6 +138,12 @@ Core::Id KitChooser::currentKitId() const return kit ? kit->id() : Core::Id(); } +void KitChooser::setKitMatcher(const KitChooser::KitMatcher &matcher) +{ + m_kitMatcher = matcher; + populate(); +} + Kit *KitChooser::kitAt(int index) const { Core::Id id = qvariant_cast(m_chooser->itemData(index)); diff --git a/src/plugins/projectexplorer/kitchooser.h b/src/plugins/projectexplorer/kitchooser.h index 571864efb77..c10e29a9a41 100644 --- a/src/plugins/projectexplorer/kitchooser.h +++ b/src/plugins/projectexplorer/kitchooser.h @@ -35,6 +35,8 @@ #include +#include + QT_BEGIN_NAMESPACE class QComboBox; class QPushButton; @@ -57,6 +59,9 @@ class PROJECTEXPLORER_EXPORT KitChooser : public QWidget void setCurrentKitId(Core::Id id); Core::Id currentKitId() const; + typedef std::function KitMatcher; + void setKitMatcher(const KitMatcher &matcher); + Kit *currentKit() const; signals: @@ -71,11 +76,11 @@ private slots: void onManageButtonClicked(); protected: - virtual bool kitMatches(const Kit *k) const; virtual QString kitText(const Kit *k) const; virtual QString kitToolTip(Kit *k) const; private: + KitMatcher m_kitMatcher; Kit *kitAt(int index) const; QComboBox *m_chooser; QPushButton *m_manageButton; diff --git a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp index 7812b291b4f..947c907d594 100644 --- a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp +++ b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp @@ -93,15 +93,9 @@ KitManagerConfigWidget::KitManagerConfigWidget(Kit *k) : QWidget *inner = new QWidget; inner->setLayout(m_layout); - QScrollArea *scroll = new QScrollArea; - scroll->setWidget(inner); - scroll->setFrameShape(QFrame::NoFrame); - scroll->setWidgetResizable(true); - scroll->setFocusPolicy(Qt::NoFocus); - QGridLayout *mainLayout = new QGridLayout(this); mainLayout->setMargin(1); - mainLayout->addWidget(scroll, 0, 0); + mainLayout->addWidget(inner, 0, 0); toolTip = tr("Kit name and icon."); label = createLabel(tr("Name:"), toolTip); diff --git a/src/plugins/projectexplorer/projectexplorer.pro b/src/plugins/projectexplorer/projectexplorer.pro index 3629c43ff93..d80732f7d5d 100644 --- a/src/plugins/projectexplorer/projectexplorer.pro +++ b/src/plugins/projectexplorer/projectexplorer.pro @@ -130,7 +130,6 @@ HEADERS += projectexplorer.h \ devicesupport/devicesettingswidget.h \ devicesupport/devicesettingspage.h \ devicesupport/devicetestdialog.h \ - devicesupport/devicetypekitchooser.h \ devicesupport/deviceusedportsgatherer.h \ devicesupport/deviceapplicationrunner.h \ devicesupport/localprocesslist.h \ @@ -272,7 +271,6 @@ SOURCES += projectexplorer.cpp \ devicesupport/devicesettingswidget.cpp \ devicesupport/devicesettingspage.cpp \ devicesupport/devicetestdialog.cpp \ - devicesupport/devicetypekitchooser.cpp \ devicesupport/deviceusedportsgatherer.cpp \ devicesupport/deviceapplicationrunner.cpp \ devicesupport/localprocesslist.cpp \ diff --git a/src/plugins/projectexplorer/projectexplorer.qbs b/src/plugins/projectexplorer/projectexplorer.qbs index f74ffdd9ed1..154a0d7280e 100644 --- a/src/plugins/projectexplorer/projectexplorer.qbs +++ b/src/plugins/projectexplorer/projectexplorer.qbs @@ -213,7 +213,6 @@ QtcPlugin { "devicesettingspage.cpp", "devicesettingspage.h", "devicesettingswidget.cpp", "devicesettingswidget.h", "devicesettingswidget.ui", "devicetestdialog.cpp", "devicetestdialog.h", "devicetestdialog.ui", - "devicetypekitchooser.cpp", "devicetypekitchooser.h", "deviceusedportsgatherer.cpp", "deviceusedportsgatherer.h", "idevice.cpp", "idevice.h", "idevicefactory.cpp", "idevicefactory.h", diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp index 9bd96946f71..dfa43f239e9 100644 --- a/src/plugins/projectexplorer/projectwindow.cpp +++ b/src/plugins/projectexplorer/projectwindow.cpp @@ -96,11 +96,7 @@ ProjectWindow::~ProjectWindow() void ProjectWindow::aboutToShutdown() { - showProperties(-1, -1); // that's a bit stupid, but otherwise stuff is still - // connected to the session - m_cache.clear(); - disconnect(KitManager::instance(), 0, this, 0); - disconnect(SessionManager::instance(), 0, this, 0); + showProperties(-1, -1); } void ProjectWindow::removedTarget(Target *) @@ -179,13 +175,14 @@ bool ProjectWindow::deregisterProject(Project *project) if (index == -1) return false; + disconnect(project, SIGNAL(removedTarget(ProjectExplorer::Target*)), + this, SLOT(removedTarget(ProjectExplorer::Target*))); + QVector deletedWidgets = m_cache.deregisterProject(project); if (deletedWidgets.contains(m_currentWidget)) m_currentWidget = 0; m_tabWidget->removeTab(index); - disconnect(project, SIGNAL(removedTarget(ProjectExplorer::Target*)), - this, SLOT(removedTarget(ProjectExplorer::Target*))); return true; } @@ -383,8 +380,3 @@ int WidgetCache::recheckFactories(Project *project, int oldSupportsIndex) return newIndex; } -void WidgetCache::clear() -{ - while (!m_projects.isEmpty()) - deregisterProject(m_projects.first().project); -} diff --git a/src/plugins/pythoneditor/pythoneditorplugin.cpp b/src/plugins/pythoneditor/pythoneditorplugin.cpp index 7fe5ba8c95d..a02bc0bb011 100644 --- a/src/plugins/pythoneditor/pythoneditorplugin.cpp +++ b/src/plugins/pythoneditor/pythoneditorplugin.cpp @@ -228,6 +228,7 @@ static Core::Id idFromScript(const QString &target) class PythonProjectManager : public IProjectManager { + Q_OBJECT public: PythonProjectManager() {} @@ -366,6 +367,7 @@ class PythonProjectNode : public ProjectNode class PythonRunConfigurationWidget : public QWidget { + Q_OBJECT public: PythonRunConfigurationWidget(PythonRunConfiguration *runConfiguration, QWidget *parent = 0); void setInterpreter(const QString &interpreter); @@ -379,6 +381,7 @@ class PythonRunConfigurationWidget : public QWidget class PythonRunConfiguration : public RunConfiguration { + Q_OBJECT public: PythonRunConfiguration(Target *parent, Core::Id id); @@ -405,6 +408,7 @@ class PythonRunConfiguration : public RunConfiguration class PythonRunControl : public RunControl { + Q_OBJECT public: PythonRunControl(PythonRunConfiguration *runConfiguration, Core::Id mode); @@ -1270,3 +1274,5 @@ QSet PythonEditorPlugin::builtins() } // namespace Internal } // namespace PythonEditor + +#include "pythoneditorplugin.moc" diff --git a/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp b/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp index 527f5462416..d473fb735f4 100644 --- a/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp +++ b/src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp @@ -31,11 +31,12 @@ #include "defaultpropertyprovider.h" #include "qbsconstants.h" +#include #include #include #include #include -#include + #include #include @@ -189,6 +190,9 @@ QVariantMap DefaultPropertyProvider::autoGeneratedProperties(const ProjectExplor default: break; } + } else if (targetAbi.architecture() == ProjectExplorer::Abi::ArmArchitecture && + targetAbi.os() == ProjectExplorer::Abi::MacOS) { + architecture.append(QLatin1String("v7")); } data.insert(QLatin1String(QBS_ARCHITECTURE), qbs::canonicalArchitecture(architecture)); @@ -226,41 +230,13 @@ QVariantMap DefaultPropertyProvider::autoGeneratedProperties(const ProjectExplor const QString toolchainPrefix = extractToolchainPrefix(&compilerName); if (!toolchainPrefix.isEmpty()) data.insert(QLatin1String(CPP_TOOLCHAINPREFIX), toolchainPrefix); - data.insert(QLatin1String(CPP_COMPILERNAME), compilerName); + data.insert(QLatin1String(CPP_CXXCOMPILERNAME), compilerName); if (targetAbi.os() != ProjectExplorer::Abi::WindowsOS || targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMSysFlavor) { data.insert(QLatin1String(CPP_LINKERNAME), compilerName); } data.insert(QLatin1String(CPP_TOOLCHAINPATH), cxxFileInfo.absolutePath()); - QVariantMap m; - if (toolchain.contains(QLatin1String("clang"))) { - m[QLatin1String("c")] = m[QLatin1String("objc")] = QLatin1String("clang"); - m[QLatin1String("cpp")] = m[QLatin1String("objcpp")] = QLatin1String("clang++"); - } else if (toolchain.contains(QLatin1String("gcc"))) { - m[QLatin1String("c")] = m[QLatin1String("objc")] = QLatin1String("gcc"); - m[QLatin1String("cpp")] = m[QLatin1String("objcpp")] = QLatin1String("g++"); - } - const QString fullPrefix = cxxFileInfo.absolutePath() + QLatin1Char('/') + toolchainPrefix; - for (auto it = m.begin(); it != m.end();) { - const QString filePath = Utils::HostOsInfo::withExecutableSuffix(fullPrefix - + it.value().toString()); - if (QFile::exists(filePath)) { - it.value() = filePath; - ++it; - } else { - it = m.erase(it); - } - } - if (!m.isEmpty()) - data.insert(QLatin1String(CPP_COMPILERPATHBYLANGUAGE), m); - - if (targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2013Flavor - || targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2015Flavor) { - const QLatin1String flags("/FS"); - data.insert(QLatin1String(CPP_PLATFORMCFLAGS), flags); - data.insert(QLatin1String(CPP_PLATFORMCXXFLAGS), flags); - } return data; } diff --git a/src/plugins/qbsprojectmanager/qbsconstants.h b/src/plugins/qbsprojectmanager/qbsconstants.h index 0f76d4963df..666a7dc5773 100644 --- a/src/plugins/qbsprojectmanager/qbsconstants.h +++ b/src/plugins/qbsprojectmanager/qbsconstants.h @@ -38,15 +38,11 @@ namespace Constants { const char QBS_TARGETOS[] = "qbs.targetOS"; const char QBS_SYSROOT[] = "qbs.sysroot"; const char QBS_ARCHITECTURE[] = "qbs.architecture"; -const char QBS_ENDIANNESS[] = "qbs.endianness"; const char QBS_TOOLCHAIN[] = "qbs.toolchain"; const char CPP_TOOLCHAINPATH[] = "cpp.toolchainInstallPath"; -const char CPP_COMPILERPATHBYLANGUAGE[] = "cpp.compilerPathByLanguage"; const char CPP_TOOLCHAINPREFIX[] = "cpp.toolchainPrefix"; -const char CPP_COMPILERNAME[] = "cpp.compilerName"; +const char CPP_CXXCOMPILERNAME[] = "cpp.cxxCompilerName"; const char CPP_LINKERNAME[] = "cpp.linkerName"; -const char CPP_PLATFORMCFLAGS[] = "cpp.platformCFlags"; -const char CPP_PLATFORMCXXFLAGS[] = "cpp.platformCxxFlags"; const char CPP_PLATFORMPATH[] = "cpp.platformPath"; const char CPP_XCODESDKNAME[] = "cpp.xcodeSdkName"; const char CPP_XCODESDKVERSION[] = "cpp.xcodeSdkVersion"; diff --git a/src/plugins/qbsprojectmanager/qbsnodes.cpp b/src/plugins/qbsprojectmanager/qbsnodes.cpp index 8b6defe2f07..5ba2661fa84 100644 --- a/src/plugins/qbsprojectmanager/qbsnodes.cpp +++ b/src/plugins/qbsprojectmanager/qbsnodes.cpp @@ -245,6 +245,23 @@ class FileTreeNode { bool m_isFile; }; + +static QList supportedNodeActions(ProjectExplorer::Node *node, + bool managesFiles) +{ + QList actions; + const QbsProject * const project = parentQbsProjectNode(node)->project(); + if (!project->isProjectEditable()) + return actions; + if (managesFiles) + actions << ProjectExplorer::AddNewFile << ProjectExplorer::AddExistingFile; + if (node->nodeType() == ProjectExplorer::FileNodeType + && !project->qbsProject().buildSystemFiles().contains(node->path().toString())) { + actions << ProjectExplorer::RemoveFile << ProjectExplorer::Rename; + } + return actions; +} + // ---------------------------------------------------------------------- // QbsFileNode: // ---------------------------------------------------------------------- @@ -273,8 +290,7 @@ QbsFolderNode::QbsFolderNode(const Utils::FileName &folderPath, ProjectExplorer: QList QbsFolderNode::supportedActions(ProjectExplorer::Node *node) const { - Q_UNUSED(node); - return QList(); + return supportedNodeActions(node, false); } // --------------------------------------------------------------------------- @@ -341,22 +357,6 @@ bool QbsBaseProjectNode::renameFile(const QString &filePath, const QString &newF return false; } - -static QList supportedNodeActions(ProjectExplorer::Node *node) -{ - QList actions; - const QbsProject * const project = parentQbsProjectNode(node)->project(); - if (!project->isProjectEditable()) - return actions; - actions << ProjectExplorer::AddNewFile << ProjectExplorer::AddExistingFile; - if (node->nodeType() == ProjectExplorer::FileNodeType - && !project->qbsProject().buildSystemFiles().contains(node->path().toString())) { - actions << ProjectExplorer::RemoveFile; - actions << ProjectExplorer::Rename; - } - return actions; -} - // -------------------------------------------------------------------- // QbsGroupNode: // -------------------------------------------------------------------- @@ -387,7 +387,7 @@ bool QbsGroupNode::isEnabled() const QList QbsGroupNode::supportedActions(ProjectExplorer::Node *node) const { - return supportedNodeActions(node); + return supportedNodeActions(node, true); } bool QbsGroupNode::addFiles(const QStringList &filePaths, QStringList *notAdded) @@ -634,7 +634,7 @@ bool QbsProductNode::showInSimpleTree() const QList QbsProductNode::supportedActions(ProjectExplorer::Node *node) const { - return supportedNodeActions(node); + return supportedNodeActions(node, true); } bool QbsProductNode::addFiles(const QStringList &filePaths, QStringList *notAdded) diff --git a/src/plugins/qmakeandroidsupport/qmakeandroidbuildapkstep.cpp b/src/plugins/qmakeandroidsupport/qmakeandroidbuildapkstep.cpp index 8ab8089981b..27601e45bcf 100644 --- a/src/plugins/qmakeandroidsupport/qmakeandroidbuildapkstep.cpp +++ b/src/plugins/qmakeandroidsupport/qmakeandroidbuildapkstep.cpp @@ -207,9 +207,9 @@ bool QmakeAndroidBuildApkStep::init() return true; QString inputFile = node->singleVariableValue(QmakeProjectManager::AndroidDeploySettingsFile); - if (inputFile.isEmpty()) { // should never happen - emit addOutput(tr("Internal Error: Unknown Android deployment JSON file location."), BuildStep::ErrorMessageOutput); - return false; + if (inputFile.isEmpty()) { + m_skipBuilding = true; + return true; } QStringList arguments; diff --git a/src/plugins/qmakeprojectmanager/qmakenodes.cpp b/src/plugins/qmakeprojectmanager/qmakenodes.cpp index 3a0511c73e1..1340797eafd 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodes.cpp +++ b/src/plugins/qmakeprojectmanager/qmakenodes.cpp @@ -2483,21 +2483,24 @@ QString QmakeProFileNode::buildDir(QmakeBuildConfiguration *bc) const return QDir::cleanPath(QDir(bc->buildDirectory().toString()).absoluteFilePath(relativeDir)); } -QString QmakeProFileNode::uiDirectory(const QString &buildDir) const +Utils::FileName QmakeProFileNode::uiDirectory(const Utils::FileName &buildDir) const { + if (buildDir.isEmpty()) + return buildDir; const QmakeVariablesHash::const_iterator it = m_varValues.constFind(UiDirVar); if (it != m_varValues.constEnd() && !it.value().isEmpty()) - return it.value().front(); + return Utils::FileName::fromString(it.value().front()); return buildDir; } -QString QmakeProFileNode::uiHeaderFile(const QString &uiDir, const FileName &formFile) +QString QmakeProFileNode::uiHeaderFile(const Utils::FileName &uiDir, const FileName &formFile) { - QString uiHeaderFilePath = uiDir; - uiHeaderFilePath += QLatin1String("/ui_"); - uiHeaderFilePath += formFile.toFileInfo().completeBaseName(); - uiHeaderFilePath += QLatin1String(".h"); - return QDir::cleanPath(uiHeaderFilePath); + if (uiDir.isEmpty()) + return QString(); + + Utils::FileName uiHeaderFilePath = uiDir; + uiHeaderFilePath.appendPath(QLatin1String("ui_") + formFile.toFileInfo().completeBaseName() + QLatin1String(".h")); + return QDir::cleanPath(uiHeaderFilePath.toString()); } void QmakeProFileNode::updateUiFiles(const QString &buildDir) @@ -2514,8 +2517,11 @@ void QmakeProFileNode::updateUiFiles(const QString &buildDir) const QList uiFiles = uiFilesVisitor.uiFileNodes; // Find the UiDir, there can only ever be one - const QString uiDir = uiDirectory(buildDir); - foreach (const FileNode *uiFile, uiFiles) - m_uiFiles.insert(uiFile->path().toString(), uiHeaderFile(uiDir, uiFile->path())); + const Utils::FileName uiDir = uiDirectory(Utils::FileName::fromString(buildDir)); + foreach (const FileNode *uiFile, uiFiles) { + QString headerFile = uiHeaderFile(uiDir, uiFile->path()); + if (!headerFile.isEmpty()) + m_uiFiles.insert(uiFile->path().toString(), headerFile); + } } } diff --git a/src/plugins/qmakeprojectmanager/qmakenodes.h b/src/plugins/qmakeprojectmanager/qmakenodes.h index e6a6a02b279..1a9692f607d 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodes.h +++ b/src/plugins/qmakeprojectmanager/qmakenodes.h @@ -337,8 +337,8 @@ class QMAKEPROJECTMANAGER_EXPORT QmakeProFileNode : public QmakePriFileNode QString sourceDir() const; QString buildDir(QmakeBuildConfiguration *bc = 0) const; - QString uiDirectory(const QString &buildDir) const; - static QString uiHeaderFile(const QString &uiDir, const Utils::FileName &formFile); + Utils::FileName uiDirectory(const Utils::FileName &buildDir) const; + static QString uiHeaderFile(const Utils::FileName &uiDir, const Utils::FileName &formFile); QHash uiFiles() const; QmakeProFileNode *findProFileFor(const Utils::FileName &string) const; diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index 4387c8806d4..96915a08e27 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -897,7 +897,9 @@ QString QmakeProject::generatedUiHeader(const FileName &formFile) const // the top-level project only. if (m_rootProjectNode) if (const QmakeProFileNode *pro = proFileNodeOf(m_rootProjectNode, FormType, formFile)) - return QmakeProFileNode::uiHeaderFile(pro->uiDirectory(pro->buildDir()), formFile); + return QmakeProFileNode::uiHeaderFile( + pro->uiDirectory(Utils::FileName::fromString(pro->buildDir())), + formFile); return QString(); } diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp index 8b01b260f35..c64aefedfd7 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp @@ -378,7 +378,7 @@ void NodeInstanceServerProxy::writeCommand(const QVariant &command) writeCommandToIODecive(command, m_thirdSocket.data(), m_writeCommandCounter); if (m_captureFileForTest.isWritable()) { - qDebug() << "Write strean to file: " << m_captureFileForTest.fileName(); + qDebug() << "Write stream to file: " << m_captureFileForTest.fileName(); writeCommandToIODecive(command, &m_captureFileForTest, m_writeCommandCounter); qDebug() << "\twrite file: " << m_captureFileForTest.pos(); } diff --git a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp index 06ba8b9900d..06cf93af760 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp @@ -1121,6 +1121,11 @@ QString NodeMetaInfoPrivate::importDirectoryPath() const const QString targetPath = QDir(importPath).filePath(importInfo.path()); if (QDir(targetPath).exists()) return targetPath; + const QString targetPathVersion = QDir(importPath).filePath(importInfo.path() + + QLatin1Char('.') + + QString::number(importInfo.version().majorVersion())); + if (QDir(targetPathVersion).exists()) + return targetPathVersion; } } } diff --git a/src/plugins/qmldesigner/designercore/model/qmlanchors.cpp b/src/plugins/qmldesigner/designercore/model/qmlanchors.cpp index b5e9eec8c62..a08f92b89c2 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlanchors.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlanchors.cpp @@ -366,6 +366,9 @@ void QmlAnchors::removeAnchors() bool QmlAnchors::instanceHasAnchor(AnchorLineType sourceAnchorLine) const { + if (!qmlItemNode().isValid()) + return false; + const PropertyName propertyName = anchorPropertyName(sourceAnchorLine); if (sourceAnchorLine & AnchorLineFill) @@ -453,6 +456,9 @@ bool QmlAnchors::instanceHasMargin(AnchorLineType sourceAnchorLineType) const static bool checkForHorizontalCycleRecusive(const QmlAnchors &anchors, QList &visitedItems) { + if (!anchors.isValid()) + return false; + visitedItems.append(anchors.qmlItemNode()); if (anchors.instanceHasAnchor(AnchorLineLeft)) { AnchorLine leftAnchorLine = anchors.instanceAnchor(AnchorLineLeft); @@ -477,6 +483,9 @@ static bool checkForHorizontalCycleRecusive(const QmlAnchors &anchors, QList &visitedItems) { + if (!anchors.isValid()) + return false; + visitedItems.append(anchors.qmlItemNode()); if (anchors.instanceHasAnchor(AnchorLineTop)) { diff --git a/src/plugins/qnx/qnxattachdebugsupport.cpp b/src/plugins/qnx/qnxattachdebugsupport.cpp index 3bb3f271a98..4c9eb69b744 100644 --- a/src/plugins/qnx/qnxattachdebugsupport.cpp +++ b/src/plugins/qnx/qnxattachdebugsupport.cpp @@ -40,10 +40,10 @@ #include #include #include -#include #include #include #include +#include #include #include #include @@ -74,7 +74,11 @@ QnxAttachDebugSupport::QnxAttachDebugSupport(QObject *parent) void QnxAttachDebugSupport::showProcessesDialog() { - ProjectExplorer::DeviceTypeKitChooser *kitChooser = new ProjectExplorer::DeviceTypeKitChooser(Core::Id(Constants::QNX_QNX_OS_TYPE)); + auto kitChooser = new ProjectExplorer::KitChooser; + kitChooser->setKitMatcher([](const ProjectExplorer::Kit *k){ + return k->isValid() && ProjectExplorer::DeviceTypeKitInformation::deviceTypeId(k) == Core::Id(Constants::QNX_QNX_OS_TYPE); + }); + QnxAttachDebugDialog dlg(kitChooser, 0); dlg.addAcceptButton(ProjectExplorer::DeviceProcessesDialog::tr("&Attach to Process")); dlg.showAllDevices(); diff --git a/src/plugins/texteditor/basefilefind.cpp b/src/plugins/texteditor/basefilefind.cpp index 49bf4f4b913..ff6b4e3d6b1 100644 --- a/src/plugins/texteditor/basefilefind.cpp +++ b/src/plugins/texteditor/basefilefind.cpp @@ -210,7 +210,7 @@ void BaseFileFind::doReplace(const QString &text, QStringList files = replaceAll(text, items, preserveCase); if (!files.isEmpty()) { Utils::FadingIndicator::showText(ICore::mainWindow(), - tr("%1 occurrences replaced.").arg(items.size()), + tr("%n occurrences replaced.", 0, items.size()), Utils::FadingIndicator::SmallText); DocumentManager::notifyFilesChangedInternally(files); SearchResultWindow::instance()->hide(); diff --git a/src/plugins/texteditor/codeassist/codeassistant.cpp b/src/plugins/texteditor/codeassist/codeassistant.cpp index e7a4d181ae3..8b4c5600dec 100644 --- a/src/plugins/texteditor/codeassist/codeassistant.cpp +++ b/src/plugins/texteditor/codeassist/codeassistant.cpp @@ -34,6 +34,7 @@ #include "iassistprocessor.h" #include "textdocument.h" #include "iassistproposal.h" +#include "iassistproposalmodel.h" #include "iassistproposalwidget.h" #include "assistinterface.h" #include "assistproposalitem.h" @@ -229,8 +230,10 @@ void CodeAssistantPrivate::requestProposal(AssistReason reason, m_assistKind = kind; IAssistProcessor *processor = provider->createProcessor(); AssistInterface *assistInterface = m_editorWidget->createAssistInterface(kind, reason); - if (!assistInterface) + if (!assistInterface) { + delete processor; return; + } switch (provider->runType()) { case IAssistProvider::Synchronous: { @@ -261,8 +264,11 @@ void CodeAssistantPrivate::requestProposal(AssistReason reason, case IAssistProvider::Asynchronous: { processor->setAsyncCompletionAvailableHandler( [this, processor, reason](IAssistProposal *newProposal){ - if (m_asyncProcessor != processor) + if (m_asyncProcessor != processor) { + delete newProposal->model(); + delete newProposal; return; + } invalidateCurrentRequestData(); QTC_CHECK(newProposal); @@ -275,6 +281,8 @@ void CodeAssistantPrivate::requestProposal(AssistReason reason, if (IAssistProposal *newProposal = processor->perform(assistInterface)) { displayProposal(newProposal, reason); delete processor; + } else if (!processor->performWasApplicable()) { + delete processor; } // ...otherwise the async request was triggered diff --git a/src/plugins/texteditor/codeassist/iassistprocessor.h b/src/plugins/texteditor/codeassist/iassistprocessor.h index 0d4fd31e9df..3456434c86b 100644 --- a/src/plugins/texteditor/codeassist/iassistprocessor.h +++ b/src/plugins/texteditor/codeassist/iassistprocessor.h @@ -56,8 +56,12 @@ class TEXTEDITOR_EXPORT IAssistProcessor using AsyncCompletionsAvailableHandler = std::function; void setAsyncCompletionAvailableHandler(const AsyncCompletionsAvailableHandler &finalizer); + bool performWasApplicable() { return m_performWasApplicable; } + void setPerformWasApplicable(bool applicable) { m_performWasApplicable = applicable; } + private: AsyncCompletionsAvailableHandler m_asyncCompletionsAvailableHandler; + bool m_performWasApplicable = true; }; } // TextEditor diff --git a/src/shared/clang/clang_installation.pri b/src/shared/clang/clang_installation.pri index 8a3df51e3d2..7ce74635ee5 100644 --- a/src/shared/clang/clang_installation.pri +++ b/src/shared/clang/clang_installation.pri @@ -3,6 +3,25 @@ LLVM_INSTALL_DIR = $$clean_path($$LLVM_INSTALL_DIR) isEmpty(LLVM_INSTALL_DIR): error("No LLVM_INSTALL_DIR provided") !exists($$LLVM_INSTALL_DIR): error("LLVM_INSTALL_DIR does not exist: $$LLVM_INSTALL_DIR") +defineReplace(extractVersion) { return($$replace(1, ^(\\d+\\.\\d+\\.\\d+)$, \\1)) } +defineReplace(extractMajorVersion) { return($$replace(1, ^(\\d+)\\.\\d+\\.\\d+$, \\1)) } +defineReplace(extractMinorVersion) { return($$replace(1, ^\\d+\\.(\\d+)\\.\\d+$, \\1)) } + +defineTest(versionIsAtLeast) { + actual_major_version = $$extractMajorVersion($$1) + actual_minor_version = $$extractMinorVersion($$1) + required_min_major_version = $$2 + required_min_minor_version = $$3 + + isEqual(actual_major_version, $$required_min_major_version) { + isEqual(actual_minor_version, $$required_min_minor_version): return(true) + greaterThan(actual_minor_version, $$required_min_minor_version): return(true) + } + greaterThan(actual_major_version, $$required_min_major_version): return(true) + + return(false) +} + defineReplace(findLLVMVersionFromLibDir) { libdir = $$1 version_dirs = $$files($$libdir/clang/*) @@ -60,7 +79,7 @@ unix { LLVM_LIBDIR = $$system($$llvm_config --libdir 2>/dev/null) LLVM_INCLUDEPATH = $$system($$llvm_config --includedir 2>/dev/null) output = $$system($$llvm_config --version 2>/dev/null) - LLVM_VERSION = $$replace(output, ^(\\d+\\.\\d+\\.\\d+)$, \\1) + LLVM_VERSION = $$extractVersion($$output) } else { #message("llvm-config not found, concluding paths and version from LLVM_INSTALL_DIR") LLVM_INCLUDEPATH = $$LLVM_INSTALL_DIR/include @@ -70,9 +89,13 @@ unix { !exists($$LLVM_INCLUDEPATH): error("Cannot detect include dir for clang, candidate: $$LLVM_INCLUDEPATH") !exists($$LLVM_LIBDIR): error("Cannot detect lib dir for clang, candidate: $$LLVM_LIBDIR") - isEmpty(LLVM_VERSION): error("Cannot determine clang version at $$LLVM_INSTALL_DIR") clang_lib = $$findClangLibInLibDir($$LLVM_LIBDIR) isEmpty(clang_lib): error("Cannot find Clang shared library in $$LLVM_LIBDIR") LLVM_LIBS = -L$${LLVM_LIBDIR} -l$${clang_lib} } + +isEmpty(LLVM_VERSION): error("Cannot determine clang version at $$LLVM_INSTALL_DIR") +!versionIsAtLeast($$LLVM_VERSION, 3, 6): { + error("LLVM/Clang version >= 3.6.0 required, version provided: $$LLVM_VERSION") +} diff --git a/src/shared/proparser/qmakeparser.cpp b/src/shared/proparser/qmakeparser.cpp index 070d8fe6a11..856b703e96e 100644 --- a/src/shared/proparser/qmakeparser.cpp +++ b/src/shared/proparser/qmakeparser.cpp @@ -61,6 +61,17 @@ void ProFileCache::discardFile(const QString &fileName) #endif QHash::Iterator it = parsed_files.find(fileName); if (it != parsed_files.end()) { +#ifdef PROPARSER_THREAD_SAFE + if (it->locker) { + if (!it->locker->done) + it->locker->cond.wait(&mutex); + do { + lck.unlock(); + QThread::sleep(100); + lck.relock(); + } while (it->locker); + } +#endif if (it->pro) it->pro->deref(); parsed_files.erase(it); @@ -77,6 +88,17 @@ void ProFileCache::discardFiles(const QString &prefix) end = parsed_files.end(); while (it != end) if (it.key().startsWith(prefix)) { +#ifdef PROPARSER_THREAD_SAFE + if (it->locker) { + if (!it->locker->done) + it->locker->cond.wait(&mutex); + do { + lck.unlock(); + QThread::sleep(100); + lck.relock(); + } while (it->locker); + } +#endif if (it->pro) it->pro->deref(); it = parsed_files.erase(it); diff --git a/src/shared/proparser/spec_post.prf b/src/shared/proparser/spec_post.prf index fcc7314ce55..d4d01857ca1 100644 --- a/src/shared/proparser/spec_post.prf +++ b/src/shared/proparser/spec_post.prf @@ -7,6 +7,7 @@ isEmpty(QMAKE_PLATFORM) { else: \ TARGET_PLATFORM = unix } else:if(equals(MAKEFILE_GENERATOR, MSVC.NET) \ + |equals(MAKEFILE_GENERATOR, MSVC) \ |equals(MAKEFILE_GENERATOR, BMAKE) \ |equals(MAKEFILE_GENERATOR, MSBUILD) \ |equals(MAKEFILE_GENERATOR, MINGW)) { diff --git a/src/shared/qbs b/src/shared/qbs index d69b32061f2..2867e2712e4 160000 --- a/src/shared/qbs +++ b/src/shared/qbs @@ -1 +1 @@ -Subproject commit d69b32061f2cc97892ba1a2f7d851e21f0787a8d +Subproject commit 2867e2712e4c03308e4be76821d788c06bac565e diff --git a/src/src.qbs b/src/src.qbs index bcb6f2a8651..5b8c62e332e 100644 --- a/src/src.qbs +++ b/src/src.qbs @@ -38,7 +38,6 @@ Project { property string relativePluginsPath: FileInfo.relativePath(appInstallDir, pluginsInstallDir) property string relativeSearchPath: FileInfo.relativePath(appInstallDir, resourcesInstallDir) - property bool enableJava: project.enableQbsJavaSupport references: [ qbsBaseDir + "/src/lib/libs.qbs", diff --git a/src/tools/clangbackend/clangbackend.qbs b/src/tools/clangbackend/clangbackend.qbs index 04499e75d04..c46534240d8 100644 --- a/src/tools/clangbackend/clangbackend.qbs +++ b/src/tools/clangbackend/clangbackend.qbs @@ -1,5 +1,6 @@ import qbs 1.0 import QtcClangInstallation as Clang +import QtcFunctions import QtcProcessOutputReader QtcTool { @@ -17,7 +18,7 @@ QtcTool { files: [ "clangbackendmain.cpp" ] - property string llvmConfig: Clang.llvmConfig(qbs) + property string llvmConfig: Clang.llvmConfig(qbs, QtcFunctions, QtcProcessOutputReader) property string llvmIncludeDir: Clang.includeDir(llvmConfig, QtcProcessOutputReader) property string llvmLibDir: Clang.libDir(llvmConfig, QtcProcessOutputReader) property string llvmLibs: Clang.libraries(qbs.targetOS) diff --git a/src/tools/clangbackend/clangbackendmain.cpp b/src/tools/clangbackend/clangbackendmain.cpp index 500515f51f2..914d8827cac 100644 --- a/src/tools/clangbackend/clangbackendmain.cpp +++ b/src/tools/clangbackend/clangbackendmain.cpp @@ -29,6 +29,7 @@ ****************************************************************************/ #include +#include #include #include @@ -36,6 +37,8 @@ int main(int argc, char *argv[]) { + QLoggingCategory::setFilterRules(QStringLiteral("*.debug=false")); + QCoreApplication::setOrganizationName(QStringLiteral("QtProject")); QCoreApplication::setOrganizationDomain(QStringLiteral("qt-project.org")); QCoreApplication::setApplicationName(QStringLiteral("ClangBackend")); diff --git a/src/tools/clangbackend/ipcsource/clangipcserver.cpp b/src/tools/clangbackend/ipcsource/clangipcserver.cpp index e8b860520be..6ba3b0af5dc 100644 --- a/src/tools/clangbackend/ipcsource/clangipcserver.cpp +++ b/src/tools/clangbackend/ipcsource/clangipcserver.cpp @@ -30,6 +30,7 @@ #include "clangipcserver.h" +#include #include #include #include @@ -64,6 +65,8 @@ void ClangIpcServer::end() void ClangIpcServer::registerTranslationUnitsForCodeCompletion(const ClangBackEnd::RegisterTranslationUnitForCodeCompletionCommand &command) { + TIME_SCOPE_DURATION("ClangIpcServer::registerTranslationUnitsForCodeCompletion"); + try { translationUnits.createOrUpdate(command.fileContainers()); unsavedFiles.createOrUpdate(command.fileContainers()); @@ -76,6 +79,8 @@ void ClangIpcServer::registerTranslationUnitsForCodeCompletion(const ClangBackEn void ClangIpcServer::unregisterTranslationUnitsForCodeCompletion(const ClangBackEnd::UnregisterTranslationUnitsForCodeCompletionCommand &command) { + TIME_SCOPE_DURATION("ClangIpcServer::unregisterTranslationUnitsForCodeCompletion"); + try { translationUnits.remove(command.fileContainers()); } catch (const TranslationUnitDoesNotExistException &exception) { @@ -89,6 +94,8 @@ void ClangIpcServer::unregisterTranslationUnitsForCodeCompletion(const ClangBack void ClangIpcServer::registerProjectPartsForCodeCompletion(const RegisterProjectPartsForCodeCompletionCommand &command) { + TIME_SCOPE_DURATION("ClangIpcServer::registerProjectPartsForCodeCompletion"); + try { projects.createOrUpdate(command.projectContainers()); } catch (const std::exception &exception) { @@ -98,6 +105,8 @@ void ClangIpcServer::registerProjectPartsForCodeCompletion(const RegisterProject void ClangIpcServer::unregisterProjectPartsForCodeCompletion(const UnregisterProjectPartsForCodeCompletionCommand &command) { + TIME_SCOPE_DURATION("ClangIpcServer::unregisterProjectPartsForCodeCompletion"); + try { projects.remove(command.projectPartIds()); } catch (const ProjectPartDoNotExistException &exception) { @@ -109,6 +118,8 @@ void ClangIpcServer::unregisterProjectPartsForCodeCompletion(const UnregisterPro void ClangIpcServer::completeCode(const ClangBackEnd::CompleteCodeCommand &command) { + TIME_SCOPE_DURATION("ClangIpcServer::completeCode"); + try { CodeCompleter codeCompleter(translationUnits.translationUnit(command.filePath(), command.projectPartId())); @@ -120,7 +131,7 @@ void ClangIpcServer::completeCode(const ClangBackEnd::CompleteCodeCommand &comma } catch (const ProjectPartDoNotExistException &exception) { client()->projectPartsDoNotExist(ProjectPartsDoNotExistCommand(exception.projectPartIds())); } catch (const std::exception &exception) { - qWarning() << "Error in ClangIpcServer::unregisterProjectPartsForCodeCompletion:" << exception.what(); + qWarning() << "Error in ClangIpcServer::completeCode:" << exception.what(); } } diff --git a/src/tools/clangbackend/ipcsource/codecompleter.cpp b/src/tools/clangbackend/ipcsource/codecompleter.cpp index e8f88b4c1d0..0f50a1fe863 100644 --- a/src/tools/clangbackend/ipcsource/codecompleter.cpp +++ b/src/tools/clangbackend/ipcsource/codecompleter.cpp @@ -47,8 +47,10 @@ CodeCompleter::CodeCompleter(TranslationUnit translationUnit) { } -QVector CodeCompleter::complete(uint line, uint column) +CodeCompletions CodeCompleter::complete(uint line, uint column) { + translationUnit.reparse(); + ClangCodeCompleteResults completeResults(clang_codeCompleteAt(translationUnit.cxTranslationUnit(), translationUnit.filePath().constData(), line, diff --git a/src/tools/clangbackend/ipcsource/codecompleter.h b/src/tools/clangbackend/ipcsource/codecompleter.h index 488abc4987a..2d2dc1abe0f 100644 --- a/src/tools/clangbackend/ipcsource/codecompleter.h +++ b/src/tools/clangbackend/ipcsource/codecompleter.h @@ -47,7 +47,7 @@ class CodeCompleter CodeCompleter() = default; CodeCompleter(TranslationUnit translationUnit); - QVector complete(uint line, uint column); + CodeCompletions complete(uint line, uint column); private: Utf8String filePath() const; diff --git a/src/tools/clangbackend/ipcsource/codecompletionchunkconverter.cpp b/src/tools/clangbackend/ipcsource/codecompletionchunkconverter.cpp index f58f6bda81e..03adf6e13c2 100644 --- a/src/tools/clangbackend/ipcsource/codecompletionchunkconverter.cpp +++ b/src/tools/clangbackend/ipcsource/codecompletionchunkconverter.cpp @@ -71,7 +71,7 @@ CodeCompletionChunk::Kind CodeCompletionChunkConverter::chunkKind(CXCompletionSt return CodeCompletionChunk::Kind(clang_getCompletionChunkKind(completionString, chunkIndex)); } -QVector CodeCompletionChunkConverter::extract(CXCompletionString completionString) +CodeCompletionChunks CodeCompletionChunkConverter::extract(CXCompletionString completionString) { CodeCompletionChunkConverter converter; @@ -85,7 +85,7 @@ Utf8String CodeCompletionChunkConverter::chunkText(CXCompletionString completion return ClangString(clang_getCompletionChunkText(completionString, chunkIndex)); } -QVector CodeCompletionChunkConverter::optionalChunks(CXCompletionString completionString, uint chunkIndex) +CodeCompletionChunks CodeCompletionChunkConverter::optionalChunks(CXCompletionString completionString, uint chunkIndex) { CodeCompletionChunkConverter converter; diff --git a/src/tools/clangbackend/ipcsource/codecompletionchunkconverter.h b/src/tools/clangbackend/ipcsource/codecompletionchunkconverter.h index a3b92de62b3..6907690e81e 100644 --- a/src/tools/clangbackend/ipcsource/codecompletionchunkconverter.h +++ b/src/tools/clangbackend/ipcsource/codecompletionchunkconverter.h @@ -42,18 +42,18 @@ namespace ClangBackEnd { class CodeCompletionChunkConverter { public: - static QVector extract(CXCompletionString completionString); + static CodeCompletionChunks extract(CXCompletionString completionString); static Utf8String chunkText(CXCompletionString completionString, uint chunkIndex); private: - QVector optionalChunks(CXCompletionString completionString, uint chunkIndex); + CodeCompletionChunks optionalChunks(CXCompletionString completionString, uint chunkIndex); static CodeCompletionChunk::Kind chunkKind(CXCompletionString completionString, uint chunkIndex); void extractCompletionChunks(CXCompletionString completionString); void extractOptionalCompletionChunks(CXCompletionString completionString); private: - QVector chunks; + CodeCompletionChunks chunks; }; } // namespace ClangBackEnd diff --git a/src/tools/clangbackend/ipcsource/codecompletionsextractor.cpp b/src/tools/clangbackend/ipcsource/codecompletionsextractor.cpp index 56e826db6fd..1a3e7cb9c39 100644 --- a/src/tools/clangbackend/ipcsource/codecompletionsextractor.cpp +++ b/src/tools/clangbackend/ipcsource/codecompletionsextractor.cpp @@ -88,9 +88,9 @@ bool CodeCompletionsExtractor::peek(const Utf8String &name) return false; } -QVector CodeCompletionsExtractor::extractAll() +CodeCompletions CodeCompletionsExtractor::extractAll() { - QVector codeCompletions; + CodeCompletions codeCompletions; codeCompletions.reserve(cxCodeCompleteResults->NumResults); while (next()) diff --git a/src/tools/clangbackend/ipcsource/codecompletionsextractor.h b/src/tools/clangbackend/ipcsource/codecompletionsextractor.h index f01b12b64cb..dbfbb8af4b7 100644 --- a/src/tools/clangbackend/ipcsource/codecompletionsextractor.h +++ b/src/tools/clangbackend/ipcsource/codecompletionsextractor.h @@ -53,7 +53,7 @@ class CodeCompletionsExtractor bool next(); bool peek(const Utf8String &name); - QVector extractAll(); + CodeCompletions extractAll(); const CodeCompletion ¤tCodeCompletion() const; diff --git a/src/tools/clangbackend/ipcsource/translationunit.cpp b/src/tools/clangbackend/ipcsource/translationunit.cpp index 17871176fae..9581cb57508 100644 --- a/src/tools/clangbackend/ipcsource/translationunit.cpp +++ b/src/tools/clangbackend/ipcsource/translationunit.cpp @@ -40,6 +40,9 @@ #include #include +#include + +static Q_LOGGING_CATEGORY(verboseLibLog, "qtc.clangbackend.verboselib"); namespace ClangBackEnd { @@ -52,8 +55,7 @@ class TranslationUnitData ~TranslationUnitData(); public: - time_point lastProjectPartChangeTimePoint; - time_point lastUnsavedFilesChangeTimePoint; + time_point lastChangeTimePoint; ProjectPart projectPart; Utf8String filePath; CXTranslationUnit translationUnit = nullptr; @@ -64,8 +66,7 @@ class TranslationUnitData TranslationUnitData::TranslationUnitData(const Utf8String &filePath, const UnsavedFiles &unsavedFiles, const ProjectPart &projectPart) - : lastProjectPartChangeTimePoint(std::chrono::steady_clock::now()), - lastUnsavedFilesChangeTimePoint(lastProjectPartChangeTimePoint), + : lastChangeTimePoint(std::chrono::steady_clock::now()), projectPart(projectPart), filePath(filePath), unsavedFiles(unsavedFiles) @@ -98,12 +99,21 @@ void TranslationUnit::reset() d.reset(); } +void TranslationUnit::reparse() +{ + cxTranslationUnit(); + + reparseTranslationUnit(); +} + CXIndex TranslationUnit::index() const { checkIfNull(); - if (!d->index) - d->index = clang_createIndex(1, 1); + if (!d->index) { + const bool displayDiagnostics = verboseLibLog().isDebugEnabled(); + d->index = clang_createIndex(1, displayDiagnostics); + } return d->index; } @@ -111,9 +121,10 @@ CXIndex TranslationUnit::index() const CXTranslationUnit TranslationUnit::cxTranslationUnit() const { checkIfNull(); - removeTranslationUnitIfProjectPartWasChanged(); + + removeOutdatedTranslationUnit(); + createTranslationUnitIfNeeded(); - reparseTranslationUnitIfUnsavedFilesAreChanged(); return d->translationUnit; } @@ -132,19 +143,9 @@ const Utf8String &TranslationUnit::projectPartId() const return d->projectPart.projectPartId(); } -const time_point &TranslationUnit::lastProjectPartChangeTimePoint() const -{ - return d->lastProjectPartChangeTimePoint; -} - -const time_point &TranslationUnit::lastUnsavedFilesChangeTimePoint() const +const time_point &TranslationUnit::lastChangeTimePoint() const { - return d->lastUnsavedFilesChangeTimePoint; -} - -bool TranslationUnit::isNeedingReparse() const -{ - return d->lastUnsavedFilesChangeTimePoint < d->unsavedFiles.lastChangeTimePoint(); + return d->lastChangeTimePoint; } void TranslationUnit::checkIfNull() const @@ -159,29 +160,19 @@ void TranslationUnit::checkIfFileExists() const throw TranslationUnitFileNotExitsException(d->filePath); } -void TranslationUnit::updateLastProjectPartChangeTimePoint() const -{ - d->lastProjectPartChangeTimePoint = std::chrono::steady_clock::now(); -} - -void TranslationUnit::updateLastUnsavedFilesChangeTimePoint() const +void TranslationUnit::updateLastChangeTimePoint() const { - d->lastUnsavedFilesChangeTimePoint = std::chrono::steady_clock::now(); + d->lastChangeTimePoint = std::chrono::steady_clock::now(); } -void TranslationUnit::removeTranslationUnitIfProjectPartWasChanged() const +void TranslationUnit::removeOutdatedTranslationUnit() const { - if (projectPartIsOutdated()) { + if (d->projectPart.lastChangeTimePoint() >= d->lastChangeTimePoint) { clang_disposeTranslationUnit(d->translationUnit); d->translationUnit = nullptr; } } -bool TranslationUnit::projectPartIsOutdated() const -{ - return d->projectPart.lastChangeTimePoint() >= d->lastProjectPartChangeTimePoint; -} - void TranslationUnit::createTranslationUnitIfNeeded() const { if (!d->translationUnit) { @@ -201,7 +192,7 @@ void TranslationUnit::createTranslationUnitIfNeeded() const // e.g. clang_codeCompleteAt() dramatically. reparseTranslationUnit(); - updateLastProjectPartChangeTimePoint(); + updateLastChangeTimePoint(); } } @@ -219,14 +210,6 @@ void TranslationUnit::reparseTranslationUnit() const d->unsavedFiles.count(), d->unsavedFiles.cxUnsavedFiles(), clang_defaultReparseOptions(d->translationUnit)); - - updateLastUnsavedFilesChangeTimePoint(); -} - -void TranslationUnit::reparseTranslationUnitIfUnsavedFilesAreChanged() const -{ - if (isNeedingReparse()) - reparseTranslationUnit(); } int TranslationUnit::defaultOptions() diff --git a/src/tools/clangbackend/ipcsource/translationunit.h b/src/tools/clangbackend/ipcsource/translationunit.h index 5491f0acec8..803e5e9c27b 100644 --- a/src/tools/clangbackend/ipcsource/translationunit.h +++ b/src/tools/clangbackend/ipcsource/translationunit.h @@ -73,6 +73,7 @@ class TranslationUnit bool isNull() const; void reset(); + void reparse(); CXIndex index() const; CXTranslationUnit cxTranslationUnit() const; @@ -82,23 +83,16 @@ class TranslationUnit const Utf8String &filePath() const; const Utf8String &projectPartId() const; - const time_point &lastProjectPartChangeTimePoint() const; - const time_point &lastUnsavedFilesChangeTimePoint() const; - - bool isNeedingReparse() const; + const time_point &lastChangeTimePoint() const; private: void checkIfNull() const; void checkIfFileExists() const; - void updateLastProjectPartChangeTimePoint() const; - void updateLastUnsavedFilesChangeTimePoint() const; - void removeTranslationUnitIfProjectPartWasChanged() const; - bool projectPartIsOutdated() const; + void updateLastChangeTimePoint() const; + void removeOutdatedTranslationUnit() const; void createTranslationUnitIfNeeded() const; void checkTranslationUnitErrorCode(CXErrorCode errorCode) const; void reparseTranslationUnit() const; - void reparseTranslationUnitIfUnsavedFilesAreChanged() const; - void printIncludes() const; static int defaultOptions(); private: diff --git a/src/tools/qtcdebugger/qtcdebugger.pro b/src/tools/qtcdebugger/qtcdebugger.pro index 41c0d4af616..e4106a176ce 100644 --- a/src/tools/qtcdebugger/qtcdebugger.pro +++ b/src/tools/qtcdebugger/qtcdebugger.pro @@ -1,5 +1,6 @@ include(../../shared/registryaccess/registryaccess.pri) include(../../qtcreatortool.pri) +CONFIG -= console QT += widgets TARGET = qtcdebugger SOURCES += main.cpp diff --git a/src/tools/sdktool/addkitoperation.cpp b/src/tools/sdktool/addkitoperation.cpp index 70c3f7acc53..2f02c098db4 100644 --- a/src/tools/sdktool/addkitoperation.cpp +++ b/src/tools/sdktool/addkitoperation.cpp @@ -245,9 +245,6 @@ bool AddKitOperation::setArguments(const QStringList &args) return false; } - if (m_debuggerId.isEmpty() && m_debugger.isEmpty()) - m_debugger = QLatin1String("auto"); - return !m_id.isEmpty() && !m_displayName.isEmpty() && !m_deviceType.isEmpty(); } @@ -622,7 +619,7 @@ QVariantMap AddKitOperation::addKit(const QVariantMap &map, const QVariantMap &t data << KeyValuePair(QStringList() << kit << QLatin1String(AUTODETECTED), QVariant(true)); data << KeyValuePair(QStringList() << kit << QLatin1String(SDK), QVariant(true)); - if (!debuggerId.isNull() || !debugger.isNull()) { + if (!debuggerId.isEmpty() || !debugger.isEmpty()) { if (debuggerId.isEmpty()) { data << KeyValuePair(QStringList() << kit << QLatin1String(DATA) << QLatin1String(DEBUGGER) << QLatin1String(DEBUGGER_ENGINE), QVariant(debuggerType)); diff --git a/src/tools/sdktool/main.cpp b/src/tools/sdktool/main.cpp index 51cc49ac864..97bc41941bf 100644 --- a/src/tools/sdktool/main.cpp +++ b/src/tools/sdktool/main.cpp @@ -193,11 +193,17 @@ int main(int argc, char *argv[]) << new FindValueOperation; #ifdef WITH_TESTS - std::cerr << std::endl << std::endl << "Starting tests..." << std::endl; - foreach (Operation *o, operations) - if (!o->test()) - std::cerr << "!!!! Test failed for: " << qPrintable(o->name()) << " !!!!" << std::endl; - std::cerr << "Tests done." << std::endl << std::endl; + if (argc == 2 && !strcmp(argv[1], "-test")) { + std::cerr << std::endl << std::endl << "Starting tests..." << std::endl; + int res = 0; + foreach (Operation *o, operations) + if (!o->test()) { + std::cerr << "!!!! Test failed for: " << qPrintable(o->name()) << " !!!!" << std::endl; + ++res; + } + std::cerr << "Tests done." << std::endl << std::endl; + return res; + } #endif int result = parseArguments(a.arguments(), &settings, operations); diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro index c84f446c0cd..20f4e69fc57 100644 --- a/tests/auto/auto.pro +++ b/tests/auto/auto.pro @@ -16,6 +16,7 @@ SUBDIRS += \ qtcprocess \ utils \ filesearch \ + sdktool \ valgrind qtHaveModule(declarative) { diff --git a/tests/auto/auto.qbs b/tests/auto/auto.qbs index 5bd5acaff49..84c6867cbba 100644 --- a/tests/auto/auto.qbs +++ b/tests/auto/auto.qbs @@ -18,6 +18,7 @@ Project { "profilewriter/profilewriter.qbs", "qml/qml.qbs", "qtcprocess/qtcprocess.qbs", + "sdktool/sdktool.qbs", "timeline/timeline.qbs", "treeviewfind/treeviewfind.qbs", "utils/utils.qbs", diff --git a/tests/auto/cplusplus/misc/tst_misc.cpp b/tests/auto/cplusplus/misc/tst_misc.cpp index 70914ca42d2..c3497613968 100644 --- a/tests/auto/cplusplus/misc/tst_misc.cpp +++ b/tests/auto/cplusplus/misc/tst_misc.cpp @@ -28,6 +28,7 @@ ** ****************************************************************************/ +#include #include #include @@ -48,6 +49,8 @@ private slots: void findBreakpoints(); void findBreakpoints2(); void findBreakpoints3(); + + void astPathOnGeneratedTokens(); }; void tst_Misc::diagnosticClient_error() @@ -202,5 +205,44 @@ void tst_Misc::findBreakpoints3() QCOMPARE(findBreakpoint(7), 7U); } +static Document::Ptr documentCreatedWithFastPreprocessor(const QByteArray source) +{ + Snapshot snapshot; + auto document = snapshot.preprocessedDocument(source, QLatin1String("test.cpp")); + document->check(); + return document; +} + +void tst_Misc::astPathOnGeneratedTokens() +{ + const QByteArray source = + "#define INT int\n" + "#define S ;\n" + "INT x S\n"; + const auto document = documentCreatedWithFastPreprocessor(source); + ASTPath astPath(document); + + // Check start + auto paths = astPath(3, 1); + QCOMPARE(paths.size(), 0); + + // Check middle + paths = astPath(3, 5); + QCOMPARE(paths.size(), 5); + QVERIFY(paths.at(0)->asTranslationUnit()); + QVERIFY(paths.at(1)->asSimpleDeclaration()); + QVERIFY(paths.at(2)->asDeclarator()); + QVERIFY(paths.at(3)->asDeclaratorId()); + QVERIFY(paths.at(4)->asSimpleName()); + + // Check end + for (auto i : { 7, 8, 9 }) { + paths = astPath(3, i); + QCOMPARE(paths.size(), 2); + QVERIFY(paths.at(0)->asTranslationUnit()); + QVERIFY(paths.at(1)->asSimpleDeclaration()); + } +} + QTEST_MAIN(tst_Misc) #include "tst_misc.moc" diff --git a/tests/auto/debugger/disassembler.pro b/tests/auto/debugger/disassembler.pro index 8f85fba5c32..c42b8e047dd 100644 --- a/tests/auto/debugger/disassembler.pro +++ b/tests/auto/debugger/disassembler.pro @@ -1,5 +1,5 @@ QTC_LIB_DEPENDS += utils -QT = core network +QT = core network widgets include(../qttest.pri) DEBUGGERDIR = $$IDE_SOURCE_TREE/src/plugins/debugger diff --git a/tests/auto/debugger/disassembler.qbs b/tests/auto/debugger/disassembler.qbs index 5b204826d43..35a5aadd596 100644 --- a/tests/auto/debugger/disassembler.qbs +++ b/tests/auto/debugger/disassembler.qbs @@ -2,7 +2,8 @@ import qbs QtcAutotest { name: "disassembler autotest" - Depends { name: "Qt.network" } // For QHostAddress + Depends { name: "ProjectExplorer" } + Depends { name: "QtcSsh" } Group { name: "Sources from Debugger plugin" prefix: project.debuggerDir diff --git a/tests/auto/sdktool/sdktool.pro b/tests/auto/sdktool/sdktool.pro new file mode 100644 index 00000000000..cc5fb2d28cc --- /dev/null +++ b/tests/auto/sdktool/sdktool.pro @@ -0,0 +1,3 @@ +include(../qttest.pri) + +SOURCES += tst_sdktool.cpp diff --git a/tests/auto/sdktool/sdktool.qbs b/tests/auto/sdktool/sdktool.qbs new file mode 100644 index 00000000000..1fd08fc2586 --- /dev/null +++ b/tests/auto/sdktool/sdktool.qbs @@ -0,0 +1,10 @@ +import qbs + +QtcAutotest { + name: "sdktool autotest" + + Group { + name: "Test sources" + files: "tst_sdktool.cpp" + } +} diff --git a/src/plugins/clangcodemodel/test/clangcompletioncontextanalyzertest.h b/tests/auto/sdktool/tst_sdktool.cpp similarity index 69% rename from src/plugins/clangcodemodel/test/clangcompletioncontextanalyzertest.h rename to tests/auto/sdktool/tst_sdktool.cpp index 4b8dbbc7ef8..8cc01357d4c 100644 --- a/src/plugins/clangcodemodel/test/clangcompletioncontextanalyzertest.h +++ b/tests/auto/sdktool/tst_sdktool.cpp @@ -28,32 +28,34 @@ ** ****************************************************************************/ -#ifndef CLANGCOMPLETIONCONTEXTANALYZERTEST_H -#define CLANGCOMPLETIONCONTEXTANALYZERTEST_H +#include +#include +#include +#include -#include - -namespace ClangCodeModel { -namespace Internal { -namespace Tests { - -class ClangCompletionContextAnalyzerTest : public QObject +class SdktoolTest : public QObject { Q_OBJECT private slots: - void testPassThroughToClangAndSignalSlotRecognition(); - void testPassThroughToClangAndSignalSlotRecognition_data(); - - void testSpecialCompletionRecognition(); - void testSpecialCompletionRecognition_data(); - - void testAvoidSpecialCompletionRecognition(); - void testAvoidSpecialCompletionRecognition_data(); + void testSdktool(); }; -} // namespace Tests -} // namespace Internal -} // namespace ClangCodeModel - -#endif // CLANGCOMPLETIONCONTEXTANALYZERTEST_H +void SdktoolTest::testSdktool() +{ + QDir rootDir = QCoreApplication::applicationDirPath(); + rootDir.cdUp(); + rootDir.cdUp(); + rootDir.cdUp(); + rootDir.cd(QLatin1String("bin")); + QProcess process; + process.start(rootDir.absoluteFilePath(QLatin1String("sdktool")), + QStringList() << QLatin1String("-test")); + process.waitForFinished(); + qDebug() << process.readAllStandardError(); + QCOMPARE(process.exitCode(), 0); +} + +QTEST_MAIN(SdktoolTest) + +#include "tst_sdktool.moc" diff --git a/tests/system/objects.map b/tests/system/objects.map index 791fe94ae73..9cb1ce01976 100644 --- a/tests/system/objects.map +++ b/tests/system/objects.map @@ -60,7 +60,6 @@ :Compiler:_QLabel {container=':qt_tabwidget_stackedwidget_QWidget' text='Compiler:' type='QLabel' unnamed='1' visible='1'} :Core__Internal__GeneralSettings.User Interface_QGroupBox {container=':qt_tabwidget_stackedwidget.Core__Internal__GeneralSettings_QWidget' name='interfaceBox' title='User Interface' type='QGroupBox' visible='1'} :CppTools__Internal__CompletionSettingsPage.Behavior_QGroupBox {container=':qt_tabwidget_stackedwidget.CppTools__Internal__CompletionSettingsPage_QWidget' name='groupBox' title='Behavior' type='QGroupBox' visible='1'} -:CreateProject_QStyleItem {clip='false' container=':WelcomePageStyledBar.WelcomePage_QQuickView' enabled='true' text='New Project' type='Button' unnamed='1' visible='true'} :DebugModeWidget.Breakpoints_QDockWidget {container=':Qt Creator.DebugModeWidget_QSplitter' name='Debugger.Docks.Break' type='QDockWidget' visible='1' windowTitle='Breakpoints'} :DebugModeWidget.Debugger Log_QDockWidget {container=':Qt Creator.DebugModeWidget_QSplitter' name='Debugger.Docks.Output' type='QDockWidget' visible='1' windowTitle='Debugger Log'} :DebugModeWidget.Debugger Toolbar_QDockWidget {container=':Qt Creator.DebugModeWidget_QSplitter' name='Debugger Toolbar' type='QDockWidget' visible='1' windowTitle='Debugger Toolbar'} @@ -116,7 +115,6 @@ :New_Core::Internal::NewDialog {name='Core__Internal__NewDialog' type='Core::Internal::NewDialog' visible='1' windowTitle?='New*'} :Next_QPushButton {text~='(Next.*|Continue)' type='QPushButton' visible='1'} :OpenDocuments_Widget {type='Core::Internal::OpenEditorsWidget' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow' windowTitle='Open Documents'} -:OpenProject_QStyleItem {clip='false' container=':WelcomePageStyledBar.WelcomePage_QQuickView' enabled='true' text='Open Project' type='Button' unnamed='1' visible='true'} :Options.Cancel_QPushButton {text='Cancel' type='QPushButton' unnamed='1' visible='1' window=':Options_Core::Internal::SettingsDialog'} :Options.OK_QPushButton {text='OK' type='QPushButton' unnamed='1' visible='1' window=':Options_Core::Internal::SettingsDialog'} :Options.qt_tabwidget_stackedwidget_QStackedWidget {name='qt_tabwidget_stackedwidget' type='QStackedWidget' visible='1' window=':Options_Core::Internal::SettingsDialog'} @@ -142,6 +140,7 @@ :Qt Creator.Stop_QToolButton {text='Stop' type='QToolButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} :Qt Creator.WelcomePageStyledBar_QWindowContainer {aboveWidget=':Qt Creator.WelcomePageStyledBar_Utils::StyledBar' type='QWindowContainer' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} :Qt Creator.WelcomePageStyledBar_Utils::StyledBar {name='WelcomePageStyledBar' type='Utils::StyledBar' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} +:Qt Creator.WelcomePage_QQuickWidget {name='WelcomePage' type='QQuickWidget' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} :Qt Creator.replaceEdit_Utils::FilterLineEdit {name='replaceEdit' type='Utils::FancyLineEdit' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} :Qt Creator.scrollArea_QScrollArea {type='ProjectExplorer::PanelsWidget' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} :Qt Creator.splitter_QSplitter {name='splitter' type='QSplitter' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} diff --git a/tests/system/shared/project.py b/tests/system/shared/project.py index 951ed4645bd..93c04fae369 100644 --- a/tests/system/shared/project.py +++ b/tests/system/shared/project.py @@ -39,7 +39,13 @@ def openQbsProject(projectPath): def openQmakeProject(projectPath, targets=Targets.desktopTargetClasses(), fromWelcome=False): cleanUpUserFiles(projectPath) if fromWelcome: - mouseClick(waitForObject(":OpenProject_QStyleItem"), 5, 5, 0, Qt.LeftButton) + if isQt54Build: + welcomePage = ":WelcomePageStyledBar.WelcomePage_QQuickView" + else: + welcomePage = ":Qt Creator.WelcomePage_QQuickWidget" + mouseClick(waitForObject("{clip='false' container='%s' enabled='true' text='Open Project' " + "type='Button' unnamed='1' visible='true'}" % welcomePage), + 5, 5, 0, Qt.LeftButton) else: invokeMenuItem("File", "Open File or Project...") selectFromFileDialog(projectPath) @@ -94,7 +100,13 @@ def __handleCmakeWizardPage__(): # this list can be used in __chooseTargets__() def __createProjectOrFileSelectType__(category, template, fromWelcome = False, isProject=True): if fromWelcome: - mouseClick(waitForObject(":CreateProject_QStyleItem"), 5, 5, 0, Qt.LeftButton) + if isQt54Build: + welcomePage = ":WelcomePageStyledBar.WelcomePage_QQuickView" + else: + welcomePage = ":Qt Creator.WelcomePage_QQuickWidget" + mouseClick(waitForObject("{clip='false' container='%s' enabled='true' text='New Project' " + "type='Button' unnamed='1' visible='true'}" % welcomePage), + 5, 5, 0, Qt.LeftButton) else: invokeMenuItem("File", "New File or Project...") categoriesView = waitForObject(":New.templateCategoryView_QTreeView") diff --git a/tests/system/shared/qtcreator.py b/tests/system/shared/qtcreator.py index ff3d58afec6..2ab82276aab 100644 --- a/tests/system/shared/qtcreator.py +++ b/tests/system/shared/qtcreator.py @@ -39,6 +39,8 @@ import errno; from datetime import datetime,timedelta; +isQt54Build = os.getenv("SYSTEST_ISQT54BUILD") != "0" + srcPath = '' SettingsPath = '' tmpSettingsDir = '' diff --git a/tests/system/suite_CSUP/tst_CSUP02/test.py b/tests/system/suite_CSUP/tst_CSUP02/test.py index a177470d94c..b856f167aff 100644 --- a/tests/system/suite_CSUP/tst_CSUP02/test.py +++ b/tests/system/suite_CSUP/tst_CSUP02/test.py @@ -32,52 +32,64 @@ # entry of test def main(): - startApplication("qtcreator" + SettingsPath) + clangLoaded = startCreatorTryingClang() if not startedWithoutPluginError(): return # create qt quick application # Step 1: Open test .pro project. createNewQtQuickApplication(tempDir(), "SampleApp") + models = iterateAvailableCodeModels() + for current in models: + if current != models[0]: + selectCodeModel(current) + test.log("Testing code model: %s" % current) # Step 2: Open .cpp file in Edit mode. - if not openDocument("SampleApp.Sources.main\\.cpp"): - test.fatal("Could not open main.cpp") - invokeMenuItem("File", "Exit") - return - test.verify(checkIfObjectExists(":Qt Creator_CppEditor::Internal::CPPEditorWidget"), - "Step 2: Verifying if: .cpp file is opened in Edit mode.") + if not openDocument("SampleApp.Sources.main\\.cpp"): + test.fatal("Could not open main.cpp") + invokeMenuItem("File", "Exit") + return + test.verify(checkIfObjectExists(":Qt Creator_CppEditor::Internal::CPPEditorWidget"), + "Step 2: Verifying if: .cpp file is opened in Edit mode.") # Steps 3&4: Insert text "class" to new line in Editor mode and press Ctrl+Space. # Focus "class derived from QObject" in the list and press Tab or Enter to complete the code. - editorWidget = findObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget") - mouseClick(editorWidget, 5, 5, 0, Qt.LeftButton) - type(editorWidget, "") - type(editorWidget, "") - type(editorWidget, "class") - if platform.system() == "Darwin": - type(editorWidget, "") - else: - type(editorWidget, "") - type(waitForObject(":popupFrame_Proposal_QListView"), "") - listView = waitForObject(":popupFrame_Proposal_QListView") - test.compare("class derived from QObject", str(listView.model().data(listView.currentIndex())), - "Verifying selecting the correct entry.") - type(waitForObject(":popupFrame_Proposal_QListView"), "") - test.verify(str(editorWidget.plainText).startswith("class name : public QObject"), - "Steps 3&4: Verifying if: The list of suggestions is opened. It is " - "possible to select one of the suggestions. Code with several " - "variables is inserted.") + editorWidget = findObject(":Qt Creator_CppEditor::Internal::CPPEditorWidget") + mouseClick(editorWidget, 5, 5, 0, Qt.LeftButton) + type(editorWidget, "") + type(editorWidget, "") + type(editorWidget, "class") + if platform.system() == "Darwin": + type(editorWidget, "") + else: + type(editorWidget, "") + type(waitForObject(":popupFrame_Proposal_QListView"), "") + if current == "Clang": + # different order with Clang code model + type(waitForObject(":popupFrame_Proposal_QListView"), "") + listView = waitForObject(":popupFrame_Proposal_QListView") + test.compare("class derived from QObject", str(listView.model().data(listView.currentIndex())), + "Verifying selecting the correct entry.") + type(waitForObject(":popupFrame_Proposal_QListView"), "") + test.verify(str(editorWidget.plainText).startswith("class name : public QObject"), + "Steps 3&4: Verifying if: The list of suggestions is opened. It is " + "possible to select one of the suggestions. Code with several " + "variables is inserted.") # Step 5: Press Tab to move between the variables and specify values for them. For example write "Myname" for variable "name". - type(editorWidget, "") - type(editorWidget, "") - type(editorWidget, "") - type(editorWidget, "Myname") - pattern = "(?<=class)\s+Myname\s*:\s*public\s+QObject\s*\{\s*Q_OBJECT\s+public:\s+Myname\(\)\s*\{\}\s+virtual\s+~Myname\(\)\s*\{\}\s+\};" - result = re.search(pattern, str(editorWidget.plainText)) - if result: - test.passes("Step 5: Verifying if: A value for a variable is inserted and all " - "instances of the variable within the snippet are renamed.") - else: - test.fail("Step 5: Seems that not all instances of variable had been renamed " - "- Content of editor:\n%s" % editorWidget.plainText) + type(editorWidget, "") + type(editorWidget, "") + type(editorWidget, "") + type(editorWidget, "Myname") + pattern = "(?<=class)\s+Myname\s*:\s*public\s+QObject\s*\{\s*Q_OBJECT\s+public:\s+Myname\(\)\s*\{\}\s+virtual\s+~Myname\(\)\s*\{\}\s+\};" + result = re.search(pattern, str(editorWidget.plainText)) + if result: + test.passes("Step 5: Verifying if: A value for a variable is inserted and all " + "instances of the variable within the snippet are renamed.") + else: + test.fail("Step 5: Seems that not all instances of variable had been renamed " + "- Content of editor:\n%s" % editorWidget.plainText) + invokeMenuItem('File', 'Revert "main.cpp" to Saved') + clickButton(waitForObject(":Revert to Saved.Proceed_QPushButton")) + snooze(1) # 'Close "main.cpp"' might still be disabled + # editor must be closed to get the second code model applied on re-opening the file + invokeMenuItem('File', 'Close "main.cpp"') # exit qt creator - invokeMenuItem("File", "Save All") invokeMenuItem("File", "Exit") diff --git a/tests/system/suite_WELP/tst_WELP01/test.py b/tests/system/suite_WELP/tst_WELP01/test.py index 825985d3ba0..863954692dc 100755 --- a/tests/system/suite_WELP/tst_WELP01/test.py +++ b/tests/system/suite_WELP/tst_WELP01/test.py @@ -31,7 +31,11 @@ source("../../shared/qtcreator.py") source("../../shared/suites_qtta.py") -gettingStartedText = getQmlItem("Button", ":WelcomePageStyledBar.WelcomePage_QQuickView", False, +if isQt54Build: + welcomePage = ":WelcomePageStyledBar.WelcomePage_QQuickView" +else: + welcomePage = ":Qt Creator.WelcomePage_QQuickWidget" +gettingStartedText = getQmlItem("Button", welcomePage, False, "text='Get Started Now' id='gettingStartedButton'") def clickItemVerifyHelpCombo(qmlItem, expectedHelpComboRegex, testDetails): @@ -47,12 +51,9 @@ def clickItemVerifyHelpCombo(qmlItem, expectedHelpComboRegex, testDetails): "Verifying: Get Started Now button is being displayed.") def waitForButtonsState(projectsChecked, examplesChecked, tutorialsChecked, timeout=5000): - projButton = waitForObject(getQmlItem("Button", ":WelcomePageStyledBar.WelcomePage_QQuickView", - False, "text='Projects'")) - exmpButton = waitForObject(getQmlItem("Button", ":WelcomePageStyledBar.WelcomePage_QQuickView", - False, "text='Examples'")) - tutoButton = waitForObject(getQmlItem("Button", ":WelcomePageStyledBar.WelcomePage_QQuickView", - False, "text='Tutorials'")) + projButton = waitForObject(getQmlItem("Button", welcomePage, False, "text='Projects'")) + exmpButton = waitForObject(getQmlItem("Button", welcomePage, False, "text='Examples'")) + tutoButton = waitForObject(getQmlItem("Button", welcomePage, False, "text='Tutorials'")) return waitFor('projButton.checked == projectsChecked ' 'and exmpButton.checked == examplesChecked ' 'and tutoButton.checked == tutorialsChecked', timeout) @@ -73,8 +74,7 @@ def main(): buttonsAndState = {'Projects':True, 'Examples':False, 'Tutorials':False, 'New Project':False, 'Open Project':False} for button, state in buttonsAndState.items(): - qmlItem = getQmlItem("Button", ":WelcomePageStyledBar.WelcomePage_QQuickView", False, - "text='%s'" % button) + qmlItem = getQmlItem("Button", welcomePage, False, "text='%s'" % button) if test.verify(checkIfObjectExists(qmlItem), "Verifying whether '%s' button is shown." % button): buttonObj = findObject(qmlItem) @@ -92,8 +92,7 @@ def main(): 'User Guide':'qthelp://org.qt-project.qtcreator/doc/index.html' } for text, url in textUrls.items(): - qmlItem = getQmlItem("LinkedText", ":WelcomePageStyledBar.WelcomePage_QQuickView", False, - "text='%s'" % text) + qmlItem = getQmlItem("LinkedText", welcomePage, False, "text='%s'" % text) if test.verify(checkIfObjectExists(qmlItem), "Verifying: Link to %s exists." % text): itemObj = findObject(qmlItem) @@ -116,8 +115,8 @@ def main(): test.verify(checkIfObjectExists(gettingStartedText), "Verifying: Getting Started topic is being displayed.") # select Examples and roughly check them - mouseClick(waitForObject(getQmlItem("Button", ":WelcomePageStyledBar.WelcomePage_QQuickView", - False, "text='Examples'")), 5, 5, 0, Qt.LeftButton) + mouseClick(waitForObject(getQmlItem("Button", welcomePage, False, "text='Examples'")), + 5, 5, 0, Qt.LeftButton) waitForButtonsState(False, True, False) expect = (("Rectangle", "id='rectangle1' radius='0'", "examples rectangle"), ("TextField", "id='lineEdit' placeholderText='Search in Examples...'", @@ -126,13 +125,11 @@ def main(): ("Delegate", "id='delegate' radius='0' caption~='.*Example'", "at least one example") ) for (qType, prop, info) in expect: - test.verify(checkIfObjectExists(getQmlItem(qType, - ":WelcomePageStyledBar.WelcomePage_QQuickView", - None, prop)), + test.verify(checkIfObjectExists(getQmlItem(qType, welcomePage, None, prop)), "Verifying whether %s is shown" % info) # select Tutorials and roughly check them - mouseClick(waitForObject(getQmlItem("Button", ":WelcomePageStyledBar.WelcomePage_QQuickView", - False, "text='Tutorials'")), 5, 5, 0, Qt.LeftButton) + mouseClick(waitForObject(getQmlItem("Button", welcomePage, False, "text='Tutorials'")), + 5, 5, 0, Qt.LeftButton) waitForButtonsState(False, False, True) expect = (("Rectangle", "id='rectangle1' radius='0'", "tutorials rectangle"), ("TextField", "id='lineEdit' placeholderText='Search in Tutorials...'", @@ -140,9 +137,7 @@ def main(): ("Delegate", "id='delegate' radius='0' caption~='Creating.*'", "at least one tutorial") ) for (qType, prop, info) in expect: - test.verify(checkIfObjectExists(getQmlItem(qType, - ":WelcomePageStyledBar.WelcomePage_QQuickView", - None, prop)), + test.verify(checkIfObjectExists(getQmlItem(qType, welcomePage, None, prop)), "Verifying whether %s is shown" % info) # exit Qt Creator invokeMenuItem("File", "Exit") diff --git a/tests/system/suite_WELP/tst_WELP02/test.py b/tests/system/suite_WELP/tst_WELP02/test.py index 896637ffbd9..9a5c775b720 100644 --- a/tests/system/suite_WELP/tst_WELP02/test.py +++ b/tests/system/suite_WELP/tst_WELP02/test.py @@ -31,11 +31,14 @@ source("../../shared/qtcreator.py") source("../../shared/suites_qtta.py") +if isQt54Build: + welcomePage = ":WelcomePageStyledBar.WelcomePage_QQuickView" +else: + welcomePage = ":Qt Creator.WelcomePage_QQuickWidget" + def checkTypeAndProperties(typePropertiesDetails): for (qType, props, detail) in typePropertiesDetails: - test.verify(checkIfObjectExists(getQmlItem(qType, - ":WelcomePageStyledBar.WelcomePage_QQuickView", - False, props)), + test.verify(checkIfObjectExists(getQmlItem(qType, welcomePage, False, props)), "Verifying: Qt Creator displays %s." % detail) def main(): @@ -85,13 +88,10 @@ def main(): "Verifying: The project is opened in 'Edit' mode after configuring.") # go to "Welcome page" again and check if there is an information about recent projects switchViewTo(ViewConstants.WELCOME) - test.verify(checkIfObjectExists(getQmlItem("LinkedText", - ":WelcomePageStyledBar.WelcomePage_QQuickView", - False, + test.verify(checkIfObjectExists(getQmlItem("LinkedText", welcomePage, False, "text='propertyanimation' id='projectNameText'")) and - checkIfObjectExists(getQmlItem("LinkedText", - ":WelcomePageStyledBar.WelcomePage_QQuickView", - False, "text='SampleApp' id='projectNameText'")), + checkIfObjectExists(getQmlItem("LinkedText", welcomePage, False, + "text='SampleApp' id='projectNameText'")), "Verifying: 'Welcome page' displays information about recently created and " "opened projects.") # exit Qt Creator diff --git a/tests/system/suite_WELP/tst_WELP03/test.py b/tests/system/suite_WELP/tst_WELP03/test.py index 286be802dcd..ee28d29afc2 100644 --- a/tests/system/suite_WELP/tst_WELP03/test.py +++ b/tests/system/suite_WELP/tst_WELP03/test.py @@ -50,6 +50,10 @@ def main(): test.log("Welcome mode is not scriptable with this Squish version") return global sdkPath + if isQt54Build: + welcomePage = ":WelcomePageStyledBar.WelcomePage_QQuickView" + else: + welcomePage = ":Qt Creator.WelcomePage_QQuickWidget" # open Qt Creator startApplication("qtcreator" + SettingsPath) if not startedWithoutPluginError(): @@ -59,7 +63,7 @@ def main(): qchs.extend([os.path.join(p, "qtopengl.qch"), os.path.join(p, "qtwidgets.qch")]) addHelpDocumentation(qchs) setAlwaysStartFullHelp() - getStartedNow = getQmlItem("Button", ":WelcomePageStyledBar.WelcomePage_QQuickView", False, + getStartedNow = getQmlItem("Button", welcomePage, False, "text='Get Started Now' id='gettingStartedButton'") if not test.verify(checkIfObjectExists(getStartedNow), "Verifying: Qt Creator displays Welcome Page with Getting Started."): @@ -67,11 +71,9 @@ def main(): invokeMenuItem("File", "Exit") return # select "Examples" topic - mouseClick(waitForObject(getQmlItem("Button", ":WelcomePageStyledBar.WelcomePage_QQuickView", - False, "text='Examples'")), 5, 5, 0, Qt.LeftButton) - test.verify(checkIfObjectExists(getQmlItem("Text", - ":WelcomePageStyledBar.WelcomePage_QQuickView", - False, "text='Examples'")), + mouseClick(waitForObject(getQmlItem("Button", welcomePage, False, "text='Examples'")), + 5, 5, 0, Qt.LeftButton) + test.verify(checkIfObjectExists(getQmlItem("Text", welcomePage, False, "text='Examples'")), "Verifying: 'Examples' topic is opened and the examples are shown.") basePath = "opengl/2dpainting/2dpainting.pro" qt4Exmpl = os.path.join(sdkPath, "Examples", "4.7", basePath) @@ -83,19 +85,18 @@ def main(): cleanUpUserFiles(proFiles) for p in proFiles: removePackagingDirectory(os.path.dirname(p)) - examplesLineEdit = getQmlItem("TextField", ":WelcomePageStyledBar.WelcomePage_QQuickView", + examplesLineEdit = getQmlItem("TextField", welcomePage, False, "id='lineEdit' placeholderText='Search in Examples...'") mouseClick(waitForObject(examplesLineEdit), 5, 5, 0, Qt.LeftButton) test.log("Using examples from Kit %s." - % (waitForObject(getQmlItem("ComboBox", ":WelcomePageStyledBar.WelcomePage_QQuickView", + % (waitForObject(getQmlItem("ComboBox", welcomePage, False, "id='comboBox'")).currentText)) replaceEditorContent(waitForObject(examplesLineEdit), "qwerty") - test.verify(checkIfObjectExists(getQmlItem("Delegate", - ":WelcomePageStyledBar.WelcomePage_QQuickView", + test.verify(checkIfObjectExists(getQmlItem("Delegate", welcomePage, False, "id='delegate' radius='0' caption~='.*'"), False), "Verifying: No example is shown.") replaceEditorContent(waitForObject(examplesLineEdit), "2d painting") - twoDPainting = getQmlItem("Delegate", ":WelcomePageStyledBar.WelcomePage_QQuickView", + twoDPainting = getQmlItem("Delegate", welcomePage, False, "id='delegate' radius='0' caption~='2D Painting.*'") test.verify(checkIfObjectExists(twoDPainting), "Verifying: Example (2D Painting) is shown.") @@ -132,8 +133,10 @@ def main(): cleanUpUserFiles(proFiles) for p in proFiles: removePackagingDirectory(os.path.dirname(p)) - replaceEditorContent(waitForObject(examplesLineEdit), "address book") - addressBook = getQmlItem("Delegate", ":WelcomePageStyledBar.WelcomePage_QQuickView", + examplesLineEditWidget = waitForObject(examplesLineEdit) + mouseClick(examplesLineEditWidget) + replaceEditorContent(examplesLineEditWidget, "address book") + addressBook = getQmlItem("Delegate", welcomePage, False, "id='delegate' radius='0' caption~='Address Book.*'") test.verify(checkIfObjectExists(addressBook), "Verifying: Example (address book) is shown.") mouseClick(waitForObject(addressBook), 5, 5, 0, Qt.LeftButton) diff --git a/tests/system/suite_WELP/tst_WELP04/test.py b/tests/system/suite_WELP/tst_WELP04/test.py index 5422d78c25d..9cc23275d00 100644 --- a/tests/system/suite_WELP/tst_WELP04/test.py +++ b/tests/system/suite_WELP/tst_WELP04/test.py @@ -35,11 +35,15 @@ def main(): if not canTestEmbeddedQtQuick(): test.log("Welcome mode is not scriptable with this Squish version") return + if isQt54Build: + welcomePage = ":WelcomePageStyledBar.WelcomePage_QQuickView" + else: + welcomePage = ":Qt Creator.WelcomePage_QQuickWidget" # open Qt Creator startApplication("qtcreator" + SettingsPath) if not startedWithoutPluginError(): return - getStarted = getQmlItem("Button", ":WelcomePageStyledBar.WelcomePage_QQuickView", False, + getStarted = getQmlItem("Button", welcomePage, False, "text='Get Started Now' id='gettingStartedButton'") if not test.verify(checkIfObjectExists(getStarted), "Verifying: Qt Creator displays Welcome Page with Get Started Now button."): @@ -47,22 +51,20 @@ def main(): invokeMenuItem("File", "Exit") return # select "Tutorials" - mouseClick(waitForObject(getQmlItem("Button", ":WelcomePageStyledBar.WelcomePage_QQuickView", - False, "text='Tutorials'")), 5, 5, 0, Qt.LeftButton) - searchTut = getQmlItem("TextField", ":WelcomePageStyledBar.WelcomePage_QQuickView", False, + mouseClick(waitForObject(getQmlItem("Button", welcomePage, False, "text='Tutorials'")), + 5, 5, 0, Qt.LeftButton) + searchTut = getQmlItem("TextField", welcomePage, False, "placeholderText='Search in Tutorials...' id='lineEdit'") mouseClick(waitForObject(searchTut), 5, 5, 0, Qt.LeftButton) replaceEditorContent(waitForObject(searchTut), "qwerty") - test.verify(checkIfObjectExists(getQmlItem("Text", - ":WelcomePageStyledBar.WelcomePage_QQuickView", + test.verify(checkIfObjectExists(getQmlItem("Text", welcomePage, False, "text='Tutorials'")) and - checkIfObjectExists(getQmlItem("Delegate", - ":WelcomePageStyledBar.WelcomePage_QQuickView", + checkIfObjectExists(getQmlItem("Delegate", welcomePage, False, "id='delegate' radius='0' caption~='.*'"), False), "Verifying: 'Tutorials' topic is opened and nothing is shown.") replaceEditorContent(waitForObject(searchTut), "building and running an example application") - bldRunExmpl = getQmlItem("Delegate", ":WelcomePageStyledBar.WelcomePage_QQuickView", False, + bldRunExmpl = getQmlItem("Delegate", welcomePage, False, "caption='Building and Running an Example Application' " "id='delegate' radius='0'") test.verify(checkIfObjectExists(bldRunExmpl), "Verifying: Expected Text tutorial is shown.") @@ -74,9 +76,10 @@ def main(): # close help widget again to avoid focus issues sendEvent("QCloseEvent", waitForObject(":Help Widget_Help::Internal::HelpWidget")) # check a demonstration video link - replaceEditorContent(waitForObject(searchTut), "embedded device") - test.verify(checkIfObjectExists(getQmlItem("Delegate", - ":WelcomePageStyledBar.WelcomePage_QQuickView", + searchTutWidget = waitForObject(searchTut) + mouseClick(searchTutWidget) + replaceEditorContent(searchTutWidget, "embedded device") + test.verify(checkIfObjectExists(getQmlItem("Delegate", welcomePage, False, "id='delegate' radius='0' caption=" "'Device Creation with Qt'")), "Verifying: Link to the expected demonstration video exists.") diff --git a/tests/system/suite_debugger/tst_qml_js_console/test.py b/tests/system/suite_debugger/tst_qml_js_console/test.py index f6729f4c5a7..8075ddd56a3 100644 --- a/tests/system/suite_debugger/tst_qml_js_console/test.py +++ b/tests/system/suite_debugger/tst_qml_js_console/test.py @@ -151,7 +151,7 @@ def main(): checks = [("color", u"#\u200b008000"), ("width", "50"), ("color ='silver'", "silver", "color", u"#\u200bc0c0c0"), ("width=66", "66", "width"), ("anchors.centerIn", ""), - ("opacity", "1"), ("opacity = .2", u"0.\u200b2", "opacity")] + ("opacity", "1"), ("opacity = .1875", u"0.\u200b1875", "opacity")] # check red inner Rectangle runChecks("text='Rectangle' occurrence='2'", rootIndex, checks) diff --git a/tests/system/suite_general/tst_opencreator_qbs/test.py b/tests/system/suite_general/tst_opencreator_qbs/test.py index 012187a969a..eb431996bf9 100644 --- a/tests/system/suite_general/tst_opencreator_qbs/test.py +++ b/tests/system/suite_general/tst_opencreator_qbs/test.py @@ -31,6 +31,8 @@ source("../../shared/qtcreator.py") def main(): + test.warning("This test is known to fail, see QTCREATORBUG-14828. Skipping it.") + return pathCreator = os.path.join(srcPath, "creator", "qtcreator.qbs") if not neededFilePresent(pathCreator): return diff --git a/tests/system/suite_general/tst_openqt_creator/test.py b/tests/system/suite_general/tst_openqt_creator/test.py index 35697d2416f..4b734767e91 100644 --- a/tests/system/suite_general/tst_openqt_creator/test.py +++ b/tests/system/suite_general/tst_openqt_creator/test.py @@ -40,12 +40,24 @@ def main(): if not startedWithoutPluginError(): return + runButton = findObject(':*Qt Creator.Run_Core::Internal::FancyToolButton') openQmakeProject(pathSpeedcrunch, Targets.DESKTOP_480_DEFAULT) # Wait for parsing to complete - progressBarWait(30000) + waitFor("runButton.enabled", 30000) + # Starting before opening, because this is where Creator froze (QTCREATORBUG-10733) + startopening = datetime.utcnow() openQmakeProject(pathCreator, Targets.DESKTOP_531_DEFAULT) # Wait for parsing to complete - progressBarWait(300000) + startreading = datetime.utcnow() + waitFor("runButton.enabled", 300000) + secondsOpening = (datetime.utcnow() - startopening).seconds + secondsReading = (datetime.utcnow() - startreading).seconds + timeoutOpen = 45 + timeoutRead = 22 + test.verify(secondsOpening <= timeoutOpen, "Opening and reading qtcreator.pro took %d seconds. " + "It should not take longer than %d seconds" % (secondsOpening, timeoutOpen)) + test.verify(secondsReading <= timeoutRead, "Just reading qtcreator.pro took %d seconds. " + "It should not take longer than %d seconds" % (secondsReading, timeoutRead)) naviTreeView = "{column='0' container=':Qt Creator_Utils::NavigationTreeView' text~='%s' type='QModelIndex'}" compareProjectTree(naviTreeView % "speedcrunch( \[\S+\])?", "projecttree_speedcrunch.tsv") diff --git a/tests/system/suite_general/tst_session_handling/test.py b/tests/system/suite_general/tst_session_handling/test.py index 44a062b00dd..e80f2b878ad 100644 --- a/tests/system/suite_general/tst_session_handling/test.py +++ b/tests/system/suite_general/tst_session_handling/test.py @@ -111,19 +111,22 @@ def createAndSwitchToSession(toSession): "window=%s}" % sessionInputDialog)) def checkWelcomePage(sessionName, isCurrent=False): + if isQt54Build: + welcomePage = ":WelcomePageStyledBar.WelcomePage_QQuickView" + else: + welcomePage = ":Qt Creator.WelcomePage_QQuickWidget" switchViewTo(ViewConstants.WELCOME) - mouseClick(waitForObject("{container=':WelcomePageStyledBar.WelcomePage_QQuickView' text='Projects' " - "type='Button' unnamed='1' visible='true'}"), 5, 5, Qt.LeftButton) - waitForObject("{container=':WelcomePageStyledBar.WelcomePage_QQuickView' id='sessionsTitle' " - "text='Sessions' type='Text' unnamed='1' visible='true'}") + mouseClick(waitForObject("{container='%s' text='Projects' type='Button' " + "unnamed='1' visible='true'}" % welcomePage)) + waitForObject("{container='%s' id='sessionsTitle' text='Sessions' type='Text' " + "unnamed='1' visible='true'}" % welcomePage) if isCurrent: sessions = ["default", "%s (current session)" % sessionName] else: sessions = ["default (current session)", sessionName] for sessionName in sessions: - test.verify(object.exists("{container=':WelcomePageStyledBar.WelcomePage_QQuickView' " - "enabled='true' type='LinkedText' " - "unnamed='1' visible='true' text='%s'}" % sessionName), + test.verify(object.exists("{container='%s' enabled='true' type='LinkedText' unnamed='1' " + "visible='true' text='%s'}" % (welcomePage, sessionName)), "Verifying session '%s' exists." % sessionName) def checkNavigator(expectedRows, message): diff --git a/tests/unit/mockup/clangcodemodel/clangcompletionassistinterface.h b/tests/unit/mockup/clangcodemodel/clangcompletionassistinterface.h new file mode 100644 index 00000000000..c97bd4d5626 --- /dev/null +++ b/tests/unit/mockup/clangcodemodel/clangcompletionassistinterface.h @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing +** +** 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 The Qt Company. For licensing terms and +** conditions see http://www.qt.io/terms-conditions. For further information +** use the contact form at http://www.qt.io/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 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#ifndef CLANGCODEMODEL_INTERNAL_CLANGCOMPLETIONASSISTINTERFACE_H +#define CLANGCODEMODEL_INTERNAL_CLANGCOMPLETIONASSISTINTERFACE_H + +#include + +#include + +namespace ClangCodeModel { +namespace Internal { + +class ClangCompletionAssistInterface: public TextEditor::AssistInterface +{ +public: + ClangCompletionAssistInterface(const QByteArray &text, + int position) + : TextEditor::AssistInterface(text, position), + languageFeatures_(CPlusPlus::LanguageFeatures::defaultFeatures()) + {} + + CPlusPlus::LanguageFeatures languageFeatures() const { return languageFeatures_; } + +private: + CPlusPlus::LanguageFeatures languageFeatures_; +}; + +} // namespace Internal +} // namespace ClangCodeModel + +#endif // CLANGCODEMODEL_INTERNAL_CLANGCOMPLETIONASSISTINTERFACE_H diff --git a/src/plugins/projectexplorer/devicesupport/devicetypekitchooser.cpp b/tests/unit/mockup/texteditor/assistenums.h similarity index 73% rename from src/plugins/projectexplorer/devicesupport/devicetypekitchooser.cpp rename to tests/unit/mockup/texteditor/assistenums.h index fe7fcbed3b0..01740e64ef4 100644 --- a/src/plugins/projectexplorer/devicesupport/devicetypekitchooser.cpp +++ b/tests/unit/mockup/texteditor/assistenums.h @@ -1,7 +1,7 @@ /**************************************************************************** ** -** Copyright (C) 2015 Klarälvdalens Datakonsult AB, a KDAB Group company -** Contact: info@kdab.com +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing ** ** This file is part of Qt Creator. ** @@ -28,22 +28,25 @@ ** ****************************************************************************/ -#include "devicetypekitchooser.h" +#ifndef ASSISTENUMS_H +#define ASSISTENUMS_H -#include "../kitinformation.h" +namespace TextEditor { -using namespace ProjectExplorer; - -DeviceTypeKitChooser::DeviceTypeKitChooser(Core::Id deviceType, QWidget *parent) - : KitChooser(parent) - , m_deviceType(deviceType) +enum AssistKind { -} + Completion, + QuickFix, + FollowSymbol +}; -bool DeviceTypeKitChooser::kitMatches(const Kit *k) const +enum AssistReason { - if (!KitChooser::kitMatches(k)) - return false; + IdleEditor, + ActivationCharacter, + ExplicitlyInvoked +}; + +} // TextEditor - return DeviceTypeKitInformation::deviceTypeId(k) == m_deviceType; -} +#endif // ASSISTENUMS_H diff --git a/tests/unit/mockup/texteditor/codeassist/assistinterface.h b/tests/unit/mockup/texteditor/codeassist/assistinterface.h new file mode 100644 index 00000000000..d177a1ae32a --- /dev/null +++ b/tests/unit/mockup/texteditor/codeassist/assistinterface.h @@ -0,0 +1,119 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing +** +** 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 The Qt Company. For licensing terms and +** conditions see http://www.qt.io/terms-conditions. For further information +** use the contact form at http://www.qt.io/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 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#ifndef ASSISTINTERFACE_H +#define ASSISTINTERFACE_H + +#include + +#include + +#include "../assistenums.h" + +namespace TextEditor { + +class AssistInterface +{ +public: + AssistInterface(const QByteArray &text, + int position) + : textDocument_(QString::fromUtf8(text)), + position_(position) + {} + + AssistInterface(QTextDocument *textDocument, + int position, + const QString &fileName, + AssistReason reason) + : textDocument_(textDocument), + fileName_(fileName), + position_(position), + reason_(reason) + {} + + QTextDocument *textDocument() const; + virtual int position() const; + virtual QChar characterAt(int position) const; + virtual QString textAt(int position, int length) const; + virtual QString fileName() const; + virtual AssistReason reason() const; + + +private: + mutable QTextDocument textDocument_; + QString fileName_; + int position_; + AssistReason reason_ = IdleEditor; +}; + +inline QTextDocument *AssistInterface::textDocument() const +{ + return &textDocument_; +} + +inline int AssistInterface::position() const +{ + return position_; +} + +inline QChar AssistInterface::characterAt(int position) const +{ + return textDocument_.characterAt(position); +} + +inline QString AssistInterface::textAt(int position, int length) const +{ + QTextCursor textCursor(&textDocument_); + if (position < 0) + position = 0; + textCursor.movePosition(QTextCursor::End); + if (position + length > textCursor.position()) + length = textCursor.position() - position; + + textCursor.setPosition(position); + textCursor.setPosition(position + length, QTextCursor::KeepAnchor); + + // selectedText() returns U+2029 (PARAGRAPH SEPARATOR) instead of newline + return textCursor.selectedText().replace(QChar::ParagraphSeparator, QLatin1Char('\n')); +} + +inline AssistReason AssistInterface::reason() const +{ + return reason_; +} + +inline QString AssistInterface::fileName() const +{ + return fileName_; +} +} + +#endif // ASSISTINTERFACE_H + diff --git a/tests/unit/unittest/activationsequencecontextprocessortest.cpp b/tests/unit/unittest/activationsequencecontextprocessortest.cpp new file mode 100644 index 00000000000..e69f8b97f13 --- /dev/null +++ b/tests/unit/unittest/activationsequencecontextprocessortest.cpp @@ -0,0 +1,220 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing +** +** 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 The Qt Company. For licensing terms and +** conditions see http://www.qt.io/terms-conditions. For further information +** use the contact form at http://www.qt.io/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 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + + +#include + +#include + +#include + +#include +#include + +#include +#include +#include +#include "gtest-qt-printing.h" + +namespace { + +using ContextProcessor = ClangCodeModel::Internal::ActivationSequenceContextProcessor; +using TextEditor::AssistInterface; +using ClangCodeModel::Internal::ClangCompletionAssistInterface; + +TEST(ActivationSequeneContextProcessor, TextCursorPosition) +{ + ClangCompletionAssistInterface interface("foobar", 4); + ContextProcessor processor{&interface}; + + ASSERT_THAT(processor.textCursor_forTestOnly().position(), 0); +} + +TEST(ActivationSequeneContextProcessor, StringLiteral) +{ + ClangCompletionAssistInterface interface("auto foo = \"bar\"", 12); + ContextProcessor processor{&interface}; + + ASSERT_THAT(processor.completionKind(), CPlusPlus::T_EOF_SYMBOL); +} + +TEST(ActivationSequeneContextProcessor, EndOfStringLiteral) +{ + ClangCompletionAssistInterface interface("auto foo = \"bar\"", 16); + ContextProcessor processor{&interface}; + + ASSERT_THAT(processor.completionKind(), CPlusPlus::T_EOF_SYMBOL); +} + +TEST(ActivationSequeneContextProcessor, FunctionCallComma) +{ + ClangCompletionAssistInterface interface("f(x, ", 4); + ContextProcessor processor{&interface}; + + ASSERT_THAT(processor.completionKind(), CPlusPlus::T_COMMA); +} + +TEST(ActivationSequeneContextProcessor, NonFunctionCallComma) +{ + ClangCompletionAssistInterface interface("int x, ", 6); + ContextProcessor processor{&interface}; + + ASSERT_THAT(processor.completionKind(), CPlusPlus::T_EOF_SYMBOL); +} + +TEST(ActivationSequeneContextProcessor, DoxygenComment) +{ + ClangCompletionAssistInterface interface("//! @", 5); + ContextProcessor processor{&interface}; + + ASSERT_THAT(processor.completionKind(), CPlusPlus::T_DOXY_COMMENT); +} + +TEST(ActivationSequeneContextProcessor, NonDoxygenComment) +{ + ClangCompletionAssistInterface interface("// @", 4); + ContextProcessor processor{&interface}; + + ASSERT_THAT(processor.completionKind(), CPlusPlus::T_EOF_SYMBOL); +} + +TEST(ActivationSequeneContextProcessor, Comment) +{ + ClangCompletionAssistInterface interface("//", 2); + ContextProcessor processor{&interface}; + + ASSERT_THAT(processor.completionKind(), CPlusPlus::T_EOF_SYMBOL); +} + +TEST(ActivationSequeneContextProcessor, InsideALiteral) +{ + ClangCompletionAssistInterface interface("\"foo\"", 2); + ContextProcessor processor{&interface}; + + ASSERT_THAT(processor.completionKind(), CPlusPlus::T_EOF_SYMBOL); +} + +TEST(ActivationSequeneContextProcessor, ShlashInsideAString) +{ + ClangCompletionAssistInterface interface("\"foo/bar\"", 5); + ContextProcessor processor{&interface}; + + ASSERT_THAT(processor.completionKind(), CPlusPlus::T_EOF_SYMBOL); +} + +TEST(ActivationSequeneContextProcessor, ShlashOutsideAString) +{ + ClangCompletionAssistInterface interface("foo/bar", 4); + ContextProcessor processor{&interface}; + + ASSERT_THAT(processor.completionKind(), CPlusPlus::T_EOF_SYMBOL); +} + +TEST(ActivationSequeneContextProcessor, FunctionLeftParen) +{ + ClangCompletionAssistInterface interface("foo(", 4); + ContextProcessor processor{&interface}; + + ASSERT_THAT(processor.completionKind(), CPlusPlus::T_LPAREN); +} + +TEST(ActivationSequeneContextProcessor, TemplateFunctionLeftParen) +{ + ClangCompletionAssistInterface interface("foo(", 7); + ContextProcessor processor{&interface}; + + ASSERT_THAT(processor.completionKind(), CPlusPlus::T_LPAREN); +} + +TEST(ActivationSequeneContextProcessor, ExpressionLeftParen) +{ + ClangCompletionAssistInterface interface("x * (", 5); + ContextProcessor processor{&interface}; + + ASSERT_THAT(processor.completionKind(), CPlusPlus::T_EOF_SYMBOL); +} + +TEST(ActivationSequeneContextProcessor, AngleInclude) +{ + ClangCompletionAssistInterface interface("#include ", 10); + ContextProcessor processor{&interface}; + + ASSERT_THAT(processor.completionKind(), CPlusPlus::T_ANGLE_STRING_LITERAL); +} + +TEST(ActivationSequeneContextProcessor, SlashInclude) +{ + ClangCompletionAssistInterface interface("#include ", 14); + ContextProcessor processor{&interface}; + + ASSERT_THAT(processor.completionKind(), CPlusPlus::T_SLASH); +} + +TEST(ActivationSequeneContextProcessor, QuoteInclude) +{ + ClangCompletionAssistInterface interface("#include \"foo/bar\"", 10); + ContextProcessor processor{&interface}; + + ASSERT_THAT(processor.completionKind(), CPlusPlus::T_STRING_LITERAL); +} + +TEST(ActivationSequeneContextProcessor, SlashInExlude) +{ + ClangCompletionAssistInterface interface("#exclude ", 14); + ContextProcessor processor{&interface}; + + ASSERT_THAT(processor.completionKind(), CPlusPlus::T_EOF_SYMBOL); +} + +TEST(ActivationSequeneContextProcessor, QuoteExclude) +{ + ClangCompletionAssistInterface interface("#exclude \"foo/bar\"", 10); + ContextProcessor processor{&interface}; + + ASSERT_THAT(processor.completionKind(), CPlusPlus::T_EOF_SYMBOL); +} + +TEST(ActivationSequeneContextProcessor, SkipeWhiteSpacesBeforeCursor) +{ + ClangCompletionAssistInterface interface("x-> ", 7); + ContextProcessor processor{&interface}; + + ASSERT_THAT(processor.completionKind(), CPlusPlus::T_ARROW); +} + +TEST(ActivationSequeneContextProcessor, SkipIdentifier) +{ + ClangCompletionAssistInterface interface("x->foo_", 7); + ContextProcessor processor{&interface}; + + ASSERT_THAT(processor.completionKind(), CPlusPlus::T_ARROW); +} + +} diff --git a/tests/unit/unittest/activationsequenceprocessortest.cpp b/tests/unit/unittest/activationsequenceprocessortest.cpp index b12f6487037..d5962cdc5a0 100644 --- a/tests/unit/unittest/activationsequenceprocessortest.cpp +++ b/tests/unit/unittest/activationsequenceprocessortest.cpp @@ -47,14 +47,14 @@ MATCHER_P3(HasResult, completionKind, offset, newPosition, std::string(negation ? "hasn't" : "has") + " result of completion kind " + PrintToString(Token::name(completionKind)) + ", offset " + PrintToString(offset) - + " and new position in document" + PrintToString(newPosition)) + + " and new operator start position" + PrintToString(newPosition)) { if (arg.completionKind() != completionKind || arg.offset() != offset - || arg.position() != newPosition) { + || arg.operatorStartPosition() != newPosition) { *result_listener << "completion kind is " << PrintToString(Token::name(arg.completionKind())) << ", offset is " << PrintToString(arg.offset()) - << " and new position in document is " << PrintToString(arg.position()); + << " and new operator start position is " << PrintToString(arg.operatorStartPosition()); return false; } @@ -133,14 +133,14 @@ TEST(ActivationSequenceProcessor, ArrowStar) TEST(ActivationSequenceProcessor, DoxyGenCommentBackSlash) { - ActivationSequenceProcessor processor(QStringLiteral("\\ "), 3, true); + ActivationSequenceProcessor processor(QStringLiteral(" \\"), 3, true); ASSERT_THAT(processor, HasResult(T_DOXY_COMMENT, 1, 2)); } TEST(ActivationSequenceProcessor, DoxyGenCommentAt) { - ActivationSequenceProcessor processor(QStringLiteral("@ "), 2, true); + ActivationSequenceProcessor processor(QStringLiteral(" @"), 2, true); ASSERT_THAT(processor, HasResult(T_DOXY_COMMENT, 1, 1)); } @@ -182,7 +182,7 @@ TEST(ActivationSequenceProcessor, PositionIsOne) TEST(ActivationSequenceProcessor, PositionIsTwo) { - ActivationSequenceProcessor processor(QStringLiteral("@ x"), 2, true); + ActivationSequenceProcessor processor(QStringLiteral(" @x"), 2, true); ASSERT_THAT(processor, HasResult(T_DOXY_COMMENT, 1, 1)); } diff --git a/tests/unit/unittest/clang_dependency.pri b/tests/unit/unittest/clang_dependency.pri new file mode 100644 index 00000000000..f70a839b7e5 --- /dev/null +++ b/tests/unit/unittest/clang_dependency.pri @@ -0,0 +1,5 @@ +include(../../../src/shared/clang/clang_installation.pri) +requires(!isEmpty(LLVM_LIBS)) + +INCLUDEPATH += $$LLVM_INCLUDEPATH +LIBS += $$LLVM_LIBS diff --git a/tests/unit/unittest/clangcompletioncontextanalyzertest.cpp b/tests/unit/unittest/clangcompletioncontextanalyzertest.cpp new file mode 100644 index 00000000000..08e92ee2f94 --- /dev/null +++ b/tests/unit/unittest/clangcompletioncontextanalyzertest.cpp @@ -0,0 +1,487 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing +** +** 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 The Qt Company. For licensing terms and +** conditions see http://www.qt.io/terms-conditions. For further information +** use the contact form at http://www.qt.io/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 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#include +#include + +#include + +#include + +#include +#include +#include +#include "gtest-qt-printing.h" + +namespace ClangCodeModel { +namespace Internal { + +void PrintTo(const ClangCompletionContextAnalyzer::CompletionAction &completionAction, + ::std::ostream* os) +{ + using CCA = ClangCompletionContextAnalyzer; + + switch (completionAction) { + case CCA::PassThroughToLibClang: *os << "PassThroughToLibClang"; break; + case CCA::PassThroughToLibClangAfterLeftParen: *os << "PassThroughToLibClangAfterLeftParen"; break; + case CCA::CompleteDoxygenKeyword: *os << "CompleteDoxygenKeyword"; break; + case CCA::CompleteIncludePath: *os << "CompleteIncludePath"; break; + case CCA::CompletePreprocessorDirective: *os << "CompletePreprocessorDirective"; break; + case CCA::CompleteSignal: *os << "CompleteSignal"; break; + case CCA::CompleteSlot: *os << "CompleteSlot"; break; + } +} + +} // Internal +} // ClangCodeModel + +namespace { + +using ::testing::PrintToString; +using ClangCodeModel::Internal::ClangCompletionAssistInterface; +using CCA = ClangCodeModel::Internal::ClangCompletionContextAnalyzer; + +class TestDocument +{ +public: + TestDocument(const QByteArray &theSource) + : source(theSource), + position(theSource.lastIndexOf('@')) // Use 'lastIndexOf' due to doxygen: "//! @keyword" + { + source.remove(position, 1); + } + + QByteArray source; + int position; +}; + +bool isPassThrough(CCA::CompletionAction completionAction) +{ + return completionAction != CCA::PassThroughToLibClang + && completionAction != CCA::PassThroughToLibClangAfterLeftParen; +} + +MATCHER(IsPassThroughToClang, std::string(negation ? "isn't" : "is") + " passed through to Clang") +{ + const auto completionAction = arg.completionAction(); + if (isPassThrough(completionAction)) { + *result_listener << "completion action is " << PrintToString(completionAction); + return false; + } + + return true; +} + +// Offsets are relative to positionInText +MATCHER_P4(HasResult, + completionAction, + positionForClangOffset, + positionForProposalOffset, + positionInText, + std::string(negation ? "hasn't" : "has") + + " result of completion action " + PrintToString(completionAction) + + " and offset for clang " + PrintToString(positionForClangOffset) + + " and offset for proprosal " + PrintToString(positionForProposalOffset)) +{ + const int actualPositionForClangOffset = arg.positionForClang() - positionInText; + const int actualPositionForProposalOffset = arg.positionForProposal() - positionInText; + + if (arg.completionAction() != completionAction + || actualPositionForClangOffset != positionForClangOffset + || actualPositionForProposalOffset != positionForProposalOffset) { + *result_listener << "completion action is " << PrintToString(arg.completionAction()) + << " and offset for clang is " << PrintToString(actualPositionForClangOffset) + << " and offset for proprosal is " << PrintToString(actualPositionForProposalOffset); + return false; + } + + return true; +} + +// Offsets are relative to positionInText +MATCHER_P4(HasResultWithoutClangDifference, + completionAction, + positionForClangOffset, + positionForProposalOffset, + positionInText, + std::string(negation ? "hasn't" : "has") + + " result of completion action " + PrintToString(completionAction) + + " and offset for clang " + PrintToString(positionForClangOffset) + + " and offset for proprosal " + PrintToString(positionForProposalOffset)) +{ + const int actualPositionForProposalOffset = arg.positionForProposal() - positionInText; + + if (arg.completionAction() != completionAction + || arg.positionForClang() != positionForClangOffset + || actualPositionForProposalOffset != positionForProposalOffset) { + *result_listener << "completion action is " << PrintToString(arg.completionAction()) + << " and offset for clang is " << PrintToString(arg.positionForClang()) + << " and offset for proprosal is " << PrintToString(actualPositionForProposalOffset); + return false; + } + + return true; +} + +class ClangCompletionContextAnalyzer : public ::testing::Test +{ +protected: + CCA runAnalyzer(const char *text); + +protected: + int positionInText = 0; +}; + +CCA ClangCompletionContextAnalyzer::runAnalyzer(const char *text) +{ + const TestDocument testDocument(text); + ClangCompletionAssistInterface assistInterface(testDocument.source, testDocument.position); + CCA analyzer(&assistInterface, CPlusPlus::LanguageFeatures::defaultFeatures()); + + positionInText = testDocument.position; + + analyzer.analyze(); + + return analyzer; +} + +TEST_F(ClangCompletionContextAnalyzer, WordsBeforeCursor) +{ + auto analyzer = runAnalyzer("foo bar@"); + + ASSERT_THAT(analyzer, HasResult(CCA::PassThroughToLibClang, -3, -3, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, AfterSpace) +{ + auto analyzer = runAnalyzer("foo @"); + + ASSERT_THAT(analyzer, HasResult(CCA::PassThroughToLibClang, 0, 0, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, AtEndOfDotMember) +{ + auto analyzer = runAnalyzer("o.mem@"); + + ASSERT_THAT(analyzer, HasResult(CCA::PassThroughToLibClang, -3, -3, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, AtEndOfDotMemberWithSpaceInside) +{ + auto analyzer = runAnalyzer("o. mem@"); + + ASSERT_THAT(analyzer, HasResult(CCA::PassThroughToLibClang, -3, -3, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, AtBeginOfDotMember) +{ + auto analyzer = runAnalyzer("o.@mem"); + + ASSERT_THAT(analyzer, HasResult(CCA::PassThroughToLibClang, 0, 0, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, AtBeginOfDotMemberWithSpaceInside) +{ + auto analyzer = runAnalyzer("o. @mem"); + + ASSERT_THAT(analyzer, HasResult(CCA::PassThroughToLibClang, 0, 0, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, AtEndOfArrow) +{ + auto analyzer = runAnalyzer("o->mem@"); + + ASSERT_THAT(analyzer, HasResult(CCA::PassThroughToLibClang, -3, -3, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, AtEndOfArrowWithSpaceInside) +{ + auto analyzer = runAnalyzer("o-> mem@"); + + ASSERT_THAT(analyzer, HasResult(CCA::PassThroughToLibClang, -3, -3, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, AtBeginOfArrow) +{ + auto analyzer = runAnalyzer("o->@mem"); + + ASSERT_THAT(analyzer, HasResult(CCA::PassThroughToLibClang, 0, 0, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, AtBeginOfArrowWithSpaceInside) +{ + auto analyzer = runAnalyzer("o-> @mem"); + + ASSERT_THAT(analyzer, HasResult(CCA::PassThroughToLibClang, 0, 0, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, ParameteOneAtCall) +{ + auto analyzer = runAnalyzer("f(@"); + + ASSERT_THAT(analyzer, HasResult(CCA::PassThroughToLibClangAfterLeftParen, -2, 0, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, ParameteTwoAtCall) +{ + auto analyzer = runAnalyzer("f(1,@"); + + ASSERT_THAT(analyzer, HasResult(CCA::PassThroughToLibClangAfterLeftParen, -4, -2, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, ParameteTwoWithSpaceAtCall) +{ + auto analyzer = runAnalyzer("f(1, @"); + + ASSERT_THAT(analyzer, HasResult(CCA::PassThroughToLibClangAfterLeftParen, -5, -3, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, ParameteOneAtSignal) +{ + auto analyzer = runAnalyzer("SIGNAL(@"); + + ASSERT_THAT(analyzer, HasResult(CCA::CompleteSignal, 0, 0, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, ParameteOneWithLettersAtSignal) +{ + auto analyzer = runAnalyzer("SIGNAL(foo@"); + + ASSERT_THAT(analyzer, HasResult(CCA::CompleteSignal, -3, -3, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, ParameteOneAtSlot) +{ + auto analyzer = runAnalyzer("SLOT(@"); + + ASSERT_THAT(analyzer, HasResult(CCA::CompleteSlot, -0, 0, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, ParameteOneWithLettersAtSlot) +{ + auto analyzer = runAnalyzer("SLOT(foo@"); + + ASSERT_THAT(analyzer, HasResult(CCA::CompleteSlot, -3, -3, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, DoxygenWithBackslash) +{ + auto analyzer = runAnalyzer("//! \\@"); + + ASSERT_THAT(analyzer, HasResultWithoutClangDifference(CCA::CompleteDoxygenKeyword, -1, 0, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, DoxygenWithAt) +{ + auto analyzer = runAnalyzer("//! @@"); + + ASSERT_THAT(analyzer, HasResultWithoutClangDifference(CCA::CompleteDoxygenKeyword, -1, 0, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, DoxygenWithParameter) +{ + auto analyzer = runAnalyzer("//! \\par@"); + + ASSERT_THAT(analyzer, HasResultWithoutClangDifference(CCA::CompleteDoxygenKeyword, -1, -3, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, Preprocessor) +{ + auto analyzer = runAnalyzer("#@"); + + ASSERT_THAT(analyzer, HasResultWithoutClangDifference(CCA::CompletePreprocessorDirective, -1, 0, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, PreprocessorIf) +{ + auto analyzer = runAnalyzer("#if@"); + + ASSERT_THAT(analyzer, HasResultWithoutClangDifference(CCA::CompletePreprocessorDirective, -1, -2, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, LocalInclude) +{ + auto analyzer = runAnalyzer("#include \"foo@\""); + + ASSERT_THAT(analyzer, HasResultWithoutClangDifference(CCA::CompleteIncludePath, -1, -3, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, GlobalInclude) +{ + auto analyzer = runAnalyzer("#include "); + + ASSERT_THAT(analyzer, HasResultWithoutClangDifference(CCA::CompleteIncludePath, -1, -3, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, GlocalIncludeWithDirectory) +{ + auto analyzer = runAnalyzer("#include "); + + ASSERT_THAT(analyzer, HasResultWithoutClangDifference(CCA::CompleteIncludePath, -1, 0, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, AfterQuote) +{ + auto analyzer = runAnalyzer("\"@"); + + ASSERT_THAT(analyzer, IsPassThroughToClang()); +} + +TEST_F(ClangCompletionContextAnalyzer, AfterSpaceQuote) +{ + auto analyzer = runAnalyzer(" \"@"); + + ASSERT_THAT(analyzer, IsPassThroughToClang()); +} + +TEST_F(ClangCompletionContextAnalyzer, AfterQuotedText) +{ + auto analyzer = runAnalyzer("\"text\"@"); + + ASSERT_THAT(analyzer, IsPassThroughToClang()); +} + +TEST_F(ClangCompletionContextAnalyzer, InQuotedText) +{ + auto analyzer = runAnalyzer("\"hello cruel@ world\""); + + ASSERT_THAT(analyzer, IsPassThroughToClang()); +} + +TEST_F(ClangCompletionContextAnalyzer, SingleQuote) +{ + auto analyzer = runAnalyzer("'@'"); + + ASSERT_THAT(analyzer, IsPassThroughToClang()); +} + +TEST_F(ClangCompletionContextAnalyzer, AfterLetterInSingleQuoted) +{ + auto analyzer = runAnalyzer("'a@'"); + + ASSERT_THAT(analyzer, IsPassThroughToClang()); +} + +TEST_F(ClangCompletionContextAnalyzer, CommaOperator) +{ + auto analyzer = runAnalyzer("a = b,@\""); + + ASSERT_THAT(analyzer, IsPassThroughToClang()); +} + +TEST_F(ClangCompletionContextAnalyzer, DoxygenMarkerInNonDoxygenComment) +{ + auto analyzer = runAnalyzer("@@"); + + ASSERT_THAT(analyzer, IsPassThroughToClang()); +} + +TEST_F(ClangCompletionContextAnalyzer, DoxygenMarkerInNonDoxygenComment2) +{ + auto analyzer = runAnalyzer("\\@"); + + ASSERT_THAT(analyzer, IsPassThroughToClang()); +} + +TEST_F(ClangCompletionContextAnalyzer, AtEndOfOneLineComment) +{ + auto analyzer = runAnalyzer("// comment@"); + + ASSERT_THAT(analyzer, IsPassThroughToClang()); +} + +TEST_F(ClangCompletionContextAnalyzer, AfterOneLineCommentLine) +{ + auto analyzer = runAnalyzer("// comment\n" + "@"); + + ASSERT_THAT(analyzer, HasResult(CCA::PassThroughToLibClang, 0, 0, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, AfterEmptyOneLineComment) +{ + auto analyzer = runAnalyzer("//\n" + "@"); + + ASSERT_THAT(analyzer, HasResult(CCA::PassThroughToLibClang, 0, 0, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, AfterOneLineDoxygenComment1) +{ + auto analyzer = runAnalyzer("/// comment\n" + "@"); + + ASSERT_THAT(analyzer, HasResult(CCA::PassThroughToLibClang, 0, 0, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, AfterOneLineDoxygenComment2) +{ + auto analyzer = runAnalyzer("//! comment \n" + "@"); + + ASSERT_THAT(analyzer, HasResult(CCA::PassThroughToLibClang, 0, 0, positionInText)); +} + +TEST_F(ClangCompletionContextAnalyzer, BeginEndComment) +{ + auto analyzer = runAnalyzer("/* text@ */"); + + ASSERT_THAT(analyzer, IsPassThroughToClang()); +} + +TEST_F(ClangCompletionContextAnalyzer, Slash) +{ + auto analyzer = runAnalyzer("5 /@"); + + ASSERT_THAT(analyzer, IsPassThroughToClang()); +} + +TEST_F(ClangCompletionContextAnalyzer, LeftParen) +{ + auto analyzer = runAnalyzer("(@"); + + ASSERT_THAT(analyzer, IsPassThroughToClang()); +} + +TEST_F(ClangCompletionContextAnalyzer, TwoLeftParen) +{ + auto analyzer = runAnalyzer("((@"); + + ASSERT_THAT(analyzer, IsPassThroughToClang()); +} + +TEST_F(ClangCompletionContextAnalyzer, AsteriskLeftParen) +{ + auto analyzer = runAnalyzer("*(@"); + + ASSERT_THAT(analyzer, IsPassThroughToClang()); +} + +} diff --git a/tests/unit/unittest/clientserverinprocesstest.cpp b/tests/unit/unittest/clientserverinprocesstest.cpp index 9010b4130f0..c654789bca2 100644 --- a/tests/unit/unittest/clientserverinprocesstest.cpp +++ b/tests/unit/unittest/clientserverinprocesstest.cpp @@ -145,7 +145,7 @@ TEST_F(ClientServerInProcess, SendCompleteCodeCommand) TEST_F(ClientServerInProcess, SendCodeCompletedCommand) { - QVector codeCompletions({Utf8StringLiteral("newFunction()")}); + ClangBackEnd::CodeCompletions codeCompletions({Utf8StringLiteral("newFunction()")}); ClangBackEnd::CodeCompletedCommand command(codeCompletions, 1); EXPECT_CALL(mockIpcClient, codeCompleted(command)) diff --git a/tests/unit/unittest/codecompletionsextractortest.cpp b/tests/unit/unittest/codecompletionsextractortest.cpp index 29b62811bc9..38a1190a3d3 100644 --- a/tests/unit/unittest/codecompletionsextractortest.cpp +++ b/tests/unit/unittest/codecompletionsextractortest.cpp @@ -51,8 +51,7 @@ using ClangBackEnd::TranslationUnit; using ClangBackEnd::CodeCompletion; using ClangBackEnd::UnsavedFiles; using ClangBackEnd::CodeCompletionChunk; - - +using ClangBackEnd::CodeCompletionChunks; namespace { @@ -591,10 +590,10 @@ TEST_F(CodeCompletionsExtractor, CompletionChunksFunction) ::CodeCompletionsExtractor extractor(completeResults.data()); ASSERT_THAT(extractor, HasCompletionChunks(Utf8StringLiteral("Function"), - QVector({{CodeCompletionChunk::ResultType, Utf8StringLiteral("void")}, - {CodeCompletionChunk::TypedText, Utf8StringLiteral("Function")}, - {CodeCompletionChunk::LeftParen, Utf8StringLiteral("(")}, - {CodeCompletionChunk::RightParen, Utf8StringLiteral(")")}}))); + CodeCompletionChunks({{CodeCompletionChunk::ResultType, Utf8StringLiteral("void")}, + {CodeCompletionChunk::TypedText, Utf8StringLiteral("Function")}, + {CodeCompletionChunk::LeftParen, Utf8StringLiteral("(")}, + {CodeCompletionChunk::RightParen, Utf8StringLiteral(")")}}))); } TEST_F(CodeCompletionsExtractor, CompletionChunksFunctionWithOptionalChunks) @@ -604,16 +603,16 @@ TEST_F(CodeCompletionsExtractor, CompletionChunksFunctionWithOptionalChunks) ::CodeCompletionsExtractor extractor(completeResults.data()); ASSERT_THAT(extractor, HasCompletionChunks(Utf8StringLiteral("FunctionWithOptional"), - QVector({{CodeCompletionChunk::ResultType, Utf8StringLiteral("void")}, - {CodeCompletionChunk::TypedText, Utf8StringLiteral("FunctionWithOptional")}, - {CodeCompletionChunk::LeftParen, Utf8StringLiteral("(")}, - {CodeCompletionChunk::Placeholder, Utf8StringLiteral("int x")}, - {CodeCompletionChunk::Optional, Utf8String(), QVector({ - {CodeCompletionChunk::Comma, Utf8StringLiteral(", ")}, - {CodeCompletionChunk::Placeholder, Utf8StringLiteral("char y")}, - {CodeCompletionChunk::Comma, Utf8StringLiteral(", ")}, - {CodeCompletionChunk::Placeholder, Utf8StringLiteral("int z")}})}, - {CodeCompletionChunk::RightParen, Utf8StringLiteral(")")}}))); + CodeCompletionChunks({{CodeCompletionChunk::ResultType, Utf8StringLiteral("void")}, + {CodeCompletionChunk::TypedText, Utf8StringLiteral("FunctionWithOptional")}, + {CodeCompletionChunk::LeftParen, Utf8StringLiteral("(")}, + {CodeCompletionChunk::Placeholder, Utf8StringLiteral("int x")}, + {CodeCompletionChunk::Optional, Utf8String(), CodeCompletionChunks({ + {CodeCompletionChunk::Comma, Utf8StringLiteral(", ")}, + {CodeCompletionChunk::Placeholder, Utf8StringLiteral("char y")}, + {CodeCompletionChunk::Comma, Utf8StringLiteral(", ")}, + {CodeCompletionChunk::Placeholder, Utf8StringLiteral("int z")}})}, + {CodeCompletionChunk::RightParen, Utf8StringLiteral(")")}}))); } TEST_F(CodeCompletionsExtractor, CompletionChunksField) @@ -623,8 +622,8 @@ TEST_F(CodeCompletionsExtractor, CompletionChunksField) ::CodeCompletionsExtractor extractor(completeResults.data()); ASSERT_THAT(extractor, HasCompletionChunks(Utf8StringLiteral("Field"), - QVector({{CodeCompletionChunk::ResultType, Utf8StringLiteral("int")}, - {CodeCompletionChunk::TypedText, Utf8StringLiteral("Field")}}))); + CodeCompletionChunks({{CodeCompletionChunk::ResultType, Utf8StringLiteral("int")}, + {CodeCompletionChunk::TypedText, Utf8StringLiteral("Field")}}))); } TEST_F(CodeCompletionsExtractor, CompletionChunksEnumerator) @@ -634,8 +633,8 @@ TEST_F(CodeCompletionsExtractor, CompletionChunksEnumerator) ::CodeCompletionsExtractor extractor(completeResults.data()); ASSERT_THAT(extractor, HasCompletionChunks(Utf8StringLiteral("Enumerator"), - QVector({{CodeCompletionChunk::ResultType, Utf8StringLiteral("Enumeration")}, - {CodeCompletionChunk::TypedText, Utf8StringLiteral("Enumerator")}}))); + CodeCompletionChunks({{CodeCompletionChunk::ResultType, Utf8StringLiteral("Enumeration")}, + {CodeCompletionChunk::TypedText, Utf8StringLiteral("Enumerator")}}))); } TEST_F(CodeCompletionsExtractor, CompletionChunksEnumeration) @@ -645,7 +644,7 @@ TEST_F(CodeCompletionsExtractor, CompletionChunksEnumeration) ::CodeCompletionsExtractor extractor(completeResults.data()); ASSERT_THAT(extractor, HasCompletionChunks(Utf8StringLiteral("Enumeration"), - QVector({{CodeCompletionChunk::TypedText, Utf8StringLiteral("Enumeration")}}))); + CodeCompletionChunks({{CodeCompletionChunk::TypedText, Utf8StringLiteral("Enumeration")}}))); } TEST_F(CodeCompletionsExtractor, CompletionChunksClass) @@ -655,7 +654,7 @@ TEST_F(CodeCompletionsExtractor, CompletionChunksClass) ::CodeCompletionsExtractor extractor(completeResults.data()); ASSERT_THAT(extractor, HasCompletionChunks(Utf8StringLiteral("Class"), - QVector({{CodeCompletionChunk::TypedText, Utf8StringLiteral("Class")}}))); + CodeCompletionChunks({{CodeCompletionChunk::TypedText, Utf8StringLiteral("Class")}}))); } diff --git a/tests/unit/unittest/completionchunkstotextconvertertest.cpp b/tests/unit/unittest/completionchunkstotextconvertertest.cpp index bc2bb4219a3..ff52c90311e 100644 --- a/tests/unit/unittest/completionchunkstotextconvertertest.cpp +++ b/tests/unit/unittest/completionchunkstotextconvertertest.cpp @@ -39,6 +39,7 @@ namespace { using ClangBackEnd::CodeCompletionChunk; +using ClangBackEnd::CodeCompletionChunks; using Converter = ClangCodeModel::Internal::CompletionChunksToTextConverter; class CompletionChunksToTextConverter : public ::testing::Test @@ -84,7 +85,7 @@ class CompletionChunksToTextConverter : public ::testing::Test TEST_F(CompletionChunksToTextConverter, ParseIsClearingText) { - QVector completionChunks({integerResultType, functionName, leftParen, rightParen}); + CodeCompletionChunks completionChunks({integerResultType, functionName, leftParen, rightParen}); converter.setAddResultType(true); converter.parseChunks(completionChunks); @@ -94,7 +95,7 @@ TEST_F(CompletionChunksToTextConverter, ParseIsClearingText) TEST_F(CompletionChunksToTextConverter, ConvertFunction) { - QVector completionChunks({integerResultType, functionName, leftParen, rightParen}); + CodeCompletionChunks completionChunks({integerResultType, functionName, leftParen, rightParen}); converter.setAddResultType(true); converter.parseChunks(completionChunks); @@ -104,7 +105,7 @@ TEST_F(CompletionChunksToTextConverter, ConvertFunction) TEST_F(CompletionChunksToTextConverter, ConvertFunctionWithParameters) { - QVector completionChunks({integerResultType, functionName, leftParen, functionArgumentX,rightParen}); + CodeCompletionChunks completionChunks({integerResultType, functionName, leftParen, functionArgumentX,rightParen}); converter.setAddResultType(true); converter.setAddPlaceHolderText(true); @@ -115,7 +116,7 @@ TEST_F(CompletionChunksToTextConverter, ConvertFunctionWithParameters) TEST_F(CompletionChunksToTextConverter, ConvertFunctionWithOptionalParameter) { - QVector completionChunks({integerResultType, functionName, leftParen, functionArgumentX, optional,rightParen}); + CodeCompletionChunks completionChunks({integerResultType, functionName, leftParen, functionArgumentX, optional,rightParen}); converter.setAddResultType(true); converter.setAddPlaceHolderText(true); @@ -126,7 +127,7 @@ TEST_F(CompletionChunksToTextConverter, ConvertFunctionWithOptionalParameter) TEST_F(CompletionChunksToTextConverter, ConvertVariable) { - QVector completionChunks({integerResultType, variableName}); + CodeCompletionChunks completionChunks({integerResultType, variableName}); converter.setAddResultType(true); converter.parseChunks(completionChunks); @@ -136,7 +137,7 @@ TEST_F(CompletionChunksToTextConverter, ConvertVariable) TEST_F(CompletionChunksToTextConverter, Enumerator) { - QVector completionChunks({enumerationResultType, enumeratorName}); + CodeCompletionChunks completionChunks({enumerationResultType, enumeratorName}); converter.setAddResultType(true); converter.parseChunks(completionChunks); @@ -146,7 +147,7 @@ TEST_F(CompletionChunksToTextConverter, Enumerator) TEST_F(CompletionChunksToTextConverter, Enumeration) { - QVector completionChunks({className}); + CodeCompletionChunks completionChunks({className}); converter.parseChunks(completionChunks); @@ -155,7 +156,7 @@ TEST_F(CompletionChunksToTextConverter, Enumeration) TEST_F(CompletionChunksToTextConverter, Switch) { - QVector completionChunks({switchName, + CodeCompletionChunks completionChunks({switchName, leftParen, condition, rightParen, @@ -172,7 +173,7 @@ TEST_F(CompletionChunksToTextConverter, Switch) TEST_F(CompletionChunksToTextConverter, For) { - QVector completionChunks({forName, + CodeCompletionChunks completionChunks({forName, leftParen, initStatement, semicolon, @@ -194,7 +195,7 @@ TEST_F(CompletionChunksToTextConverter, For) TEST_F(CompletionChunksToTextConverter, const_cast) { - QVector completionChunks({constCastName, + CodeCompletionChunks completionChunks({constCastName, leftAngle, rightAngle, leftParen, @@ -208,7 +209,7 @@ TEST_F(CompletionChunksToTextConverter, const_cast) TEST_F(CompletionChunksToTextConverter, Throw) { - QVector completionChunks({voidResultType, throwName}); + CodeCompletionChunks completionChunks({voidResultType, throwName}); auto completionName = Converter::convertToName(completionChunks); @@ -217,7 +218,7 @@ TEST_F(CompletionChunksToTextConverter, Throw) TEST_F(CompletionChunksToTextConverter, ElseIf) { - QVector completionChunks({elseName, + CodeCompletionChunks completionChunks({elseName, horizontalSpace, ifName, horizontalSpace, diff --git a/tests/unit/unittest/cplusplus.pri b/tests/unit/unittest/cplusplus.pri index 99a3d7e09c0..d0eb17e6fdb 100644 --- a/tests/unit/unittest/cplusplus.pri +++ b/tests/unit/unittest/cplusplus.pri @@ -1,5 +1,4 @@ INCLUDEPATH += $$PWD -SOURCES += $$PWD/../../../src/libs/3rdparty/cplusplus/Token.cpp - -HEADERS += $$PWD/../../../src/libs/3rdparty/cplusplus/Token.h +include($$PWD/../../../src/libs/utils/utils-lib.pri) +include($$PWD/../../../src/libs/cplusplus/cplusplus-lib.pri) diff --git a/tests/unit/unittest/creator_dependency.pri b/tests/unit/unittest/creator_dependency.pri new file mode 100644 index 00000000000..35e76dbb451 --- /dev/null +++ b/tests/unit/unittest/creator_dependency.pri @@ -0,0 +1,10 @@ +include(../../../src/libs/sqlite/sqlite-lib.pri) +include(../../../src/libs/clangbackendipc/clangbackendipc-lib.pri) +include(../../../src/tools/clangbackend/ipcsource/clangbackendclangipc-source.pri) +include(../../../src/plugins/clangcodemodel/clangcodemodelunittestfiles.pri) +include(cplusplus.pri) + +INCLUDEPATH += \ + $$PWD/../../../src/libs \ + $$PWD/../../../src/libs/3rdparty \ + $$PWD/../../../src/plugins diff --git a/tests/unit/unittest/gmock_dependency.pri b/tests/unit/unittest/gmock_dependency.pri new file mode 100644 index 00000000000..20d5f773349 --- /dev/null +++ b/tests/unit/unittest/gmock_dependency.pri @@ -0,0 +1,35 @@ +GMOCK_DIR = $$(GMOCK_DIR) +!isEmpty(GMOCK_DIR):GTEST_DIR = $$GMOCK_DIR/gtest +linux-* { + isEmpty(GMOCK_DIR):GMOCK_DIR = /usr/include/gmock + !exists($$GTEST_DIR):GTEST_DIR = /usr/include/gtest +} + +requires(exists($$GMOCK_DIR)) +!exists($$GMOCK_DIR):message("No gmock is found! To enabe unit tests set GMOCK_DIR") + +GTEST_SRC_DIR = $$GTEST_DIR +GMOCK_SRC_DIR = $$GMOCK_DIR +linux-* { + !exists($$GTEST_SRC_DIR/src/gtest-all.cc):GTEST_SRC_DIR = /usr/src/gtest + !exists($$GMOCK_SRC_DIR/src/gmock-all.cc):GMOCK_SRC_DIR = /usr/src/gmock +} + +DEFINES += \ + GTEST_HAS_STD_INITIALIZER_LIST_ \ + GTEST_LANG_CXX11 + +INCLUDEPATH *= \ + $$GTEST_DIR \ + $$GTEST_DIR/include \ + $$GMOCK_DIR \ + $$GMOCK_DIR/include \ + $$GTEST_SRC_DIR \ + $$GMOCK_SRC_DIR + +SOURCES += \ + $$GMOCK_SRC_DIR/src/gmock-all.cc \ + $$GTEST_SRC_DIR/src/gtest-all.cc + +HEADERS += \ + $$PWD/gtest-qt-printing.h diff --git a/tests/unit/unittest/readandwritecommandblocktest.cpp b/tests/unit/unittest/readandwritecommandblocktest.cpp index aab8672b433..c3561c141c6 100644 --- a/tests/unit/unittest/readandwritecommandblocktest.cpp +++ b/tests/unit/unittest/readandwritecommandblocktest.cpp @@ -156,7 +156,7 @@ TEST_F(ReadAndWriteCommandBlockTest, CompareCompleteCodeCommand) TEST_F(ReadAndWriteCommandBlockTest, CompareCodeCompletedCommand) { - QVector codeCompletions({Utf8StringLiteral("newFunction()")}); + ClangBackEnd::CodeCompletions codeCompletions({Utf8StringLiteral("newFunction()")}); CompareCommand(ClangBackEnd::CodeCompletedCommand(codeCompletions, 1)); } @@ -183,7 +183,7 @@ TEST_F(ReadAndWriteCommandBlockTest, ReadCommandAfterInterruption) QVariant ReadAndWriteCommandBlockTest::writeCodeCompletedCommand() { - ClangBackEnd::CodeCompletedCommand command(QVector({Utf8StringLiteral("newFunction()")}), 1); + ClangBackEnd::CodeCompletedCommand command(ClangBackEnd::CodeCompletions({Utf8StringLiteral("newFunction()")}), 1); const QVariant writeCommand = QVariant::fromValue(command); writeCommandBlock.write(writeCommand); diff --git a/tests/unit/unittest/translationunittest.cpp b/tests/unit/unittest/translationunittest.cpp index 29ae9cd4686..25235940bf0 100644 --- a/tests/unit/unittest/translationunittest.cpp +++ b/tests/unit/unittest/translationunittest.cpp @@ -132,75 +132,15 @@ TEST(TranslationUnit, ResetedTranslationUnitIsNull) ASSERT_TRUE(translationUnit.isNull()); } -TEST(TranslationUnit, TimeStampForProjectPartChangeIsUpdatedAsNewCxTranslationUnitIsGenerated) +TEST(TranslationUnit, TimeStampIsUpdatedAsNewCxTranslationUnitIsGenerated) { TranslationUnit translationUnit(Utf8StringLiteral(TESTDATA_DIR"/complete_testfile_1.cpp"), UnsavedFiles(), ProjectPart(Utf8StringLiteral("/path/to/projectfile"))); - auto lastChangeTimePoint = translationUnit.lastProjectPartChangeTimePoint(); + auto lastChangeTimePoint = translationUnit.lastChangeTimePoint(); std::this_thread::sleep_for(std::chrono::steady_clock::duration(1)); translationUnit.cxTranslationUnit(); - ASSERT_THAT(translationUnit.lastProjectPartChangeTimePoint(), Gt(lastChangeTimePoint)); -} - -TEST(TranslationUnit, TimeStampForProjectPartChangeIsUpdatedAsProjectPartIsCleared) -{ - ProjectPart projectPart(Utf8StringLiteral("/path/to/projectfile")); - TranslationUnit translationUnit(Utf8StringLiteral(TESTDATA_DIR"/complete_testfile_1.cpp"), UnsavedFiles(), projectPart); - translationUnit.cxTranslationUnit(); - auto lastChangeTimePoint = translationUnit.lastProjectPartChangeTimePoint(); - std::this_thread::sleep_for(std::chrono::steady_clock::duration(1)); - - projectPart.clear(); - translationUnit.cxTranslationUnit(); - - ASSERT_THAT(translationUnit.lastProjectPartChangeTimePoint(), Gt(lastChangeTimePoint)); -} - -TEST(TranslationUnit, ReparseIsNeededAfterUnsavedFilesAreChanged) -{ - UnsavedFiles unsavedFiles; - TranslationUnit translationUnit(Utf8StringLiteral(TESTDATA_DIR"/complete_testfile_1.cpp"), - unsavedFiles, - ProjectPart(Utf8StringLiteral("/path/to/projectfile"))); - translationUnit.cxTranslationUnit(); - unsavedFiles.clear(); - translationUnit.cxTranslationUnit(); - - unsavedFiles.clear(); - - ASSERT_TRUE(translationUnit.isNeedingReparse()); -} - -TEST(TranslationUnit, NeedsNoReparseAfterUnsavedFilesAreNotChanged) -{ - UnsavedFiles unsavedFiles; - TranslationUnit translationUnit(Utf8StringLiteral(TESTDATA_DIR"/complete_testfile_1.cpp"), - unsavedFiles, - ProjectPart(Utf8StringLiteral("/path/to/projectfile"))); - translationUnit.cxTranslationUnit(); - unsavedFiles.clear(); - translationUnit.cxTranslationUnit(); - - ASSERT_FALSE(translationUnit.isNeedingReparse()); -} - -TEST(TranslationUnit, TimeStampForUnsavedFilesChange) -{ - UnsavedFiles unsavedFiles; - TranslationUnit translationUnit(Utf8StringLiteral(TESTDATA_DIR"/complete_testfile_1.cpp"), - unsavedFiles, - ProjectPart(Utf8StringLiteral("/path/to/projectfile"))); - translationUnit.cxTranslationUnit(); - unsavedFiles.clear(); - translationUnit.cxTranslationUnit(); - auto lastChangeTimePoint = translationUnit.lastUnsavedFilesChangeTimePoint(); - std::this_thread::sleep_for(std::chrono::steady_clock::duration(1)); - - unsavedFiles.clear(); - translationUnit.cxTranslationUnit(); - - ASSERT_THAT(translationUnit.lastUnsavedFilesChangeTimePoint(), Gt(lastChangeTimePoint)); + ASSERT_THAT(translationUnit.lastChangeTimePoint(), Gt(lastChangeTimePoint)); } diff --git a/tests/unit/unittest/unittest.pro b/tests/unit/unittest/unittest.pro index 826bf52f8c1..42e7287c0ca 100644 --- a/tests/unit/unittest/unittest.pro +++ b/tests/unit/unittest/unittest.pro @@ -1,90 +1,56 @@ -QT += core network testlib widgets +INCLUDEPATH += ../mockup -TARGET = unittest -CONFIG += console c++14 testcase -CONFIG -= app_bundle - -TEMPLATE = app - -GMOCK_DIR = $$(GMOCK_DIR) -GTEST_DIR = $$GMOCK_DIR/gtest - -requires(exists($$GMOCK_DIR)) -!exists($$GMOCK_DIR):message("No gmock is found! To enabe unit tests set GMOCK_DIR") - -INCLUDEPATH += $$GTEST_DIR $$GTEST_DIR/include $$GMOCK_DIR $$GMOCK_DIR/include - -include(../../../src/libs/sqlite/sqlite-lib.pri) -include(../../../src/libs/clangbackendipc/clangbackendipc-lib.pri) -include(../../../src/tools/clangbackend/ipcsource/clangbackendclangipc-source.pri) -include(../../../src/shared/clang/clang_installation.pri) -include(../../../src/plugins/clangcodemodel/clangcodemodelunittestfiles.pri) -include(cplusplus.pri) - -INCLUDEPATH += $$PWD/../../../src/libs $$PWD/../../../src/plugins $$PWD/../../../src/libs/3rdparty - -requires(!isEmpty(LLVM_LIBS)) - -LIBS += $$LLVM_LIBS -INCLUDEPATH += $$LLVM_INCLUDEPATH +include(gmock_dependency.pri) +include(clang_dependency.pri) +include(creator_dependency.pri) +QT += core network testlib widgets +CONFIG += console c++14 testcase +CONFIG -= app_bundle osx:QMAKE_CXXFLAGS = -stdlib=libc++ -SOURCES += main.cpp \ - $$GTEST_DIR/src/gtest-all.cc \ - $$GMOCK_DIR/src/gmock-all.cc \ - utf8test.cpp \ - sqlstatementbuildertest.cpp \ +DEFINES += \ + QT_NO_CAST_FROM_ASCII \ + CLANGBACKEND_TESTS \ + DONT_CHECK_COMMAND_COUNTER \ + TESTDATA_DIR=\"R\\\"xxx($$PWD/data)xxx\\\"\" +win32:DEFINES += ECHOSERVER=\"R\\\"xxx($$OUT_PWD/../echo)xxx\\\"\" +unix: DEFINES += ECHOSERVER=\"R\\\"xxx($$OUT_PWD/../echoserver/echo)xxx\\\"\" + +SOURCES += \ + activationsequencecontextprocessortest.cpp \ + activationsequenceprocessortest.cpp \ + clangcodecompleteresultstest.cpp \ + clangcompletioncontextanalyzertest.cpp \ + clangipcservertest.cpp \ + clangstringtest.cpp \ + clientserverinprocesstest.cpp \ + clientserveroutsideprocess.cpp \ + codecompletionsextractortest.cpp \ + codecompletiontest.cpp \ + completionchunkstotextconvertertest.cpp \ createtablesqlstatementbuildertest.cpp \ + lineprefixertest.cpp \ + main.cpp \ + projecttest.cpp \ + readandwritecommandblocktest.cpp \ + spydummy.cpp \ sqlitecolumntest.cpp \ + sqlitedatabasebackendtest.cpp \ + sqlitedatabasetest.cpp \ sqlitestatementtest.cpp \ sqlitetabletest.cpp \ - spydummy.cpp \ - sqlitedatabasetest.cpp \ - sqlitedatabasebackendtest.cpp \ - readandwritecommandblocktest.cpp \ - clientserverinprocesstest.cpp \ - clientserveroutsideprocess.cpp \ - codecompletiontest.cpp \ - ../../../src/libs/utils/qtcassert.cpp \ - clangstringtest.cpp \ + sqlstatementbuildertest.cpp \ + translationunitstest.cpp \ translationunittest.cpp \ - clangcodecompleteresultstest.cpp \ - codecompletionsextractortest.cpp \ unsavedfilestest.cpp \ - projecttest.cpp \ - clangipcservertest.cpp \ - translationunitstest.cpp \ - completionchunkstotextconvertertest.cpp \ - lineprefixertest.cpp \ - activationsequenceprocessortest.cpp + utf8test.cpp HEADERS += \ gtest-qt-printing.h \ - spydummy.h \ - ../../../src/libs/utils/qtcassert.h \ mockipclient.h \ - mockipcserver.h - -OTHER_FILES += data/complete_testfile_1.cpp \ - data/complete_completer.cpp \ - data/complete_completer_unsaved.cpp \ - data/complete_extractor_function.cpp \ - data/complete_extractor_function_unsaved.cpp \ - data/complete_extractor_function_unsaved_2.cpp \ - data/complete_extractor_variable.cpp \ - data/complete_extractor_class.cpp \ - data/complete_extractor_namespace.cpp \ - data/complete_extractor_enumeration.cpp \ - data/complete_extractor_constructor.cpp \ - data/complete_translationunit_parse_error.cpp + mockipcserver.h \ + spydummy.h -DEFINES += QT_NO_CAST_FROM_ASCII -DEFINES += CLANGBACKEND_TESTS -DEFINES += DONT_CHECK_COMMAND_COUNTER -DEFINES += GTEST_HAS_STD_INITIALIZER_LIST_ GTEST_LANG_CXX11 - -DEFINES += TESTDATA_DIR=\"R\\\"xxx($$PWD/data)xxx\\\"\" -win32:DEFINES += ECHOSERVER=\"R\\\"xxx($$OUT_PWD/../echo)xxx\\\"\" -unix:DEFINES += ECHOSERVER=\"R\\\"xxx($$OUT_PWD/../echoserver/echo)xxx\\\"\" +OTHER_FILES += $$files(data/*)