diff --git a/doc/images/analyzer-issues.png b/doc/images/analyzer-issues.png deleted file mode 100755 index 7bcaeeecf65..00000000000 Binary files a/doc/images/analyzer-issues.png and /dev/null differ diff --git a/doc/images/beautifier_editor.png b/doc/images/beautifier_editor.png index 9b6159a763e..52d0ded29f0 100644 Binary files a/doc/images/beautifier_editor.png and b/doc/images/beautifier_editor.png differ diff --git a/doc/images/beautifier_options.png b/doc/images/beautifier_options.png index 5b882cc73a2..a6a7767ba84 100644 Binary files a/doc/images/beautifier_options.png and b/doc/images/beautifier_options.png differ diff --git a/doc/images/creator-diff-editor.png b/doc/images/creator-diff-editor.png index bfa3ad376f1..70ae71f7e9c 100644 Binary files a/doc/images/creator-diff-editor.png and b/doc/images/creator-diff-editor.png differ diff --git a/doc/images/creator-qbs-build-app.png b/doc/images/creator-qbs-build-app.png index 43941b093bf..29e45f84fba 100644 Binary files a/doc/images/creator-qbs-build-app.png and b/doc/images/creator-qbs-build-app.png differ diff --git a/doc/images/creator-qbs-build-clean.png b/doc/images/creator-qbs-build-clean.png index 6bd79a7de57..1ced6632727 100644 Binary files a/doc/images/creator-qbs-build-clean.png and b/doc/images/creator-qbs-build-clean.png differ diff --git a/doc/images/creator-qbs-project.png b/doc/images/creator-qbs-project.png index 76466d4758a..fe8d7b5ecdd 100644 Binary files a/doc/images/creator-qbs-project.png and b/doc/images/creator-qbs-project.png differ diff --git a/doc/images/qml-link-debugging-library.png b/doc/images/qml-link-debugging-library.png index cdeb8c7c69a..a6f11db9389 100644 Binary files a/doc/images/qml-link-debugging-library.png and b/doc/images/qml-link-debugging-library.png differ diff --git a/doc/images/qml-observer-view.png b/doc/images/qml-observer-view.png index 923ccf7308d..f75187ecfca 100644 Binary files a/doc/images/qml-observer-view.png and b/doc/images/qml-observer-view.png differ diff --git a/doc/images/qml-profiler-settings.png b/doc/images/qml-profiler-settings.png index ce79ac0c8f8..5d2b78d56d3 100644 Binary files a/doc/images/qml-profiler-settings.png and b/doc/images/qml-profiler-settings.png differ diff --git a/doc/images/qtcreator-autotools-buildrun.png b/doc/images/qtcreator-autotools-buildrun.png index 48eb55151b8..5795b536b5c 100644 Binary files a/doc/images/qtcreator-autotools-buildrun.png and b/doc/images/qtcreator-autotools-buildrun.png differ diff --git a/doc/images/qtcreator-blockhighlighting.png b/doc/images/qtcreator-blockhighlighting.png index 63a5cbc5248..f660e34e5b2 100644 Binary files a/doc/images/qtcreator-blockhighlighting.png and b/doc/images/qtcreator-blockhighlighting.png differ diff --git a/doc/images/qtcreator-code-pasting-options.png b/doc/images/qtcreator-code-pasting-options.png index 2eb9dbe7e06..54701e82d39 100644 Binary files a/doc/images/qtcreator-code-pasting-options.png and b/doc/images/qtcreator-code-pasting-options.png differ diff --git a/doc/images/qtcreator-context-sensitive-help.png b/doc/images/qtcreator-context-sensitive-help.png index c1c84042e77..d26b14469de 100644 Binary files a/doc/images/qtcreator-context-sensitive-help.png and b/doc/images/qtcreator-context-sensitive-help.png differ diff --git a/doc/images/qtcreator-editortoolbar-symbols.png b/doc/images/qtcreator-editortoolbar-symbols.png index 30e5fb5c7a9..e03aebc3ec1 100644 Binary files a/doc/images/qtcreator-editortoolbar-symbols.png and b/doc/images/qtcreator-editortoolbar-symbols.png differ diff --git a/doc/images/qtcreator-fakevim-options.png b/doc/images/qtcreator-fakevim-options.png index 0684ff1975c..357ad246421 100644 Binary files a/doc/images/qtcreator-fakevim-options.png and b/doc/images/qtcreator-fakevim-options.png differ diff --git a/doc/images/qtcreator-font-colors.png b/doc/images/qtcreator-font-colors.png index b4bcafcbd7a..ef6653319bf 100644 Binary files a/doc/images/qtcreator-font-colors.png and b/doc/images/qtcreator-font-colors.png differ diff --git a/doc/images/qtcreator-generic-highlighter.png b/doc/images/qtcreator-generic-highlighter.png index 438eda199c5..19ccebed2bf 100644 Binary files a/doc/images/qtcreator-generic-highlighter.png and b/doc/images/qtcreator-generic-highlighter.png differ diff --git a/doc/images/qtcreator-help-filter-attributes.png b/doc/images/qtcreator-help-filter-attributes.png index 35bd545c6de..2ca849a6009 100644 Binary files a/doc/images/qtcreator-help-filter-attributes.png and b/doc/images/qtcreator-help-filter-attributes.png differ diff --git a/doc/images/qtcreator-help-filters.png b/doc/images/qtcreator-help-filters.png index 1a21a363bbf..38fd932e9a7 100644 Binary files a/doc/images/qtcreator-help-filters.png and b/doc/images/qtcreator-help-filters.png differ diff --git a/doc/images/qtcreator-help-search.png b/doc/images/qtcreator-help-search.png index e6aa198ace1..14ece95700b 100644 Binary files a/doc/images/qtcreator-help-search.png and b/doc/images/qtcreator-help-search.png differ diff --git a/doc/images/qtcreator-manage-definitions.png b/doc/images/qtcreator-manage-definitions.png index 9778e28d638..af3cafff291 100644 Binary files a/doc/images/qtcreator-manage-definitions.png and b/doc/images/qtcreator-manage-definitions.png differ diff --git a/doc/images/qtcreator-options-qbs.png b/doc/images/qtcreator-options-qbs.png index e1d758035f5..f46db113b08 100644 Binary files a/doc/images/qtcreator-options-qbs.png and b/doc/images/qtcreator-options-qbs.png differ diff --git a/doc/images/qtcreator-spliteditorview.png b/doc/images/qtcreator-spliteditorview.png index e7d99593e52..3daa1c8e4a1 100644 Binary files a/doc/images/qtcreator-spliteditorview.png and b/doc/images/qtcreator-spliteditorview.png differ diff --git a/doc/images/qtcreator-togglebookmark.png b/doc/images/qtcreator-togglebookmark.png index 87cd120bab6..dac6c56e6ee 100644 Binary files a/doc/images/qtcreator-togglebookmark.png and b/doc/images/qtcreator-togglebookmark.png differ diff --git a/doc/images/qtcreator-valgrind-callgrind.png b/doc/images/qtcreator-valgrind-callgrind.png index e29d2520270..14781917831 100755 Binary files a/doc/images/qtcreator-valgrind-callgrind.png and b/doc/images/qtcreator-valgrind-callgrind.png differ diff --git a/doc/images/qtcreator-valgrind-memcheck.png b/doc/images/qtcreator-valgrind-memcheck.png new file mode 100644 index 00000000000..3054d4ffbe6 Binary files /dev/null and b/doc/images/qtcreator-valgrind-memcheck.png differ diff --git a/doc/images/qtcreator-valgrind-remote-settings.png b/doc/images/qtcreator-valgrind-remote-settings.png index e4a248b4033..0b9e6146180 100644 Binary files a/doc/images/qtcreator-valgrind-remote-settings.png and b/doc/images/qtcreator-valgrind-remote-settings.png differ diff --git a/doc/images/qtquick-example-property-values.png b/doc/images/qtquick-example-property-values.png deleted file mode 100644 index dadebbbf412..00000000000 Binary files a/doc/images/qtquick-example-property-values.png and /dev/null differ diff --git a/doc/images/qtquick-example-qml-inspector.png b/doc/images/qtquick-example-qml-inspector.png index e85a0766d6c..1f54b49ffb0 100644 Binary files a/doc/images/qtquick-example-qml-inspector.png and b/doc/images/qtquick-example-qml-inspector.png differ diff --git a/doc/images/qtquick-example-script-console.png b/doc/images/qtquick-example-script-console.png deleted file mode 100644 index 1a43cef9a4e..00000000000 Binary files a/doc/images/qtquick-example-script-console.png and /dev/null differ diff --git a/doc/images/qtquick-example-setting-breakpoint1.png b/doc/images/qtquick-example-setting-breakpoint1.png index cf447f15f2c..ae3a112f4a7 100644 Binary files a/doc/images/qtquick-example-setting-breakpoint1.png and b/doc/images/qtquick-example-setting-breakpoint1.png differ diff --git a/doc/images/qtquick-example-setting-breakpoint2.png b/doc/images/qtquick-example-setting-breakpoint2.png index db174cf5119..0294e01ba10 100644 Binary files a/doc/images/qtquick-example-setting-breakpoint2.png and b/doc/images/qtquick-example-setting-breakpoint2.png differ diff --git a/doc/images/qtquick-example-setting-breakpoint3.png b/doc/images/qtquick-example-setting-breakpoint3.png index 4942554ec21..fbe700f7e2c 100644 Binary files a/doc/images/qtquick-example-setting-breakpoint3.png and b/doc/images/qtquick-example-setting-breakpoint3.png differ diff --git a/doc/images/qtquick-example-stack.png b/doc/images/qtquick-example-stack.png index d57666648e8..366485a951a 100644 Binary files a/doc/images/qtquick-example-stack.png and b/doc/images/qtquick-example-stack.png differ diff --git a/doc/images/samegame.png b/doc/images/samegame.png new file mode 100644 index 00000000000..faebd518deb Binary files /dev/null and b/doc/images/samegame.png differ diff --git a/doc/src/analyze/cpu-usage-analyzer.qdoc b/doc/src/analyze/cpu-usage-analyzer.qdoc index 92fac2b990e..cca132761d0 100644 --- a/doc/src/analyze/cpu-usage-analyzer.qdoc +++ b/doc/src/analyze/cpu-usage-analyzer.qdoc @@ -245,13 +245,21 @@ functions that spend the most CPU time most prominently. If a function without debug information is encountered, further unwinding - of the stack may fail. Unwinding will also fail if a QML or JavaScript - function is encountered, and for some symbols implemented in assembler. If - unwinding fails, only part of the call chain is displayed, and the - surrounding functions may seem to be interrupted. This does not necessarily - mean they were actually interrupted during the execution of the - application, but only that they could not be found in the stacks where the - unwinding failed. + of the stack may fail. Unwinding will also fail for some symbols + implemented in assembly language. If unwinding fails, only a part of the + call chain is displayed, and the surrounding functions may seem to be + interrupted. This does not necessarily mean they were actually interrupted + during the execution of the application, but only that they could not be + found in the stacks where the unwinding failed. + + JavaScript functions from the QML engine running in the JIT mode can be + unwound. However, their names will only be displayed when + \c QV4_PROFILE_WRITE_PERF_MAP is set. Compiled JavaScript generated by the + \l{http://doc.qt.io/QtQuickCompiler/}{Qt Quick Compiler} can also be + unwound. In this case the C++ names generated by the compiler are shown for + JavaScript functions, rather than their JavaScript names. When running in + interpreted mode, stack frames involving QML can also be unwound, showing + the interpreter itself, rather than the interpreted JavaScript. Kernel functions included in call chains are shown on the third row of each thread. All kernel functions are summarized and not differentiated any diff --git a/doc/src/analyze/creator-valgrind-overview.qdoc b/doc/src/analyze/creator-valgrind-overview.qdoc index 0932631c891..79242eef917 100644 --- a/doc/src/analyze/creator-valgrind-overview.qdoc +++ b/doc/src/analyze/creator-valgrind-overview.qdoc @@ -59,9 +59,6 @@ For more information about analyzing applications for which you do not have a project, see \l{Running Valgrind Tools on External Applications}. - To stop the currently running analyzer, select \uicontrol {Analyze - > Stop}. - To select options for the Valgrind tools, select \uicontrol {Tools > Options > Analyzer}. You can override the general settings for each project in the \uicontrol {Run Settings} for the project. diff --git a/doc/src/analyze/creator-valgrind.qdoc b/doc/src/analyze/creator-valgrind.qdoc index 28010de2006..08393139056 100644 --- a/doc/src/analyze/creator-valgrind.qdoc +++ b/doc/src/analyze/creator-valgrind.qdoc @@ -54,9 +54,8 @@ \li In the \uicontrol Projects mode, select a debug build configuration. - \li Select \uicontrol Analyze > \uicontrol {Valgrind Memory Analyzer}, - or \uicontrol {Valgrind Memory Analyzer with GDB} if you want to - debug the found problems. + \li Select \uicontrol Debug to open the \uicontrol Debug mode, and then + select \uicontrol Memcheck on the toolbar. \li Select the \inlineimage qtcreator-analyze-start-button.png "Start button" @@ -73,11 +72,11 @@ While the application is running, Memcheck checks all reads and writes of memory and intercepts calls that allocate or free memory or create or - delete memory blocks. When you stop Memcheck, it displays the results in - the \uicontrol Analysis view. Click a line to view where a memory leak + delete memory blocks. The results are displayed when you stop Memcheck. + Click a line to view where a memory leak occurred and a stack trace that shows what caused it. - \image analyzer-issues.png "Analysis view" + \image qtcreator-valgrind-memcheck.png "Memcheck view" Move the mouse on a row to view more information about the function. @@ -93,9 +92,8 @@ Stack traces can get quite large and confusing, and therefore, reading them from the bottom up can help. If the stack trace is not big enough or it is - too big, select \uicontrol {Tools > Options > Analyzer}. - Define the length of the stack trace in the \uicontrol {Backtrace frame count} - field. + too big, select \uicontrol {Tools > Options > Analyzer} and define the + length of the stack trace in the \uicontrol {Backtrace frame count} field. \image qtcreator-valgrind-memcheck-options.png "Memory Analysis options" @@ -164,7 +162,8 @@ \li In the \uicontrol Projects mode, select a release build configuration. - \li Select \uicontrol Analyze > \uicontrol {Valgrind Function Profiler}. + \li Select \uicontrol Debug to open the \uicontrol Debug mode, and then + select \uicontrol Callgrind on the toolbar. \li Select the \inlineimage qtcreator-analyze-start-button.png "Start button" @@ -192,17 +191,17 @@ Since the run-time characteristics of debug and release \l{glossary-build-config}{build configurations} - differ significantly, analytical findings for one build configuration may or + differ significantly, analytical findings for one build configuration may not be relevant for the other. Profiling a debug build often finds a major part of the time being spent in low-level - code like container implementations, while the same code + code, such as container implementations, while the same code does not show up in the profile of a release build of the same application due to inlining and other optimizations typically done there. Many recent compilers allow you to build an optimized application - with debug information present at the same time. Typical - options for GCC are for instance \c{-g -O2}. It is + with debug information present at the same time. For example, typical + options for GCC are: \c{-g -O2}. It is advisable to use such a setup for Callgrind profiling. @@ -279,7 +278,7 @@ \li Select \uicontrol Analyze > \uicontrol {Valgrind Memory Analyzer (External Application)} or \uicontrol {Valgrind Function Profiler (External Application)}. - \image qtcreator-valgrind-remote-settings.png "Start Analyzer dialog" + \image qtcreator-valgrind-remote-settings.png "Start Remote Analysis dialog" \li Specify the application to run and analyze, and the \l{glossary-buildandrun-kit}{kit} to use. diff --git a/doc/src/analyze/qtquick-profiler.qdoc b/doc/src/analyze/qtquick-profiler.qdoc index 6f3753ad409..ced42797600 100644 --- a/doc/src/analyze/qtquick-profiler.qdoc +++ b/doc/src/analyze/qtquick-profiler.qdoc @@ -128,9 +128,9 @@ select \uicontrol Tools > \uicontrol Options > \uicontrol Analyzer. To specify custom QML Profiler settings for a particular project, select - \uicontrol Projects and then select \uicontrol Custom in \uicontrol - {QML Profiler Settings}. To restore the global settings for the project, - select \uicontrol {Restore Global}. + \uicontrol Projects > \uicontrol Run and then select \uicontrol Custom in + \uicontrol {QML Profiler Settings}. To restore the global settings for the + project, select \uicontrol {Restore Global}. \image qml-profiler-settings.png "QML Profiler Settings" @@ -145,6 +145,11 @@ application, potentially wasting memory. However, the flushing itself takes time, which can distort the profiling results. + If you have multiple QML engines and you want to aggregate the data produced + by all of them into one trace, select the \uicontrol {Process data only when + process ends} check box. Otherwise, the profiling stops when one of the + engines stops. + \section1 Attaching to Running Qt Quick Applications To profile Qt Quick applications that are not launched by \QC, select diff --git a/doc/src/debugger/qtquick-debugger-example.qdoc b/doc/src/debugger/qtquick-debugger-example.qdoc index c133e3445fc..b565a25af5e 100644 --- a/doc/src/debugger/qtquick-debugger-example.qdoc +++ b/doc/src/debugger/qtquick-debugger-example.qdoc @@ -63,8 +63,10 @@ \li Select \uicontrol {Debug > Start Debugging > Start Debugging} or press \key{F5}. - \li Once the Same Game application starts, click the \uicontrol {New Game} - button to start a new game. + \li Once the Same Game application starts, select \uicontrol {1 Player} + to start a new game. + + \image samegame.png \li When the debugger hits the breakpoint, it interrupts the application. \QC displays the nested function calls leading to the @@ -93,10 +95,7 @@ \li To execute JavaScript commands in the current context, open the \uicontrol {Debugger Console} output pane. - \li To change the score to 1000, enter \c{gameCanvas.score = 1000} - in the console. - - \image qtquick-example-script-console.png + \image qml-script-console.png \li To remove a breakpoint, right-click it and select \uicontrol {Delete Breakpoint}. @@ -106,25 +105,16 @@ \image qtquick-example-qml-inspector.png - \li Click - \inlineimage qml-inspector-app-on-top.png - (\uicontrol {Show Application on Top}) to keep the application visible - while you interact with the debugger. + \li Select \uicontrol Debug > \uicontrol {Show Application on Top} to + keep the application visible while you interact with the debugger. - \li Click - \inlineimage qml-inspector-select-button.png - (\uicontrol Select) to activate selection mode and then click the - \uicontrol {Quit} button to move into the \uicontrol ButtonLabel component - in the \uicontrol {Locals and Expressions} and the code editor. + \li Select \uicontrol Debug > \uicontrol Select to activate selection + mode and then click the \uicontrol Menu button to move into the + \uicontrol menuButton component in the + \uicontrol {Locals and Expressions} view and the code editor. - \li In the \uicontrol {Locals and Expressions} view, double-click the value of - the \c text property to change it temporarily from \uicontrol {Quit} to - \uicontrol {End Game}. - - \image qtquick-example-property-values.png - - When you select an element, the cursor moves to it in the code - editor, where you can change the value permanently. + \li In the \uicontrol {Locals and Expressions} view, double-click the + value of a property to change it. \endlist diff --git a/doc/src/debugger/qtquick-debugging.qdoc b/doc/src/debugger/qtquick-debugging.qdoc index ef043365634..003429dc5be 100644 --- a/doc/src/debugger/qtquick-debugging.qdoc +++ b/doc/src/debugger/qtquick-debugging.qdoc @@ -186,9 +186,8 @@ \image qml-observer-view.png "QML item tree" - To keep the application visible while you interact with the debugger, click - \inlineimage qml-inspector-app-on-top.png - (\uicontrol {Show Application on Top}). + To keep the application visible while you interact with the debugger, select + \uicontrol Debug > \uicontrol {Show Application on Top}. You can view a QML item in \uicontrol {Locals and Expressions} in the following ways: @@ -199,10 +198,8 @@ \li Select the item in the code editor. - \li Click - \inlineimage qml-inspector-select-button.png - (\uicontrol Select) to activate selection mode and then click an item - in the running application. + \li Select \uicontrol Debug > \uicontrol Select to activate selection + mode and then click an item in the running application. \endlist @@ -215,7 +212,7 @@ When you debug complex applications, you can jump to the position in code where an item is defined or you can zoom into the user interface. - When the \uicontrol Select tool is enabled, you can click items in the running + In the selection mode, you can click items in the running application to jump to their definitions in the code. The properties of the selected item are displayed in the \uicontrol {Locals and Expressions} view. @@ -238,14 +235,9 @@ \endlist - To switch to the zoom mode, click the \uicontrol Zoom button. Click in the - running application to zoom in. Right-click to open a context menu that - contains zoom controls. + To switch out of the selection mode, toggle the \uicontrol Select menu item. - To switch out of the selection or zoom mode, deselect the \uicontrol Select or - \uicontrol Zoom button. - - To move the application running in \QQV to the front, select the - \uicontrol {Show Application on Top} button. + To move the application running in \QQV to the front, select + \uicontrol Debug > \uicontrol {Show Application on Top}. */ diff --git a/doc/src/howto/creator-help.qdoc b/doc/src/howto/creator-help.qdoc index 0e70f3f57e1..3b147336d64 100644 --- a/doc/src/howto/creator-help.qdoc +++ b/doc/src/howto/creator-help.qdoc @@ -197,15 +197,17 @@ space, the help opens in the full-screen help mode. You can specify that the help always opens in full-screen mode or - is detached to an external window. Select \uicontrol {Tools > Options > Help > - General Settings} and specify settings for displaying context-sensitive help + is detached to an external window. Select \uicontrol Tools > + \uicontrol Options > \uicontrol Help > \uicontrol General and specify + settings for displaying context-sensitive help in the \uicontrol {On context help} field. To detach the help window, select - \uicontrol {Always Show Help in External Window}. + \uicontrol {Always Show in External Window}. \section1 Selecting the Start Page You can select the page to display when you open the \uicontrol Help mode in the - \uicontrol {Tools > Options > Help > General Settings > On help start} field. + \uicontrol Tools > \uicontrol Options > \uicontrol Help > \uicontrol General + > \uicontrol {On help start} field. To display the page and help panes that were open when you exited the mode, select the \uicontrol {Show My Tabs from Last Session} option. However, Web pages are not opened, because loading them would slow down opening the \uicontrol Help @@ -221,8 +223,8 @@ \section1 Using Documentation Filters You can filter the documents displayed in the \uicontrol Help mode to find - relevant information faster. Select from a list of filters in the - \uicontrol {Filtered by} field (1). The contents of the \uicontrol Index and \uicontrol Contents + relevant information faster. Select a filter from a list of filters (1). The + contents of the \uicontrol Index and \uicontrol Contents pane in the sidebar change accordingly. \image qtcreator-help-filters.png "Help filters" @@ -249,8 +251,8 @@ \li Click \uicontrol OK. - \li In the \uicontrol Help mode, select the filter in the \uicontrol {Filtered by} - field to see the filtered documentation in the sidebar. + \li In the \uicontrol Help mode, select the filter in the list of + filters to see the filtered documentation in the sidebar. \endlist diff --git a/doc/src/projects/creator-projects-qbs.qdoc b/doc/src/projects/creator-projects-qbs.qdoc index 18c63e7a16d..e7289616ea6 100644 --- a/doc/src/projects/creator-projects-qbs.qdoc +++ b/doc/src/projects/creator-projects-qbs.qdoc @@ -40,6 +40,9 @@ with the build and run kit. \QC automatically creates a Qbs profile for each kit. You can edit the build profiles by adding new keys and values. + To check which Qbs version is being used, select \uicontrol Tools > + \uicontrol Options > \uicontrol Qbs > \uicontrol {Version Info}. + \section1 Building Qbs If you build \QC yourself from the \QC Git repository, you also need to @@ -60,10 +63,22 @@ \list 1 - \li Select \uicontrol File > \uicontrol {New File or Project} > \uicontrol {Plain C - Project (Qbs Build)} or \uicontrol {Plain C++ Project (Qbs Build)} > - \uicontrol Choose, and follow the instructions of the wizard to create a - Qbs project. + \li Select \uicontrol File > \uicontrol {New File or Project} > + \uicontrol {Non-Qt Project} > \uicontrol {Plain C Project} or + \uicontrol {Plain C++ Project} > \uicontrol Choose. + + \li In the \uicontrol {Project Location} dialog, specify the name and + location for the project and select \uicontrol Next. + + \li In the \uicontrol {Define Build System} dialog, select + \uicontrol Qbs in the \uicontrol {Build system} field, and then + select \uicontrol Next. + + \li In the \uicontrol {Kit Selection} dialog, select a build and run kit + for the project, and then select \uicontrol Next. + + \li In the \uicontrol {Project Management} dialog, select + \uicontrol Finish to create a Qbs project. \image creator-qbs-project.png @@ -133,9 +148,6 @@ \list - \li Select \uicontrol {Clean all artifacts} to remove all build - artifacts. - \li Select \uicontrol {Dry run} to test cleaning without executing commands or making permanent changes to the build graph. @@ -165,6 +177,13 @@ \li Select \uicontrol Tools > \uicontrol Options > \uicontrol Qbs. + \li By default, Qbs profiles are stored in the \c qbs directory in the + \QC settings directory to ensure that different \QC instances do not + overwrite each other's profiles. If you only run one \QC instance, + you can store the profiles in the Qbs settings directory instead, + by deselecting the \uicontrol {Store profiles in Qt Creator settings + directory} check box. + \li In the \uicontrol Kit field, select a build and run kit. \li Select \uicontrol Edit to edit the profile associated with the kit. diff --git a/qtcreator.pri b/qtcreator.pri index cb7967f7774..b880bef80ba 100644 --- a/qtcreator.pri +++ b/qtcreator.pri @@ -173,7 +173,7 @@ unix { UI_DIR = $${OUT_PWD}/.uic } -win32-msvc* { +msvc { #Don't warn about sprintf, fopen etc being 'unsafe' DEFINES += _CRT_SECURE_NO_WARNINGS QMAKE_CXXFLAGS_WARN_ON *= -w44996 diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py index 05d529c9946..59941086f70 100644 --- a/share/qtcreator/debugger/qttypes.py +++ b/share/qtcreator/debugger/qttypes.py @@ -101,10 +101,10 @@ def qdump__QChar(d, value): d.putNumChild(0) -def qform__QAbstractItemModel(): +def qform_X_QAbstractItemModel(): return [SimpleFormat, EnhancedFormat] -def qdump__QAbstractItemModel(d, value): +def qdump_X_QAbstractItemModel(d, value): displayFormat = d.currentItemFormat() if displayFormat == SimpleFormat: d.putPlainChildren(value) diff --git a/share/qtcreator/qml-type-descriptions/qt5QtQuick2-bundle.json b/share/qtcreator/qml-type-descriptions/qt5QtQuick2-bundle.json index e715c50c4a8..53c6f6c4960 100644 --- a/share/qtcreator/qml-type-descriptions/qt5QtQuick2-bundle.json +++ b/share/qtcreator/qml-type-descriptions/qt5QtQuick2-bundle.json @@ -42,6 +42,7 @@ "QtQuick.Controls 1.2", "QtQuick.Controls 1.3", "QtQuick.Controls 1.4", + "QtQuick.Controls 2.0", "QtQuick.Controls.Styles 1.0", "QtQuick.Controls.Styles 1.1", "QtQuick.Controls.Styles 1.2", @@ -55,6 +56,7 @@ "QtQuick.Layouts 1.1", "QtQuick.LocalStorage 2.0", "QtQuick.Particles 2.0", + "QtQuick.Templates 2.0", "QtQuick.Window 2.0", "QtQuick.XmlListModel 2.0", "QtSensors 5.3", diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index 87007a42999..d5a2ad0060d 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -13,7 +13,7 @@ Unable to send command line arguments to the already running instance. It appears to be not responding. Do you want to start a new instance of Creator? - Die Kommandozeilen-Argumente konnten nicht an die laufende Instanz übermittelt werden. Sie antwortet nicht. Möchten Sie eine neue Instanz von Qt Creator starten? + Die Kommandozeilenargumente konnten nicht an die laufende Instanz übermittelt werden. Sie antwortet nicht. Möchten Sie eine neue Instanz von Qt Creator starten? Could not find Core plugin in %1 @@ -129,7 +129,7 @@ Remove All - &Alle entfernen + Alle entfernen Remove All Bookmarks @@ -220,101 +220,36 @@ Release with Debug Information - Release mit Debug-Informationen + Release mit Debuginformationen CMakeProjectManager::Internal::CMakeBuildSettingsWidget - - Run CMake... - CMake ausführen... - - - Reconfigure project: - Projekt neu konfigurieren: - - - &Change - &Ändern - Build directory: Build-Verzeichnis: + + &Edit + B&earbeiten + + + &Reset + Zu&rücksetzen + + + Advanced + Erweitert + + + Apply Configuration Changes + Konfigurationsänderungen anwenden + CMake CMake - - CMakeProjectManager::Internal::CMakeOpenProjectWizard - - CMake Wizard - CMake-Assistent - - - - CMakeProjectManager::Internal::CMakeRunConfigurationWidget - - Select Working Directory - Wählen Sie das Arbeitsverzeichnis aus - - - Reset to Default - Auf Vorgabe zurücksetzen - - - Working directory: - Arbeitsverzeichnis: - - - - CMakeProjectManager::Internal::CMakeRunPage - - Run CMake - CMake ausführen - - - Qt Creator needs to run CMake in the new build directory. Some projects require command line arguments to the initial CMake call. - Qt Creator muss cmake im Build-Verzeichnis aufrufen. Für einige Projekte sind dazu Kommandozeilenargumente erforderlich. - - - No generator selected. - Es ist kein Generator ausgewählt. - - - CMake exited with errors. Please check CMake output. - CMake wurde mit einem Fehler beendet. Bitte prüfen Sie die Ausgabe von CMake. - - - Arguments: - Argumente: - - - Generator: - Generator: - - - Open project with errors. - Projekt trotz Fehlern öffnen. - - - The build directory "%1" for build configuration "%2" for target "%3" contains an outdated .cbp file. Qt Creator needs to update this file by running CMake. You can add command line arguments below. Note that CMake remembers command line arguments from the previous runs. - Das Build-Verzeichnis "%1" für die Build-Konfiguration "%2" des Ziels "%3" enthält eine veraltete cbp-Datei. Qt Creator muss die Datei durch einen cmake-Aufruf erneuern. Zusätzliche Kommandozeilenargumente können unten angegeben werden. Beachten Sie, dass cmake die Argumente vorangegangener Aufrufe speichert. - - - The directory "%1" specified in build configuration "%2", for target "%3" does not contain a .cbp file. Qt Creator needs to recreate this file by running CMake. Some projects require command line arguments to the initial CMake call. Note that CMake remembers command line arguments from the previous runs. - Das Verzeichnis "%1", das in Build-Konfiguration "%2" für Ziel "%3" angegeben wurde, enthält keine cbp-Datei. Qt Creator muss die Datei durch einen cmake-Aufruf erzeugen. Für einige Projekte sind dazu Kommandozeilenargumente erforderlich. Beachten Sie, dass cmake die Argumente vorangegangener Aufrufe speichert. - - - Refreshing the .cbp file in "%1" for build configuration "%2" for target "%3". - Aktualisiere die cbp-Datei in "%1" der Build-Konfiguration "%2" für Ziel "%3". - - - Selected kit has no valid CMake executable specified. - Im gewählten Kit wurde keine CMake-Anwendung angegeben. - - CMakeProjectManager::Internal::CMakeSettingsPage @@ -322,60 +257,6 @@ CMake - - CMakeProjectManager::Internal::InSourceBuildPage - - Qt Creator has detected an <b>in-source-build in %1</b> which prevents shadow builds. Qt Creator will not allow you to change the build directory. If you want a shadow build, clean your source directory and re-open the project. - Es wurde ein <b>Build im Quellverzeichnis %1</b> festgestellt, der Shadow-Builds verhindert. Das Build-Verzeichnis kann nicht in Qt Creator geändert werden. Wenn Sie einen Shadow-Build wünschen, bereinigen Sie bitte das Quellverzeichnis und öffnen Sie das Projekt noch einmal. - - - Build Location - Build-Ordner - - - - CMakeProjectManager::Internal::MakeStepConfigWidget - - Override command: - Kommando überschreiben: - - - Additional arguments: - Zusätzliche Argumente: - - - Targets: - Ziele: - - - <b>No build configuration found on this kit.</b> - <b>Für dieses Kit konnte keine Build-Konfiguration gefunden werden.</b> - - - Make - CMakeProjectManager::MakeStepConfigWidget display name. - Make - - - - CMakeProjectManager::Internal::ShadowBuildPage - - Please enter the directory in which you want to build your project. - Bitte geben Sie das Verzeichnis ein, in dem das Projekt erstellt werden soll. - - - Please enter the directory in which you want to build your project. Qt Creator recommends to not use the source directory for building. This ensures that the source directory remains clean and enables multiple builds with different settings. - Bitte geben Sie das Verzeichnis ein, in dem das Projekt erstellt werden soll. Es wird empfohlen, nicht das Quellverzeichnis zum Erstellen zu verwenden. Das ermöglicht es, verschiedene Builds mit verschiedenen Einstellungen zu erstellen. - - - Build directory: - Build-Verzeichnis: - - - Build Location - Build-Pfad - - CPlusPlus::OverviewModel @@ -909,6 +790,22 @@ Trotzdem fortfahren? Go Forward Nächstes + + Split + Teilen + + + Split Side by Side + Nebeneinander teilen + + + Open in New Window + In neuem Fenster öffnen + + + Close Document + Dokument schließen + Core::Internal::EditMode @@ -924,12 +821,12 @@ Trotzdem fortfahren? <Sprache des Betriebssystems> - Interface - Oberfläche + Restart Required + Neustart erforderlich - Restart required - Neustart erforderlich + Interface + Oberfläche The language change will take effect after a restart of Qt Creator. @@ -954,7 +851,7 @@ Trotzdem fortfahren? Reset to default. Color - Zurücksetzen. + Auf Vorgabe zurücksetzen. Reset Warnings @@ -963,7 +860,7 @@ Trotzdem fortfahren? Re-enable warnings that were suppressed by selecting "Do Not Show Again" (for example, missing highlighter). - Alle Warnungen wieder aktivieren, die durch eine "Nicht noch einmal anzeigen"-Schaltfläche unterdrückt wurden (zum Beispiel fehlende Syntaxhervorhebung). + Alle Warnungen wieder aktivieren, die durch "Nicht noch einmal anzeigen" unterdrückt wurden (zum Beispiel fehlende Syntaxhervorhebung). Theme: @@ -1287,12 +1184,12 @@ Trotzdem fortfahren? F6 - Ctrl+9 - Ctrl+9 + Ctrl+Shift+9 + Ctrl+Shift+9 - Alt+9 - Alt+9 + Alt+Shift+9 + Alt+Shift+9 Minimize Output Pane @@ -2175,10 +2072,6 @@ Weiterführende Informationen befinden sich in /etc/sysctl.d/10-ptrace.conf Dereference Pointers Automatically Zeiger automatisch dereferenzieren - - <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>Bewirkt, dass Zeiger im Fenster "Lokale Variablen und Ausdrücke" automatisch dereferenziert werden. Das vereinfacht die Baumanzeige, allerdings geht die Information über die dann fehlende Zwischenstufe verloren. - Show "std::" Namespace in Types "std::"-Namensraum in Typnamen anzeigen @@ -2203,6 +2096,14 @@ Weiterführende Informationen befinden sich in /etc/sysctl.d/10-ptrace.conf <p>Shows Qt namespace prefix for Qt types. This is only relevant if Qt was configured with "-qtnamespace". <p>Qt-Namensraum bei Datentypen aus Qt anzeigen. Das ist nur relevant, wenn Qt mit '-qtnamespace' konfiguriert wurde. + + Show QObject names if available + Falls möglich QObject-Namen anzeigen + + + <p>Displays the objectName property of QObject based items. Note that this can negatively impact debugger performance even if no QObjects are present. + <p>Zeigt die objectName-Eigenschaft von QObject basierten Elementen an. Dies kann die Debugger-Geschwindigkeit verschlechtern, selbst wenn keine QObjects benutzt werden. + Sort Members of Classes and Structs Alphabetically Mitglieder von Klassen und Strukturen alphabetisch sortieren @@ -2259,6 +2160,10 @@ Weiterführende Informationen befinden sich in /etc/sysctl.d/10-ptrace.conf Synchronize Breakpoints Haltepunkte synchronisieren + + <p>This switches the Locals and Expressions view to automatically dereference pointers. This saves a level in the tree view, but also loses data for the now-missing intermediate level. + <p>Weist den Debugger an automatisch dereferenzierte Zeiger anzuzeigen. Dadurch ist die Baumansicht flacher, aber weniger detailreich. + Adjust Breakpoint Locations Positionen der Haltepunkte korrigieren @@ -2360,7 +2265,7 @@ Weiterführende Informationen befinden sich in /etc/sysctl.d/10-ptrace.conf Debugger::Internal::GdbEngine The last waitFor...() function timed out. The state of QProcess is unchanged, and you can try calling waitFor...() again. - Zeitüberschreitung bei der letzten waitFor...()-Funktion. Der Status des QProcess ist unverändert, und waitFor...() kann noch einmal gerufen. + Zeitüberschreitung bei der letzten waitFor...()-Funktion. Der Status des QProcess ist unverändert und waitFor...() kann noch einmal benutzt werden. Reading %1... @@ -2372,11 +2277,11 @@ Weiterführende Informationen befinden sich in /etc/sysctl.d/10-ptrace.conf Application exited after receiving signal %1 - Die Anwendung wurde nach Erhalt des Signals %1 beendet. + Die Anwendung wurde nach Empfang des Signals %1 beendet Application exited normally - Die Anwendung wurde normal beendet. + Die Anwendung wurde normal beendet Stopped. @@ -2500,6 +2405,10 @@ Sie haben die Wahl zu warten oder das Debuggen abzubrechen. Value changed from %1 to %2. Wert von %1 auf %2 geändert. + + The selected build of GDB supports Python scripting, but the used version %1.%2 is not sufficient for Qt Creator. Supported versions are Python 2.7 and 3.x. + Dieser GDB versteht zwar Python-Skripte, aber diese Version %1.%2 ist für QtCreator ungeeignet. Unterstützte Python-Versionen sind 2.7 und 3.x. + Cannot continue debugged process: Der zu debuggende Prozess kann nicht fortgesetzt werden: @@ -2550,7 +2459,7 @@ Versuchen Sie: %2 Cannot jump. Stopped - Kann nicht überspringen. Angehalten. + Kann nicht überspringen. Angehalten Step requested... @@ -2706,7 +2615,7 @@ Versuchen Sie: %2 Positionen der Haltepunkte korrigieren - GDB allows setting breakpoints on source lines for which no code + GDB allows setting breakpoints on source lines for which no code was generated. In such situations the breakpoint is shifted to the next source code line for which code was actually generated. This option reflects such temporary change by moving the breakpoint @@ -2905,8 +2814,8 @@ receives a signal like SIGSEGV during debugging. Inhalt als %1&nbsp;bit&nbsp;Binärwerte - Contents as %1-bit Floating Point Values - Inhalt als %1&nbsp;bit&nbsp;Gleitkommawerte + Content as %1-bit Floating Point Values + Inhalt als %1&nbsp;bit&nbsp;Gleitkommazahlen Name @@ -3079,19 +2988,6 @@ receives a signal like SIGSEGV during debugging. Name - - Debugger::Internal::WatchData - - <not in scope> - Value of variable in Debugger Locals display for variables out of scope (stopped above initialization). - <nicht im Bereich> - - - %1 <shadowed %2> - Display of variables shadowed by variables of the same name in nested scopes: Variable %1 is the variable name, %2 is a simple count. - %1 <überlagert %2> - - Debugger::Internal::WatchHandler @@ -3102,18 +2998,18 @@ receives a signal like SIGSEGV during debugging. Internal Type Interner Typ - - Displayed Type - Angezeigter Typ - Object Address - Adresse des Objekts + Objektadresse Pointer Address Zeigeradresse + + Array Index + Array-Index + Static Object Size Statische Objektgröße @@ -3127,7 +3023,7 @@ receives a signal like SIGSEGV during debugging. Internal ID - Interner Name + Interne ID Debugger - Qt Creator @@ -3147,7 +3043,7 @@ receives a signal like SIGSEGV during debugging. <uninitialized> - <nicht initialisiert> + <uninitialisiert> <invalid> @@ -3155,12 +3051,12 @@ receives a signal like SIGSEGV during debugging. <not accessible> - <nicht zugänglich> + <unzugänglich> <at least %n items> - <wenigstens %n Element> + <wenigstens ein Element> <wenigstens %n Elemente> @@ -3189,7 +3085,7 @@ receives a signal like SIGSEGV during debugging. ... <cut off> - ... <Rest abgeschnitten> + ... <gekürzt> Value @@ -3863,7 +3759,7 @@ Grund: %3 Would you like to delete the <b>unmerged</b> branch "%1"? - Möchten Sie den Branch "%1" löschen? Es wurde noch <b>keine</b> Merge-Operation durchgeführt. + Es wurde mit dem Branch "%1" noch <b>keine</b> Merge-Operation durchgeführt. Möchten Sie ihn dennoch löschen? Delete Branch @@ -3956,10 +3852,6 @@ Grund: %3 Git::Internal::ChangeSelectionDialog - - Browse &Directory... - &Ordner wählen... - Browse &History... Von &History... @@ -4886,7 +4778,7 @@ Jetzt Commit durchführen? repository - repository + Repository Branch: @@ -4910,7 +4802,7 @@ Jetzt Commit durchführen? By&pass hooks: - Hooks umgehen: + &Hooks umgehen: @@ -6090,6 +5982,10 @@ Add, modify, and remove document filters, which determine the documentation set The plugin "%1" does not exist. Es existiert kein Plugin "%1". + + The plugin "%1" is not tested. + Das Plugin "%1" ist ungetested. + Unknown option %1 Ungültiges Kommandozeilenargument %1 @@ -6367,7 +6263,7 @@ Add, modify, and remove document filters, which determine the documentation set ProjectExplorer::Internal::BuildSettingsWidget &Clone Selected - Auswahl duplizieren + Auswahl &duplizieren No build settings available @@ -6900,7 +6796,7 @@ konnte dem Projekt "%2" nicht hinzugefügt werden. &Rename - Umbenennen + &Umbenennen C&lone @@ -8089,6 +7985,10 @@ Rename %2 to %3 anyway? Font && Colors Zeichensatz && Farben + + Color Scheme for Qt Creator Theme "%1" + Farbschema für Qt Creator Thema "%1" + Copy Color Scheme Farbschema kopieren @@ -8236,13 +8136,6 @@ Rename %2 to %3 anyway? %2 - - TextEditor::Internal::FontSettings - - Customized - Benutzerdefiniert - - TextEditor::Internal::FontSettingsPage @@ -8457,16 +8350,12 @@ Rename %2 to %3 anyway? QML property of a parent item. - QML: Eigenschaft eines externen QML-Objektes + QML-Eigenschaft eines externen QML-Objektes. Property of the same QML item. Eigenschaft desselben QML-Objektes. - - Zoom: %1% - Vergrößerungsfaktor: %1% - Function Funktion @@ -8494,7 +8383,8 @@ Rename %2 to %3 anyway? Occurrences of the symbol under the cursor. (Only the background will be applied.) - Vorkommen des unter der Einfügemarke befindlichen Symbols (nur Hintergrund). + Vorkommen des unter der Einfügemarke befindlichen Symbols. +(Nur der Hintergrund wird benutzt.) Generic text. @@ -9051,10 +8941,6 @@ Außer Leerzeichen innerhalb von Kommentaren und Zeichenketten. Cannot execute "%1". "%1" konnte nicht ausgeführt werden. - - The path <b>%1</b> is not a directory. - Der Pfad '%1' ist kein Ordner. - The path <b>%1</b> is not a file. Der Pfad '%1' ist keine Datei. @@ -9105,6 +8991,14 @@ Außer Leerzeichen innerhalb von Kommentaren und Zeichenketten. A file with that name already exists. Eine Datei dieses Namens existiert bereits. + + Name is empty. + Der Name ist leer. + + + Name does not match "%1". + Der Name passt nicht zu "%1". + Invalid character "%1" found. Ungültiges Zeichen "%1" gefunden. @@ -9163,6 +9057,10 @@ Außer Leerzeichen innerhalb von Kommentaren und Zeichenketten. The file <i>%1</i> has changed outside Qt Creator. Do you want to reload it? Die Datei <i>%1</i> wurde außerhalb von Qt Creator geändert. Möchten Sie sie neu laden? + + &Close + &Schließen + VcsBase @@ -9597,8 +9495,8 @@ Sie können die Änderungen in einem Stash ablegen oder zurücksetzen.Neustart erforderlich - The QML emulation layer path changes will take effect after a restart of the QML Emulation layer or Qt Creator. - Die Pfadänderung der ausführbaren Datei der QML-Emulationsschicht wird nach einem Neustart der QML-Emulationsschicht oder Qt Creators wirksam. + The made changes will take effect after a restart of the QML Emulation layer or Qt Creator. + Die Änderungen werden nach einem Neustart der QML-Emulationsschicht oder von Qt Creator wirksam. Canvas @@ -9712,6 +9610,34 @@ Sie können die Änderungen in einem Stash ablegen oder zurücksetzen.Also warns in the code editor about QML features that are not properly supported by the Qt Quick Designer. Zeigt auch im Code-Editor eine Warnung bei QML-Features an, die vom Qt Quick Designer nicht vollständig unterstützt werden. + + Internationalization + Internationalisierung + + + qsTr() + qsTr() + + + qsTrId() + qsTrId() + + + Show property editor warnings + Zeige Warnungen des Eigenschafteneditors + + + Forward puppet output: + Puppet-Ausgabe weiterleiten: + + + Show warn exceptions + Zeige Warnungsausnahmen + + + Debug puppet: + Debug-Puppet: + Utils::UnixTools @@ -9743,22 +9669,6 @@ Sie können die Änderungen in einem Stash ablegen oder zurücksetzen.Desktop - - CMakeProjectManager::Internal::MakeStep - - Make - Default display name for the cmake make step. - Make - - - - CMakeProjectManager::Internal::MakeStepFactory - - Make - Display name for CMakeProjectManager::MakeStep id. - Make - - Core @@ -10459,34 +10369,6 @@ Sie können die Änderungen in einem Stash ablegen oder zurücksetzen.No kit defined in this project. In diesem Projekt ist kein Kit festgelegt. - - Incompatible Kit - Inkompatibles Kit - - - Kit %1 is incompatible with kit %2. - Das Kit %1 ist nicht zu Kit %2 kompatibel. - - - Build configurations: - Build-Konfigurationen: - - - Deploy configurations: - Deployment-Konfigurationen: - - - Run configurations - Ausführungskonfigurationen: - - - Partially Incompatible Kit - Kit zum Teil nicht kompatibel - - - Some configurations could not be copied. - Einige Konfigurationen konnten nicht kopiert werden. - Cancel Build && Remove Kit Build abbrechen und Kit löschen @@ -10836,24 +10718,6 @@ Dies ist unabhängig vom Wert der Eigenschaft "visible" in QML.No qmlscene installed. qmlscene ist nicht installiert. - - Cannot determine the installation path for Qt version "%1". - Das Installationsverzeichnis der Qt-Version "%1" kann nicht bestimmt werden. - - - Building helper(s) with toolchain "%1"... - - Erstelle Ausgabe-Hilfsbibliothek(en) mit Toolchain "%1"... - - - - Build failed. - Erstellen schlug fehl. - - - Build succeeded. - Erstellung erfolgreich beendet. - Qt for WinCE Qt Version is meant for WinCE @@ -11495,6 +11359,46 @@ Für qmlproject-Projekte benutzen Sie die Eigenschaft importPaths, um Importpfad Qt Creator Plugin Qt Creator-Plugin + + Creates a new project including auto test skeleton. + Erzeugt ein neues Projekt mit Autotestgerüst. + + + Auto Test + Autotest + + + Project and Test Information + Projekt- und Testinformation + + + GUI Application + GUI-Anwendung + + + Test Case Name: + Testfallname: + + + Requires QApplication + Benötigt QApplication + + + Generate initialization and cleanup code + Code für Initialisierung und Bereinigung erzeugen + + + Build auto tests + Erstelle Autotests + + + always + immer + + + debug only + Nur Debug + Creates a qmake-based test project for which a code snippet can be entered. Erstellt ein qmake-basiertes Testprojekt, für welches ein Code-Ausschnitt angegeben werden kann. @@ -12698,33 +12602,6 @@ wenn es außerhalb von git bash aufgerufen wird. Ausführbare Datei des Git-Repository-Browsers - - EditorManager - - Go Back - Zurück - - - Go Forward - Vorwärts - - - Split - Teilen - - - Split Side by Side - Nebeneinander teilen - - - Open in New Window - In neuem Fenster öffnen - - - Close Document - Dokument schließen - - Help::Internal::OpenPagesManager @@ -13126,7 +13003,7 @@ wenn es außerhalb von git bash aufgerufen wird. Name matches MS Windows device. (%1). - Der Name entspricht dem eines Standardgerätes unter MS Windows. (%1) + Der Name entspricht dem eines Standardgerätes unter MS Windows. (%1). File extension %1 is required: @@ -13455,13 +13332,6 @@ Reason: %2 Fehler: %2 - - QmlDumpBuildTask - - Building QML Helpers - Erstelle QML-Hilfsbibliotheken - - CppEditor::InsertDefOperation @@ -13572,18 +13442,10 @@ Fehler: %2 Expected document to contain a Module {} member. Das Dokument sollte ein Modul-{}-Member enthalten. - - Expected only Component and ModuleApi object definitions. - Es sollten nur Component- und ModuleApi-Objektdefinitionen vorhanden sein. - Major version different from 1 not supported. Andere Hauptversionen als 1 werden nicht unterstützt. - - Reading only version 1.1 parts. - Lese nur die Abschnitte der Version 1.1. - Expected only Property, Method, Signal and Enum object definitions, not "%1". Es sollten nur Eigenschafts-, Methoden-, Signal- oder Aufzählungsobjektdefinitionen vorhanden sein, nicht jedoch "%1". @@ -13950,6 +13812,10 @@ konnte nicht unter Versionsverwaltung (%2) gestellt werden Debugger Runtime Debugger-Laufzeit + + Debugger + Debugger + It is only possible to attach to a locally running process. Der Debugger kann sich lediglich an lokal laufende Prozesse anhängen. @@ -14128,6 +13994,14 @@ Qt Creator kann sich nicht anhängen. Breakpoints Haltepunkte + + &Analyze + &Analyse + + + Memory... + Speicher... + Modules Module @@ -14298,7 +14172,7 @@ Qt Creator kann sich nicht anhängen. Debugger::Internal::QmlEngine No application output received in time - In der gegebenen Zeit konnte keine Ausgabe der Anwendung erhalten werden + In der gegebenen Zeit wurde keine Ausgabe der Anwendung empfangen Qt Creator @@ -14309,12 +14183,6 @@ Qt Creator kann sich nicht anhängen. Do you want to retry? Qt Creator konnte keine Verbindung zur Debuggerkomponente im Prozess herstellen. Soll es noch einmal versucht werden? - - - Could not connect to the in-process QML debugger. -%1 - Es konnte keine Verbindung zur Debug-Komponente im Prozess hergestellt werden. -%1 QML Debugger: Remote host closed connection. @@ -14324,6 +14192,10 @@ Soll es noch einmal versucht werden? JS Source for %1 JS-Quelle für %1 + + Could not connect to the in-process QML debugger. %1 + Verbindung zur QML-Debug-Komponente im Prozess fehlgeschlagen. %1 + Starting %1 %2 Starte %1 %2 @@ -15382,13 +15254,6 @@ Lokale Pull-Operationen werden nicht auf den Master-Branch angewandt.MSVC - - ProjectExplorer::Internal::MsvcToolChainConfigWidget - - Initialization: - Initialisierung: - - ProjectExplorer::Internal::ToolChainOptionsPage @@ -15640,14 +15505,6 @@ Lokale Pull-Operationen werden nicht auf den Master-Branch angewandt.Analyse - - Analyzer::Internal::AnalyzerPlugin - - Analyzer - Category under which Analyzer tasks are listed in Issues view - Analyse - - Debugger::Internal::DebuggerSourcePathMappingWidget @@ -16028,37 +15885,6 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält. Kit: - - QtSupport::Internal::DebuggingHelper - - Used to extract QML type information from library-based plugins. - Wird zur Bestimmung von QML-Typinformationen für bibliotheksbasierte Plugins benutzt. - - - QML Dump: - QML-Dump: - - - Build - Erstellen - - - Show compiler output of last build. - Compiler-Ausgabe des letzten Erstellungsvorgangs anzeigen. - - - Show Log - Ausgabe anzeigen - - - Build All - Alles erstellen - - - Compiler: - Compiler: - - QtSupport::Internal::QtVersionInfo @@ -16793,17 +16619,6 @@ Bei vollständiger Cache-Simulation werden weitere Ereigniszähler aktiviert: Leerzeilen nicht berücksichtigen - - CMakeProjectManager::Internal::CMakeEditor - - Changes to cmake files are shown in the project tree after building. - Änderungen in den cmake-Dateien werden nach dem Erstellen im Projektbaum angezeigt. - - - Build now - Jetzt erstellen - - Core::InfoBarDisplay @@ -17056,6 +16871,18 @@ Bei vollständiger Cache-Simulation werden weitere Ereigniszähler aktiviert: Save QML Trace QML-Trace speichern + + QML Profiler (External) + QML-Profiler (extern) + + + A Qml Profiler analysis is still in progress. + Eine QML-Profiler Analyse läuft noch. + + + Start Qml Profiler. + Starte QML-Profiler. + %1 s %1 s @@ -17107,6 +16934,10 @@ Wollen Sie die Daten vorher speichern? BaseQtVersion + + Device type is not supported by Qt version. + Der Gerätetyp wird von der Qt-Version nicht unterstützt. + The compiler "%1" (%2) cannot produce code for the Qt version "%3" (%4). Der Compiler "%1" (%2) kann für die Qt-Version "%3" (%4) keinen Code erstellen. @@ -17192,33 +17023,12 @@ Wollen Sie die Daten vorher speichern? Qmake Not Executable - Qmake nicht ausführbar. + Qmake ist nicht ausführbar This Qt version was already registered as "%1". Diese Qt-Version ist bereits unter "%1" registriert. - - Helpers: None available - Hilfskomponenten: Keine verfügbar - - - Helpers: %1. - %1 is list of tool names. - Hilfskomponenten: %1. - - - <i>Not yet built.</i> - <i>Noch nicht erstellt.</i> - - - <i>Not needed.</i> - <i>Nicht erforderlich.</i> - - - <i>Cannot be compiled.</i> - <i>Kann nicht erstellt werden.</i> - Qt version %1 for %2 Qt-Version %1 für %2 @@ -17255,10 +17065,6 @@ Wollen Sie die Daten vorher speichern? The following ABIs are currently not supported:<ul><li>%1</li></ul> Die folgenden ABIs werden gegenwärtig nicht unterstützt: <ul><li>%1</ul> - - Building Helpers - Erstelle Hilfsbibliotheken - Debugging Helper Build Log for "%1" Erstellungsprotokoll der Ausgabe-Hilfsbibliothek für "%1" @@ -17314,141 +17120,6 @@ Wollen Sie die Daten vorher speichern? Der Snippet-Ordner des Nutzers konnte nicht erstellt werden: %1 - - Valgrind::Internal::CallgrindToolPrivate - - Callers - Aufrufer - - - Functions - Funktionen - - - Callees - Aufgerufene Funktionen - - - Visualization - Visualisierung - - - Go back one step in history. This will select the previously selected item. - Gehe einen Schritt im Verlauf zurück. Das vorher ausgewählte Element wird wieder ausgewählt. - - - Reset all event counters. - Alle Ereigniszähler zurücksetzen. - - - Load External Log File - Externe Logdatei laden - - - Request the dumping of profile information. This will update the Callgrind visualization. - Fordere das Ausschreiben der Profiler-Informationen an. Die Callgrind-Visualisierung wird dadurch aktualisiert. - - - Pause event logging. No events are counted which will speed up program execution during profiling. - Bewirkt, dass keine Ereignisse aufgenommen werden, was die Ausführung des Programmes während des Profilens beschleunigt. - - - Go forward one step in history. - Gehe einen Schritt weiter. - - - Selects which events from the profiling data are shown and visualized. - Bestimmt, welche Ereignisse der Profiler-Daten angezeigt werden. - - - Absolute Costs - Absolute Kosten - - - Show costs as absolute numbers. - Kosten als absolute Werte anzeigen. - - - Relative Costs - Relative Kosten - - - Show costs relative to total inclusive cost. - Zeige Kosten relativ zur Summe der einschließlichen Kosten. - - - Relative Costs to Parent - Kosten relativ zu übergeordnetem Element - - - Show costs relative to parent functions inclusive cost. - Zeige Kosten relativ zu den einschließlichen Kosten der rufenden Funktion. - - - Cost Format - Format der Kosten - - - Enable cycle detection to properly handle recursive or circular function calls. - Aktivieren Sie die Schleifenerkennung, um rekursive oder zyklische Funktionsaufrufe richtig zu behandeln. - - - This removes template parameter lists when displaying function names. - Entfernt Template-Parameterlisten bei der Anzeige von Funktionsnamen. - - - Show Project Costs Only - Nur Projektkosten anzeigen - - - Show only profiling info that originated from this project source. - Nur Profiler-Informationen anzeigen, die aus den Quellen des Projekts herrühren. - - - Filter... - Filter... - - - Profiling aborted. - Profiling abgebrochen. - - - Parsing finished, no data. - Auswertung beendet, keine Daten erhalten. - - - Parsing finished, total cost of %1 reported. - Auswertung beendet, erhaltene Gesamtkosten: %1. - - - Parsing failed. - Die Auswertung schlug fehl. - - - Select this Function in the Analyzer Output - Diese Funktion in der Analyse-Ausgabe auswählen - - - Populating... - Erstelle Ansicht... - - - Open Callgrind Log File - Callgrind-Logdatei öffnen - - - Callgrind Output (callgrind.out*);;All Files (*) - Callgrind-Ausgabedatei (callgrind.out*);;Alle Dateien (*) - - - Callgrind: Failed to open file for reading: %1 - Callgrind: Konnte Datei nicht zum Lesen öffnen: %1 - - - Parsing Profile Data... - Werte Profiler-Daten aus... - - Valgrind::Internal::Visualisation @@ -17512,6 +17183,10 @@ Wollen Sie die Daten vorher speichern? Memory Issues Speicherprobleme + + Memcheck + Memcheck + Load External XML Log File Externe XML-Logdatei laden @@ -17528,6 +17203,40 @@ Wollen Sie die Daten vorher speichern? Error Filter Fehlerfilter + + Valgrind Analyze Memory uses the Memcheck tool to find memory leaks. + Die Speicheranalyse von Valgrind benutzt das Programm "memcheck", um Speicherlecks zu finden. + + + Valgrind Memory Analyzer + Speicheranalyse mit Valgrind + + + Valgrind Memory Analyzer with GDB + Speicheranalyse mit Valgrind und GDB + + + 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. + Die Speicheranalyse mit Valgrind und GDB benutzt das Programm "memcheck", um Speicherlecks zu finden. +Wird ein Problem gefunden, dann wird die Anwendung angehalten und kann untersucht werden. + + + Valgrind Memory Analyzer (External Application) + Speicheranalyse mit Valgrind (externe Anwendung) + + + A Valgrind Memcheck analysis is still in progress. + Ein Valgrind Speichertest läuft noch. + + + Start a Valgrind Memcheck analysis. + Starte einen Valgrind Speichertest. + + + Start a Valgrind Memcheck with GDB analysis. + Starte einen Valgrind Speichertest mit GDB Analyse. + Open Memcheck XML Log File Memcheck-XML-Logdatei öffnen @@ -17544,6 +17253,20 @@ Wollen Sie die Daten vorher speichern? Memcheck: Error occurred parsing Valgrind output: %1 Memcheck: Fehler beim Auswerten der Valgrind-Ausgabe: %1 + + Memory Analyzer Tool finished, %n issues were found. + + Das Speicheranalysewerkzeug wurde beendet; ein Problem wurde gefunden. + Das Speicheranalysewerkzeug wurde beendet; %n Probleme wurde gefunden. + + + + Log file processed, %n issues were found. + + Die Logdatei wurde verarbeitet; ein Problem wurde gefunden. + Die Logdatei wurde verarbeitet; %n Probleme wurden gefunden. + + Welcome::Internal::WelcomeMode @@ -17833,26 +17556,6 @@ Zusätzlich wird die Verbindung zum Gerät getestet. Files Dateien - - Hide files matching: - Verstecke Dateien, die dem folgenden Suchmuster entsprechen: - - - Show files matching: - Zeige Dateien, die dem folgenden Suchmuster entsprechen: - - - Apply Filter - Filter anwenden - - - Generating file list... - -%1 - Dateiliste erstellen... - -%1 - Git::Internal::BranchModel @@ -18079,10 +17782,102 @@ Zusätzlich wird die Verbindung zum Gerät getestet. Input Events Eingabeereignisse + + Debug Messages + Debugnachrichten + JavaScript JavaScript + + GUI Thread + GUI-Thread + + + Render Thread + Render-Thread + + + Render Thread Details + Render-Thread Details + + + Polish + Bereinigen + + + Wait + Warten + + + GUI Thread Sync + GUI-Thread Synchronisation + + + Render Thread Sync + Render-Thread Synchronisation + + + Render + Render + + + Swap + Tauschen + + + Render Preprocess + Render Preprocess + + + Render Update + Render Update + + + Render Bind + Render Bind + + + Render Render + Render Render + + + Material Compile + Material Compile + + + Glyph Render + Glyph Render + + + Glyph Upload + Glyph Upload + + + Texture Bind + Texture Bind + + + Texture Convert + Texture Convert + + + Texture Swizzle + Texture Swizzle + + + Texture Upload + Texture Upload + + + Texture Mipmap + Texture Mipmap + + + Texture Delete + Texture Löschen + Utils::TextFileFormat @@ -18632,8 +18427,12 @@ Zusätzlich wird die Verbindung zum Gerät getestet. Dateien aus Dateisystem - Directory "%1": - Verzeichnis "%1": + Directory + Ordner + + + %1 "%2": + %1 "%2": Path: %1 @@ -18649,12 +18448,12 @@ Filter: %2 &Ordner: - Fi&le pattern: - Such&muster für Dateinamen: + Directory to Search + Suchordner - Directory to search - Zu durchsuchender Ordner + Fi&le pattern: + Such&muster für Dateinamen: @@ -18852,8 +18651,7 @@ Filter: %2 <a href="http://pastebin.com">pastebin.com</a> allows for sending posts to custom subdomains (eg. creator.pastebin.com). Fill in the desired prefix. - <html><head/><body> -<p><a href="http://pastebin.com">pastebin.com</a> erlaubt das Senden an benutzerdefinierte Subdomänen (zum Beispiel creator.pastebin.com). Geben Sie den gewünschten Präfix an.</p></body></html> + <a href="http://pastebin.com">pastebin.com</a> erlaubt das Senden an benutzerdefinierte Subdomänen (zum Beispiel creator.pastebin.com). Geben Sie das gewünschte Präfix an. Server prefix: @@ -19396,6 +19194,14 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält. Pressing Alt displays context-sensitive help or type information as tooltips. Drücken Sie die Alt-Taste um kontextabhängige Hilfe oder Typinformation als Tool-Tip anzuzeigen. + + Using Select Block Up / Down actions will now provide smarter selections. + "Einen Block nach open/unten auswählen" funktioniert nun intelligenter. + + + Enable smart selection changing + Die Änderung der intelligenten Auswahl einschalten + TextEditor::Internal::CodeStyleSelectorWidget @@ -19452,7 +19258,7 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält. Mark &text changes - Änderungen hervorheben + &Textänderungen hervorheben &Visualize whitespace @@ -19735,6 +19541,14 @@ should a repository require SSH-authentication (see documentation on SSH and the Eine Datei, die Nutzernamen in einem vierspaltigen Format (mailmap) enthält: 'Name <E-Mail> Alias <E-Mail>'. + + Reset information about which version control system handles which directory. + Die Zuordnung, welches Versionsverwaltungssystem welchen Ordner behandelt, zurücksetzen. + + + Reset VCS Cache + VCS-Cache zurücksetzen + develop @@ -20136,90 +19950,6 @@ should a repository require SSH-authentication (see documentation on SSH and the ABI: - - QmlProfiler::Internal::QmlProfilerEventsWidget - - Copy Row - Zeile kopieren - - - Copy Table - Tabelle kopieren - - - Extended Event Statistics - Weitere Statistiken zu Ereignissen - - - Limit to Current Range - Auf aktuellen Bereich begrenzen - - - Show Full Range - Ganzen Bereich anzeigen - - - - QmlProfiler::Internal::QmlProfilerEventsMainView - - <program> - <Programm> - - - Main Program - Hauptprogramm - - - <bytecode> - <bytecode> - - - (Opt) - (Opt) - - - Binding is evaluated by the optimized engine. - Das Binding wird von der optimierten Engine ausgewertet. - - - Binding not optimized (might have side effects or assignments, -references to elements in other files, loops, and so on.) - Das Binding ist nicht optimiert (d.h., es hat Seiteneffekte oder Zuweisungen, -Referenzen zu Elementen in anderen Dateien, Schleifen, o.ä.) - - - Source code not available - Kein Quellcode verfügbar - - - Binding loop detected. - Endlosschleife bei Binding festgestellt. - - - Paint - Paint - - - Compile - Kompilierung - - - Create - Erstellung - - - Binding - Binding - - - Signal - Signal - - - JavaScript - JavaScript - - QtSupport::Internal::ExamplesWelcomePage @@ -20368,34 +20098,6 @@ Referenzen zu Elementen in anderen Dateien, Schleifen, o.ä.) Qt Class Generation Qt-Klassenerzeugung - - Desktop - Desktop - - - Embedded Linux - Embedded Linux - - - Windows CE - Windows CE - - - Windows Runtime - Windows Runtime - - - Windows Phone - Windows Phone - - - Android - Android - - - iOS - iOS - RemoteLinux::GenericLinuxDeviceConfigurationWidget @@ -21290,29 +20992,6 @@ Referenzen zu Elementen in anderen Dateien, Schleifen, o.ä.) Ungültiges Signal "%1" vom Server erhalten - - Analyzer::StartRemoteDialog - - Start Remote Analysis - Entfernte Analyse starten - - - Kit: - Kit: - - - Executable: - Ausführbare Datei: - - - Arguments: - Argumente: - - - Working directory: - Arbeitsverzeichnis: - - Android @@ -21622,17 +21301,6 @@ Wählen Sie Einstellungen > Erstellung und Ausführung > Qt Versionen, um Haltepunkt setzen - - DebuggerPlugin - - Install &Debug Information - Installiere &Debuginformationen - - - Tries to install missing debug information. - Versucht, fehlende Debuginformationen zu installieren. - - Debugger::Internal::GdbAttachEngine @@ -21694,12 +21362,16 @@ Wählen Sie Einstellungen > Erstellung und Ausführung > Qt Versionen, um Attach to core "%1" failed: Das Debuggen der core-Datei "%1" schlug fehl: + + Continuing nevertheless. + Trotzdem fortsetzen. + Debugger::Internal::GdbRemoteServerEngine The upload process failed to start. Shell missing? - Das Hochladen schlug fehl. Eine mögliche Ursache könnte ein fehlendes Shell-Programm sein. + Das Hochladen schlug fehl. Fehlt vielleicht ein Shell-Programm? The upload process crashed some time after starting successfully. @@ -22675,10 +22347,6 @@ Soll es noch einmal versucht werden? Debug connection closed Debug-Verbindung geschlossen - - Debug connection error %1 - Debug-Verbindungsfehler %1 - Failed to connect! Konnte nicht verbinden! @@ -22686,10 +22354,6 @@ Soll es noch einmal versucht werden? QmlProfiler::Internal::QmlProfilerStateWidget - - Loading data - Lade Daten - Profiling application Profiliere Anwendung @@ -22698,6 +22362,18 @@ Soll es noch einmal versucht werden? No QML events recorded Es wurden keine QML-Ereignisse aufgenommen + + Processing data + Verarbeite Daten + + + Waiting for more data + Warte auf mehr Daten + + + Clearing old trace + Lösche alten Trace + Application stopped before loading all data Anwendung vor Laden aller Daten gestoppt @@ -22710,12 +22386,12 @@ Soll es noch einmal versucht werden? QmlProfiler::Internal::QmlProfilerTraceView - Limit Events Pane to Current Range - Ereignispanel auf aktuellen Bereich begrenzen + Analyze Current Range + Analysiere aktuellen Bereich - Show Full Range in Events Pane - Ganzen Bereich im Ereignispanel anzeigen + Analyze Full Range + Analysiere kompletten Bereich Reset Zoom @@ -22724,14 +22400,14 @@ Soll es noch einmal versucht werden? QmlProfiler::Internal::QmlProfilerViewManager - - Events - Ereignisse - Timeline Zeitleiste + + QML Profiler + QML-Profiler + Qnx::Internal::QnxDebugSupport @@ -23021,10 +22697,6 @@ Qt Creator know about a likely URI. Qt Version is meant for QNX QNX %1 - - QNX - QNX - No SDK path was set up. Es ist kein SDK-Pfad eingestellt. @@ -23254,7 +22926,7 @@ Qt Creator know about a likely URI. &History count: - Beschränkung der History: + Beschränkung der &History: &Timeout: @@ -23266,11 +22938,11 @@ Qt Creator know about a likely URI. &Automatically check out files on edit - Dateien bei Bearbeitung automatisch anfordern + Bearbeitete Dateien &automatisch auschecken Aut&o assign activity names - Aktivitäten automatisch Namen zuweisen + Aktivitäten aut&omatisch Namen zuweisen &Prompt on check-in @@ -23278,7 +22950,7 @@ Qt Creator know about a likely URI. Di&sable indexer - Indexer deaktivieren + Indexer ab&schalten &Index only VOBs: @@ -23432,7 +23104,7 @@ Qt Creator know about a likely URI. &Undo Check Out "%1" - Auschecken von "%1" rückgängig machen + A&uschecken von "%1" rückgängig machen Meta+L,Meta+U @@ -23448,7 +23120,7 @@ Qt Creator know about a likely URI. Undo Hi&jack "%1" - Hijack von "%1" rückgängig machen + Hi&jack von "%1" rückgängig machen Meta+L,Meta+R @@ -23536,7 +23208,7 @@ Qt Creator know about a likely URI. U&pdate View "%1" - Ansicht "%1" aktualisieren + &Ansicht "%1" aktualisieren Check In All &Files... @@ -23552,7 +23224,7 @@ Qt Creator know about a likely URI. View &Status - Status anzeigen + &Status anzeigen Meta+L,Meta+S @@ -23694,7 +23366,7 @@ Qt Creator know about a likely URI. ClearCase::Internal::ClearCaseSubmitEditorWidget Chec&k in even if identical to previous version - Einchecken auch wenn zur Vorgängerversion identisch + Einchec&ken auch wenn zur Vorgängerversion identisch &Preserve file modification time @@ -24243,7 +23915,7 @@ Qt Creator know about a likely URI. QtSupport::QtKitInformation Qt version - Qt-Version: + Qt-Version The version string of the current Qt version. @@ -24645,14 +24317,6 @@ Qt Creator know about a likely URI. Git::Internal::MergeTool - - Error - Fehler - - - File input for the merge tool requires Git 1.7.8, or later. - Die Dateieingabe für mergetool erfordert git Version >= 1.7.8. - Normal Normal @@ -25041,63 +24705,6 @@ Entfernt: %4 Ungültige Metainformation - - QmlJSTools::Internal::QmlConsoleEdit - - Cu&t - &Ausschneiden - - - &Copy - &Kopieren - - - &Paste - &Einfügen - - - Select &All - Alles aus&wählen - - - C&lear - &Löschen - - - - QmlJSTools::Internal::QmlConsolePane - - Show debug, log, and info messages. - Zeige Debug-, Log- und informative Nachrichten. - - - Show warning messages. - Warnungen anzeigen. - - - Show error messages. - Fehlermeldungen anzeigen. - - - QML/JS Console - QML/JS-Konsole - - - - QmlJSTools::Internal::QmlConsoleView - - &Copy - &Kopieren - - - &Show in Editor - In &Editor anzeigen - - - C&lear - &Löschen - - QtSupport::Internal::QtSupportPlugin @@ -25229,25 +24836,6 @@ Entfernt: %4 Andere schließen - - CMakeProjectManager::Internal::GeneratorInfo - - Ninja (%1) - Ninja (%1) - - - NMake Generator (%1) - NMake-Generator (%1) - - - MinGW Generator (%1) - MinGW-Generator (%1) - - - Unix Generator (%1) - Unix-Generator (%1) - - CppTools::Internal::BuiltinIndexingSupport @@ -25255,13 +24843,6 @@ Entfernt: %4 Werte C/C++-Dateien aus - - QmlJSTools::Internal::QmlConsoleModel - - Can only evaluate during a QML debug session. - Kann nur während einer QML-Debug-Sitzung ausgewertet werden. - - QmlJS::StaticAnalysisMessages @@ -25580,10 +25161,6 @@ Entfernt: %4 QbsProjectManager::Internal::QbsBuildStepConfigWidget - - Dry run - Probelauf - Debug Debug @@ -25640,10 +25217,6 @@ Entfernt: %4 Properties to pass to the project. Eigenschaften, die an das Projekt weitergegeben werden sollen. - - No commands will be executed and no permanent changes to the build graph will be done. - Es werden weder Kommandos ausgeführt noch permanente Änderungen am Build-Graphen vorgenommen. - Keep going when errors occur (if at all possible). Beim Auftreten von Fehlern fortsetzen (falls möglich). @@ -25667,10 +25240,6 @@ Entfernt: %4 QbsProjectManager::Internal::QbsCleanStepConfigWidget - - Clean all artifacts - Alle Artefakte bereinigen - Dry run Probelauf @@ -26045,7 +25614,7 @@ Entfernt: %4 Tab changes focus - Tab ändert Fokus. + Tab ändert Fokus Determines whether tab changes the focus of the text area. @@ -26163,21 +25732,6 @@ Entfernt: %4 Diff-Editor - - CMakeProjectManager::Internal::NoKitPage - - Check Kits - Kits prüfen - - - There are compatible kits. - Es sind kompatible Kits vorhanden. - - - Qt Creator has no kits that are suitable for CMake projects. Please configure a kit. - Qt Creator hat keine für CMake-Projekte geeigneten Kits. Bitte richten Sie ein Kit ein. - - DiffEditor::Internal::DiffEditorPlugin @@ -27290,10 +26844,6 @@ Teilnamen können verwendet werden, sofern sie eindeutig sind. &Error message capture pattern: Muster zur Erkennung von &Fehlern: - - #error (.*):(\d+): (.*)$ - #error (.*):(\d+): (.*)$ - Capture Positions Positionen der Platzhalter @@ -27318,10 +26868,6 @@ Teilnamen können verwendet werden, sofern sie eindeutig sind. E&rror message: F&ehlermeldung: - - #error /home/user/src/test.c:891: Unknown identifier `test` - #error /home/user/src/test.c:891: Unknown identifier `test` - File name: Dateiname: @@ -27347,8 +26893,40 @@ Teilnamen können verwendet werden, sofern sie eindeutig sind. Das Muster ist leer. - Pattern does not match the error message. - Das Muster passt nicht zur Fehlermeldung. + No message given. + Keine Nachricht angegeben. + + + Pattern does not match the message. + Muster passt nicht zur Nachricht. + + + Error + Fehler + + + Capture Output Channels + Ausgabekanäle abfangen + + + Standard output + Standardausgabe + + + Standard error + Standardfehler + + + Warning + Warnung + + + Warning message capture pattern: + Erkennungsmuster für Warnungsnachrichten: + + + Warning message: + Warnungsnachricht: @@ -27370,17 +26948,6 @@ Teilnamen können verwendet werden, sofern sie eindeutig sind. Test des Geräts fehlgeschlagen. - - Analyzer::AnalyzerRunConfigWidget - - Use Customized Settings - Benutzerdefinierte Einstellungen verwenden - - - Use Global Settings - Globale Einstellungen verwenden - - Android::Internal::AndroidErrorMessage @@ -27534,21 +27101,6 @@ Bitte schließen Sie alle laufenden Instanzen Ihrer Anwendung vor dem Erstellen. %1 existiert bereits. - - QmlProfiler::Internal::QmlProfilerEventRelativesView - - <bytecode> - <bytecode> - - - Source code not available - Kein Quellcode verfügbar - - - Part of binding loop. - Teil der Binding-Schleife. - - QmlProfiler::QmlProfilerModelManager @@ -27572,17 +27124,6 @@ Bitte schließen Sie alle laufenden Instanzen Ihrer Anwendung vor dem Erstellen. Versuch einen unbekannten Status in der Ereignisliste zu setzen. - - QmlProfiler::Internal::QmlProfilerPlugin - - QML Profiler - QML-Profiler - - - QML Profiler (External) - QML-Profiler (extern) - - QmlProfiler::Internal::QmlProfilerFileReader @@ -27630,31 +27171,6 @@ Bitte schließen Sie alle laufenden Instanzen Ihrer Anwendung vor dem Erstellen. Analysiere Speicher von %1 - - AnalyzerManager - - Memory Analyzer Tool finished, %n issues were found. - - Das Speicheranalysewerkzeug wurde beendet; ein Problem wurde gefunden. - Das Speicheranalysewerkzeug wurde beendet; %n Probleme wurde gefunden. - - - - Memory Analyzer Tool finished, no issues were found. - Das Speicheranalysewerkzeug wurde beendet; es wurden keine Probleme gefunden. - - - Log file processed, %n issues were found. - - Die Logdatei wurde verarbeitet; ein Problem wurde gefunden. - Die Logdatei wurde verarbeitet; %n Probleme wurden gefunden. - - - - Log file processed, no issues were found. - Die Logdatei wurde verarbeitet; es wurden keine Probleme gefunden. - - Valgrind::Internal::ValgrindRunControl @@ -27693,47 +27209,6 @@ Bitte schließen Sie alle laufenden Instanzen Ihrer Anwendung vor dem Erstellen. Valgrind - - Valgrind::Internal::ValgrindPlugin - - Valgrind Function Profile uses the Callgrind tool to record function calls when a program runs. - Das Profiling von Funktionen mit Valgrind verwendet das Programm "callgrind", um Funktionsaufrufe während der Programmausführung aufzuzeichnen. - - - Valgrind Analyze Memory uses the Memcheck tool to find memory leaks. - Die Speicheranalyse von Valgrind benutzt das Programm "memcheck", um Speicherlecks zu finden. - - - Valgrind Memory Analyzer - Speicheranalyse mit Valgrind - - - Valgrind Memory Analyzer with GDB - Speicheranalyse mit Valgrind und GDB - - - 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. - Die Speicheranalyse mit Valgrind und GDB benutzt das Programm "memcheck", um Speicherlecks zu finden. -Wenn ein Problem gefunden wird, wird die Anwendung angehalten und kann untersucht werden. - - - Valgrind Function Profiler - Profiling von Funktionen mit Valgrind - - - Valgrind Memory Analyzer (External Remote Application) - Speicheranalyse mit Valgrind (externe entfernte Anwendung) - - - Valgrind Function Profiler (External Remote Application) - Profiling von Funktionen mit Valgrind (externe entfernte Anwendung) - - - Profile Costs of This Function and Its Callees - Bestimme Kosten dieser Funktion und der von ihr aufgerufenen Funktionen - - Valgrind::ValgrindProcess @@ -27817,10 +27292,6 @@ Wenn ein Problem gefunden wird, wird die Anwendung angehalten und kann untersuch Create Android Virtual Device Android Virtual Device erstellen - - Always use this device for architecture %1 - Stets dieses Gerät für die Architektur %1 verwenden - ABI: ABI: @@ -27877,6 +27348,14 @@ Wenn ein Problem gefunden wird, wird die Anwendung angehalten und kann untersuch Cancel Abbrechen + + This can be later reset in deployment settings in the Projects mode. + Dies kann später in den Deploymenteinstellungen im Projektmodus zurückgesetzt werden. + + + Always use this device for architecture %1 for this project + Benutze für die Architektur %1 dieses Projekts immer dieses Gerät + BareMetal::Internal::BareMetalDeviceConfigurationWizardSetupPage @@ -27920,16 +27399,8 @@ Wenn ein Problem gefunden wird, wird die Anwendung angehalten und kann untersuch <i>Aktivieren Sie das Clang Code-Modell um auf diese Einstellungen zuzugreifen.</i> - Use Clang Code Model - Clang Code-Modell verwenden - - - Append additional command line options to Clang, one per line. <i>Use this with care.</i> - Fügen Sie zusätzliche Kommandozeilenoptionen für Clang hinzu (eine pro Zeile). <i>Seien Sie vorsichtig.</i> - - - Reset Options - Optionen zurücksetzen + Clang Code Model Warnings + Clang Codemodell Warnungen @@ -27958,41 +27429,6 @@ Wenn ein Problem gefunden wird, wird die Anwendung angehalten und kann untersuch Form - - IosRunConfiguration - - Form - Form - - - Executable: - Ausführbare Datei: - - - Arguments: - Argumente: - - - iPhone 3.5-inch Retina Display - iPhone 3,5-Zoll Retina-Bildschirm - - - iPhone 4-inch Retina Display - iPhone 4-Zoll Retina-Bildschirm - - - iPad - iPad - - - iPad Retina Display - iPad Retina-Bildschirm - - - Device type: - Gerätetyp: - - IosSettingsWidget @@ -28481,6 +27917,14 @@ Wollen Sie das bestehende Paket entfernen? %1 is not connected. Keine Verbindung zu %1. + + Device type: + Gerätetyp: + + + Executable: + Ausführbare Datei: + Ios::Internal::IosRunConfigurationWidget @@ -28958,7 +28402,7 @@ Wollen Sie das bestehende Paket entfernen? Include pro&ject - Projekt einbinden + Pro&jekt einbinden &Description @@ -29925,26 +29369,6 @@ Wählt eine für Desktop-Entwicklung geeignete Qt-Version aus, sofern sie verfü Executable: Ausführbare Datei: - - Arguments: - Argumente: - - - Select Working Directory - Wählen Sie das Arbeitsverzeichnis aus - - - Reset to Default - Auf Vorgabe zurücksetzen - - - Working directory: - Arbeitsverzeichnis: - - - Run in terminal - Im Terminal ausführen - Run on QVFb In QVFb ausführen @@ -30047,6 +29471,10 @@ Wählt eine für Desktop-Entwicklung geeignete Qt-Version aus, sofern sie verfü Forms Formulardateien + + StateCharts + Statusdiagramme + Resources Ressourcendateien @@ -30376,10 +29804,6 @@ Zum Beispiel bewirkt die Angabe "Revision: 15" dass der Branch auf Rev Options Einstellungen - - Format entire file if no text was selected. (For action Format Selected Text) - Ganze Datei formatieren, wenn kein Text markiert ist. (Bei Menüeintrag "Formatiere markierten Text") - Clang Format Clang Format @@ -30392,6 +29816,14 @@ Zum Beispiel bewirkt die Angabe "Revision: 15" dass der Branch auf Rev Use customized style: Verwende angepassten Stil: + + For action Format Selected Text + Für die Aktion "Formatiere selektierten Text" + + + Format entire file if no text was selected + Formatiere die ganze Datei falls kein Text selektiert ist + Beautifier::Internal::ConfigurationDialog @@ -30474,6 +29906,14 @@ Zum Beispiel bewirkt die Angabe "Revision: 15" dass der Branch auf Rev Use customized style: Verwende angepassten Stil: + + For action Format Selected Text + Für die Aktion "Formatiere selektierten Text" + + + Format entire file if no text was selected + Formatiere die ganze Datei falls kein Text selektiert ist + Core::Internal::FindDialog @@ -30516,10 +29956,6 @@ Zum Beispiel bewirkt die Angabe "Revision: 15" dass der Branch auf Rev Find: Suchen: - - ... - ... - Replace with: Ersetzen durch: @@ -30622,17 +30058,13 @@ Um es abzurufen, tippen Sie das Kürzel im Locator, gefolgt von einem Leerzeiche WinRt::Internal::WinRtRunConfigurationWidget - - Arguments: - Argumente: - Launch App App starten - Uninstall package after stop - Paket nach Beendigung deinstallieren + Uninstall package after application stops + Deinstalliere Paket nach der Ausführung @@ -30814,26 +30246,10 @@ Bitte erstellen Sie die Anwendung qmldump auf der Einstellungsseite der Qt-Versi Beautifier::Internal::BeautifierPlugin - - Cannot create temporary file "%1": %2. - Die temporäre Datei "%1" konnte nicht erstellt werden: %2. - - - Cannot call %1 or some other error occurred. - %1 konnte nicht aufgerufen werden, oder es trat ein anderer Fehler auf. - - - Cannot read file "%1": %2. - Die Datei "%1" kann nicht gelesen werden: %2. - File was modified. Datei geändert. - - Time out reached while formatting file %1. - Zeitüberschreitung beim Formatieren der Datei %1. - Could not format file %1. Die Datei %1 konnte nicht formatiert werden. @@ -31273,6 +30689,10 @@ Möchten Sie es beenden? Attach to Process Not Yet Started An noch nicht gestarteten Prozess anhängen + + Reset + Zurücksetzen + Reopen dialog when application finishes Dialog nach Beendigung der Anwendung wieder öffnen @@ -31293,10 +30713,6 @@ Möchten Sie es beenden? Start Watching Beobachtung starten - - Close - Schließen - Kit: Kit: @@ -31350,36 +30766,6 @@ Möchten Sie es beenden? Edit Files Dateien Bearbeiten - - Hide files matching: - Verberge Dateien, die dem folgenden Suchmuster entsprechen: - - - Show files matching: - Zeige Dateien, die dem folgenden Suchmuster entsprechen: - - - Apply Filter - Filter anwenden - - - Generating file list... - -%1 - Dateiliste erstellen... - -%1 - - - Not showing %n files that are outside of the base directory. -These files are preserved. - - Eine Datei, die sich außerhalb des Basisordners befindet, wird nicht angezeigt. -Sie bleibt bestehen. - %n Dateien, die sich außerhalb des Basisordners befinden, werden nicht angezeigt. -Sie bleiben bestehen. - - ProjectExplorer::SelectableFilesDialogAddDirectory @@ -31387,14 +30773,6 @@ Sie bleiben bestehen. Add Existing Directory Vorhandenes Verzeichnis hinzufügen - - Source directory: - Quellverzeichnis - - - Start Parsing - Auswertung beginnen - QmlProfiler::QmlProfilerDataModel @@ -31937,16 +31315,7 @@ wirklich löschen? - QmlDebug::QmlDebugConnectionPrivate - - Error: (%1) %2 - %1=error code, %2=error message - Fehler: (%1) %2 - - - <device is gone> - <Gerät ist verschwunden> - + QmlDebug::QmlDebugConnection Network connection dropped Netzwerkverbindung verloren @@ -31969,18 +31338,23 @@ wirklich löschen? Socket state changed to BoundState. This should not happen! - Socket-Zustand zu BoundState geändert. Das sollte nicht passieren! + Socketzustand zu BoundState geändert. Das sollte nicht passieren! Socket state changed to ListeningState. This should not happen! - Socket-Zustand zu ListeningState geändert. Das sollte nicht passieren! + Socketzustand zu ListeningState geändert. Das sollte nicht passieren! - - - QmlDebug::QmlDebugConnection - Connecting to debug server at %1:%2 ... - Verbinde zum Debug-Server %1:%2... + Unknown state %1 + Unbekannter Status %1 + + + Error: Remote host closed the connection + Fehler: Entfernter Host schloss die Verbindung + + + Error: Unknown socket error %1 + Fehler: Unbekannter Socketfehler %1 @@ -32066,7 +31440,7 @@ Bitte installieren Sie ein Android-SDK der API-Version %1 oder neuer.BareMetal::Internal::BareMetalGdbCommandsDeployStep GDB commands - GDB-Kommandos: + GDB-Kommandos @@ -32087,10 +31461,6 @@ Bitte installieren Sie ein Android-SDK der API-Version %1 oder neuer.Executable: Ausführbare Datei: - - Arguments: - Argumente: - <default> <Vorgabe> @@ -32580,6 +31950,10 @@ Bitte installieren Sie ein Android-SDK der API-Version %1 oder neuer.Qt Creator needs a build configuration set up to build. Configure a build configuration in the project settings. Qt Creator benötigt eine Erstellungskonfiguration zum Erstellen. Bitte richten Sie eine in den Projekteinstellungen ein. + + You asked to build the current Run Configuration's build target only, but it is not associated with a build target. Update the Make Step in your build settings. + Sie möchten nur das Übersetzungsergebnis für die aktuelle Ausführungsonfiguration bauen, aber sie ist mit keinem verknüpft. Korrigieren Sie den Make-Schritt in der Erstellungskonfiguration. + ProjectExplorer::XcodebuildParser @@ -32994,36 +32368,6 @@ Deploying local Qt libraries is incompatible with Android 5. Lokale Qt-Bibliotheken zu kopieren ist inkompatibel zu Android 5. - - Core::Internal::ThemeEditor::ThemeEditorWidget - - Theme Editor - Theme-Editor - - - Filter: - Filter: - - - - Core::Internal::ThemeSettings - - Rename... - Umbenennen... - - - Copy... - Kopieren... - - - Delete - Löschen - - - Theme - Theme - - QmakeAndroidSupport::Internal::QmakeAndroidBuildApkWidget @@ -33393,7 +32737,7 @@ Lokale Qt-Bibliotheken zu kopieren ist inkompatibel zu Android 5. Core::Internal::CorePlugin No themes found in installation. - Keine Themes in Installation gefunden. + Keine Themen in der Installation gefunden. The current date (ISO). @@ -33451,6 +32795,10 @@ Lokale Qt-Bibliotheken zu kopieren ist inkompatibel zu Android 5. The current time (QTime formatstring). Die aktuelle Zeit (QTime Formatstring). + + Generate a new UUID. + Erzeuge eine neue UUID. + A comment. Ein Kommentar. @@ -33660,6 +33008,18 @@ Möchten Sie sie jetzt auschecken? Ctrl+E,1 Ctrl+E,1 + + Go to Previous Split or Window + Gehe zu vorheriger Teilung oder Fenster + + + Meta+E,i + Meta+E,i + + + Ctrl+E,i + Ctrl+E,i + Go to Next Split or Window Gehe zu nächster Editor-Ansicht oder zu nächstem Fenster @@ -33792,105 +33152,12 @@ Möchten Sie sie jetzt auschecken? Einfache JavaScript-Ausdrücke auswerten.<br>Die Ausdrücke dürfen weder '{' noch '}' enthalten. - - Core::Internal::ThemeEditor::ThemeSettingsItemDelegate - - <Unnamed> (Current) - <Unbenannt> (Aktuell) - - - (Current) - (Aktuell) - - - Remove Variable Name - Variablenname entfernen - - - Add Variable Name... - Variablenname hinzufügen... - - - Add Variable Name - Variablenname hinzufügen - - - Variable name: - Variablenname: - - - - Core::Internal::ThemeEditor::ThemeSettingsTableModel - - Widget Style - Widget-Stil - - - Colors - Farben - - - Flags - Flags - - - Role - Rolle - - - Value - Wert - - QCoreApplication unnamed unbenannt - - %1 (built-in) - %1 (integriert) - - - - Core::Internal::ThemeSettingsWidget - - Delete Theme - Theme löschen - - - Are you sure you want to delete the theme "%1" permanently? - Sind Sie sicher, dass Sie das Theme "%1" endgültig löschen wollen? - - - Delete - Löschen - - - Copy Theme - Theme kopieren - - - Theme name: - Name des Themes: - - - Theme Changed - Theme geändert - - - The theme "%1" was modified, do you want to save the changes? - Das Theme "%1" wurde geändert. Wollen Sie die Änderungen speichern? - - - Discard - Verwerfen - - - Rename Theme - Theme unbenennen - CppEditor::Internal::CppEditorWidget @@ -33972,6 +33239,11 @@ Möchten Sie sie jetzt auschecken? Sections in "%1" Abschnitte in "%1" + + Debugger + Category under which Analyzer tasks are listed in Issues view + Debugger + Some breakpoints cannot be handled by the debugger languages currently active, and will be ignored. Affected are breakpoints %1 @@ -33990,6 +33262,14 @@ Dies betrifft die Haltepunkte %1 Unable to create a debugger engine of the type "%1" Es konnte keine Debugger-Engine des Typs "%1" erzeugt werden + + Install &Debug Information + Installiere &Debuginformationen + + + Tries to install missing debug information. + Versucht fehlende Debuginformationen zu installieren. + FormEditorW @@ -34204,6 +33484,10 @@ Dies betrifft die Haltepunkte %1 "data" must be empty or a JSON object for "Project" pages. "data" muss für "Project"-Seiten leer oder ein JSON-Objekt sein. + + Invalid regular expression "%1" in "%2". %3 + Ungültiger regulärer Ausdruck "%1" in "%2". %3 + "data" for a "Summary" page can be unset or needs to be an object. "data" muss für eine "Summary"-Seite nicht gesetzt oder ein Objekt sein. @@ -34454,6 +33738,30 @@ Dies betrifft die Haltepunkte %1 JS File JS-Datei + + Model name: + Modellname: + + + Location: + Speicherort: + + + Model Name and Location + Modellname und -speicherort + + + Creates a new empty model with an empty diagram. + Erzeugt ein neues leeres Modell mit einem leeren Diagramm. + + + Modeling + Modellierung + + + Model + Modell + Creates an empty Python script file using UTF-8 charset. Erzeugt eine leere Python-Skriptdatei mit UTF-8-Zeichensatz. @@ -34615,6 +33923,14 @@ Wählt eine für Desktop-Entwicklung geeignete Qt-Version aus, sofern sie verfü Qt Canvas 3D Application Qt Canvas 3D-Anwendung + + Creates a deployable Qt Quick 2 application using Qt Labs Controls. + Erzeugt eine installierbare Qt Quick 2 Anwendung mit Qt Labs Controls. + + + Qt Labs Controls Application + Qt Labs Controls Anwendung + Qt 5.6 Qt 5.6 @@ -34696,6 +34012,14 @@ Wählt eine für Desktop-Entwicklung geeignete Qt-Version aus, sofern sie verfü Directory: Verzeichnis: + + Creates a vertex shader in the Desktop OpenGL Shading Language (GLSL). Vertex shaders transform the positions, normals and texture coordinates of triangles, points and lines rendered with OpenGL. + Erzeugt einen Vertex Shader in der Desktop OpenGL Shading Language (GLSL). Vertex Shader transformieren Positionen, Normalen und Texturkoordinaten von Dreiecken, Punkten und Linien, die mit OpenGL gezeichnet werden. + + + Creates a vertex shader in the OpenGL/ES 2.0 Shading Language (GLSL/ES). Vertex shaders transform the positions, normals and texture coordinates of triangles, points and lines rendered with OpenGL. + Erzeugt einen Vertex Shader in der OpenGL/ES 2.0 Shading Language (GLSL/ES). Vertex Shader transformieren Positionen, Normalen und Texturkoordinaten von Dreiecken, Punkten und Linien, die mit OpenGL gezeichnet werden. + "%{JS: Util.toNativeSeparators('%{TargetPath}')}" exists in the filesystem. "%{JS: Util.toNativeSeparators('%{TargetPath}')}" ist im Dateisystem vorhanden. @@ -34880,10 +34204,6 @@ Wählt eine für Desktop-Entwicklung geeignete Qt-Version aus, sofern sie verfü 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. - Erzeugt einen Vertex Shader in der Desktop OpenGL Shading Language (GLSL). Vertex Shader wandeln die Positionen, Normalen und Textur-Koordinaten für mit OpenGL gerenderte Dreiecke, Punkte und Linien um. - Vertex Shader (Desktop OpenGL) Vertex Shader (Desktop OpenGL) @@ -34896,10 +34216,6 @@ Wählt eine für Desktop-Entwicklung geeignete Qt-Version aus, sofern sie verfü 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. - Erzeugt einen Vertex Shader in der OpenGL/ES 2.0 Shading Language (GLSL/ES). Vertex Shader wandeln die Positionen, Normalen und Textur-Koordinaten für mit OpenGL gerenderte Dreiecke, Punkte und Linien um. - Vertex Shader (OpenGL/ES 2.0) Vertex Shader (OpenGL/ES 2.0) @@ -35481,6 +34797,10 @@ konnte dem Projekt "%2" nicht hinzugefügt werden. "kind" value "%1" is not "class" (deprecated), "file" or "project". "kind"-Wert "%1" ist nicht "class" (veraltet), "file" oder "project". + + "kind" is "file" or "class" (deprecated) and "%1" is also set. + "kind" ist "file" oder "class" (veraltet) und "%1" ist auch gesetzt. + Icon file "%1" not found. Symboldatei "%1" nicht gefunden. @@ -35537,18 +34857,6 @@ konnte dem Projekt "%2" nicht hinzugefügt werden. When parsing "pages": %1 Beim Auswerten von "pages": %1 - - List element of "options" is not an object. - Listenelement von "options" ist kein Objekt. - - - No "key" given for entry in "options". - Kein "key" für Eintrag in "options" angegeben. - - - When parsing "options": Key "%1" set more than once. - Beim Auswerten von "options": Schlüssel "%1" ist mehrfach angegeben. - ProjectExplorer::JsonWizardGenerator @@ -35615,6 +34923,34 @@ konnte dem Projekt "%2" nicht hinzugefügt werden. Project Name Projektname + + Incompatible Kit + Inkompatibles Kit + + + Kit %1 is incompatible with kit %2. + Das Kit %1 passt nicht zu Kit %2. + + + Build configurations: + Erstellungskonfigurationen: + + + Deploy configurations: + Deployment-Konfigurationen: + + + Run configurations: + Ausführungskonfigurationen: + + + Partially Incompatible Kit + Teilweise inkompatibles Kit + + + Some configurations could not be copied. + Einige Konfigurationen konnten nicht kopiert werden. + ProjectExplorer::Target @@ -35862,6 +35198,10 @@ Die Dateien aus dem Quellverzeichnis des Android-Pakets werden in das Verzeichni Select Encoding Zeichenkodierung auswählen + + Zoom: %1% + Vergrößerung: %1% + Delete UTF-8 BOM on Save UTF-8 BOM beim Speichern entfernen @@ -36008,10 +35348,6 @@ Die Dateien aus dem Quellverzeichnis des Android-Pakets werden in das Verzeichni Terminal Auf Vorgabe zurücksetzen. - - <html>Influences how file names are matched to decide if they are the same. - <html>Bestimmt wie Dateinamen auf Gleichheit geprüft werden. - File system case sensitivity: Unterscheidung zwischen Groß- und Kleinschreibung: @@ -36040,6 +35376,10 @@ Die Dateien aus dem Quellverzeichnis des Android-Pakets werden in das Verzeichni Variables Variablen + + Influences how file names are matched to decide if they are the same. + Beeinflusst wie die Gleichheit von Dateinamen geprüft wird. + QbsProjectManager::Internal::CustomQbsPropertiesDialog @@ -36094,6 +35434,10 @@ Die Dateien aus dem Quellverzeichnis des Android-Pakets werden in das Verzeichni &Edit... &Bearbeiten... + + Store profiles in Qt Creator settings directory + Speichere Profile in Qt Creators Konfigurationsverzeichnis + QmlDesigner::DebugViewWidget @@ -36207,18 +35551,32 @@ Die Dateien aus dem Quellverzeichnis des Android-Pakets werden in das Verzeichni Flush data while profiling: Daten während Profiling an Creator übertragen: - - Periodically flush pending data to Qt Creator. This reduces the delay when loading the -data and the memory usage in the application. It distorts the profile as the flushing -itself takes time. - Wartende Daten regelmäßig an Creator weiterleiten. Dies verringert die Wartezeit -beim Laden der Daten und den Speicherbrauch der Anwendung. Es verfälscht das -Profiling, da die Übertragung selbst Zeit benötigt. - Flush interval (ms): Zeitabstand der Übertragungen (ms): + + Periodically flush pending data to Qt Creator. This reduces the delay when loading the +data and the memory usage in the application. It distorts the profile as the flushing +itself takes time. + Sende Daten regelmässig zu Qt Creator. Das reduziert die Verzögerung beim Laden der +Daten und und den Speicherverbrauch der Applikation. Es stört das Profiling weil das +Senden selbst auch Zeit benötigt. + + + Process data only when process ends: + Daten erst bei Prozessende verarbeiten: + + + Only process data when the process being profiled ends, not when the current recording +session ends. This way multiple recording sessions can be aggregated in a single trace, +for example if multiple QML engines start and stop sequentially during a single run of +the program. + Daten nur bei Prozessende und nicht bei Aufnahmeende verarbeiten. Dadurch werden +mehrere Aufnahmen in einer einzigen Aufnahmespur zusammengefügt, zum Beispiel +wenn mehrere QML-Instanzen nacheinander in einem einzigen Programmlauf gestartet +und gestoppt werden. + Todo::Internal::TodoProjectSettingsWidget @@ -36274,8 +35632,8 @@ Profiling, da die Übertragung selbst Zeit benötigt. Bevorzugte Größe - Preferred height of an item in a layout. If the preferred height is -1, it will be ignored. - Bevorzugte Größe eines Items im Layout. Wenn die bevorzugte Größe -1 ist, wird sie ignoriert. + Preferred size of an item in a layout. If the preferred height or width is -1, it is ignored. + Bevorzugte Größe eines Elements in einem Layout. Falls die bevorzugte Höhe oder Breite -1 ist, wird sie ignoriert. Minimum size @@ -36343,70 +35701,128 @@ Profiling, da die Übertragung selbst Zeit benötigt. QObject - - Show Definition - Definition anzeigen - - - Open Diagram - Diagramm öffnen - - - Create Diagram - Diagramm erstellen - - - Remove - Entfernen - - - Delete - Löschen - - - Align Objects - Objekte ausrichten - - - Align Left - Links ausrichten - - - Center Vertically - Vertikal zentrieren - - - Align Right - Rechts ausrichten - - - Align Top - Oben ausrichten - - - Center Horizontally - Horizontal zentrieren - - - Align Bottom - Unten ausrichten - - - Same Width - Gleiche Breite - - - Same Height - Gleiche Höhe - - - Same Size - Gleiche Größe - <Enter regular expression to exclude> <Regulären Ausdruck zum Ausschließen eingeben> + + %1 %2 per iteration (total: %3, iterations: %4) + %1 %2 pro Durchlauf (Summe: %3, Durchläufe: %4) + + + Test run canceled by user. + Testlauf durch den Benutzer abgebrochen. + + + Project is null for "%1". Removing from test run. +Check the test environment. + Kein Projekt für "%1". Entferne den Testlauf. +Überprüfen Sie die Testumgebung. + + + Could not find command "%1". (%2) + Kommando "%1" nicht gefunden. (%2) + + + Test case canceled due to timeout. +Maybe raise the timeout? + Testlauf wegen Timeout abgebrochen. +Vielleicht sollten Sie die Zeit erhöhen? + + + (none) + (nichts) + + + <p>Give all test cases a name to ensure correct behavior when running test cases and to be able to select them.</p> + <p>Geben Sie allen Testfällen einen Namen, um die korrekte Durchführung sicherzustellen und sie auswählen zu können.</p> + + + parameterized + parametrisiert + + + typed + typisiert + + + Cannot create temporary file "%1": %2. + Die temporäre Datei "%1" konnte nicht erstellt werden: %2. + + + Cannot call %1 or some other error occurred. Time out reached while formatting file %2. + Entweder konnte %1 nicht aufgerufen werden oder ein anderer Fehler ist aufgetreten. Zeitüberschreitung während die Datei %2 formatiert wurde. + + + Cannot read file "%1": %2. + Die Datei "%1" kann nicht gelesen werden: %2. + + + Cannot call %1 or some other error occurred. + %1 konnte nicht aufgerufen werden, oder es trat ein anderer Fehler auf. + + + Inspect available fixits + Verfügbare "fixits" + + + File "%1" does not exist or is not readable. + Die Datei "%1" fehlt oder ist nicht lesbar. + + + Could not read file "%1": UnexpectedElementError. + Konnte die Datei "%1" nicht lesen: UnexpectedElementError. + + + Could not read file "%1": CustomError. + Konnte die Datei "%1" nicht lesen: CustomError. + + + Could not read file "%1": NotWellFormedError. + Konnte die Datei "%1" nicht lesen: NotWellFormedError. + + + Could not read file "%1": PrematureEndOfDocumentError. + Konnte die Datei "%1" nicht lesen: PrematureEndOfDocumentError. + + + File is not a plist version 1.0 file. + Die Datei ist keine plist mit Version 1.0. + + + Expected a string element. + Erwartete ein Stringelement. + + + Expected an array element. + Erwartete ein Arrayelement. + + + Expected an integer element. + Erwartete ein Integerelement. + + + An error occurred with the clang static analyzer process. + Im Clang Static Analyzer Prozess trat ein Fehler auf. + + + Clang static analyzer crashed. + Der Clang Static Analyser ist abgestürzt. + + + Clang static analyzer finished with exit code: %1. + Der Clang Static Analyser lieferte den Fehlercode: %1. + + + Command line: "%1" +Process Error: %2 +Output: +%3 + Kommandozeile: "%1" +Prozessfehler: %2 +Ausgabe: +%3 + qmt::DocumentController @@ -36541,84 +35957,6 @@ Profiling, da die Übertragung selbst Zeit benötigt. Fehlgeschlagen. - - Analyzer::AnalyzerManager - - Analyze - Analyse - - - &Analyze - &Analyse - - - Start - Start - - - Stop - Anhalten - - - Analyzer Toolbar - Analyse-Werkzeugleiste - - - An analysis is still in progress. - Eine Analyse läuft noch. - - - No analyzer tool selected. - Es ist kein Analysewerkzeug ausgewählt. - - - Debug - Debug - - - Profile - Profile - - - Release - Release - - - in Debug mode - im Debug-Modus - - - in Profile mode - im Profile-Modus - - - in Release mode - im Release-Modus - - - with debug symbols (Debug or Profile mode) - mit Debug-Symbolen (Debug- oder Profile-Modus) - - - on optimized code (Profile or Release mode) - auf optimierten Programmcode (Profile- oder Release-Modus) - - - Run %1 in %2 Mode? - Soll %1 im %2-Modus ausgeführt werden? - - - <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 %3.</p><p>Run-time characteristics differ significantly between optimized and non-optimized binaries. Analytical findings for one mode may or may not be relevant for the other.</p><p>Running tools that need debug symbols on binaries that don't provide any may lead to missing function names or otherwise insufficient output.</p><p>Do you want to continue and run the tool in %2 mode?</p></body></html> - <html><head/><body><p>Sie versuchen das Werkzeug "%1" für eine Anwendung im %2-Modus auszuführen. Das Werkzeug ist dafür vorgesehen %3 ausgeführt zu werden.</p><p>Die Laufzeitcharakteristik von optimierten und nicht optimierten Maschinenprogrammen unterscheidet sich stark. Ergebnisse einer Analyse des einen Modus können, müssen aber nicht auf den anderen Modus übertragbar sein.</p><p>Werkzeuge, die Debug-Symbole benötigen, auf Dateien auszuführen, die diese nicht enthalten, kann zu fehlenden Funktionsnamen oder anderweitig unbrauchbaren Ergebnissen führen.</p><p>Wollen Sie fortfahren und das Werkzeug im %2-Modus ausführen?</p></body></html> - - - - Analyzer::DetailedErrorView - - Copy - Kopieren - - Android::Internal::AndroidDeviceModelDelegate @@ -36636,10 +35974,6 @@ Profiling, da die Übertragung selbst Zeit benötigt. Executable: Ausführbare Datei: - - Arguments: - Argumente: - Work directory: Arbeitsverzeichnis: @@ -36921,26 +36255,11 @@ Profiling, da die Übertragung selbst Zeit benötigt. Nicht konfiguriert - - CMakeProjectManager::Internal::NoCMakePage - - Check CMake Tools - CMake-Werkzeuge prüfen - - - There are CMake Tools registered. - Es sind CMake-Werzeuge registriert. - - - Qt Creator has no CMake Tools that are required for CMake projects. Please configure at least one. - Qt Creator hat keine CMake-Werkzeuge, die für CMake-Projekte notwendig sind. Bitte richten Sie wenigstens eines ein. - - CMakeProjectManager::CMakeProject - Internal Error: No build configuration found in settings file. - Interner Fehler: Keine Build-Konfiguration in der Einstellungsdatei gefunden. + No cmake tool set. + Keine CMake Anwendung konfiguriert. @@ -36996,10 +36315,6 @@ Profiling, da die Übertragung selbst Zeit benötigt. Set as the default CMake Tool to use when creating a new kit or when no value is set. Als vorgegebenes CMake-Werkzeug einstellen, das verwendet wird, wenn eine neues Kit erstellt wird oder kein Wert eingestellt ist. - - Prefer Ninja generator (CMake 2.8.9 or higher required) - Ninja-Generator bevorzugen (benötigt CMake 2.8.9 oder höher) - Clone of %1 Kopie von %1 @@ -37160,33 +36475,6 @@ Profiling, da die Übertragung selbst Zeit benötigt. Benutzerdefiniert - - QuickFixFactory - - Create Getter and Setter Member Functions - Getter- und Setter-Funktionen erstellen - - - Create Getter Member Function - Getter-Funktion erstellen - - - Create Setter Member Function - Setter-Funktion erstellen - - - Convert to Stack Variable - In Stack-Variable umwandeln - - - Convert to Pointer - In Zeiger umwandeln - - - Generate Missing Q_PROPERTY Members... - Fehlende Q_PROPERTY-Elemente ergänzen... - - CppTools::AbstractEditorSupport @@ -37446,24 +36734,6 @@ Das Setzen von Haltepunkten anhand von Dateinamen und Zeilennummern könnte fehl Debugger - - Debugger::DebuggerMainWindow - - Memory... - Speicher... - - - Debugger Toolbar - Debugger-Werkzeugleiste - - - - DeviceProcessesDialog - - &Attach to Process - &An Prozess anhängen - - Debugger::Internal::RunConfigWidget @@ -37736,9 +37006,77 @@ Das Setzen von Haltepunkten anhand von Dateinamen und Zeilennummern könnte fehl &Delete &Löschen + + Model Editor + Modell Editor + + + Export Diagram... + Diagramm exportieren... + + + Open Parent Diagram + Elterndiagramm öffnen + + + Edit Element Properties + Elementeigenschaften editieren + + + Shift+Return + Shift+Return + + + Edit Item on Diagram + Element auf Diagramm editieren + + + Return + Return + ModelEditor::Internal::ModelEditor + + <html><body style="color:#909090; font-size:14px"><div align='center'><div style="font-size:20px">Open a diagram</div><table><tr><td><hr/><div style="margin-top: 5px">&bull; Double-click on diagram in model tree</div><div style="margin-top: 5px">&bull; Select "Open Diagram" from package's context menu in model tree</div></td></tr></table></div></body></html> + <html><body style="color:#909090; font-size:14px"><div align='center'><div style="font-size:20px">Diagramm öffnen</div><table><tr><td><hr/><div style="margin-top: 5px">&bull; Doppelklick auf ein Diagramm im Baum</div><div style="margin-top: 5px">&bull; Wählen Sie "Diagramm öffnen" aus dem Kontextmenü eines Pakets im Baum</div></td></tr></table></div></body></html> + + + Add Package + Paket hinzufügen + + + Add Component + Komponente hinzufügen + + + Add Class + Klasse hinzufügen + + + Add Canvas Diagram + Canvasdiagramm hinzufügen + + + Images (*.png *.jpeg *.jpg *.tif *.tiff);;PDF (*.pdf) + Bilder (*.png *.jpeg *.jpg *.tif *.tiff);;PDF (*.pdf) + + + ;;SVG (*.svg) + ;;SVG (*.svg) + + + Export Diagram + Diagramm exportieren + + + Exporting Diagram Failed + Fehler in Diagrammexport + + + Exporting the diagram into file<br>"%1"<br>failed. + Der Export des Diagramms in die Datei<br>"%1"<br>ist fehlgeschlagen. + Package Paket @@ -37751,6 +37089,18 @@ Das Setzen von Haltepunkten anhand von Dateinamen und Zeilennummern könnte fehl Class Klasse + + Item + Element + + + Annotation + Annotation + + + Boundary + Umgrenzung + ProjectExplorer::Internal::DependenciesWidget @@ -37807,29 +37157,6 @@ Das Setzen von Haltepunkten anhand von Dateinamen und Zeilennummern könnte fehl ScannerGenerator: Das Binärmuster "%1" ist nicht zulässig. - - ProjectExplorer::LocalApplicationRunControl - - No executable specified. - Es wurde keine ausführbare Datei angegeben. - - - Executable %1 does not exist. - Die ausführbare Datei %1 existiert nicht. - - - Starting %1... - Starte %1... - - - %1 crashed - %1 ist abgestürzt - - - %1 exited with code %2 - %1 beendet, Rückgabewert %2 - - ProjectExplorer::ProjectTree @@ -37959,6 +37286,10 @@ Das Setzen von Haltepunkten anhand von Dateinamen und Zeilennummern könnte fehl Profiles Profile + + Version Info + Versionsinfo + QbsRootProjectNode @@ -38010,6 +37341,10 @@ Das Setzen von Haltepunkten anhand von Dateinamen und Zeilennummern könnte fehl Go to Implementation Zu Implementierung gehen + + Invalid item. + Ungültiges Element. + Cannot find an implementation. Keine Implementierung gefunden. @@ -38222,13 +37557,6 @@ Das Setzen von Haltepunkten anhand von Dateinamen und Zeilennummern könnte fehl Modus umschalten - - QmlProfiler::LocalQmlProfilerRunner - - No executable file to launch. - Es wurde keine ausführbare Datei zum Starten angegeben. - - QmlProfiler::Internal::QmlProfilerAnimationsModel @@ -38694,6 +38022,10 @@ Das Setzen von Haltepunkten anhand von Dateinamen und Zeilennummern könnte fehl Select Block Down Einen Block nach unten auswählen + + Ctrl+Shift+Alt+U + Ctrl+Shift+Alt+U + Go to Line Start Gehe zum Zeilenanfang @@ -38878,4 +38210,2547 @@ Das Setzen von Haltepunkten anhand von Dateinamen und Zeilennummern könnte fehl [Ungenau] + + Autotest::Internal::TestSettingsPage + + Form + Formular + + + General + Allgemein + + + Hides internal messages by default. You can still enable them by using the test results filter. + Versteckt üblicherweise interne Meldungen. Sie können durch den Testergebnisfilter wieder angezeigt werden. + + + Omit internal messages + Interne Meldungen auslassen + + + Hides warnings related to a guessed run configuration. + Versteckt Warnungen, die zu einer vermuteten Laufzeitkonfiguration gehören. + + + Omit run configuration warnings + Laufzeitkonfigurationsmeldungen auslassen + + + Limit result output to 100000 characters. + Begrenze Ergebnisausgabe auf 100000 Zeichen. + + + Limit result output + Begrenze Ergebnisausgabe + + + Automatically scroll down when new items are added and scrollbar is at bottom. + Scrolle automatisch nach unten, wenn neue Elemente eintreffen und die Scrollleiste ganz unten steht. + + + Automatically scroll results + Ergebnisse automatisch scrollen + + + Parse for tests even when no Tests related widget is displayed. + Suche nach Tests, selbst wenn keine testbezogenen Widgets angezeigt werden. + + + Always parse current project for tests + Durchsuche immer das aktuelle Projekt nach Tests + + + Timeout used when executing each test case. + Zeitlimit für jeden Testfall benutzen. + + + Timeout: + Zeitlimit: + + + Timeout used when executing test cases. This will apply for each test case on its own, not the whole project. + Das Zeitlimit wird für jeden einzelnen Testfall und nicht das ganze Projekt gesetzt. + + + s + s + + + Google Test + Google Test + + + Executes disabled tests when performing a test run. + Ausgeschaltete Tests in einem Testlauf ausführen. + + + Run disabled tests + Ausgeschaltete Tests ausführen + + + Repeats a test run (you might be required to increase the timeout to avoid canceling the tests). + Testlauf wiederholen (eine Erhöhung des Zeitlimits kann nötig sein, um einen Abbruch zu vermeiden). + + + Repeat tests + Tests wiederholen + + + Iterations: + Durchläufe: + + + Shuffle tests automatically on every iteration by the given seed. + Vertausche Tests bei jeden Durchlauf automatisch nach dem Startwert. + + + Shuffle tests + Vertausche Tests + + + Seed: + Startwert: + + + A seed of 0 generates a seed based on the current timestamp. + Ein Startwert 0 erzeugt einen neuen Startwert aus der Uhrzeit. + + + Benchmark Metrics + Messe Metriken + + + Uses walltime metrics for executing benchmarks (default). + Echtzeit bei der Benchmarkausführung messen (Standard). + + + Walltime + Echtzeit + + + Uses tick counter when executing benchmarks. + Den Tickzähler bei der Benchmarkausführung benutzen. + + + Tick counter + Tickzähler + + + Uses event counter when executing benchmarks. + Ereigniszähler bei der Benchmarkausführung benutzen. + + + Event counter + Ereigniszähler + + + Uses Valgrind Callgrind when executing benchmarks (it must be installed). + "Valgrind Callgrind" zur Benchmarkausführung benutzen (dazu muss es installiert sein). + + + Callgrind + Callgrind + + + Uses Perf when executing benchmarks (it must be installed). + "Perf" zur Benchmarkausführung benutzen (dazu muss es installiert sein). + + + Perf + Perf + + + Test Settings + Testeinstellungen + + + + ClangCodeModel::Internal::ClangProjectSettingsWidget + + Warnings + Warnungen + + + Clang Code Model + Clang Codemodell + + + Global setting (%1) + Globale Konfiguration (%1) + + + + ClangStaticAnalyzer::Internal::ClangStaticAnalyzerConfigWidget + + Form + Formular + + + General + Allgemein + + + Clang executable: + Clang Programm: + + + Simultaneous processes: + Gleichzeitige Prozesse: + + + Clang Command + Clang Kommando + + + + ClangStaticAnalyzer::Internal::ProjectSettingsWidget + + Form + Formular + + + Suppressed Diagnostics: + Unterdrückte Diagnosemeldungen: + + + Remove Selected + Ausgewählte entfernen + + + Remove All + Alle entfernen + + + + MainWindow + + MainWindow + MainWindow + + + + CppTools::ClangDiagnosticConfigsWidget + + Form + Formular + + + Configuration to use: + Verwende Konfiguration: + + + Copy... + Kopieren... + + + Remove + Entfernen + + + For appropriate options, consult the GCC or Clang manual pages or the <a href="https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html">GCC online documentation</a>. + Für passende Optionen lesen Sie das GCC oder Clang Handbuch oder auch die <a href="https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html">GCC-Onlinedokumentation</a>. + + + Copy Diagnostic Configuration + Diagnosekonfiguration kopieren + + + Diagnostic configuration name: + Diagnosekonfigurationsname: + + + %1 (Copy) + %1 (Kopie) + + + + QbsProjectManager::Internal::QbsInfoWidget + + Form + Formular + + + Qbs version: + Qbs-Version: + + + + AddSignalHandlerDialog + + Implement Signal Handler + Implementiere Signalhandler + + + Frequently used signals + Häufig benutzte Signale + + + Property changes + Eigenschaftsänderungen + + + All signals + Alle Signale + + + Signal: + Signal: + + + Choose the signal you want to handle: + Wählen Sie ein Signal zur Verarbeitung aus: + + + The item will be exported automatically. + Das Element wird automatisch exportiert. + + + + FlameGraphView + + Details + Details + + + Various Events + Verschiedene Ereignisse + + + Type + Typ + + + Calls + Aufrufe + + + Total Time + Gesamtdauer + + + Mean Time + Durchschnittsdauer + + + In Percent + In Prozent + + + No data available + Keine Daten verfügbar + + + + qmt::DiagramController + + Change + Ändern + + + Add Object + Objekt hinzufügen + + + Remove Object + Objekt entfernen + + + Cut + Ausschneiden + + + Paste + Einfügen + + + Delete + Löschen + + + + qmt::ClassItem + + Show Definition + Definition anzeigen + + + + qmt::NullPointerException + + Unacceptable null object. + Unerwartetes Null-Objekt. + + + + qmt::FileNotFoundException + + File not found. + Datei nicht gefunden. + + + + qmt::FileCreationException + + Unable to create file. + Datei nicht erzeugbar. + + + + qmt::FileWriteError + + Writing to file failed. + Schreibfehler in die Datei. + + + + qmt::FileReadError + + Reading from file failed. + Lesefehler in der Datei. + + + + qmt::IllegalXmlFile + + Illegal XML file. + Ungültige XML Datei. + + + + qmt::UnknownFileVersion + + Unable to handle file version %1. + Dateiversion %1 ist nicht nutzbar. + + + + qmt::PropertiesView::MView + + Stereotypes: + Stereotypen: + + + Reverse engineered: + Reverse engineered: + + + Yes + Ja + + + No + Nein + + + Name: + Name: + + + Children: + Kinder: + + + Relations: + Beziehungen: + + + Model + Modell + + + Models + Modelle + + + Package + Paket + + + Packages + Pakete + + + Class + Klasse + + + Classes + Klassen + + + Namespace: + Namespace: + + + Template: + Template: + + + Clean Up + Bereinigen + + + Members: + Members: + + + Component + Komponente + + + Components + Komponenten + + + Diagram + Diagramm + + + Diagrams + Diagramme + + + Elements: + Elemente: + + + Canvas Diagram + Canvasdiagramm + + + Canvas Diagrams + Canvasdiagramme + + + + Item + Element + + + Items + Elemente + + + Variety: + Ausprägung: + + + End A: %1 + Ende A: %1 + + + End B: %1 + Ende B: %1 + + + Dependency + Abhängigkeit + + + Dependencies + Abhängigkeiten + + + Direction: + Richtung: + + + Inheritance + Vererbung + + + Inheritances + Vererbungen + + + Derived class: %1 + Abgeleitete Klasse: %1 + + + Base class: %1 + Basisklasse: %1 + + + Association + Assoziation + + + + Associations + Assoziationen + + + Role: + Rolle: + + + Cardinality: + Kardinalität: + + + Navigable + Navigierbar + + + Aggregation + Aggregation + + + Composition + Komposition + + + Relationship: + Beziehung: + + + Position and size: + Position und Größe: + + + Auto sized + Automatische Größe + + + Color: + Farbe: + + + Normal + Normal + + + Lighter + Heller + + + Darker + Dunkler + + + Soften + Weichzeichnen + + + Outline + Kontur + + + Emphasized + Hervorgehoben + + + Smart + Smart + + + None + Keine + + + Label + Beschriftung + + + Decoration + Dekoration + + + Icon + Symbol + + + Stereotype display: + Stereotypenanzeige: + + + Depth: + Tiefe: + + + Box + Box + + + Angle Brackets + Spitze Klammern + + + Template display: + Templateanzeige: + + + Show members + Members anzeigen + + + Plain shape + Einfache Form + + + Shape: + Form: + + + Annotation + Annotation + + + Annotations + Annotationen + + + Auto width + Automatische Breite + + + Title + Titel + + + Subtitle + Untertitel + + + Footnote + Fußnote + + + Boundary + Umgrenzung + + + Boundaries + Umgrenzungen + + + <font color=red>Invalid syntax!</font> + <font color=red>Fehlerhafte Syntax!</font> + + + Multi-Selection + Mehrfachauswahl + + + + qmt::ProjectController + + Missing file name. + Fehlender Dateiname. + + + Project is modified. + Verändertes Projekt. + + + Model + Modell + + + + qmt::DiagramSceneController + + Create Dependency + Abhängigkeit erzeugen + + + Create Inheritance + Vererbung erzeugen + + + Create Association + Assoziation erzeugen + + + New Package + Neues Paket + + + New Component + Neue Komponente + + + New Class + Neue Klasse + + + New Item + Neues Element + + + New %1 + Neu %1 + + + Drop Element + Element fallen lassen + + + Add Element + Element hinzufügen + + + Relocate Relation + Beziehung umbiegen + + + + Autotest::Constants + + <unnamed> + <namenlos> + + + + Autotest::Internal::AutotestPlugin + + &Tests + &Tests + + + Run &All Tests + Starte &alle Tests + + + Alt+Shift+T,Alt+A + Alt+Shift+T,Alt+A + + + &Run Selected Tests + Sta&rte ausgewählte Tests + + + Alt+Shift+T,Alt+R + Alt+Shift+T,Alt+R + + + Re&scan Tests + Tests neu durch&suchen + + + Alt+Shift+T,Alt+S + Alt+Shift+T,Alt+S + + + + Autotest::Internal::TestCodeParser + + Scanning for Tests + Suche nach Tests + + + + Autotest::Internal::TestNavigationWidget + + Tests + Tests + + + Run This Test + Diesen Test starten + + + Select All + Alles auswählen + + + Deselect All + Alles abwählen + + + Filter Test Tree + Testbaum filtern + + + Sort Naturally + Natürlich sortieren + + + Expand All + Alles aufklappen + + + Collapse All + Alles einklappen + + + Sort Alphabetically + Alphabetisch sortieren + + + Show Init and Cleanup Functions + Zeige Init- und Aufräumfunktionen + + + Show Data Functions + Zeige Datenfunktionen + + + + Autotest::Internal::TestNavigationWidgetFactory + + Tests + Tests + + + + Autotest::Internal::QtTestOutputReader + + Executing test case %1 + Führe Testfall %1 aus + + + Entering test function %1::%2 + Betrete Testfunktion %1::%2 + + + Qt version: %1 + Qt-Version: %1 + + + Qt build: %1 + Qt-Build: %1 + + + QTest version: %1 + QTest-Version: %1 + + + Execution took %1 ms. + Ausführung dauerte %1 ms. + + + Test finished. + Test beendet. + + + Test execution took %1 ms. + Testausführung dauerte %1 ms. + + + + Autotest::Internal::GTestOutputReader + + You have %n disabled test(s). + + Ein Test ist abgeschaltet. + %n Tests sind abgeschaltet. + + + + Test execution took %1 + Testausführung benötigte %1 + + + Repeating test case %1 (iteration %2) + Wiederhole Testfall %1 (Iteration %2) + + + Executing test case %1 + Führe Testfall %1 aus + + + Entering test set %1 + Betrete Testfall %1 + + + Execution took %1. + Ausführung benötigte %1. + + + + Autotest::Internal::TestResultsPane + + Expand All + Alles aufklappen + + + Run All Tests + Alle Tests starten + + + Run Selected Tests + Ausgewählte Tests starten + + + Stop Test Run + Testlauf anhalten + + + Filter Test Results + Testergebnisse filtern + + + Test Results + Testergebnisse + + + Pass + Bestanden + + + Fail + Durchgefallen + + + Expected Fail + Erwartetes Scheitern + + + Unexpected Pass + Unerwartet bestanden + + + Skip + Überspringen + + + Benchmarks + Benchmarks + + + Debug Messages + Debugnachrichten + + + Warning Messages + Warnungsnachrichten + + + Internal Messages + Interne Nachrichten + + + Check All Filters + Alle Filter auswählen + + + passes + bestanden + + + fails + durchgefallen + + + unexpected passes + unerwartete Erfolge + + + expected fails + erwartete Fehlschläge + + + fatals + Fatal + + + blacklisted + indiziert + + + , %1 disabled + , %1 abgeschaltet + + + Copy + Kopieren + + + Copy All + Alles kopieren + + + Save Output to File... + Ausgabe in Datei speichern... + + + Save Output To... + Ausgabe speichern... + + + Error + Fehler + + + Failed to write "%1". + +%2 + Schreiben von "%1" fehlgeschlagen. + +%2 + + + + Autotest::Internal::TestRunner + + Project's run configuration was guessed for "%1". +This might cause trouble during execution. + Die Ausführungskonfiguration wurde für "%1" geraten. +Das kann zu Problemen während es Ablaufs führen. + + + No tests selected. Canceling test run. + Keine Tests ausgewählt. Testlauf wird abgebrochen. + + + Project is null. Canceling test run. +Only desktop kits are supported. Make sure the currently active kit is a desktop kit. + Projektangabe fehlt. Testlauf wird abgebrochen. +Nur Desktopkits sind erlaubt. Stellen Sie sicher, dass das aktive Kit ein Desktopkit ist. + + + Project is not configured. Canceling test run. + Projekt ist nicht konfiguriert. Testlauf wird abgebrochen. + + + Running Tests + Laufende Tests + + + Build failed. Canceling test run. + Erstellung fehlgeschlagen. Testlauf wird abgebrochen. + + + + Autotest::Internal::TestTreeModel + + Auto Tests + Autotests + + + Qt Quick Tests + Qt-Quick Tests + + + Google Tests + Google Tests + + + + ClangStaticAnalyzer::Internal::ClangStaticAnalyzerDiagnosticModel + + Issue + Problem + + + Location + Ort + + + + ClangStaticAnalyzer::Diagnostic + + Category: + Kategorie: + + + Type: + Typ: + + + Context: + Kontext: + + + Location: + Ort: + + + + ClangStaticAnalyzer::ExplainingStep + + Message: + Meldung: + + + Extended Message: + Erweiterte Meldung: + + + Location: + Ort: + + + + ClangStaticAnalyzer::Internal::ClangStaticAnalyzerDiagnosticView + + Suppress this diagnostic + Unterdrücke diese Diagnose + + + + ClangStaticAnalyzer::Internal::ClangStaticAnalyzerOptionsPage + + Clang Static Analyzer + Clang Static Analyzer + + + + ClangStaticAnalyzer::Internal::ClangStaticAnalyzerPlugin + + Clang Static Analyzer Settings + Clang Static Analyser Konfiguration + + + + ClangStaticAnalyzer::Internal::SuppressedDiagnosticsModel + + File + Datei + + + Context + Kontext + + + Diagnostic + Diagnose + + + Function "%1" + Funktion "%1" + + + + ClangStaticAnalyzer::Internal::ClangStaticAnalyzerRunControl + + Running Clang Static Analyzer on %1 + Starte Clang Static Analyzer mit %1 + + + Clang Static Analyzer: Invalid executable "%1", stop. + Clang Static Analyzer: Fehlerhafte ausführbare Datei "%1". Ende. + + + Clang Static Analyzer: Failed to create temporary dir, stop. + Clang Static Analyzer: Konnte Hilfsverzeichnis nicht anlegen. Ende. + + + Analyzing + Analysiere + + + Clang Static Analyzer stopped by user. + Der Benutzer hat den Clang Static Analyzer abgebrochen. + + + Analyzing "%1". + Analysiere "%1". + + + Failed to analyze "%1": %2 + Analyse von "%1" fehlgeschlagen: %2 + + + Clang Static Analyzer finished: Processed %1 files successfully, %2 failed. + Clang Static Analyzer beendet: %1 Datei(en) erfolgreich, %2 Datei(en) fehlgeschlagen. + + + Clang Static Analyzer: Not all files could be analyzed. + Clang Static Analyzer: Es konnten nicht alle Dateien analysiert werden. + + + + ClangStaticAnalyzer::Internal::ClangStaticAnalyzerRunControlFactory + + The project configuration changed since the start of the Clang Static Analyzer. Please re-run with current configuration. + Die Projektkonfiguration hat sich seit dem Start des Clang Static Analyzers verändert. Bitte mit dieser Konfiguration neu starten. + + + + ClangStaticAnalyzer::Internal::ClangStaticAnalyzerTool + + Clang Static Analyzer Issues + Clang Static Analyzer Meldungen + + + Go to previous bug. + Gehe zu vorherigem Fehler. + + + Go to next bug. + Gehe zu nächstem Fehler. + + + Clang Static Analyzer uses the analyzer from the clang project to find bugs. + Der Clang Static Analyzer benutzt den Analysierer des Clang Projekts um Fehler zu finden. + + + Clang Static Analyzer + Clang Static Analyzer + + + Release + Release + + + Run %1 in %2 Mode? + Soll %1 im %2-Modus ausgeführt werden? + + + <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 Debug mode since enabled assertions can reduce the number of false positives.</p><p>Do you want to continue and run the tool in %2 mode?</p></body></html> + <html><head/><body><p>Sie versuchen das Werkzeug "%1" auf eine Applikation im %2 Modus anzuwenden. Das Werkzeug sollte aber im Debugmodus benutzt werden, da eingeschaltete Assertions die Zahl der False-Positives verringern können.</p><p>Wollen Sie fortfahren und das Werkzeug im %2 Modus benutzen?</p></body></html> + + + A Clang analysis is still in progress. + Eine Clang Analyse läuft noch. + + + Start Qml Profiler. + Starte den QML-Profiler. + + + Clang Static Analyzer running. + Clang Static Analyzer läuft. + + + Clang Static Analyzer finished. + Clang Static Analzer ist fertig. + + + No issues found. + Keine Probleme gefunden. + + + %n issues found (%1 suppressed). + + Ein Problem gefunden (%1 unterdrückt). + %n Probleme gefunden (%1 unterdrückt). + + + + + ClangStaticAnalyzer + + The chosen file "%1" seems to point to an icecc binary not suitable for analyzing. +Please set a real clang executable. + Die gewählte Datei "%1" scheint auf ein für die Analyse ungeeignetes icecc-Binary zu verweisen. +Bitte wählen Sie eine korrekte ausführbare Clang-Datei. + + + + CMakeProjectManager::Internal::BuildDirManager + + Running '%1 %2' in %3. + Führe '%1 %2' in %3 aus. + + + Configuring "%1" + Konfiguriere "%1" + + + *** cmake process crashed! + *** cmake Prozess abgestürzt! + + + *** cmake process exited with exit code %1. + *** cmake Prozess endete mit Fehlercode %1. + + + Failed to open %1 for reading. + Die Datei %1 konnte nicht zum Lesen geöffnet werden. + + + Build directory contains a build of the wrong project (%1). + Das Erstellungsverzeichnis enthält ein falsches Projekt (%1). + + + + CMakeProjectManager::Internal::CMakeBuildStep + + Make + Default display name for the cmake make step. + Make + + + Persisting CMake state... + Speichere CMake Status... + + + + CMakeProjectManager::CMakeBuildStep + + Qt Creator needs a cmake tool set up to build. Configure a cmake tool in the kit options. + Qt Creator benötigt ein CMake Tool zum Erstellen. Die Konfiguration erfolgt in den Kit Eiunstellungen. + + + + CMakeProjectManager::Internal::CMakeBuildStepConfigWidget + + Tool arguments: + Toolparameter: + + + Targets: + Ziele: + + + Build + CMakeProjectManager::CMakeBuildStepConfigWidget display name. + Build + + + <b>No build configuration found on this kit.</b> + <b>Für dieses Kit konnte keine Build-Konfiguration gefunden werden.</b> + + + + CMakeProjectManager::Internal::CMakeBuildStepFactory + + Build + Display name for CMakeProjectManager::CMakeBuildStep id. + Build + + + + CMakeProjectManager::Internal::CMakeGeneratorKitConfigWidget + + CMake Generator: + CMake Generator: + + + <Use Default Generator> + <Benutze Standardgenerator> + + + CMake generator defines how a project is built when using CMake.<br>This setting is ignored when using other build systems. + Der CMake-Generator definiert, wie ein Projekt mit CMake gebaut wird.<br>Diese Einstellung wird von anderen Buildsystemen ignoriert. + + + + CMakeProjectManager::Internal::CMakeConfigurationKitConfigWidget + + Change... + Ändern... + + + CMake Configuration + CMake-Konfiguration + + + <No Changes to Apply> + <Keine Änderungen anzuwenden> + + + Default configuration passed to CMake when setting up a project. + Die Standardkonfiguration wird an CMake beim Anlegen eines Projekts übergeben. + + + Edit CMake Configuration + CMake-Konfiguration bearbeiten + + + Enter one variable per line with the variable name separated from the variable value by "=".<br>You may provide a type hint by adding ":TYPE" before the "=". + Eine Variable pro Zeile eingeben, Name und Wert durch "=" trennen.<br>Ein Typhinweis kann mit ":TYPE" vor dem "=" angegeben werden. + + + + CMakeProjectManager::CMakeGeneratorKitInformation + + No CMake Tool configured, CMake generator will be ignored. + Es ist kein CMake-Tool konfiguriert. Der CMake-Generator wird ignoriert. + + + CMake Tool is unconfigured, CMake generator will be ignored. + Das CMake-Tool ist nicht konfiguriert. Der CMake-Generator wird ignoriert. + + + CMake Tool does not support the configured generator. + Das CMake-Tool unterstützt den konfigurierten Generator nicht. + + + CMake generator does not generate CodeBlocks file. Qt Creator will not be able to parse the CMake project. + Der CMake-Generator erzeugt keine CodeBlocks-Datei. Qt Creator wird das CMake Projekt nicht anzeigen können. + + + CMake Generator + CMake-Generator + + + <Use Default Generator> + <Benutze Standardgenerator> + + + + CMakeProjectManager::CMakeConfigurationKitInformation + + CMake configuration has no path to qmake binary set, even though the kit has a valid Qt version. + Die CMake-Konfiguration hat keinen qmake-Pfad gesetzt, obwohl das Kit eine gültige Qt-Version hat. + + + CMake configuration has a path to a qmake binary set, even though the kit has no valid Qt version. + Die CMake-Konfiguration hat einen qmake-Pfad gesetzt, obwohl das Kit keine gültige Qt-Version hat. + + + CMake configuration has a path to a qmake binary set, which does not match up with the qmake binary path configured in the Qt version. + Die CMake-Konfiguration hat einen qmake-Pfad gesetzt, der allerdings nicht mit dem qmake-Pfad der Qt-Version übereinstimmt. + + + CMake configuration has no path to a C++ compiler set, even though the kit has a valid tool chain. + Die CMake-Konfiguration hat keinen C++-Compiler gesetzt, obwohl das Kit eine gültige Toolchain hat. + + + CMake configuration has a path to a C++ compiler set, even though the kit has no valid tool chain. + Die CMake-Konfiguration hat einen C++-Compiler gesetzt, obwohl das Kit keine gültige Toolchain hat. + + + CMake configuration has a path to a C++ compiler set, that does not match up with the compiler path configured in the tool chain of the kit. + Die CMake-Konfiguration hat einen C++-Compiler gesetzt, der nicht mit dem Compiler der Toolchain übereinstimmt. + + + CMake Configuration + CMake-Konfiguration + + + + CMakeProjectManager::ConfigModel + + <UNSET> + <Ungesetzt> + + + Setting + Einstellung + + + Value + Wert + + + Advanced + Erweitert + + + + Core::Internal::ThemeChooser + + Restart Required + Neustart erforderlich + + + The theme change will take effect after a restart of Qt Creator. + Die Themenänderung wird nach einem Neustart des Qt Creator sichtbar. + + + + TextEditor::QuickFixFactory + + Create Getter and Setter Member Functions + Getter- und Setter-Funktionen erstellen + + + Create Getter Member Function + Getter-Funktion erstellen + + + Create Setter Member Function + Setter-Funktion erstellen + + + Convert to Stack Variable + In Stack-Variable umwandeln + + + Convert to Pointer + In Zeiger umwandeln + + + Generate Missing Q_PROPERTY Members... + Fehlende Q_PROPERTY-Elemente ergänzen... + + + + ClangDiagnosticConfigsModel + + Warnings for questionable constructs + Warnungen vor fragwürdigen Konstrukten + + + Pedantic Warnings + Pedantische Warnungen + + + Warnings for almost everything + Warnungen vor praktisch allem + + + %1 [built-in] + %1 [eingebaut] + + + + Debugger::AnalyzerRunConfigWidget + + Use Customized Settings + Benutzerdefinierte Einstellungen verwenden + + + Use Global Settings + Globale Einstellungen verwenden + + + + Debugger::DetailedErrorView + + Copy + Kopieren + + + + Debugger::StartRemoteDialog + + Start Remote Analysis + Entfernte Analyse starten + + + Kit: + Kit: + + + Executable: + Ausführbare Datei: + + + Arguments: + Argumente: + + + Working directory: + Arbeitsverzeichnis: + + + + Debugger::Internal::Console + + Show debug, log, and info messages. + Zeige Debug-, Log- und informative Nachrichten. + + + Show warning messages. + Warnungen anzeigen. + + + Show error messages. + Fehlermeldungen anzeigen. + + + Can only evaluate during a debug session. + Kann nur während einer Debugsitzung ermittelt werden. + + + Debugger Console + Debuggerkonsole + + + + Debugger::Internal::ConsoleView + + &Copy + &Kopieren + + + &Show in Editor + In &Editor anzeigen + + + C&lear + &Löschen + + + + Utils::DebuggerMainWindow + + Toolbar + Werkzeugleiste + + + Views + Ansichten + + + Start + Starten + + + Stop + Anhalten + + + + Debugger::AnalyzerAction + + Cannot start %1 without a project. Please open the project and try again. + Kann %1 nicht ohne Projekt starten. Bitte ein Projekt öffnen und nochmal versuchen. + + + Debug + Debug + + + Profile + Profile + + + Release + Release + + + in Debug mode + im Debug-Modus + + + in Profile mode + im Profile-Modus + + + in Release mode + im Release-Modus + + + with debug symbols (Debug or Profile mode) + mit Debug-Symbolen (Debug- oder Profile-Modus) + + + on optimized code (Profile or Release mode) + auf optimiertem Programmcode (Profile- oder Release-Modus) + + + Run %1 in %2 Mode? + Soll %1 im %2-Modus ausgeführt werden? + + + <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 %3.</p><p>Run-time characteristics differ significantly between optimized and non-optimized binaries. Analytical findings for one mode may or may not be relevant for the other.</p><p>Running tools that need debug symbols on binaries that don't provide any may lead to missing function names or otherwise insufficient output.</p><p>Do you want to continue and run the tool in %2 mode?</p></body></html> + <html><head/><body><p>Sie versuchen das Werkzeug "%1" für eine Anwendung im %2-Modus auszuführen. Das Werkzeug ist dafür vorgesehen %3 ausgeführt zu werden.</p><p>Die Laufzeitcharakteristik von optimierten und nicht optimierten Maschinenprogrammen unterscheidet sich stark. Ergebnisse einer Analyse des einen Modus können, müssen aber nicht auf den anderen Modus übertragbar sein.</p><p>Werkzeuge, die Debug-Symbole benötigen, auf Dateien auszuführen, die diese nicht enthalten, kann zu fehlenden Funktionsnamen oder anderweitig unbrauchbaren Ergebnissen führen.</p><p>Wollen Sie fortfahren und das Werkzeug im %2-Modus ausführen?</p></body></html> + + + + Debugger::Internal::WatchItem + + <not in scope> + Value of variable in Debugger Locals display for variables out of scope (stopped above initialization). + <nicht im Bereich> + + + %1 <shadowed %2> + Display of variables shadowed by variables of the same name in nested scopes: Variable %1 is the variable name, %2 is a simple count. + %1 <überlagert %2> + + + + GitGrep + + &Use Git Grep + Ben&utze Git Grep + + + Use Git Grep for searching. This includes only files that are managed by Git. + Benutze Git Grep für die Suche. Darin sind nur durch Git verwaltete Dateien eingeschlossen. + + + Tree (optional) + Baum (optional) + + + Can be HEAD, tag, local or remote branch, or a commit hash. +Leave empty to search through the file system. + Kann HEAD sein, ein Tag oder ein lokaler oder entfernter Branch oder ein Commit-Hash. +Leer lassen, um das Dateisystem zu durchsuchen. + + + Git Grep + Git Grep + + + Ref: %1 +%2 + Ref: %1 +%2 + + + Git Show %1:%2 + Git Show %1:%2 + + + + ModelEditor::Internal::ModelDocument + + No model loaded. Cannot save. + Kein Modell geladen, daher ist sichern nicht möglich. + + + Cannot reload model file. + Das Modell kann nicht neu geladen werden. + + + Could not open "%1" for reading: %2. + "%1" konnte nicht gelesen werden: %2. + + + + Modeling + + Modeling + Modellierung + + + + ModelEditor::Internal::ModelsManager + + Open Diagram + Diagramm öffnen + + + + ModelEditor::Internal::PxNodeController + + Add Component %1 + Komponente %1 hinzufügen + + + Add Class %1 + Klasse %1 hinzufügen + + + Add Package %1 + Paket %1 hinzufügen + + + Add Package and Diagram %1 + Paket und Diagramm %1 hinzufügen + + + Add Component Model + Komponentenmodell hinzufügen + + + Create Component Model + Komponentenmodell erzeugen + + + Drop Node + Eintrag fallen lassen + + + + + ProjectExplorer::Internal::LocalApplicationRunControl + + No executable specified. + Es wurde keine ausführbare Datei angegeben. + + + Executable %1 does not exist. + Die ausführbare Datei %1 existiert nicht. + + + Starting %1... + Starte %1... + + + %1 crashed + %1 ist abgestürzt + + + %1 exited with code %2 + %1 beendet, Rückgabewert %2 + + + + ProjectExplorer::Internal::MsvcBasedToolChainConfigWidget + + Initialization: + Initialisierung: + + + + ProjectExplorer::Internal::ClangClToolChainConfigWidget + + LLVM: + LLVM: + + + + ProjectExplorer::ClangToolChainFactory + + Clang + Clang + + + + ProjectExplorer::SelectableFilesWidget + + Source directory: + Quellverzeichnis: + + + Start Parsing + Auswertung beginnen + + + Show files matching: + Zeige passende Dateien: + + + Hide files matching: + Verstecke übereinstimmende Dateien: + + + Apply Filter + Filter anwenden + + + Generating file list... + +%1 + Dateiliste erstellen... + +%1 + + + Not showing %n files that are outside of the base directory. +These files are preserved. + + Eine Datei, die sich außerhalb des Basisordners befindet, wird nicht angezeigt. +Sie wird erhalten. + %n Dateien, die sich außerhalb des Basisordners befinden, werden nicht angezeigt. +Sie werden erhalten. + + + + + QmlProfiler::Internal::QmlProfilerRunControlFactory + + No executable file to launch. + Es wurde keine ausführbare Datei zum Starten angegeben. + + + + QmlProfiler::Internal::QmlProfilerStatisticsMainView + + <program> + <Programm> + + + Main Program + Hauptprogramm + + + Binding loop detected. + Endlosschleife bei Binding festgestellt. + + + <bytecode> + <bytecode> + + + (Opt) + (Opt) + + + Binding is evaluated by the optimized engine. + Das Binding wird von der optimierten Engine ausgewertet. + + + Binding not optimized (might have side effects or assignments, +references to elements in other files, loops, and so on.) + Das Binding ist nicht optimiert (d.h., es hat Seiteneffekte oder Zuweisungen, +Referenzen zu Elementen in anderen Dateien, Schleifen, o.ä.) + + + Source code not available + Kein Quellcode verfügbar + + + Paint + Paint + + + Compile + Kompilierung + + + Create + Erzeugung + + + Binding + Binding + + + Signal + Signal + + + JavaScript + JavaScript + + + + QmlProfiler::Internal::QmlProfilerStatisticsView + + Statistics + Statistik + + + Copy Row + Zeile kopieren + + + Copy Table + Tabelle kopieren + + + Extended Event Statistics + Erweiterte Ereignisstatistik + + + Show Full Range + Ganzen Bereich anzeigen + + + + QmlProfiler::Internal::QmlProfilerStatisticsRelativesView + + <bytecode> + <bytecode> + + + Source code not available + Kein Quellcode verfügbar + + + Part of binding loop. + Teil der Binding-Schleife. + + + + DebugMessagesModel + + Debug Message + Debugnachricht + + + Warning Message + Warnungsnachricht + + + Critical Message + Kritische Nachricht + + + Fatal Message + Fatale Nachricht + + + Info Message + Infonachricht + + + + QmlProfilerExtension::Internal::DebugMessagesModel + + Unknown Message %1 + Unbekannte Nachricht %1 + + + Timestamp + Zeitstempel + + + Message + Nachricht + + + Location + Ort + + + + QmlProfilerExtension::Internal::FlameGraphModel + + Paint + Paint + + + Compile + Kompilierung + + + Create + Erzeugung + + + Binding + Binding + + + Signal + Signal + + + JavaScript + JavaScript + + + Source code not available + Kein Quellcode verfügbar + + + + QmlProfilerExtension::Internal::FlameGraphView + + Show Full Range + Ganzen Bereich anzeigen + + + + QmlProfilerExtension::Internal::InputEventsModel + + Mouse Events + Mausereignisse + + + Keyboard Events + Tastaturereignisse + + + Timestamp + Zeitstempel + + + Key Press + Tastendruck + + + Key Release + Tastenfreigabe + + + Key + Taste + + + Modifiers + Modifizierer + + + Double Click + Doppelklick + + + Mouse Press + Mausdruck + + + Mouse Release + Mausfreigabe + + + Button + Taste + + + Result + Ergebnis + + + Mouse Move + Mausbewegung + + + X + X + + + Y + Y + + + Mouse Wheel + Mausrad + + + Angle X + X-Winkel + + + Angle Y + Y-Winkel + + + Keyboard Event + Tastaturereignis + + + Mouse Event + Mausereignis + + + + QmlProfilerExtension::Internal::MemoryUsageModel + + Memory Allocation + Speicherallokation + + + Memory Usage + Speicherverbrauch + + + Memory Allocated + Speicher allokiert + + + Memory Freed + Speicher freigegeben + + + Total + Summe + + + Allocated + Allokiert + + + Allocations + Allokationen + + + Deallocated + Freigegeben + + + Deallocations + Freigaben + + + Type + Typ + + + Location + Ort + + + Heap Allocation + Heap-Allokation + + + Large Item Allocation + Allokation großer Elemente + + + Heap Usage + Heap-Verbrauch + + + Unknown + Unbekannt + + + + QmlProfilerExtension::Internal::PixmapCacheModel + + Image Cached + Bild gepuffert + + + Image Loaded + Bild geladen + + + Result + Ergebnis + + + Load Error + Ladefehler + + + Duration + Dauer + + + Cache Size + Puffergröße + + + File + Datei + + + Width + Breite + + + Height + Höhe + + + + QmlProfilerExtension::Internal::QmlProfilerExtensionPlugin + + Action triggered + Aktion ausgelöst + + + This is an action from QmlProfilerExtension. + Dies ist eine Aktion der QmlProfilerExtension. + + + + QmlProfilerExtension::Internal::SceneGraphTimelineModel + + Stage + Phase + + + Duration + Dauer + + + Glyphs + Glyphen + + + + Valgrind::Internal::CallgrindTool + + Valgrind Function Profile uses the Callgrind tool to record function calls when a program runs. + Das Profiling von Funktionen mit Valgrind verwendet das Programm "callgrind", um Funktionsaufrufe während der Programmausführung aufzuzeichnen. + + + Valgrind Function Profiler + Valgrind Funktionsprofiler + + + Valgrind Function Profiler (External Application) + Valgrind Functionsprofiler (externe Anwendung) + + + Profile Costs of This Function and Its Callees + Bestimme Kosten dieser Funktion und der von ihr aufgerufenen Funktionen + + + Visualization + Visualisierung + + + Callers + Aufrufer + + + Callees + Aufgerufene + + + Functions + Funktionen + + + Load External Log File + Externe Logdatei laden + + + Request the dumping of profile information. This will update the Callgrind visualization. + Fordere das Ausschreiben der Profiler-Informationen an. Die Callgrind-Visualisierung wird dadurch aktualisiert. + + + Reset all event counters. + Alle Ereigniszähler zurücksetzen. + + + Pause event logging. No events are counted which will speed up program execution during profiling. + Pausiert die Ereignissprotokollierung, was die Ausführung des Programmes während des Profilens beschleunigt. + + + Go back one step in history. This will select the previously selected item. + Gehe einen Schritt im Verlauf zurück. Das vorher ausgewählte Element wird wieder ausgewählt. + + + Go forward one step in history. + Gehe einen Schritt weiter. + + + Selects which events from the profiling data are shown and visualized. + Bestimmt, welche Ereignisse der Profilerdaten angezeigt werden. + + + Absolute Costs + Absolute Kosten + + + Show costs as absolute numbers. + Kosten als absolute Werte anzeigen. + + + Relative Costs + Relative Kosten + + + Show costs relative to total inclusive cost. + Zeige Kosten relativ zur Summe der einschließlichen Kosten. + + + Relative Costs to Parent + Kosten relativ zu übergeordnetem Element + + + Show costs relative to parent functions inclusive cost. + Zeige Kosten relativ zu den einschließlichen Kosten der rufenden Funktion. + + + Cost Format + Kostenformat + + + Enable cycle detection to properly handle recursive or circular function calls. + Aktivieren Sie die Schleifenerkennung, um rekursive oder zyklische Funktionsaufrufe richtig zu behandeln. + + + This removes template parameter lists when displaying function names. + Entfernt Template-Parameterlisten bei der Anzeige von Funktionsnamen. + + + Show Project Costs Only + Nur Projektkosten anzeigen + + + Show only profiling info that originated from this project source. + Nur Profilerinformationen aus den Quellen des Projekts anzeigen. + + + Filter... + Filter... + + + Callgrind + Callgrind + + + A Valgrind Callgrind analysis is still in progress. + Eine Valgrind Callgrind Analyse läuft noch. + + + Start a Valgrind Callgrind analysis. + Eine Valgrind Callgrind Analyse starten. + + + Profiling aborted. + Profiling abgebrochen. + + + Parsing finished, no data. + Auswertung beendet, keine Daten erhalten. + + + Parsing finished, total cost of %1 reported. + Auswertung beendet, erhaltene Gesamtkosten: %1. + + + Parsing failed. + Die Auswertung schlug fehl. + + + Select this Function in the Analyzer Output + Diese Funktion in der Analyseausgabe auswählen + + + Populating... + Erstelle Ansicht... + + + Open Callgrind Log File + Callgrind-Logdatei öffnen + + + Callgrind Output (callgrind.out*);;All Files (*) + Callgrind-Ausgabedatei (callgrind.out*);;Alle Dateien (*) + + + Callgrind: Failed to open file for reading: %1 + Callgrind: Konnte Datei nicht zum Lesen öffnen: %1 + + + Parsing Profile Data... + Werte Profilerdaten aus... + + + + ModelEditor::Internal::ExtPropertiesMView + + Select Custom Configuration Folder + Konfigurationsverzeichnis auswählen + + + Config Path: + Konfigurationspfad: + + + <font color=red>Model file must be reloaded.</font> + <font color=red>Modell muss neu geladen werden.</font> + + + + qmt::ObjectItem + + Open Diagram + Diagramm öffnen + + + Create Diagram + Diagramm erstellen + + + Remove + Entfernen + + + Delete + Löschen + + + Align Objects + Objekte ausrichten + + + Align Left + Links ausrichten + + + Center Vertically + Vertikal zentrieren + + + Align Right + Rechts ausrichten + + + Align Top + Oben ausrichten + + + Center Horizontally + Horizontal zentrieren + + + Align Bottom + Unten ausrichten + + + Same Width + Gleiche Breite + + + Same Height + Gleiche Höhe + + + Same Size + Gleiche Größe + + diff --git a/src/app/qtcreator.ico b/src/app/qtcreator.ico index b32a5ba8480..9e06d9eae5f 100644 Binary files a/src/app/qtcreator.ico and b/src/app/qtcreator.ico differ diff --git a/src/app/qtcreator.xcassets/prifile.iconset/icon_128x128.png b/src/app/qtcreator.xcassets/prifile.iconset/icon_128x128.png index 0b840fb6d03..4292783e825 100644 Binary files a/src/app/qtcreator.xcassets/prifile.iconset/icon_128x128.png and b/src/app/qtcreator.xcassets/prifile.iconset/icon_128x128.png differ diff --git a/src/app/qtcreator.xcassets/prifile.iconset/icon_128x128@2x.png b/src/app/qtcreator.xcassets/prifile.iconset/icon_128x128@2x.png index 0bd512dc57c..cfbea56ab2d 100644 Binary files a/src/app/qtcreator.xcassets/prifile.iconset/icon_128x128@2x.png and b/src/app/qtcreator.xcassets/prifile.iconset/icon_128x128@2x.png differ diff --git a/src/app/qtcreator.xcassets/prifile.iconset/icon_16x16.png b/src/app/qtcreator.xcassets/prifile.iconset/icon_16x16.png index ade232df4a0..e6d3674071e 100644 Binary files a/src/app/qtcreator.xcassets/prifile.iconset/icon_16x16.png and b/src/app/qtcreator.xcassets/prifile.iconset/icon_16x16.png differ diff --git a/src/app/qtcreator.xcassets/prifile.iconset/icon_16x16@2x.png b/src/app/qtcreator.xcassets/prifile.iconset/icon_16x16@2x.png index a378d489897..dc706b6ffbf 100644 Binary files a/src/app/qtcreator.xcassets/prifile.iconset/icon_16x16@2x.png and b/src/app/qtcreator.xcassets/prifile.iconset/icon_16x16@2x.png differ diff --git a/src/app/qtcreator.xcassets/prifile.iconset/icon_256x256.png b/src/app/qtcreator.xcassets/prifile.iconset/icon_256x256.png index 0bd512dc57c..1420511d6be 100644 Binary files a/src/app/qtcreator.xcassets/prifile.iconset/icon_256x256.png and b/src/app/qtcreator.xcassets/prifile.iconset/icon_256x256.png differ diff --git a/src/app/qtcreator.xcassets/prifile.iconset/icon_256x256@2x.png b/src/app/qtcreator.xcassets/prifile.iconset/icon_256x256@2x.png index 400cea74789..e45fc3650d4 100644 Binary files a/src/app/qtcreator.xcassets/prifile.iconset/icon_256x256@2x.png and b/src/app/qtcreator.xcassets/prifile.iconset/icon_256x256@2x.png differ diff --git a/src/app/qtcreator.xcassets/prifile.iconset/icon_32x32.png b/src/app/qtcreator.xcassets/prifile.iconset/icon_32x32.png index a378d489897..cb7c0e6214e 100644 Binary files a/src/app/qtcreator.xcassets/prifile.iconset/icon_32x32.png and b/src/app/qtcreator.xcassets/prifile.iconset/icon_32x32.png differ diff --git a/src/app/qtcreator.xcassets/prifile.iconset/icon_32x32@2x.png b/src/app/qtcreator.xcassets/prifile.iconset/icon_32x32@2x.png index a00f7006022..21aa63cd03c 100644 Binary files a/src/app/qtcreator.xcassets/prifile.iconset/icon_32x32@2x.png and b/src/app/qtcreator.xcassets/prifile.iconset/icon_32x32@2x.png differ diff --git a/src/app/qtcreator.xcassets/prifile.iconset/icon_512x512.png b/src/app/qtcreator.xcassets/prifile.iconset/icon_512x512.png index 400cea74789..c9b64b3e815 100644 Binary files a/src/app/qtcreator.xcassets/prifile.iconset/icon_512x512.png and b/src/app/qtcreator.xcassets/prifile.iconset/icon_512x512.png differ diff --git a/src/app/qtcreator.xcassets/prifile.iconset/icon_512x512@2x.png b/src/app/qtcreator.xcassets/prifile.iconset/icon_512x512@2x.png index 0b936d31d47..39b0ab7489c 100644 Binary files a/src/app/qtcreator.xcassets/prifile.iconset/icon_512x512@2x.png and b/src/app/qtcreator.xcassets/prifile.iconset/icon_512x512@2x.png differ diff --git a/src/app/qtcreator.xcassets/profile.iconset/icon_128x128.png b/src/app/qtcreator.xcassets/profile.iconset/icon_128x128.png index a5ec17d3649..9fb0b850ed6 100644 Binary files a/src/app/qtcreator.xcassets/profile.iconset/icon_128x128.png and b/src/app/qtcreator.xcassets/profile.iconset/icon_128x128.png differ diff --git a/src/app/qtcreator.xcassets/profile.iconset/icon_128x128@2x.png b/src/app/qtcreator.xcassets/profile.iconset/icon_128x128@2x.png index 8526bc8a71a..48923af95a9 100644 Binary files a/src/app/qtcreator.xcassets/profile.iconset/icon_128x128@2x.png and b/src/app/qtcreator.xcassets/profile.iconset/icon_128x128@2x.png differ diff --git a/src/app/qtcreator.xcassets/profile.iconset/icon_16x16.png b/src/app/qtcreator.xcassets/profile.iconset/icon_16x16.png index ade232df4a0..e6d3674071e 100644 Binary files a/src/app/qtcreator.xcassets/profile.iconset/icon_16x16.png and b/src/app/qtcreator.xcassets/profile.iconset/icon_16x16.png differ diff --git a/src/app/qtcreator.xcassets/profile.iconset/icon_16x16@2x.png b/src/app/qtcreator.xcassets/profile.iconset/icon_16x16@2x.png index f90a05da4d7..bd9d2508396 100644 Binary files a/src/app/qtcreator.xcassets/profile.iconset/icon_16x16@2x.png and b/src/app/qtcreator.xcassets/profile.iconset/icon_16x16@2x.png differ diff --git a/src/app/qtcreator.xcassets/profile.iconset/icon_256x256.png b/src/app/qtcreator.xcassets/profile.iconset/icon_256x256.png index 8526bc8a71a..4956ea009aa 100644 Binary files a/src/app/qtcreator.xcassets/profile.iconset/icon_256x256.png and b/src/app/qtcreator.xcassets/profile.iconset/icon_256x256.png differ diff --git a/src/app/qtcreator.xcassets/profile.iconset/icon_256x256@2x.png b/src/app/qtcreator.xcassets/profile.iconset/icon_256x256@2x.png index fab3805ff88..218534a85e7 100644 Binary files a/src/app/qtcreator.xcassets/profile.iconset/icon_256x256@2x.png and b/src/app/qtcreator.xcassets/profile.iconset/icon_256x256@2x.png differ diff --git a/src/app/qtcreator.xcassets/profile.iconset/icon_32x32.png b/src/app/qtcreator.xcassets/profile.iconset/icon_32x32.png index f90a05da4d7..9cac26d7042 100644 Binary files a/src/app/qtcreator.xcassets/profile.iconset/icon_32x32.png and b/src/app/qtcreator.xcassets/profile.iconset/icon_32x32.png differ diff --git a/src/app/qtcreator.xcassets/profile.iconset/icon_32x32@2x.png b/src/app/qtcreator.xcassets/profile.iconset/icon_32x32@2x.png index 84dfa9f95f6..b5f4bc827ff 100644 Binary files a/src/app/qtcreator.xcassets/profile.iconset/icon_32x32@2x.png and b/src/app/qtcreator.xcassets/profile.iconset/icon_32x32@2x.png differ diff --git a/src/app/qtcreator.xcassets/profile.iconset/icon_512x512.png b/src/app/qtcreator.xcassets/profile.iconset/icon_512x512.png index fab3805ff88..a9ef0f4a747 100644 Binary files a/src/app/qtcreator.xcassets/profile.iconset/icon_512x512.png and b/src/app/qtcreator.xcassets/profile.iconset/icon_512x512.png differ diff --git a/src/app/qtcreator.xcassets/profile.iconset/icon_512x512@2x.png b/src/app/qtcreator.xcassets/profile.iconset/icon_512x512@2x.png index cc62998733b..dedd2f5e575 100644 Binary files a/src/app/qtcreator.xcassets/profile.iconset/icon_512x512@2x.png and b/src/app/qtcreator.xcassets/profile.iconset/icon_512x512@2x.png differ diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_128x128.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_128x128.png index b4e86731540..6c556a8356d 100644 Binary files a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_128x128.png and b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_128x128.png differ diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_128x128@2x.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_128x128@2x.png index b7aced53f6c..4442d3eb27f 100644 Binary files a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_128x128@2x.png and b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_128x128@2x.png differ diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_16x16.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_16x16.png index f44ede5d91a..2adcdb5f491 100644 Binary files a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_16x16.png and b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_16x16.png differ diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_16x16@2x.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_16x16@2x.png index 5bf7644f10d..2a7030fd705 100644 Binary files a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_16x16@2x.png and b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_16x16@2x.png differ diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_256x256.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_256x256.png index b7aced53f6c..4442d3eb27f 100644 Binary files a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_256x256.png and b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_256x256.png differ diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_256x256@2x.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_256x256@2x.png index 6ff06c07fd1..069b5c05024 100644 Binary files a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_256x256@2x.png and b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_256x256@2x.png differ diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_32x32.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_32x32.png index 29a67cb01c5..2a7030fd705 100644 Binary files a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_32x32.png and b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_32x32.png differ diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_32x32@2x.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_32x32@2x.png index ec5da2d4c1d..c5e45816497 100644 Binary files a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_32x32@2x.png and b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_32x32@2x.png differ diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_512x512.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_512x512.png index 6ff06c07fd1..069b5c05024 100644 Binary files a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_512x512.png and b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_512x512.png differ diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_512x512@2x.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_512x512@2x.png index d6f3e6e4501..0b810615e05 100644 Binary files a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_512x512@2x.png and b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_512x512@2x.png differ diff --git a/src/libs/3rdparty/botan/botan.pri b/src/libs/3rdparty/botan/botan.pri index 1da11b47517..abf66bfba71 100644 --- a/src/libs/3rdparty/botan/botan.pri +++ b/src/libs/3rdparty/botan/botan.pri @@ -34,7 +34,7 @@ win32 { BOTAN_HAS_DYNAMIC_LOADER BOTAN_HAS_ENTROPY_SRC_CAPI BOTAN_HAS_ENTROPY_SRC_WIN32 \ BOTAN_HAS_MUTEX_WIN32 - win32-msvc* { + msvc { QMAKE_CXXFLAGS_EXCEPTIONS_ON = -EHs QMAKE_CXXFLAGS += -wd4251 -wd4290 -wd4250 -wd4297 -wd4267 -wd4334 DEFINES += BOTAN_BUILD_COMPILER_IS_MSVC BOTAN_TARGET_OS_HAS_GMTIME_S _SCL_SECURE_NO_WARNINGS diff --git a/src/libs/clangbackendipc/cmbendmessage.h b/src/libs/clangbackendipc/cmbendmessage.h index d5163a7be88..d211b5113ca 100644 --- a/src/libs/clangbackendipc/cmbendmessage.h +++ b/src/libs/clangbackendipc/cmbendmessage.h @@ -26,6 +26,7 @@ #pragma once #include "clangbackendipc_global.h" +#include namespace ClangBackEnd { diff --git a/src/libs/clangbackendipc/highlightingmarkcontainer.h b/src/libs/clangbackendipc/highlightingmarkcontainer.h index 6018381b1fb..c20c0c0bc73 100644 --- a/src/libs/clangbackendipc/highlightingmarkcontainer.h +++ b/src/libs/clangbackendipc/highlightingmarkcontainer.h @@ -26,6 +26,7 @@ #pragma once #include "clangbackendipc_global.h" +#include namespace ClangBackEnd { diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp index 6f05f8ea74c..06ecaaf9c6d 100644 --- a/src/libs/cplusplus/LookupContext.cpp +++ b/src/libs/cplusplus/LookupContext.cpp @@ -88,10 +88,10 @@ static bool isNestedInstantiationEnclosingTemplate( ClassOrNamespace *nestedClassOrNamespaceInstantiation, ClassOrNamespace *enclosingTemplateClassInstantiation) { - QList processed; + QSet processed; while (enclosingTemplateClassInstantiation && !processed.contains(enclosingTemplateClassInstantiation)) { - processed.append(enclosingTemplateClassInstantiation); + processed.insert(enclosingTemplateClassInstantiation); if (enclosingTemplateClassInstantiation == nestedClassOrNamespaceInstantiation) return false; enclosingTemplateClassInstantiation = enclosingTemplateClassInstantiation->parent(); @@ -454,8 +454,13 @@ QList LookupContext::lookup(const Name *name, Scope *scope) const candidates = binding->find(name); // try find this name in parent class - while (candidates.isEmpty() && (binding = binding->parent())) + QSet processed; + while (candidates.isEmpty() && (binding = binding->parent())) { + if (processed.contains(binding)) + break; + processed.insert(binding); candidates = binding->find(name); + } if (! candidates.isEmpty()) return candidates; @@ -1143,8 +1148,13 @@ ClassOrNamespace *ClassOrNamespace::nestedType(const Name *name, ClassOrNamespac instantiation->_name = templId; instantiation->_templateId = templId; - while (!origin->_symbols.isEmpty() && origin->_symbols[0]->isBlock()) + QSet processed; + while (!origin->_symbols.isEmpty() && origin->_symbols[0]->isBlock()) { + if (processed.contains(origin)) + break; + processed.insert(origin); origin = origin->parent(); + } instantiation->_instantiationOrigin = origin; diff --git a/src/libs/cplusplus/OverviewModel.cpp b/src/libs/cplusplus/OverviewModel.cpp index f37d5456eff..3b42204be3f 100644 --- a/src/libs/cplusplus/OverviewModel.cpp +++ b/src/libs/cplusplus/OverviewModel.cpp @@ -140,6 +140,9 @@ int OverviewModel::columnCount(const QModelIndex &) const QVariant OverviewModel::data(const QModelIndex &index, int role) const { + if (!index.isValid()) + return QVariant(); + // account for no symbol item if (!index.parent().isValid() && index.row() == 0) { switch (role) { @@ -243,7 +246,9 @@ void OverviewModel::rebuild(Document::Ptr doc) Qt::ItemFlags OverviewModel::flags(const QModelIndex &index) const { - Q_UNUSED(index) + if (!index.isValid()) + return 0; + return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled; } diff --git a/src/libs/modelinglib/qmt/diagram_scene/items/associationitem.cpp b/src/libs/modelinglib/qmt/diagram_scene/items/associationitem.cpp index 834ccf324d4..0211700ab27 100644 --- a/src/libs/modelinglib/qmt/diagram_scene/items/associationitem.cpp +++ b/src/libs/modelinglib/qmt/diagram_scene/items/associationitem.cpp @@ -62,10 +62,12 @@ void AssociationItem::update(const Style *style) QMT_CHECK(m_arrow); QGraphicsItem *endAItem = m_diagramSceneModel->graphicsItem(m_association->endAUid()); - QMT_CHECK(endAItem); + if (!endAItem) + return; placeEndLabels(m_arrow->firstLineSegment(), m_endAName, m_endACardinality, endAItem, m_arrow->startHeadLength()); QGraphicsItem *endBItem = m_diagramSceneModel->graphicsItem(m_association->endBUid()); - QMT_CHECK(endBItem); + if (!endBItem) + return; placeEndLabels(m_arrow->lastLineSegment(), m_endBName, m_endBCardinality, endBItem, m_arrow->endHeadLength()); } diff --git a/src/libs/modelinglib/qmt/diagram_scene/items/relationitem.cpp b/src/libs/modelinglib/qmt/diagram_scene/items/relationitem.cpp index c3b26f0f199..caa54576e35 100644 --- a/src/libs/modelinglib/qmt/diagram_scene/items/relationitem.cpp +++ b/src/libs/modelinglib/qmt/diagram_scene/items/relationitem.cpp @@ -492,7 +492,8 @@ QPointF RelationItem::calcEndPoint(const Uid &end, const Uid &otherEnd, int near QPointF RelationItem::calcEndPoint(const Uid &end, const QPointF &otherEndPos, int nearestIntermediatePointIndex) { QGraphicsItem *endItem = m_diagramSceneModel->graphicsItem(end); - QMT_CHECK(endItem); + if (!endItem) + return QPointF(0, 0); auto endObjectItem = dynamic_cast(endItem); QPointF endPos; if (endObjectItem) { diff --git a/src/libs/qtcreatorcdbext/cdb_detect.pri b/src/libs/qtcreatorcdbext/cdb_detect.pri index 1e134255a87..286d9f20c30 100644 --- a/src/libs/qtcreatorcdbext/cdb_detect.pri +++ b/src/libs/qtcreatorcdbext/cdb_detect.pri @@ -2,7 +2,7 @@ # in case MS VS compilers are used. CDB_PATH="" -win32-msvc*|winrt { +msvc { CDB_PATH="$$(CDB_PATH)" isEmpty(CDB_PATH):CDB_PATH="$$(ProgramFiles)/Debugging Tools For Windows/sdk" !exists($$CDB_PATH):CDB_PATH="$$(ProgramFiles)/Debugging Tools For Windows (x86)/sdk" diff --git a/src/libs/sqlite/sqlite-lib.pri b/src/libs/sqlite/sqlite-lib.pri index 5c742d19f71..f8ef1c1a03d 100644 --- a/src/libs/sqlite/sqlite-lib.pri +++ b/src/libs/sqlite/sqlite-lib.pri @@ -6,7 +6,7 @@ contains(CONFIG, dll) { INCLUDEPATH += $$PWD -unix:!openbsd: LIBS += -ldl +unix:!bsd: LIBS += -ldl include(../3rdparty/sqlite/sqlite.pri) diff --git a/src/libs/sqlite/sqlite.qbs b/src/libs/sqlite/sqlite.qbs index e974e38cd6d..62291da5b5a 100644 --- a/src/libs/sqlite/sqlite.qbs +++ b/src/libs/sqlite/sqlite.qbs @@ -13,7 +13,7 @@ QtcLibrary { "SQLITE_ENABLE_COLUMN_METADATA" ]) cpp.optimization: "fast" - cpp.dynamicLibraries: base.concat((qbs.targetOS.contains("unix") && !qbs.targetOS.contains("openbsd")) + cpp.dynamicLibraries: base.concat((qbs.targetOS.contains("unix") && !qbs.targetOS.contains("bsd")) ? ["dl", "pthread"] : []) diff --git a/src/libs/ssh/ssh.qbs b/src/libs/ssh/ssh.qbs index 8998d6823cb..dc317992f3f 100644 --- a/src/libs/ssh/ssh.qbs +++ b/src/libs/ssh/ssh.qbs @@ -7,6 +7,7 @@ QtcLibrary { cpp.defines: base.concat(["QSSH_LIBRARY"]).concat(botanDefines) cpp.includePaths: botanIncludes cpp.dynamicLibraries: botanLibs + cpp.enableExceptions: true Depends { name: "Qt"; submodules: ["widgets", "network" ] } diff --git a/src/libs/utils/process_stub_win.c b/src/libs/utils/process_stub_win.c index 5e634ad9c41..ba731e74065 100644 --- a/src/libs/utils/process_stub_win.c +++ b/src/libs/utils/process_stub_win.c @@ -23,6 +23,7 @@ ** ****************************************************************************/ +#undef _WIN32_WINNT #define _WIN32_WINNT 0x0501 /* WinXP, needed for DebugActiveProcessStop() */ #include diff --git a/src/libs/utils/treemodel.h b/src/libs/utils/treemodel.h index 0fcabcf85ce..50a6eed6924 100644 --- a/src/libs/utils/treemodel.h +++ b/src/libs/utils/treemodel.h @@ -246,7 +246,7 @@ class QTCREATOR_UTILS_EXPORT TreeModel : public QAbstractItemModel public: explicit TreeModel(QObject *parent = 0); explicit TreeModel(TreeItem *root, QObject *parent = 0); - ~TreeModel(); + ~TreeModel() override; void setHeader(const QStringList &displays); void setHeaderToolTip(const QStringList &tips); @@ -258,19 +258,19 @@ public: QModelIndex indexForItem(const TreeItem *needle) const; int topLevelItemCount() const; - int rowCount(const QModelIndex &idx = QModelIndex()) const; - int columnCount(const QModelIndex &idx) const; + int rowCount(const QModelIndex &idx = QModelIndex()) const override; + int columnCount(const QModelIndex &idx) const override; - bool setData(const QModelIndex &idx, const QVariant &data, int role); - QVariant data(const QModelIndex &idx, int role) const; - QModelIndex index(int, int, const QModelIndex &idx = QModelIndex()) const; - QModelIndex parent(const QModelIndex &idx) const; - Qt::ItemFlags flags(const QModelIndex &idx) const; - QVariant headerData(int section, Qt::Orientation orientation, int role) const; - bool hasChildren(const QModelIndex &idx) const; + bool setData(const QModelIndex &idx, const QVariant &data, int role) override; + QVariant data(const QModelIndex &idx, int role) const override; + QModelIndex index(int, int, const QModelIndex &idx = QModelIndex()) const override; + QModelIndex parent(const QModelIndex &idx) const override; + Qt::ItemFlags flags(const QModelIndex &idx) const override; + QVariant headerData(int section, Qt::Orientation orientation, int role) const override; + bool hasChildren(const QModelIndex &idx) const override; - bool canFetchMore(const QModelIndex &idx) const; - void fetchMore(const QModelIndex &idx); + bool canFetchMore(const QModelIndex &idx) const override; + void fetchMore(const QModelIndex &idx) override; template TreeLevelItems itemsAtLevel(int level, TreeItem *start = 0) const diff --git a/src/libs/utils/utils.qbs b/src/libs/utils/utils.qbs index 53125f5fef6..a01fbfb5923 100644 --- a/src/libs/utils/utils.qbs +++ b/src/libs/utils/utils.qbs @@ -22,6 +22,8 @@ QtcLibrary { return libs; } + cpp.enableExceptions: true + Properties { condition: qbs.targetOS.contains("osx") cpp.frameworks: ["Foundation"] diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index 8221bb5e40b..35e80683244 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -917,7 +917,7 @@ QString AndroidConfig::getAvdName(const QString &serialnumber) if (!ok) return QString(); - QByteArray avdName = "avd name\n"; + const QByteArray avdName = "avd name\n"; QTcpSocket tcpSocket; tcpSocket.connectToHost(QHostAddress(QHostAddress::LocalHost), port); @@ -925,16 +925,15 @@ QString AndroidConfig::getAvdName(const QString &serialnumber) tcpSocket.write(avdName + "exit\n"); tcpSocket.waitForDisconnected(); - QByteArray response = tcpSocket.readAll(); - int start = response.indexOf("OK\r\n"); - if (start == -1) - return QString(); - start = start + 4; - - int end = response.indexOf("\r\n", start); - if (end == -1) - return QString(); - return QString::fromLatin1(response.mid(start, end - start)); + QByteArray name; + const QByteArrayList response = tcpSocket.readAll().split('\n'); + // The input "avd name" might not be echoed as-is, but contain ASCII + // control sequences. + for (int i = response.size() - 1; i > 1; --i) { + if (response.at(i).startsWith("OK")) + name = response.at(i - 1); + } + return QString::fromLatin1(name).trimmed(); } AndroidConfig::OpenGl AndroidConfig::getOpenGLEnabled(const QString &emulator) const @@ -1288,6 +1287,7 @@ void AndroidConfigurations::updateAutomaticKitList() debugger.setUnexpandedDisplayName(tr("Android Debugger for %1").arg(tc->displayName())); debugger.setAutoDetected(true); debugger.setAbi(tc->targetAbi()); + debugger.reinitializeFromFile(); QVariant id = Debugger::DebuggerItemManager::registerDebugger(debugger); Debugger::DebuggerKitInformation::setDebugger(k, id); } @@ -1334,6 +1334,7 @@ void AndroidConfigurations::updateAutomaticKitList() debugger.setUnexpandedDisplayName(tr("Android Debugger for %1").arg(tc->displayName())); debugger.setAutoDetected(true); debugger.setAbi(tc->targetAbi()); + debugger.reinitializeFromFile(); QVariant id = Debugger::DebuggerItemManager::registerDebugger(debugger); Debugger::DebuggerKitInformation::setDebugger(newKit, id); diff --git a/src/plugins/android/androiddebugsupport.cpp b/src/plugins/android/androiddebugsupport.cpp index 0cb13ee45cd..1a2fd4e78ae 100644 --- a/src/plugins/android/androiddebugsupport.cpp +++ b/src/plugins/android/androiddebugsupport.cpp @@ -92,11 +92,12 @@ RunControl *AndroidDebugSupport::createDebugRunControl(AndroidRunConfiguration * params.startMode = AttachToRemoteServer; params.displayName = AndroidManager::packageName(target); params.remoteSetupNeeded = true; + params.useContinueInsteadOfRun = true; auto aspect = runConfig->extraAspect(); if (aspect->useCppDebugger()) { Kit *kit = target->kit(); - params.inferior.executable = target->activeBuildConfiguration()->buildDirectory().toString() + params.symbolFile = target->activeBuildConfiguration()->buildDirectory().toString() + QLatin1String("/app_process"); params.skipExecutableValidation = true; params.remoteChannel = runConfig->remoteChannel(); diff --git a/src/plugins/android/androiddeployqtstep.cpp b/src/plugins/android/androiddeployqtstep.cpp index 331ce48f953..7a5f6b6deea 100644 --- a/src/plugins/android/androiddeployqtstep.cpp +++ b/src/plugins/android/androiddeployqtstep.cpp @@ -354,7 +354,7 @@ AndroidDeployQtStep::DeployResult AndroidDeployQtStep::runDeploy(QFutureInterfac .arg(QDir::toNativeSeparators(m_command), args), BuildStep::MessageOutput); - while (!m_process->waitForFinished(200)) { + while (m_process->state() != QProcess::NotRunning && !m_process->waitForFinished(200)) { if (fi.isCanceled()) { m_process->kill(); m_process->waitForFinished(); diff --git a/src/plugins/android/androidrunner.cpp b/src/plugins/android/androidrunner.cpp index 03e8d6851dd..2d5e5b579f9 100644 --- a/src/plugins/android/androidrunner.cpp +++ b/src/plugins/android/androidrunner.cpp @@ -249,13 +249,19 @@ static int extractPid(const QString &exeName, const QByteArray &psOutput) QByteArray AndroidRunner::runPs() { - QByteArray psLine("ps"); - if (m_isBusyBox) - psLine += " -w"; - psLine += '\n'; - m_psProc.write(psLine); - m_psProc.waitForBytesWritten(psLine.size()); - return m_psProc.readAllStandardOutput(); + if (QThread::currentThread() != thread()) { + QByteArray ret; + QMetaObject::invokeMethod(this, "runPs", Qt::BlockingQueuedConnection, Q_RETURN_ARG(QByteArray, ret)); + return ret; + } else { + QByteArray psLine("ps"); + if (m_isBusyBox) + psLine += " -w"; + psLine += '\n'; + m_psProc.write(psLine); + m_psProc.waitForBytesWritten(psLine.size()); + return m_psProc.readAllStandardOutput(); + } } void AndroidRunner::checkPID() diff --git a/src/plugins/android/androidrunner.h b/src/plugins/android/androidrunner.h index c9a87f3579a..fb3c9edf177 100644 --- a/src/plugins/android/androidrunner.h +++ b/src/plugins/android/androidrunner.h @@ -79,12 +79,12 @@ private slots: void logcatReadStandardError(); void logcatReadStandardOutput(); void asyncStart(); + QByteArray runPs(); private: void adbKill(qint64 pid); QStringList selector() const { return m_selector; } void forceStop(); - QByteArray runPs(); void findPs(); void logcatProcess(const QByteArray &text, QByteArray &buffer, bool onlyError); bool adbShellAmNeedsQuotes(); diff --git a/src/plugins/autotest/testvisitor.cpp b/src/plugins/autotest/testvisitor.cpp index d766cc0fdc5..4336591e3ee 100644 --- a/src/plugins/autotest/testvisitor.cpp +++ b/src/plugins/autotest/testvisitor.cpp @@ -63,6 +63,7 @@ bool TestVisitor::visit(CPlusPlus::Class *symbol) { const CPlusPlus::Overview o; CPlusPlus::LookupContext lc; + const CPlusPlus::Snapshot snapshot = CppTools::CppModelManager::instance()->snapshot(); unsigned count = symbol->memberCount(); for (unsigned i = 0; i < count; ++i) { @@ -81,7 +82,7 @@ bool TestVisitor::visit(CPlusPlus::Class *symbol) TestCodeLocationAndType locationAndType; CPlusPlus::Function *functionDefinition = m_symbolFinder.findMatchingDefinition( - func, CppTools::CppModelManager::instance()->snapshot(), true); + func, snapshot, true); if (functionDefinition && functionDefinition->fileId()) { locationAndType.m_name = QString::fromUtf8(functionDefinition->fileName()); locationAndType.m_line = functionDefinition->line(); @@ -203,6 +204,26 @@ bool TestDataFunctionVisitor::visit(CPlusPlus::FunctionDefinitionAST *ast) return false; } +QString TestDataFunctionVisitor::extractNameFromAST(CPlusPlus::StringLiteralAST *ast, bool *ok) const +{ + auto token = m_currentDoc->translationUnit()->tokenAt(ast->literal_token); + if (!token.isStringLiteral()) { + *ok = false; + return QString(); + } + *ok = true; + QString name = QString::fromUtf8(token.spell()); + if (ast->next) { + CPlusPlus::StringLiteralAST *current = ast; + do { + auto nextToken = m_currentDoc->translationUnit()->tokenAt(current->next->literal_token); + name.append(QString::fromUtf8(nextToken.spell())); + current = current->next; + } while (current->next); + } + return name; +} + bool TestDataFunctionVisitor::visit(CPlusPlus::CallAST *ast) { if (m_currentFunction.isEmpty()) @@ -214,15 +235,15 @@ bool TestDataFunctionVisitor::visit(CPlusPlus::CallAST *ast) // first argument is the one we need if (const auto argumentExpressionAST = expressionListAST->value) { if (const auto stringLiteral = argumentExpressionAST->asStringLiteral()) { - auto token = m_currentDoc->translationUnit()->tokenAt( - stringLiteral->literal_token); - if (token.isStringLiteral()) { + bool ok = false; + QString name = extractNameFromAST(stringLiteral, &ok); + if (ok) { unsigned line = 0; unsigned column = 0; m_currentDoc->translationUnit()->getTokenStartPosition( firstToken, &line, &column); TestCodeLocationAndType locationAndType; - locationAndType.m_name = QString::fromUtf8(token.spell()); + locationAndType.m_name = name; locationAndType.m_column = column - 1; locationAndType.m_line = line; locationAndType.m_type = TestTreeItem::TestDataTag; diff --git a/src/plugins/autotest/testvisitor.h b/src/plugins/autotest/testvisitor.h index fa2869a44c3..f3cd9271f9e 100644 --- a/src/plugins/autotest/testvisitor.h +++ b/src/plugins/autotest/testvisitor.h @@ -94,6 +94,7 @@ public: QMap dataTags() const { return m_dataTags; } private: + QString extractNameFromAST(CPlusPlus::StringLiteralAST *ast, bool *ok) const; bool newRowCallFound(CPlusPlus::CallAST *ast, unsigned *firstToken) const; CPlusPlus::Document::Ptr m_currentDoc; diff --git a/src/plugins/baremetal/baremetaldevice.cpp b/src/plugins/baremetal/baremetaldevice.cpp index 3a65681ed0f..67c80b7c410 100644 --- a/src/plugins/baremetal/baremetaldevice.cpp +++ b/src/plugins/baremetal/baremetaldevice.cpp @@ -67,6 +67,16 @@ QString BareMetalDevice::gdbServerProviderId() const void BareMetalDevice::setGdbServerProviderId(const QString &id) { m_gdbServerProviderId = id; + GdbServerProvider *provider = GdbServerProviderManager::instance()->findProvider(id); + QTC_ASSERT(provider, return); + const QString channel = provider->channel(); + const int colon = channel.indexOf(QLatin1Char(':')); + if (colon < 0) + return; + QSsh::SshConnectionParameters sshParams = sshParameters(); + sshParams.host = channel.left(colon); + sshParams.port = channel.mid(colon + 1).toUShort(); + setSshParameters(sshParams); } void BareMetalDevice::fromMap(const QVariantMap &map) diff --git a/src/plugins/baremetal/baremetalruncontrolfactory.cpp b/src/plugins/baremetal/baremetalruncontrolfactory.cpp index a31917f15ee..6ca56bd9724 100644 --- a/src/plugins/baremetal/baremetalruncontrolfactory.cpp +++ b/src/plugins/baremetal/baremetalruncontrolfactory.cpp @@ -124,6 +124,7 @@ RunControl *BareMetalRunControlFactory::create( sp.inferior.executable = bin; sp.inferior.commandLineArguments = rc->arguments(); + sp.symbolFile = bin; sp.startMode = AttachToRemoteServer; sp.commandsAfterConnect = p->initCommands().toLatin1(); sp.commandsForReset = p->resetCommands().toLatin1(); diff --git a/src/plugins/bookmarks/bookmarkmanager.cpp b/src/plugins/bookmarks/bookmarkmanager.cpp index ee92b9ab8e1..0083466fef1 100644 --- a/src/plugins/bookmarks/bookmarkmanager.cpp +++ b/src/plugins/bookmarks/bookmarkmanager.cpp @@ -202,8 +202,9 @@ void BookmarkDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti painter->drawText(6, opt.rect.top() + fm.ascent() + fm.height() + 6, lineText); // Separator lines + const QRectF innerRect = QRectF(opt.rect).adjusted(0.5, 0.5, -0.5, -0.5); painter->setPen(QColor::fromRgb(150,150,150)); - painter->drawLine(0, opt.rect.bottom(), opt.rect.right(), opt.rect.bottom()); + painter->drawLine(innerRect.bottomLeft(), innerRect.bottomRight()); painter->restore(); } diff --git a/src/plugins/clangstaticanalyzer/clangstaticanalyzerutils.cpp b/src/plugins/clangstaticanalyzer/clangstaticanalyzerutils.cpp index 18e8544b020..c2e278a9d0e 100644 --- a/src/plugins/clangstaticanalyzer/clangstaticanalyzerutils.cpp +++ b/src/plugins/clangstaticanalyzer/clangstaticanalyzerutils.cpp @@ -30,6 +30,7 @@ #include +#include #include #include @@ -50,8 +51,12 @@ namespace Internal { QString clangExecutableFromSettings(Core::Id toolchainType, bool *isValid) { QString exeFromSettings = ClangStaticAnalyzerSettings::instance()->clangExecutable(); - if (toolchainType == ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID) - exeFromSettings.replace(QLatin1String("clang.exe"), QLatin1String("clang-cl.exe")); + if (toolchainType == ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID) { + if (exeFromSettings.endsWith(QLatin1String(QTC_HOST_EXE_SUFFIX))) + exeFromSettings.chop(int(qstrlen(QTC_HOST_EXE_SUFFIX))); + if (exeFromSettings.endsWith(QLatin1String("clang"))) + exeFromSettings.append(QLatin1String("-cl")); + } return clangExecutable(exeFromSettings, isValid); } diff --git a/src/plugins/coreplugin/coreplugin.pro b/src/plugins/coreplugin/coreplugin.pro index bc9f76d109b..72d979f95e0 100644 --- a/src/plugins/coreplugin/coreplugin.pro +++ b/src/plugins/coreplugin/coreplugin.pro @@ -11,7 +11,7 @@ isEmpty(QTC_SHOW_BUILD_DATE): QTC_SHOW_BUILD_DATE = $$(QTC_SHOW_BUILD_DATE) !isEmpty(QTC_SHOW_BUILD_DATE): DEFINES += QTC_SHOW_BUILD_DATE include(../../qtcreatorplugin.pri) -win32-msvc*:QMAKE_CXXFLAGS += -wd4251 -wd4290 -wd4250 +msvc: QMAKE_CXXFLAGS += -wd4251 -wd4290 -wd4250 SOURCES += corejsextensions.cpp \ mainwindow.cpp \ shellcommand.cpp \ diff --git a/src/plugins/coreplugin/images/logo/128/QtProject-qtcreator.png b/src/plugins/coreplugin/images/logo/128/QtProject-qtcreator.png index b7d8b35ea43..3dc3b0a74e1 100644 Binary files a/src/plugins/coreplugin/images/logo/128/QtProject-qtcreator.png and b/src/plugins/coreplugin/images/logo/128/QtProject-qtcreator.png differ diff --git a/src/plugins/coreplugin/images/logo/16/QtProject-qtcreator.png b/src/plugins/coreplugin/images/logo/16/QtProject-qtcreator.png index e1adcdc5c22..2adcdb5f491 100644 Binary files a/src/plugins/coreplugin/images/logo/16/QtProject-qtcreator.png and b/src/plugins/coreplugin/images/logo/16/QtProject-qtcreator.png differ diff --git a/src/plugins/coreplugin/images/logo/24/QtProject-qtcreator.png b/src/plugins/coreplugin/images/logo/24/QtProject-qtcreator.png index 5a0674d0a08..3ec47c91755 100644 Binary files a/src/plugins/coreplugin/images/logo/24/QtProject-qtcreator.png and b/src/plugins/coreplugin/images/logo/24/QtProject-qtcreator.png differ diff --git a/src/plugins/coreplugin/images/logo/256/QtProject-qtcreator.png b/src/plugins/coreplugin/images/logo/256/QtProject-qtcreator.png index 4fc92d89f5c..68667830c1a 100644 Binary files a/src/plugins/coreplugin/images/logo/256/QtProject-qtcreator.png and b/src/plugins/coreplugin/images/logo/256/QtProject-qtcreator.png differ diff --git a/src/plugins/coreplugin/images/logo/32/QtProject-qtcreator.png b/src/plugins/coreplugin/images/logo/32/QtProject-qtcreator.png index 58d934aa89e..8173281abf7 100644 Binary files a/src/plugins/coreplugin/images/logo/32/QtProject-qtcreator.png and b/src/plugins/coreplugin/images/logo/32/QtProject-qtcreator.png differ diff --git a/src/plugins/coreplugin/images/logo/48/QtProject-qtcreator.png b/src/plugins/coreplugin/images/logo/48/QtProject-qtcreator.png index bef97356bd4..9d218b36d8b 100644 Binary files a/src/plugins/coreplugin/images/logo/48/QtProject-qtcreator.png and b/src/plugins/coreplugin/images/logo/48/QtProject-qtcreator.png differ diff --git a/src/plugins/coreplugin/images/logo/512/QtProject-qtcreator.png b/src/plugins/coreplugin/images/logo/512/QtProject-qtcreator.png index 556e512aed4..45aa2008d14 100644 Binary files a/src/plugins/coreplugin/images/logo/512/QtProject-qtcreator.png and b/src/plugins/coreplugin/images/logo/512/QtProject-qtcreator.png differ diff --git a/src/plugins/coreplugin/images/logo/64/QtProject-qtcreator.png b/src/plugins/coreplugin/images/logo/64/QtProject-qtcreator.png index 4a5476ef9c7..778da347762 100644 Binary files a/src/plugins/coreplugin/images/logo/64/QtProject-qtcreator.png and b/src/plugins/coreplugin/images/logo/64/QtProject-qtcreator.png differ diff --git a/src/plugins/cpptools/cppcompletionassist.cpp b/src/plugins/cpptools/cppcompletionassist.cpp index 1e87bbebf8d..f8070985298 100644 --- a/src/plugins/cpptools/cppcompletionassist.cpp +++ b/src/plugins/cpptools/cppcompletionassist.cpp @@ -1513,7 +1513,12 @@ bool InternalCppCompletionAssistProcessor::globalCompletion(Scope *currentScope) } } + QSet processed; for (; currentBinding; currentBinding = currentBinding->parent()) { + if (processed.contains(currentBinding)) + break; + processed.insert(currentBinding); + foreach (ClassOrNamespace* u, currentBinding->usings()) usingBindings.append(u); diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index 2ffd37c14e5..08ee406fc89 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -900,6 +900,19 @@ QFuture CppModelManager::updateProjectInfo(const ProjectInfo &newProjectIn return indexerFuture; } +ProjectInfo CppModelManager::updateCompilerCallDataForProject( + ProjectExplorer::Project *project, + ProjectInfo::CompilerCallData &compilerCallData) +{ + QMutexLocker locker(&d->m_projectMutex); + + ProjectInfo projectInfo = d->m_projectToProjectsInfo.value(project, ProjectInfo()); + projectInfo.setCompilerCallData(compilerCallData); + d->m_projectToProjectsInfo.insert(project, projectInfo); + + return projectInfo; +} + ProjectPart::Ptr CppModelManager::projectPartForId(const QString &projectPartId) const { return d->m_projectPartIdToProjectProjectPart.value(projectPartId); diff --git a/src/plugins/cpptools/cppmodelmanager.h b/src/plugins/cpptools/cppmodelmanager.h index 6bb601fb5bb..3a4ce239246 100644 --- a/src/plugins/cpptools/cppmodelmanager.h +++ b/src/plugins/cpptools/cppmodelmanager.h @@ -28,6 +28,7 @@ #include "cpptools_global.h" #include "cppmodelmanagersupport.h" +#include "projectinfo.h" #include "projectpart.h" #include "projectpartheaderpath.h" @@ -55,7 +56,6 @@ class CppEditorDocumentHandle; class CppIndexingSupport; class SymbolFinder; class WorkingCopy; -class ProjectInfo; namespace Internal { class CppSourceProcessor; @@ -94,6 +94,8 @@ public: QList projectInfos() const; ProjectInfo projectInfo(ProjectExplorer::Project *project) const; QFuture updateProjectInfo(const ProjectInfo &newProjectInfo); + ProjectInfo updateCompilerCallDataForProject(ProjectExplorer::Project *project, + ProjectInfo::CompilerCallData &compilerCallData); /// \return The project part with the given project file ProjectPart::Ptr projectPartForId(const QString &projectPartId) const; diff --git a/src/plugins/cpptools/cpptools.pro b/src/plugins/cpptools/cpptools.pro index f98a85cde89..d13531fa865 100644 --- a/src/plugins/cpptools/cpptools.pro +++ b/src/plugins/cpptools/cpptools.pro @@ -1,5 +1,5 @@ DEFINES += CPPTOOLS_LIBRARY -win32-msvc*:DEFINES += _SCL_SECURE_NO_WARNINGS +msvc: DEFINES += _SCL_SECURE_NO_WARNINGS include(../../qtcreatorplugin.pri) HEADERS += \ diff --git a/src/plugins/debugger/debugger.qbs b/src/plugins/debugger/debugger.qbs index a4c8834568f..2241b60da7c 100644 --- a/src/plugins/debugger/debugger.qbs +++ b/src/plugins/debugger/debugger.qbs @@ -29,6 +29,7 @@ QtcPlugin { ] cpp.includePaths: base.concat([project.sharedSourcesDir + "/registryaccess"]) + cpp.enableExceptions: true pluginRecommends: [ "CppEditor" @@ -241,25 +242,25 @@ QtcPlugin { Group { name: "Analyzer" - + prefix: "analyzer/" files: [ - "analyzer/analyzerbase.qrc", - "analyzer/analyzerconstants.h", - "analyzer/analyzericons.h", - "analyzer/analyzermanager.h", - "analyzer/analyzerrunconfigwidget.cpp", - "analyzer/analyzerrunconfigwidget.h", - "analyzer/analyzerruncontrol.cpp", - "analyzer/analyzerruncontrol.h", - "analyzer/analyzerstartparameters.h", - "analyzer/analyzerutils.cpp", - "analyzer/analyzerutils.h", - "analyzer/detailederrorview.cpp", - "analyzer/detailederrorview.h", - "analyzer/diagnosticlocation.cpp", - "analyzer/diagnosticlocation.h", - "analyzer/startremotedialog.cpp", - "analyzer/startremotedialog.h", + "analyzerbase.qrc", + "analyzerconstants.h", + "analyzericons.h", + "analyzermanager.h", + "analyzerrunconfigwidget.cpp", + "analyzerrunconfigwidget.h", + "analyzerruncontrol.cpp", + "analyzerruncontrol.h", + "analyzerstartparameters.h", + "analyzerutils.cpp", + "analyzerutils.h", + "detailederrorview.cpp", + "detailederrorview.h", + "diagnosticlocation.cpp", + "diagnosticlocation.h", + "startremotedialog.cpp", + "startremotedialog.h", ] } diff --git a/src/plugins/debugger/debuggerdialogs.cpp b/src/plugins/debugger/debuggerdialogs.cpp index 872c0f027f2..66bf3b1a2a2 100644 --- a/src/plugins/debugger/debuggerdialogs.cpp +++ b/src/plugins/debugger/debuggerdialogs.cpp @@ -402,7 +402,8 @@ bool StartApplicationDialog::run(QWidget *parent, DebuggerRunParameters *rp, Kit rp->remoteChannel = inputAddress; else rp->remoteChannel = rp->connParams.host; - rp->remoteChannel += QLatin1Char(':') + QString::number(newParameters.serverPort); + if (!rp->remoteChannel.isEmpty()) + rp->remoteChannel += QLatin1Char(':') + QString::number(newParameters.serverPort); rp->displayName = newParameters.displayName(); rp->inferior.workingDirectory = newParameters.runnable.workingDirectory; rp->useTerminal = newParameters.runnable.runMode == ApplicationLauncher::Console; diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index 5b0573a7f24..164d8373450 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -2033,7 +2033,10 @@ void DebuggerEngine::updateItem(const QByteArray &iname) showMessage(QString::fromLatin1("IGNORING REPEATED REQUEST TO EXPAND " + iname)); WatchHandler *handler = watchHandler(); WatchItem *item = handler->findItem(iname); - if (!item->hasChildren()) { + QTC_CHECK(item); + WatchModelBase *model = handler->model(); + QTC_CHECK(model); + if (item && !model->hasChildren(model->indexForItem(item))) { handler->notifyUpdateStarted({iname}); item->setValue(decodeData({}, "notaccessible")); item->setHasChildren(false); diff --git a/src/plugins/debugger/debuggeritem.h b/src/plugins/debugger/debuggeritem.h index e48b0108b56..9ba7220191b 100644 --- a/src/plugins/debugger/debuggeritem.h +++ b/src/plugins/debugger/debuggeritem.h @@ -100,9 +100,10 @@ public: bool operator==(const DebuggerItem &other) const; bool operator!=(const DebuggerItem &other) const { return !operator==(other); } + void reinitializeFromFile(); + private: DebuggerItem(const QVariant &id); - void reinitializeFromFile(); void initMacroExpander(); QVariant m_id; diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index fe28ed7682a..829a1f8b6bf 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -1976,6 +1976,7 @@ void DebuggerPluginPrivate::attachToRemoteServer() DebuggerRunParameters rp; Kit *kit; rp.startMode = AttachToRemoteServer; + rp.useContinueInsteadOfRun = true; if (StartApplicationDialog::run(ICore::dialogParent(), &rp, &kit)) { rp.closeMode = KillAtClose; createAndScheduleRun(rp, kit); @@ -2657,7 +2658,7 @@ void DebuggerPluginPrivate::updateDebugActions() if (m_shuttingDown) return; //if we're currently debugging the actions are controlled by engine - if (m_currentEngine->state() != DebuggerNotReady) + if (m_currentEngine && m_currentEngine->state() != DebuggerNotReady) return; QString whyNot; @@ -3308,6 +3309,7 @@ void DebuggerPluginPrivate::updateUiForRunConfiguration(RunConfiguration *rc) void DebuggerPluginPrivate::updateActiveLanguages() { + QTC_ASSERT(dd->m_currentEngine, return); const DebuggerLanguages languages = dd->m_currentEngine->runParameters().languages; // Id perspective = (languages & QmlLanguage) && !(languages & CppLanguage) // ? QmlPerspectiveId : CppPerspectiveId; diff --git a/src/plugins/debugger/debuggerruncontrol.cpp b/src/plugins/debugger/debuggerruncontrol.cpp index 4d362aba8e1..72cbd2b6604 100644 --- a/src/plugins/debugger/debuggerruncontrol.cpp +++ b/src/plugins/debugger/debuggerruncontrol.cpp @@ -351,6 +351,8 @@ static DebuggerRunControl *doCreate(DebuggerRunParameters rp, RunConfiguration * } rp.macroExpander = kit->macroExpander(); + if (rp.symbolFile.isEmpty()) + rp.symbolFile = rp.inferior.executable; if (runConfig) { if (auto envAspect = runConfig->extraAspect()) { diff --git a/src/plugins/debugger/shared/shared.pri b/src/plugins/debugger/shared/shared.pri index d4653455221..074e22cd17e 100644 --- a/src/plugins/debugger/shared/shared.pri +++ b/src/plugins/debugger/shared/shared.pri @@ -10,10 +10,8 @@ HEADERS += $$PWD/backtrace.h \ $$PWD/peutils.h \ shared/symbolpathsdialog.h -win32-msvc* { -# For the Privilege manipulation functions in sharedlibraryinjector.cpp. - LIBS += -ladvapi32 -} +# For the Privilege manipulation functions in sharedlibraryinjector.cpp. +win32: LIBS += -ladvapi32 FORMS += \ shared/symbolpathsdialog.ui diff --git a/src/plugins/debugger/threadshandler.cpp b/src/plugins/debugger/threadshandler.cpp index bfc93846db4..15f053e2e33 100644 --- a/src/plugins/debugger/threadshandler.cpp +++ b/src/plugins/debugger/threadshandler.cpp @@ -60,13 +60,13 @@ static const QIcon &emptyIcon() return icon; } -class ThreadItem : public TreeItem, public ThreadData +class ThreadItem : public TreeItem { Q_DECLARE_TR_FUNCTIONS(Debugger::Internal::ThreadsHandler) public: ThreadItem(const ThreadsHandler *handler, const ThreadData &data = ThreadData()) - : ThreadData(data), handler(handler) + : threadData(data), handler(handler) {} QVariant data(int column, int role) const @@ -79,10 +79,10 @@ public: case Qt::DecorationRole: // Return icon that indicates whether this is the active stack frame. if (column == 0) - return id == handler->currentThread() ? positionIcon() : emptyIcon(); + return threadData.id == handler->currentThread() ? positionIcon() : emptyIcon(); break; case ThreadData::IdRole: - return id.raw(); + return threadData.id.raw(); default: break; } @@ -91,7 +91,7 @@ public: Qt::ItemFlags flags(int column) const { - return stopped ? TreeItem::flags(column) : Qt::ItemFlags(0); + return threadData.stopped ? TreeItem::flags(column) : Qt::ItemFlags(0); } QString threadToolTip() const @@ -103,29 +103,29 @@ public: QTextStream str(&rc); str << "" << start << ThreadsHandler::tr("Thread id:") - << sep << id.raw() << end; - if (!targetId.isEmpty()) + << sep << threadData.id.raw() << end; + if (!threadData.targetId.isEmpty()) str << start << ThreadsHandler::tr("Target id:") - << sep << targetId << end; - if (!groupId.isEmpty()) + << sep << threadData.targetId << end; + if (!threadData.groupId.isEmpty()) str << start << ThreadsHandler::tr("Group id:") - << sep << groupId << end; - if (!name.isEmpty()) + << sep << threadData.groupId << end; + if (!threadData.name.isEmpty()) str << start << ThreadsHandler::tr("Name:") - << sep << name << end; - if (!state.isEmpty()) + << sep << threadData.name << end; + if (!threadData.state.isEmpty()) str << start << ThreadsHandler::tr("State:") - << sep << state << end; - if (!core.isEmpty()) + << sep << threadData.state << end; + if (!threadData.core.isEmpty()) str << start << ThreadsHandler::tr("Core:") - << sep << core << end; - if (address) { + << sep << threadData.core << end; + if (threadData.address) { str << start << ThreadsHandler::tr("Stopped at:") << sep; - if (!function.isEmpty()) - str << function << "
"; - if (!fileName.isEmpty()) - str << fileName << ':' << lineNumber << "
"; - str << formatToolTipAddress(address); + if (!threadData.function.isEmpty()) + str << threadData.function << "
"; + if (!threadData.fileName.isEmpty()) + str << threadData.fileName << ':' << threadData.lineNumber << "
"; + str << formatToolTipAddress(threadData.address); } str << "
"; return rc; @@ -135,83 +135,84 @@ public: { switch (column) { case ThreadData::IdColumn: - return id.raw(); + return threadData.id.raw(); case ThreadData::FunctionColumn: - return function; + return threadData.function; case ThreadData::FileColumn: - return fileName.isEmpty() ? module : fileName; + return threadData.fileName.isEmpty() ? threadData.module : threadData.fileName; case ThreadData::LineColumn: - return lineNumber >= 0 - ? QString::number(lineNumber) : QString(); + return threadData.lineNumber >= 0 + ? QString::number(threadData.lineNumber) : QString(); case ThreadData::AddressColumn: - return address > 0 - ? QLatin1String("0x") + QString::number(address, 16) + return threadData.address > 0 + ? QLatin1String("0x") + QString::number(threadData.address, 16) : QString(); case ThreadData::CoreColumn: - return core; + return threadData.core; case ThreadData::StateColumn: - return state; + return threadData.state; case ThreadData::TargetIdColumn: - if (targetId.startsWith(QLatin1String("Thread "))) - return targetId.mid(7); - return targetId; + if (threadData.targetId.startsWith(QLatin1String("Thread "))) + return threadData.targetId.mid(7); + return threadData.targetId; case ThreadData::NameColumn: - return name; + return threadData.name; case ThreadData::DetailsColumn: - return details; + return threadData.details; case ThreadData::ComboNameColumn: - return QString::fromLatin1("#%1 %2").arg(id.raw()).arg(name); + return QString::fromLatin1("#%1 %2").arg(threadData.id.raw()).arg(threadData.name); } return QVariant(); } void notifyRunning() // Clear state information. { - address = 0; - function.clear(); - fileName.clear(); - frameLevel = -1; - state.clear(); - lineNumber = -1; - stopped = false; + threadData.address = 0; + threadData.function.clear(); + threadData.fileName.clear(); + threadData.frameLevel = -1; + threadData.state.clear(); + threadData.lineNumber = -1; + threadData.stopped = false; update(); } void notifyStopped() { - stopped = true; + threadData.stopped = true; update(); } void mergeThreadData(const ThreadData &other) { if (!other.core.isEmpty()) - core = other.core; + threadData.core = other.core; if (!other.fileName.isEmpty()) - fileName = other.fileName; + threadData.fileName = other.fileName; if (!other.targetId.isEmpty()) - targetId = other.targetId; + threadData.targetId = other.targetId; if (!other.name.isEmpty()) - name = other.name; + threadData.name = other.name; if (other.frameLevel != -1) - frameLevel = other.frameLevel; + threadData.frameLevel = other.frameLevel; if (!other.function.isEmpty()) - function = other.function; + threadData.function = other.function; if (other.address) - address = other.address; + threadData.address = other.address; if (!other.module.isEmpty()) - module = other.module; + threadData.module = other.module; if (!other.details.isEmpty()) - details = other.details; + threadData.details = other.details; if (!other.state.isEmpty()) - state = other.state; + threadData.state = other.state; if (other.lineNumber != -1) - lineNumber = other.lineNumber; + threadData.lineNumber = other.lineNumber; update(); } public: + ThreadData threadData; const ThreadsHandler * const handler; }; @@ -249,7 +250,7 @@ ThreadsHandler::ThreadsHandler() static ThreadItem *itemForThreadId(const ThreadsHandler *handler, ThreadId threadId) { - const auto matcher = [threadId](ThreadItem *item) { return item->id == threadId; }; + const auto matcher = [threadId](ThreadItem *item) { return item->threadData.id == threadId; }; return handler->findItemAtLevel(1, matcher); } @@ -286,7 +287,7 @@ ThreadId ThreadsHandler::currentThread() const ThreadId ThreadsHandler::threadAt(int index) const { QTC_ASSERT(index >= 0 && index < rootItem()->childCount(), return ThreadId()); - return static_cast(rootItem()->childAt(index))->id; + return static_cast(rootItem()->childAt(index))->threadData.id; } void ThreadsHandler::setCurrentThread(ThreadId id) @@ -350,14 +351,14 @@ void ThreadsHandler::updateThreadBox() QStringList list; auto items = itemsAtLevel(1); foreach (ThreadItem *item, items) - list.append(QString::fromLatin1("#%1 %2").arg(item->id.raw()).arg(item->name)); + list.append(QString::fromLatin1("#%1 %2").arg(item->threadData.id.raw()).arg(item->threadData.name)); Internal::setThreadBoxContents(list, indexForThreadId(this, m_currentId)); } ThreadData ThreadsHandler::thread(ThreadId id) const { if (ThreadItem *item = itemForThreadId(this, id)) - return *item; + return item->threadData; return ThreadData(); } @@ -371,7 +372,7 @@ bool ThreadsHandler::notifyGroupExited(const QByteArray &groupId) QList list; auto items = itemsAtLevel(1); foreach (ThreadItem *item, items) - if (item->groupId == groupId) + if (item->threadData.groupId == groupId) list.append(item); foreach (ThreadItem *item, list) delete takeItem(item); diff --git a/src/plugins/projectexplorer/toolchainmanager.cpp b/src/plugins/projectexplorer/toolchainmanager.cpp index 9acbaedfbbc..866f74b4aa5 100644 --- a/src/plugins/projectexplorer/toolchainmanager.cpp +++ b/src/plugins/projectexplorer/toolchainmanager.cpp @@ -171,6 +171,9 @@ static QList autoDetectToolChains(const QList alreadyK foreach (ToolChainFactory *f, factories) result.append(f->autoDetect(alreadyKnownTcs)); + // Remove invalid toolchains that might have sneaked in. + result = Utils::filtered(result, [](const ToolChain *tc) { return tc->isValid(); }); + return result; } diff --git a/src/plugins/projectexplorer/xcodebuildparser.cpp b/src/plugins/projectexplorer/xcodebuildparser.cpp index cb19e501144..470cb7fcae1 100644 --- a/src/plugins/projectexplorer/xcodebuildparser.cpp +++ b/src/plugins/projectexplorer/xcodebuildparser.cpp @@ -37,7 +37,7 @@ namespace ProjectExplorer { static const char failureRe[] = "\\*\\* BUILD FAILED \\*\\*$"; static const char successRe[] = "\\*\\* BUILD SUCCEEDED \\*\\*$"; static const char buildRe[] = "=== BUILD (AGGREGATE )?TARGET (.*) OF PROJECT (.*) WITH .* ===$"; -static const char signatureChangeRe[] = "(.+): replacing existing signature$"; +static const char signatureChangeEndsWithPattern[] = ": replacing existing signature"; XcodebuildParser::XcodebuildParser() { @@ -48,8 +48,6 @@ XcodebuildParser::XcodebuildParser() QTC_CHECK(m_successRe.isValid()); m_buildRe.setPattern(QLatin1String(buildRe)); QTC_CHECK(m_buildRe.isValid()); - m_replacingSignatureRe.setPattern(QLatin1String(signatureChangeRe)); - QTC_CHECK(m_replacingSignatureRe.isValid()); } bool XcodebuildParser::hasFatalErrors() const @@ -71,11 +69,12 @@ void XcodebuildParser::stdOutput(const QString &line) m_xcodeBuildParserState = OutsideXcodebuild; return; } - if (m_replacingSignatureRe.indexIn(lne) > -1) { + if (lne.endsWith(QLatin1String(signatureChangeEndsWithPattern))) { Task task(Task::Warning, QCoreApplication::translate("ProjectExplorer::XcodebuildParser", "Replacing signature"), - Utils::FileName::fromString(m_replacingSignatureRe.cap(1)), /* filename */ + Utils::FileName::fromString( + lne.left(lne.size() - QLatin1String(signatureChangeEndsWithPattern).size())), /* filename */ -1, /* line */ Constants::TASK_CATEGORY_COMPILE); taskAdded(task, 1); diff --git a/src/plugins/projectexplorer/xcodebuildparser.h b/src/plugins/projectexplorer/xcodebuildparser.h index ae49fd7eeb2..a995d361a65 100644 --- a/src/plugins/projectexplorer/xcodebuildparser.h +++ b/src/plugins/projectexplorer/xcodebuildparser.h @@ -55,7 +55,6 @@ private: QRegExp m_failureRe; QRegExp m_successRe; QRegExp m_buildRe; - QRegExp m_replacingSignatureRe; XcodebuildStatus m_xcodeBuildParserState = OutsideXcodebuild; QString m_lastTarget; QString m_lastProject; diff --git a/src/plugins/qbsprojectmanager/qbsbuildstepconfigwidget.ui b/src/plugins/qbsprojectmanager/qbsbuildstepconfigwidget.ui index 4a782753b3a..8bce99a125b 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstepconfigwidget.ui +++ b/src/plugins/qbsprojectmanager/qbsbuildstepconfigwidget.ui @@ -149,40 +149,47 @@ Flags: + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + - - - Keep going when errors occur (if at all possible). - - - Keep going - - - - - - - Show command lines - - - - - - - Install - - - - - - - Clean install root - - + + + + + Keep going when errors occur (if at all possible). + + + Keep going + + + + + + + Show command lines + + + + + + + Install + + + + + + + Clean install root + + + + @@ -192,7 +199,7 @@ 40 - 5 + 13 diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index d00f2acce76..b9f6556d108 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -451,7 +451,7 @@ void QbsProject::updateAfterParse() { qCDebug(qbsPmLog) << "Updating data after parse"; rootProjectNode()->update(); - updateDocuments(QSet() << projectFilePath().toString()); + updateDocuments(m_qbsProject.buildSystemFiles()); updateBuildTargetData(); updateCppCodeModel(); updateQmlJsCodeModel(); @@ -935,9 +935,7 @@ void QbsProject::updateCppCompilerCallData() } } - m_codeModelProjectInfo.setCompilerCallData(data); - const QFuture future = modelManager->updateProjectInfo(m_codeModelProjectInfo); - QTC_CHECK(future.isFinished()); // No reparse of files expected + m_codeModelProjectInfo = modelManager->updateCompilerCallDataForProject(this, data); } void QbsProject::updateQmlJsCodeModel() diff --git a/src/plugins/qmlprofiler/qmlprofilertool.cpp b/src/plugins/qmlprofiler/qmlprofilertool.cpp index 084fa2cb0bf..4083fe35bfc 100644 --- a/src/plugins/qmlprofiler/qmlprofilertool.cpp +++ b/src/plugins/qmlprofiler/qmlprofilertool.cpp @@ -646,6 +646,7 @@ void QmlProfilerTool::showLoadDialog() Debugger::enableMainWindow(false); connect(d->m_profilerModelManager, &QmlProfilerModelManager::recordedFeaturesChanged, this, &QmlProfilerTool::setRecordedFeatures); + populateFileFinder(); d->m_profilerModelManager->load(filename); } } diff --git a/src/plugins/qmlprofiler/qmlprofilertraceview.cpp b/src/plugins/qmlprofiler/qmlprofilertraceview.cpp index abaf85b058d..165f15f1e49 100644 --- a/src/plugins/qmlprofiler/qmlprofilertraceview.cpp +++ b/src/plugins/qmlprofiler/qmlprofilertraceview.cpp @@ -384,7 +384,10 @@ bool TraceViewFindSupport::findOne(const QString &txt, Core::FindFlags findFlags m_currentPosition = current; m_view->selectByEventIndex(model->timelineModel(m_currentPosition), model->timelineIndex(m_currentPosition)); + QWidget *findBar = QApplication::focusWidget(); m_view->updateCursorPosition(); // open file/line that belongs to event + QTC_ASSERT(findBar, return true); + findBar->setFocus(); return true; } current += increment; diff --git a/src/plugins/remotelinux/remotelinuxruncontrolfactory.cpp b/src/plugins/remotelinux/remotelinuxruncontrolfactory.cpp index 27f154a9f06..8800aa1016d 100644 --- a/src/plugins/remotelinux/remotelinuxruncontrolfactory.cpp +++ b/src/plugins/remotelinux/remotelinuxruncontrolfactory.cpp @@ -105,6 +105,8 @@ RunControl *RemoteLinuxRunControlFactory::create(RunConfiguration *runConfig, Co QString symbolFile; if (auto rlrc = qobject_cast(runConfig)) symbolFile = rlrc->localExecutableFilePath(); + if (auto rlrc = qobject_cast(runConfig)) + symbolFile = rlrc->localExecutableFilePath(); if (symbolFile.isEmpty()) { *errorMessage = tr("Cannot debug: Local executable is not set."); return 0; diff --git a/src/plugins/texteditor/codeassist/functionhintproposalwidget.cpp b/src/plugins/texteditor/codeassist/functionhintproposalwidget.cpp index 7074ecd9f64..4ad414d44ec 100644 --- a/src/plugins/texteditor/codeassist/functionhintproposalwidget.cpp +++ b/src/plugins/texteditor/codeassist/functionhintproposalwidget.cpp @@ -159,7 +159,8 @@ void FunctionHintProposalWidget::showProposal(const QString &prefix) d->m_pager->setVisible(d->m_totalHints > 1); d->m_currentHint = 0; - QTC_ASSERT(updateAndCheck(prefix), abort(); return; ); + if (!updateAndCheck(prefix)) + return; qApp->installEventFilter(this); d->m_popupFrame->show(); diff --git a/src/plugins/texteditor/codeassist/genericproposalmodel.cpp b/src/plugins/texteditor/codeassist/genericproposalmodel.cpp index 31f22f05ba1..3b5e14e1faf 100644 --- a/src/plugins/texteditor/codeassist/genericproposalmodel.cpp +++ b/src/plugins/texteditor/codeassist/genericproposalmodel.cpp @@ -179,6 +179,7 @@ void GenericProposalModel::removeDuplicates() const AssistProposalItemInterface *item = *it; if (unique.contains(item->text()) && unique.value(item->text()) == item->hash()) { + delete *it; it = m_originalItems.erase(it); } else { unique.insert(item->text(), item->hash()); diff --git a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp index 6a792c152c0..2da949edee2 100644 --- a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp +++ b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp @@ -117,14 +117,14 @@ ModelAdapter::ModelAdapter(GenericProposalModel *completionModel, QWidget *paren , m_completionModel(completionModel) {} -int ModelAdapter::rowCount(const QModelIndex &) const +int ModelAdapter::rowCount(const QModelIndex &index) const { - return m_completionModel->size(); + return index.isValid() ? 0 : m_completionModel->size(); } QVariant ModelAdapter::data(const QModelIndex &index, int role) const { - if (index.row() >= m_completionModel->size()) + if (!index.isValid() || index.row() >= m_completionModel->size()) return QVariant(); if (role == Qt::DisplayRole) diff --git a/src/plugins/texteditor/texteditor.qbs b/src/plugins/texteditor/texteditor.qbs index a54d6352018..60020f2d92e 100644 --- a/src/plugins/texteditor/texteditor.qbs +++ b/src/plugins/texteditor/texteditor.qbs @@ -10,6 +10,7 @@ QtcPlugin { Depends { name: "Core" } cpp.includePaths: base.concat([path]) // Needed for the highlighterengine autotest. + cpp.enableExceptions: true files: [ "autocompleter.cpp", diff --git a/src/plugins/valgrind/memcheck/memcheckrunner.cpp b/src/plugins/valgrind/memcheck/memcheckrunner.cpp index 61d1cd56902..cf0e793bb55 100644 --- a/src/plugins/valgrind/memcheck/memcheckrunner.cpp +++ b/src/plugins/valgrind/memcheck/memcheckrunner.cpp @@ -95,10 +95,11 @@ bool MemcheckRunner::start() { QTC_ASSERT(d->parser, return false); - if (!startServers()) - return false; - - setValgrindArguments(memcheckLogArguments() + valgrindArguments()); + if (device()->type() == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE) { + if (!startServers(QHostAddress::LocalHost)) + return false; + setValgrindArguments(memcheckLogArguments() + valgrindArguments()); + } return ValgrindRunner::start(); } @@ -133,10 +134,8 @@ void MemcheckRunner::readLogSocket() emit logMessageReceived(d->logSocket->readAll()); } -bool MemcheckRunner::startServers() +bool MemcheckRunner::startServers(const QHostAddress &localHostAddress) { - QHostAddress localHostAddress(QHostAddress::LocalHost); - bool check = d->xmlServer.listen(localHostAddress); const QString ip = localHostAddress.toString(); if (!check) { @@ -172,5 +171,13 @@ QStringList MemcheckRunner::memcheckLogArguments() const return arguments; } +void MemcheckRunner::localHostAddressRetrieved(const QHostAddress &localHostAddress) +{ + if (startServers(localHostAddress)) { + setValgrindArguments(memcheckLogArguments() + valgrindArguments()); + valgrindProcess()->setValgrindArguments(fullValgrindArguments()); + } +} + } // namespace Memcheck } // namespace Valgrind diff --git a/src/plugins/valgrind/memcheck/memcheckrunner.h b/src/plugins/valgrind/memcheck/memcheckrunner.h index ec092ffc131..58f55f904f6 100644 --- a/src/plugins/valgrind/memcheck/memcheckrunner.h +++ b/src/plugins/valgrind/memcheck/memcheckrunner.h @@ -52,6 +52,8 @@ signals: void logMessageReceived(const QByteArray &); private slots: + void localHostAddressRetrieved(const QHostAddress &localHostAddress); + void xmlSocketConnected(); void logSocketConnected(); void readLogSocket(); @@ -59,7 +61,7 @@ private slots: private: QString tool() const; - bool startServers(); + bool startServers(const QHostAddress &localHostAddress); QStringList memcheckLogArguments() const; class Private; diff --git a/src/plugins/valgrind/valgrind.qbs b/src/plugins/valgrind/valgrind.qbs index de2d53b6998..beaf1bb830e 100644 --- a/src/plugins/valgrind/valgrind.qbs +++ b/src/plugins/valgrind/valgrind.qbs @@ -13,6 +13,8 @@ QtcPlugin { Depends { name: "ProjectExplorer" } Depends { name: "TextEditor" } + cpp.enableExceptions: true + Group { name: "General" files: [ diff --git a/src/plugins/valgrind/valgrindprocess.cpp b/src/plugins/valgrind/valgrindprocess.cpp index 83184c5269e..c9e27dfcca7 100644 --- a/src/plugins/valgrind/valgrindprocess.cpp +++ b/src/plugins/valgrind/valgrindprocess.cpp @@ -205,6 +205,8 @@ void ValgrindProcess::connected() { QTC_ASSERT(m_remote.m_connection->state() == QSsh::SshConnection::Connected, return); + emit localHostAddressRetrieved(m_remote.m_connection->connectionInfo().localAddress); + // connected, run command QString cmd; @@ -214,6 +216,9 @@ void ValgrindProcess::connected() cmd += m_valgrindExecutable + QLatin1Char(' ') + argumentString(Utils::OsTypeLinux); m_remote.m_process = m_remote.m_connection->createRemoteProcess(cmd.toUtf8()); + for (auto it = m_debuggee.environment.constBegin(); it != m_debuggee.environment.constEnd(); ++it) + m_remote.m_process->addToEnvironment(it.key().toUtf8(), it.value().toUtf8()); + connect(m_remote.m_process.data(), &QSsh::SshRemoteProcess::readyReadStandardError, this, &ValgrindProcess::handleRemoteStderr); connect(m_remote.m_process.data(), &QSsh::SshRemoteProcess::readyReadStandardOutput, diff --git a/src/plugins/valgrind/valgrindprocess.h b/src/plugins/valgrind/valgrindprocess.h index 44da14afa2b..b85214e0954 100644 --- a/src/plugins/valgrind/valgrindprocess.h +++ b/src/plugins/valgrind/valgrindprocess.h @@ -74,6 +74,7 @@ signals: void finished(int, QProcess::ExitStatus); void error(QProcess::ProcessError); void processOutput(const QString &, Utils::OutputFormat format); + void localHostAddressRetrieved(const QHostAddress &localHostAddress); private: void handleRemoteStderr(); diff --git a/src/plugins/valgrind/valgrindrunner.cpp b/src/plugins/valgrind/valgrindrunner.cpp index 477cf3478b0..1fbaab039a7 100644 --- a/src/plugins/valgrind/valgrindrunner.cpp +++ b/src/plugins/valgrind/valgrindrunner.cpp @@ -147,6 +147,8 @@ bool ValgrindRunner::start() this, &ValgrindRunner::processFinished); QObject::connect(d->process, &ValgrindProcess::error, this, &ValgrindRunner::processError); + QObject::connect(d->process, &ValgrindProcess::localHostAddressRetrieved, + this, &ValgrindRunner::localHostAddressRetrieved); d->process->run(d->debuggee.runMode); return true; @@ -178,6 +180,11 @@ void ValgrindRunner::processFinished(int ret, QProcess::ExitStatus status) emit processErrorReceived(errorString(), d->process->processError()); } +void ValgrindRunner::localHostAddressRetrieved(const QHostAddress &localHostAddress) +{ + Q_UNUSED(localHostAddress); +} + QString ValgrindRunner::errorString() const { if (d->process) diff --git a/src/plugins/valgrind/valgrindrunner.h b/src/plugins/valgrind/valgrindrunner.h index 64462092193..97c3f8703f6 100644 --- a/src/plugins/valgrind/valgrindrunner.h +++ b/src/plugins/valgrind/valgrindrunner.h @@ -79,6 +79,7 @@ signals: protected slots: virtual void processError(QProcess::ProcessError); virtual void processFinished(int, QProcess::ExitStatus); + virtual void localHostAddressRetrieved(const QHostAddress &localHostAddress); private: class Private; diff --git a/src/shared/clang/clang_installation.pri b/src/shared/clang/clang_installation.pri index 37f16a80023..55333e9569a 100644 --- a/src/shared/clang/clang_installation.pri +++ b/src/shared/clang/clang_installation.pri @@ -53,7 +53,7 @@ defineReplace(findClangLibInLibDir) { defineReplace(findClangOnWindows) { FILE_EXTS = a dll - win32-msvc*: FILE_EXTS = lib dll + msvc: FILE_EXTS = lib dll for (suffix, $$list(lib bin)) { for (libname, $$list(clang libclang)) { for (ext, FILE_EXTS) { diff --git a/src/shared/qbs b/src/shared/qbs index b6b71dbd9b5..c9073856137 160000 --- a/src/shared/qbs +++ b/src/shared/qbs @@ -1 +1 @@ -Subproject commit b6b71dbd9b59058f4277be2e8f3a933221b8ae55 +Subproject commit c9073856137a733776d0123804805ef9bc683084 diff --git a/src/shared/registryaccess/registryaccess.pri b/src/shared/registryaccess/registryaccess.pri index 0a344d6a376..16a61067bb4 100644 --- a/src/shared/registryaccess/registryaccess.pri +++ b/src/shared/registryaccess/registryaccess.pri @@ -5,6 +5,4 @@ HEADERS += $$PWD/registryaccess.h LIBS *= -lpsapi # PS API and registry functions -msvc { - LIBS *= -ladvapi32 -} +win32: LIBS *= -ladvapi32 diff --git a/src/tools/clangbackend/ipcsource/clangbackendclangipc-source.pri b/src/tools/clangbackend/ipcsource/clangbackendclangipc-source.pri index e9ad8d3f794..6308ca01e54 100644 --- a/src/tools/clangbackend/ipcsource/clangbackendclangipc-source.pri +++ b/src/tools/clangbackend/ipcsource/clangbackendclangipc-source.pri @@ -12,6 +12,7 @@ HEADERS += $$PWD/clangipcserver.h \ $$PWD/projects.h \ $$PWD/translationunits.h \ $$PWD/translationunitparseerrorexception.h \ + $$PWD/translationunitreparseerrorexception.h \ $$PWD/projectpart.h \ $$PWD/translationunitfilenotexitexception.h \ $$PWD/translationunitdoesnotexistexception.h \ @@ -46,6 +47,7 @@ SOURCES += $$PWD/clangipcserver.cpp \ $$PWD/projects.cpp \ $$PWD/translationunits.cpp \ $$PWD/translationunitparseerrorexception.cpp \ + $$PWD/translationunitreparseerrorexception.cpp \ $$PWD/projectpart.cpp \ $$PWD/translationunitfilenotexitexception.cpp \ $$PWD/translationunitdoesnotexistexception.cpp \ diff --git a/src/tools/clangbackend/ipcsource/clangtranslationunit.cpp b/src/tools/clangbackend/ipcsource/clangtranslationunit.cpp index 1f683dbd1de..58949f875d6 100644 --- a/src/tools/clangbackend/ipcsource/clangtranslationunit.cpp +++ b/src/tools/clangbackend/ipcsource/clangtranslationunit.cpp @@ -39,6 +39,7 @@ #include "translationunitfilenotexitexception.h" #include "translationunitisnullexception.h" #include "translationunitparseerrorexception.h" +#include "translationunitreparseerrorexception.h" #include "translationunits.h" #include "unsavedfiles.h" @@ -76,6 +77,8 @@ public: Utf8StringVector fileArguments; Utf8String filePath; CXTranslationUnit translationUnit = nullptr; + CXErrorCode parseErrorCode = CXError_Success; + int reparseErrorCode = 0; CXIndex index = nullptr; uint documentRevision = 0; bool needsToBeReparsed = false; @@ -155,6 +158,16 @@ void TranslationUnit::reparse() const reparseTranslationUnit(); } +bool TranslationUnit::parseWasSuccessful() const +{ + return d->parseErrorCode == CXError_Success; +} + +bool TranslationUnit::reparseWasSuccessful() const +{ + return d->reparseErrorCode == 0; +} + CXIndex TranslationUnit::index() const { checkIfNull(); @@ -350,7 +363,7 @@ void TranslationUnit::checkIfNull() const void TranslationUnit::checkIfFileExists() const { - if (!QFileInfo::exists(d->filePath.toString())) + if (!fileExists()) throw TranslationUnitFileNotExitsException(d->filePath); } @@ -396,16 +409,16 @@ void TranslationUnit::createTranslationUnitIfNeeded() const if (isVerboseModeEnabled()) args.print(); - CXErrorCode errorCode = clang_parseTranslationUnit2(index(), - NULL, - args.data(), - args.count(), - unsavedFiles().cxUnsavedFiles(), - unsavedFiles().count(), - defaultOptions(), - &d->translationUnit); + d->parseErrorCode = clang_parseTranslationUnit2(index(), + NULL, + args.data(), + args.count(), + unsavedFiles().cxUnsavedFiles(), + unsavedFiles().count(), + defaultOptions(), + &d->translationUnit); - checkTranslationUnitErrorCode(errorCode); + checkParseErrorCode(); updateIncludeFilePaths(); @@ -413,22 +426,33 @@ void TranslationUnit::createTranslationUnitIfNeeded() const } } -void TranslationUnit::checkTranslationUnitErrorCode(CXErrorCode errorCode) const +void TranslationUnit::checkParseErrorCode() const { - switch (errorCode) { - case CXError_Success: break; - default: throw TranslationUnitParseErrorException(d->filePath, - d->projectPart.projectPartId(), - errorCode); + if (!parseWasSuccessful()) { + throw TranslationUnitParseErrorException(d->filePath, + d->projectPart.projectPartId(), + d->parseErrorCode); + } +} + +void TranslationUnit::checkReparseErrorCode() const +{ + if (!reparseWasSuccessful()) { + throw TranslationUnitReparseErrorException(d->filePath, + d->projectPart.projectPartId(), + d->reparseErrorCode); } } void TranslationUnit::reparseTranslationUnit() const { - clang_reparseTranslationUnit(d->translationUnit, - unsavedFiles().count(), - unsavedFiles().cxUnsavedFiles(), - clang_defaultReparseOptions(d->translationUnit)); + d->reparseErrorCode = clang_reparseTranslationUnit( + d->translationUnit, + unsavedFiles().count(), + unsavedFiles().cxUnsavedFiles(), + clang_defaultReparseOptions(d->translationUnit)); + + checkReparseErrorCode(); updateIncludeFilePaths(); @@ -474,6 +498,19 @@ void TranslationUnit::updateIncludeFilePaths() const d->translationUnits.addWatchedFiles(d->dependedFilePaths); } +bool TranslationUnit::fileExists() const +{ + return QFileInfo::exists(d->filePath.toString()); +} + +bool TranslationUnit::isIntact() const +{ + return !isNull() + && fileExists() + && parseWasSuccessful() + && reparseWasSuccessful(); +} + CommandLineArguments TranslationUnit::commandLineArguments() const { return CommandLineArguments(d->filePath.constData(), diff --git a/src/tools/clangbackend/ipcsource/clangtranslationunit.h b/src/tools/clangbackend/ipcsource/clangtranslationunit.h index c4b25d53c51..e52225f3309 100644 --- a/src/tools/clangbackend/ipcsource/clangtranslationunit.h +++ b/src/tools/clangbackend/ipcsource/clangtranslationunit.h @@ -90,6 +90,8 @@ public: void reset(); void reparse() const; + bool isIntact() const; + CXIndex index() const; CXTranslationUnit cxTranslationUnit() const; CXTranslationUnit cxTranslationUnitWithoutReparsing() const; @@ -149,10 +151,14 @@ private: bool projectPartIsOutdated() const; bool isMainFileAndExistsOrIsOtherFile(const Utf8String &filePath) const; void createTranslationUnitIfNeeded() const; - void checkTranslationUnitErrorCode(CXErrorCode errorCode) const; + void checkParseErrorCode() const; + void checkReparseErrorCode() const; void reparseTranslationUnit() const; void reparseTranslationUnitIfFilesAreChanged() const; + bool parseWasSuccessful() const; + bool reparseWasSuccessful() const; void updateIncludeFilePaths() const; + bool fileExists() const; static void includeCallback(CXFile included_file, CXSourceLocation * /*inclusion_stack*/, unsigned /*include_len*/, diff --git a/src/tools/clangbackend/ipcsource/translationunitparseerrorexception.cpp b/src/tools/clangbackend/ipcsource/translationunitparseerrorexception.cpp index 3cd99c53e8a..27f1799e09d 100644 --- a/src/tools/clangbackend/ipcsource/translationunitparseerrorexception.cpp +++ b/src/tools/clangbackend/ipcsource/translationunitparseerrorexception.cpp @@ -65,12 +65,13 @@ static const char *errorCodeToText(CXErrorCode errorCode) const char *TranslationUnitParseErrorException::what() const Q_DECL_NOEXCEPT { if (what_.isEmpty()) { - what_ += Utf8StringLiteral("Parse error for file ") + what_ += Utf8StringLiteral("clang_parseTranslationUnit() failed for file ") + filePath() + Utf8StringLiteral(" in project ") + projectPartId() + Utf8StringLiteral(": ") - + Utf8String::fromUtf8(errorCodeToText(errorCode_)); + + Utf8String::fromUtf8(errorCodeToText(errorCode_)) + + Utf8StringLiteral("."); } return what_.constData(); diff --git a/src/tools/clangbackend/ipcsource/translationunitreparseerrorexception.cpp b/src/tools/clangbackend/ipcsource/translationunitreparseerrorexception.cpp new file mode 100644 index 00000000000..6f1e7f0d7de --- /dev/null +++ b/src/tools/clangbackend/ipcsource/translationunitreparseerrorexception.cpp @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ + +#include "translationunitreparseerrorexception.h" + +#include + +namespace ClangBackEnd { + +TranslationUnitReparseErrorException::TranslationUnitReparseErrorException( + const Utf8String &filePath, + const Utf8String &projectPartId, + int errorCode) + : filePath_(filePath), + projectPartId_(projectPartId), + errorCode_(errorCode) +{ +} + +const Utf8String &TranslationUnitReparseErrorException::filePath() const +{ + return filePath_; +} + +const Utf8String &TranslationUnitReparseErrorException::projectPartId() const +{ + return projectPartId_; +} + +const char *TranslationUnitReparseErrorException::what() const Q_DECL_NOEXCEPT +{ + if (what_.isEmpty()) { + what_ += Utf8StringLiteral("clang_reparseTranslationUnit() failed for file ") + + filePath() + + Utf8StringLiteral(" in project ") + + projectPartId() + + Utf8StringLiteral(": ") + + Utf8String::fromString(QString::number(errorCode_)) + + Utf8StringLiteral("."); + } + + return what_.constData(); +} + +} // namespace ClangBackEnd + diff --git a/src/tools/clangbackend/ipcsource/translationunitreparseerrorexception.h b/src/tools/clangbackend/ipcsource/translationunitreparseerrorexception.h new file mode 100644 index 00000000000..126a24c7e9e --- /dev/null +++ b/src/tools/clangbackend/ipcsource/translationunitreparseerrorexception.h @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ + +#pragma once + +#include + +#include + +#include + +namespace ClangBackEnd { + +class TranslationUnitReparseErrorException : public std::exception +{ +public: + TranslationUnitReparseErrorException(const Utf8String &filePath, + const Utf8String &projectPartId, + int errorCode); + + const Utf8String &filePath() const; + const Utf8String &projectPartId() const; + + const char *what() const Q_DECL_NOEXCEPT override; + +#if defined(__GNUC__) && !defined(__clang__) +# if !__GNUC_PREREQ(4,8) + ~TranslationUnitReparseErrorException() noexcept {} +# endif +#endif + +private: + Utf8String filePath_; + Utf8String projectPartId_; + int errorCode_; + mutable Utf8String what_; +}; + +} // namespace ClangBackEnd diff --git a/src/tools/clangbackend/ipcsource/translationunits.cpp b/src/tools/clangbackend/ipcsource/translationunits.cpp index 1f08b448d85..5ec8be8810c 100644 --- a/src/tools/clangbackend/ipcsource/translationunits.cpp +++ b/src/tools/clangbackend/ipcsource/translationunits.cpp @@ -199,7 +199,9 @@ namespace { bool translationUnitHasNewDocumentAnnotations(const TranslationUnit &translationUnit) { - return translationUnit.hasNewDiagnostics() || translationUnit.hasNewHighlightingMarks(); + return translationUnit.isIntact() + && (translationUnit.hasNewDiagnostics() + || translationUnit.hasNewHighlightingMarks()); } } diff --git a/src/tools/wininterrupt/wininterrupt.pro b/src/tools/wininterrupt/wininterrupt.pro index b7fd91db44c..3ac6fc32bae 100644 --- a/src/tools/wininterrupt/wininterrupt.pro +++ b/src/tools/wininterrupt/wininterrupt.pro @@ -7,7 +7,7 @@ include(../../qtcreatortool.pri) # global state of the CRT, reconsider if other DLLs are required! # TODO: No effect, currently? -win32-msvc* { +msvc { QMAKE_CXXFLAGS_RELEASE -= -MD QMAKE_CXXFLAGS_DEBUG -= -MDd QMAKE_CXXFLAGS_RELEASE += -MT diff --git a/tests/auto/cplusplus/checksymbols/tst_checksymbols.cpp b/tests/auto/cplusplus/checksymbols/tst_checksymbols.cpp index cf26114d9a1..ccabb8c61fa 100644 --- a/tests/auto/cplusplus/checksymbols/tst_checksymbols.cpp +++ b/tests/auto/cplusplus/checksymbols/tst_checksymbols.cpp @@ -222,6 +222,7 @@ private slots: void test_checkForValidSymbolFileId(); void test_parentOfBlock(); + void test_infiniteLoop(); void findField(); void findField_data(); @@ -1203,6 +1204,41 @@ void tst_CheckSymbols::test_parentOfBlock() BaseTestCase tc(source); } +void tst_CheckSymbols::test_infiniteLoop() +{ + const QByteArray source = + "template struct TNode;\n" + "template struct TMetaNode;\n" + "\n" + "template \n" + "struct TTraits {\n" + " using TX = X;\n" + " using TNodeType = TNode;\n" + "};\n" + "\n" + "template \n" + "struct TMetaNode {\n" + " using TTraitsType = TTraits;\n" + "};\n" + "\n" + "template \n" + "void nonmember() {\n" + " using TMetaNodeType = TMetaNode;\n" + "}\n" + "\n" + "template \n" + "struct TNode {\n" + " using TTraitsType = TTraits;\n" + " void member();\n" + "};\n" + "\n" + "template \n" + "void TNode::member() {}\n" + ; + + BaseTestCase tc(source); +} + void tst_CheckSymbols::test_checksymbols_infiniteLoop_data() { QTest::addColumn("source1"); diff --git a/tests/auto/debugger/dumpers.pro b/tests/auto/debugger/dumpers.pro index 1ecbba6ba5b..39cf6770135 100644 --- a/tests/auto/debugger/dumpers.pro +++ b/tests/auto/debugger/dumpers.pro @@ -4,7 +4,7 @@ QTC_LIB_DEPENDS += utils include(../qttest.pri) -win32-msvc* { +msvc { LIBS *= -L$$IDE_PLUGIN_PATH DEFINES += Q_PLUGIN_PATH=\"\\\"$$IDE_PLUGIN_PATH\\\"\" diff --git a/tests/auto/debugger/namedemangler.qbs b/tests/auto/debugger/namedemangler.qbs index a22d294ad0b..d6356728d6f 100644 --- a/tests/auto/debugger/namedemangler.qbs +++ b/tests/auto/debugger/namedemangler.qbs @@ -2,6 +2,9 @@ import qbs QtcAutotest { name: "Name demangler autotest" + + cpp.enableExceptions: true + Group { name: "Sources from Debugger plugin" prefix: project.debuggerDir + "namedemangler/" diff --git a/tests/auto/valgrind/memcheck/testapps/leak2/leak2.pro b/tests/auto/valgrind/memcheck/testapps/leak2/leak2.pro index aae4b9a45ae..7e2902b0d17 100644 --- a/tests/auto/valgrind/memcheck/testapps/leak2/leak2.pro +++ b/tests/auto/valgrind/memcheck/testapps/leak2/leak2.pro @@ -3,7 +3,7 @@ TARGET = leak2 CONFIG += debug -win32-msvc*:QMAKE_CXXFLAGS += -w44996 +msvc: QMAKE_CXXFLAGS += -w44996 QT += core macx:CONFIG -= app_bundle diff --git a/tests/auto/valgrind/memcheck/testapps/leak3/leak3.pro b/tests/auto/valgrind/memcheck/testapps/leak3/leak3.pro index 6eebcbb04ac..82a2ae5c898 100644 --- a/tests/auto/valgrind/memcheck/testapps/leak3/leak3.pro +++ b/tests/auto/valgrind/memcheck/testapps/leak3/leak3.pro @@ -5,8 +5,7 @@ CONFIG += debug QT += core -macx:CONFIG -= app_bundle - -win32-msvc*:QMAKE_CXXFLAGS += -w44996 +osx: CONFIG -= app_bundle +msvc: QMAKE_CXXFLAGS += -w44996 SOURCES += main.cpp diff --git a/tests/auto/valgrind/memcheck/testapps/overlap/overlap.pro b/tests/auto/valgrind/memcheck/testapps/overlap/overlap.pro index dcc03cf1825..2614ae24a58 100644 --- a/tests/auto/valgrind/memcheck/testapps/overlap/overlap.pro +++ b/tests/auto/valgrind/memcheck/testapps/overlap/overlap.pro @@ -3,7 +3,7 @@ TARGET = overlap CONFIG += debug console CONFIG -= qt -!win32-msvc*:QMAKE_CXXFLAGS = -O0 -fno-builtin +!msvc: QMAKE_CXXFLAGS = -O0 -fno-builtin macx:CONFIG -= app_bundle diff --git a/tests/auto/valgrind/memcheck/testapps/syscall/syscall.pro b/tests/auto/valgrind/memcheck/testapps/syscall/syscall.pro index 026a9fdcdb6..fdb2aadceb2 100644 --- a/tests/auto/valgrind/memcheck/testapps/syscall/syscall.pro +++ b/tests/auto/valgrind/memcheck/testapps/syscall/syscall.pro @@ -2,8 +2,8 @@ TEMPLATE = app TARGET = syscall CONFIG += debug -win32-msvc*:QMAKE_CXXFLAGS += -w44700 -else:QMAKE_CXXFLAGS = -O0 -Wno-uninitialized +msvc: QMAKE_CXXFLAGS += -w44700 +else: QMAKE_CXXFLAGS = -O0 -Wno-uninitialized QT += core diff --git a/tests/auto/valgrind/memcheck/testapps/uninit1/uninit1.pro b/tests/auto/valgrind/memcheck/testapps/uninit1/uninit1.pro index 4ccd99a5413..499c5b55b43 100644 --- a/tests/auto/valgrind/memcheck/testapps/uninit1/uninit1.pro +++ b/tests/auto/valgrind/memcheck/testapps/uninit1/uninit1.pro @@ -3,8 +3,8 @@ TARGET = uninit1 CONFIG += debug console CONFIG -= qt -win32-msvc*:QMAKE_CXXFLAGS += -w44700 -else:QMAKE_CXXFLAGS = -O0 -Wno-uninitialized +msvc: QMAKE_CXXFLAGS += -w44700 +else: QMAKE_CXXFLAGS = -O0 -Wno-uninitialized macx:CONFIG -= app_bundle diff --git a/tests/auto/valgrind/memcheck/testapps/uninit2/uninit2.pro b/tests/auto/valgrind/memcheck/testapps/uninit2/uninit2.pro index 26c1ce41fb6..a1818617d9d 100644 --- a/tests/auto/valgrind/memcheck/testapps/uninit2/uninit2.pro +++ b/tests/auto/valgrind/memcheck/testapps/uninit2/uninit2.pro @@ -3,8 +3,8 @@ TARGET = uninit2 CONFIG += debug console CONFIG -= qt -win32-msvc*:QMAKE_CXXFLAGS += -w44700 -else:QMAKE_CXXFLAGS = -O0 -Wno-uninitialized +msvc: QMAKE_CXXFLAGS += -w44700 +else: QMAKE_CXXFLAGS = -O0 -Wno-uninitialized macx:CONFIG -= app_bundle diff --git a/tests/auto/valgrind/memcheck/testapps/uninit3/uninit3.pro b/tests/auto/valgrind/memcheck/testapps/uninit3/uninit3.pro index 2d7ff256c15..23e9be18048 100644 --- a/tests/auto/valgrind/memcheck/testapps/uninit3/uninit3.pro +++ b/tests/auto/valgrind/memcheck/testapps/uninit3/uninit3.pro @@ -3,8 +3,8 @@ TARGET = uninit3 CONFIG += debug console CONFIG -= qt -win32-msvc*:QMAKE_CXXFLAGS += -w44700 -else:QMAKE_CXXFLAGS = -O0 -Wno-uninitialized +msvc: QMAKE_CXXFLAGS += -w44700 +else: QMAKE_CXXFLAGS = -O0 -Wno-uninitialized macx:CONFIG -= app_bundle diff --git a/tests/manual/debugger/simple/simple_test_app.pro b/tests/manual/debugger/simple/simple_test_app.pro index f7b492ef797..3995f45f084 100644 --- a/tests/manual/debugger/simple/simple_test_app.pro +++ b/tests/manual/debugger/simple/simple_test_app.pro @@ -64,7 +64,7 @@ exists(/usr/local/include/eigen3/Eigen/Core) { INCLUDEPATH += /usr/local/include/eigen3 } -win32-msvc*:DEFINES += _CRT_SECURE_NO_WARNINGS +msvc: DEFINES += _CRT_SECURE_NO_WARNINGS # Use for semi-automated testing #DEFINES += USE_AUTORUN=1 diff --git a/tests/unit/unittest/translationunitstest.cpp b/tests/unit/unittest/translationunitstest.cpp index 84946f4f48e..94599b0a222 100644 --- a/tests/unit/unittest/translationunitstest.cpp +++ b/tests/unit/unittest/translationunitstest.cpp @@ -40,6 +40,8 @@ #include #include +#include + #include #include "mocksenddocumentannotationscallback.h" @@ -83,6 +85,7 @@ class TranslationUnits : public ::testing::Test { protected: void SetUp() override; + void createDirtyTranslationUnitAndDeleteFile(); void sendAllDocumentAnnotations(); void sendAllDocumentAnnotationsForCurrentEditor(); void sendAllDocumentAnnotationsForVisibleEditors(); @@ -130,6 +133,15 @@ TEST_F(TranslationUnits, DoNotThrowForAddingNonExistingFileWithUnsavedContent) ASSERT_NO_THROW(translationUnits.create({fileContainer})); } +TEST_F(TranslationUnits, DoNotSendDocumentAnnotationsForVanishedMainFile) +{ + createDirtyTranslationUnitAndDeleteFile(); + + EXPECT_CALL(mockSendDocumentAnnotationsCallback, sendDocumentAnnotations()).Times(0); + + sendAllDocumentAnnotations(); +} + TEST_F(TranslationUnits, Add) { ClangBackEnd::FileContainer fileContainer(filePath, projectPartId, Utf8StringVector(), 74u); @@ -504,6 +516,20 @@ void TranslationUnits::SetUp() translationUnits.setSendDocumentAnnotationsCallback(callback); } +void TranslationUnits::createDirtyTranslationUnitAndDeleteFile() +{ + QTemporaryFile temporaryFile(QLatin1String("XXXXXX.cpp")); + EXPECT_TRUE(temporaryFile.open()); + const QString temporaryFilePath = Utf8String::fromString(temporaryFile.fileName()); + + ClangBackEnd::FileContainer fileContainer(temporaryFilePath, + projectPartId, Utf8String(), true); + translationUnits.create({fileContainer}); + auto translationUnit = translationUnits.translationUnit(fileContainer); + translationUnit.setIsUsedByCurrentEditor(true); + translationUnit.setDirtyIfDependencyIsMet(translationUnit.filePath()); +} + void TranslationUnits::sendAllDocumentAnnotations() { auto sendState = DocumentAnnotationsSendState::MaybeThereAreDocumentAnnotations; diff --git a/tests/unit/unittest/translationunittest.cpp b/tests/unit/unittest/translationunittest.cpp index a3fd9ea2d6c..9d6cc83a0a5 100644 --- a/tests/unit/unittest/translationunittest.cpp +++ b/tests/unit/unittest/translationunittest.cpp @@ -72,7 +72,7 @@ class TranslationUnit : public ::testing::Test { protected: void SetUp() override; - ::TranslationUnit createTemporaryTranslationUnit(); + ::TranslationUnit createTranslationUnitAndDeleteFile(); QByteArray readContentFromTranslationUnitFile() const; protected: @@ -92,6 +92,13 @@ TEST_F(TranslationUnit, DefaultTranslationUnitIsInvalid) ASSERT_TRUE(translationUnit.isNull()); } +TEST_F(TranslationUnit, DefaultTranslationUnitIsNotIntact) +{ + ::TranslationUnit translationUnit; + + ASSERT_FALSE(translationUnit.isIntact()); +} + TEST_F(TranslationUnit, ThrowExceptionForNonExistingFilePath) { ASSERT_THROW(::TranslationUnit(Utf8StringLiteral("file.cpp"), projectPart, Utf8StringVector(), translationUnits), @@ -193,7 +200,7 @@ TEST_F(TranslationUnit, DependedFilePaths) TEST_F(TranslationUnit, DeletedFileShouldNotNeedReparsing) { - auto translationUnit = createTemporaryTranslationUnit(); + auto translationUnit = createTranslationUnitAndDeleteFile(); translationUnit.setDirtyIfDependencyIsMet(translationUnit.filePath()); @@ -244,6 +251,20 @@ TEST_F(TranslationUnit, NeedsNoReparsingAfterReparsing) ASSERT_FALSE(translationUnit.isNeedingReparse()); } +TEST_F(TranslationUnit, IsIntactAfterCreation) +{ + translationUnit.cxTranslationUnit(); + + ASSERT_TRUE(translationUnit.isIntact()); +} + +TEST_F(TranslationUnit, IsNotIntactForDeletedFile) +{ + auto translationUnit = createTranslationUnitAndDeleteFile(); + + ASSERT_FALSE(translationUnit.isIntact()); +} + TEST_F(TranslationUnit, HasNewDiagnosticsAfterCreation) { translationUnit.cxTranslationUnit(); @@ -364,7 +385,7 @@ void TranslationUnit::SetUp() translationUnit = createdTranslationUnits.front(); } -::TranslationUnit TranslationUnit::createTemporaryTranslationUnit() +::TranslationUnit TranslationUnit::createTranslationUnitAndDeleteFile() { QTemporaryFile temporaryFile; EXPECT_TRUE(temporaryFile.open()); diff --git a/tests/unit/unittest/unittest.pro b/tests/unit/unittest/unittest.pro index 30d075079b6..12b67ed93a3 100644 --- a/tests/unit/unittest/unittest.pro +++ b/tests/unit/unittest/unittest.pro @@ -20,7 +20,7 @@ DEFINES += \ UNIT_TESTS \ DONT_CHECK_MESSAGE_COUNTER \ TESTDATA_DIR=\"R\\\"xxx($$PWD/data)xxx\\\"\" -win32-msvc*:QMAKE_CXXFLAGS_WARN_ON -= -w34100 # 'unreferenced formal parameter' in MATCHER_* functions +msvc: QMAKE_CXXFLAGS_WARN_ON -= -w34100 # 'unreferenced formal parameter' in MATCHER_* functions win32:DEFINES += ECHOSERVER=\"R\\\"xxx($$OUT_PWD/../echo)xxx\\\"\" unix: DEFINES += ECHOSERVER=\"R\\\"xxx($$OUT_PWD/../echoserver/echo)xxx\\\"\"